• 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
    • 飞机的返航点  改变和设置
    •  

  • 相关阅读:
    遗传基因有多大?
    【Unity3D】【NGUI】怎样动态给EventDelegate加入參数
    怎样通过Java程序提交yarn的mapreduce计算任务
    Cocos2D-X2.2.3学习笔记9(处理重力感应事件,移植到Android加入两次返回退出游戏效果)
    java多线程----拒绝策略
    java多线程-----volatile
    java多线程----JUC集合”01之 框架
    java多线程----Semaphore信号量
    java多线程---CyclicBarrier
    java多线程----CountDownLatch
  • 原文地址:https://www.cnblogs.com/kekeoutlook/p/13820857.html
Copyright © 2020-2023  润新知