zoukankan      html  css  js  c++  java
  • ANAFI EXTENOED无人机(1)环境配置和基础开发

     我们买的新飞机ANAFI EXTENDED,用的app是 freeflight6

    官网 http://www.parrot.com.cn/product/anafi-extended/   

    购买 https://item.jd.com/36083624640.html

     

     

     镜头可以变焦  三轴

     

    0基本硬件说明

     1APP说明

     

    第一次安装 ,首先连接遥控器(可以不链接直接手机控制),升级固件,遥控器和飞机的固件都要自动升级。

    2程序开发

    https://developer.parrot.com/

     

     https://developer.parrot.com/docs/olympe/

     https://developer.parrot.com/docs/olympe/installation.html

    安装源码

    首先你必须有个linux破强工具 不然后面下载不了!!!

    我在官网基础改了自己打的路径

    安装安装工具

    sudo apt-get install repo
    

     下载源码 

    Clone the parrot-groundsdk repo workspace

    在当前路径下执行命令,准备下载前的配置,源码是按照xml 组织的工程,需要先执行下面命令组织好,必须要破墙不然会time out!!!

    $ repo init -u https://github.com/Parrot-Developers/groundsdk-manifest.git
    $ repo syn
    

    中间报错 git项目的时候需要输入自己的身份和邮箱

     

     加入自己的邮箱和名字

    使用您的真实姓名和电子邮件地址配置git

    $ git config --global user.name "Your Name"
    $ git config --global user.email "you@example.com"
      
    

      

     

    重新执行 一路按y

     执行 开始下载工程

    repo sync
    

    下载成功,看到很多文件夹子

    执行

    ./products/olympe/linux/env/postinst
    

      

    等待下载完 

    下面没安装完???) clang 没装完??

    不管了 重新执行一遍手动安装依赖库

    $ sudo apt-get -y install build-essential yasm cmake libtool libc6 libc6-dev 
      unzip freeglut3-dev libglfw3 libglfw3-dev libsdl2-dev libjson-c-dev 
      libcurl4-gnutls-dev libavahi-client-dev libgles2-mesa-dev
    
    
    $ sudo apt-get -y install rsync
    
    
    $ sudo apt-get -y install cmake libbluetooth-dev libavahi-client-dev 
        libopencv-dev libswscale-dev libavformat-dev 
        libavcodec-dev libavutil-dev cython python-dev
    
    $ pip3 install clang
    

    执行另一个安装

    原教程

    $ pip3 install -r ~/code/parrot-groundsdk/packages/olympe/requirements.txt
    $ echo "export PYTHONPATH=$PYTHONPATH:~/code/parrot-groundsdk/out/olympe-linux/final/usr/lib/python/site-packages/" >> ~/code/parrot-groundsdk/products/olympe/linux/env/setenv
    

      换成自己的路径执行

    echo "export PYTHONPATH=$PYTHONPATH:~/Project/ROS/parrot-groundsdk/out/olympe-linux/final/usr/lib/python/site-packages/" >> ~/Project/ROS/parrot-groundsdk/products/olympe/linux/env/setenv
    

      

     

    中间报错 安装blockdiag库的时候

     可能网速问题,重新执行下(网络好像断了有的没下载)

      

    再重新执行下

    再重新执行,神奇的装好了??? 看来是网速导致有的没下载,多执行几次

     编译

    $ pwd
    ~/code/parrot-groundsdk
    $ ./build.sh -p olympe-linux -A all final -j4
    

      

    一路回车到底 出现 选择 y 

     导致原因是因为libclang-11 这个库有问题

     需要安装这个库的另一种形式

    sudo apt-get install libclang-dev
    

     还不行,库得版本问题

    安装 

    sudo apt install libclang1-8    

    • 参考的网页 http://www.jeh-tech.com/python/pyclang.html

    建立软链接

    cd /usr/lib/x86_64-linux-gnu

    sudo ln -s libclang-8.so.1 libclang.so 

    如果需要删除 (我之前是多安装了3.8 要删除下)软链接 sudo rm -f libclang.so 

    重新编译

    激活环境

    每次的source一下整个shell  进入(olympe-python3) 模式,然后才能执行别的

     执行一个实例-但是我这里为什么没有???先跳过

    当Python环境处于活动状态时,您的shell提示符应以开头`olympe-python3 `

    现在,您可以在此控制台中执行Olympe脚本,例如:

    (olympe-python3) $ python my_olympe_script.py

    完成Olympe的工作后,只需键入exit或按Ctrl + D退出活动环境并恢复以前的提示。

    检查您的安装

    如果安装成功,则以下命令不应报告任何错误。

    $ pwd
    ~/code/parrot-groundsdk
    $ source shell
    (olympe-python3) $ python -c 'import olympe; print("Installation OK")'
    $ exit

    确实安装成功了。 后续的控制再说吧 

    python代码控制使用教程

    https://developer.parrot.com/docs/olympe/userguide.html

    仿真环境的无人机ip

    真实无人机的ip  192.168.42.1

    打开飞机上电,按一下开关,测试阶段可以拆下浆叶。

    搜索wifi  ANAFI-L104849

    密码 3JUE7IKZ8QT!   注意是英文版本的!

    连接上之后,执行各种控制脚本。

    首先验证是否安装成功

    #激活环境 修改成自己工程目录
    source ~/Project/ROS/parrot-groundsdk/products/olympe/linux/env/shell
    #搞一个ok脚本验证
    python -c 'import olympe; print("Installation OK")'
    

      

    # -*- coding: UTF-8 -*-
    
    import olympe
    import time
    from olympe.messages.ardrone3.Piloting import TakeOff, Landing
    
    #飞仿真IP
    #DRONE_IP = "10.202.0.1"
    #真实飞机的IP
    DRONE_IP = "192.168.42.1"
    
    def main():
        drone = olympe.Drone(DRONE_IP)
        drone.connect()
        assert drone(TakeOff()).wait().success()
        time.sleep(10)
        assert drone(Landing()).wait().success()
        drone.disconnect()
    
    
    if __name__ == "__main__":
        main()
    

      

     起降测试(拆飞机机浆叶)

    进入测试样例目录,先把飞机浆叶拆下来

    修改python脚本的  IP地址

    仿真环境的无人机ip

    真实无人机的ip  192.168.42.1

    #激活工程 一个命令行窗口执行一次
    source ~/Project/ROS/parrot-groundsdk/products/olympe/linux/env/shell 
    #执行起降
    python ./takeoff.py

      

    然后飞机就起飞了 

    10秒后降落

    视频流测试

    进入测试样例目录,先把飞机浆叶拆下来

    修改python脚本的  IP地址

    仿真环境的无人机ip

    真实无人机的ip  192.168.42.1

    #激活工程 一个命令行窗口执行一次
    source ~/Project/ROS/parrot-groundsdk/products/olympe/linux/env/shell
    
    #执行起降
    python ./streaming.py
    

      

    就可以看到飞机的视频画面

    获取更多数据

     

    1获取GPs传感器信号

    olympe.media.GPS

    元组类GPS(纬度,经度,海拔)

    • altitude字段2的别名
    • latitude字段编号0的别名
    • longitude字段编号1的别名

       

       drone = olympe.Drone(DRONE_IP)
       drone.connect()
       drone.media.GPS()
      #接收到gps经纬度

       

       

      2 设置GPS返航点和返航模式

    • 飞机需要根据GPS初始点自动返航,或者执行跟随飞行员动作,都需要设定预先的GPS点。
    • https://developer.parrot.com/docs/olympe/arsdkng_ardrone3_gps.html
    • 飞机的返航点  改变和设置
    •  

  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/13820857.html
Copyright © 2011-2022 走看看