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

原文地址:https://www.cnblogs.com/kekeoutlook/p/13820857.html