基于Ubuntu 的 Parrot ARDrone 2.0的SDK安装以及ardrone_autonomy和tum_ardrone的安装和使用

基于Ubuntu 的 Parrot ARDrone 2.0的SDK安装以及ardrone_autonomy和tum_ardrone的安装和使用经过了一个多星期的摸索,现在开始慢慢理解ParrotARDrone2.0的使用。现在总结一下遇到的问题,希望用这款无人机的人能够得到一些帮助,毕竟不能总是做一个伸手党。ParrotARDrone2.0是法国的一家无人机的厂商生产的无人机的产品,是parrotardrone1.0的进阶版,摸索的这一个星期我感受到现在对ardrone2.0的支持还是挺棒的。有很多资料,遇到问题

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

经过了一个多星期的摸索,现在开始慢慢理解Parrot ARDrone 2.0的使用。现在总结一下遇到的问题,希望用这款无人机的人能够得到一些帮助,毕竟不能总是做一个伸手党。
Parrot ARDrone 2.0是法国的一家无人机的厂商生产的无人机的产品,是parrot ardrone 1.0的进阶版,摸索的这一个星期我感受到现在对ardrone 2.0的支持还是挺棒的。有很多资料,遇到问题google一下也有很多解决方案。这款无人机售价比较便宜,我们购买的是power edition版本,价格在2500左右,然后不包括GPS模块,价格在600左右。如果需要进行室外自主飞行,就需要GPS模块获得无人机的location然后利用qgroundcontrol这款软件指定无人机的飞行路径,就可以实现按照固定的轨迹自主飞行拍摄。这款无人机还有的硬件外设有一个向前的摄像头,720p的,还有一个向下的摄像头,分辨率比较差。内置里IMU,处理器是一款ARM 的处理器。详细的参数可以去google搜索一下那个用户手册(user guide),里面的参数写的很详细。
Parrot ardrone 2.0不做开发的话买回来的装上电池就可以飞了,这个需要你仔细看看里面的使用说明书。你需要在手机或者pad上面下载对应版本的app——ARFreeFlight 2.0(最好使用iphone或者ipad,我发现这款app对安卓的支持貌似不是很好,但是也是可以用的)。
闲话不多说了,下面开始讲关于使用ardrone 2.0开发的一些事情了。其他的资料可以去官网看看:
(http://www.parrot.com)
ardrone2.0的SDK 下载的地址是:http://developer.parrot.com/products.html,里面的SDK 2.0就是针对ardrone 2.0的SDK 。我们要讲的ardrone_autonomy其实是SDK的二次封装。在SDK的基础上加上了ROS,就像是ardrone的驱动一样。
首先是讲解ardrone_autonomy的安装,我参考的文献http://blog.csdn.net/u014209688/article/details/42614705#comments,里面讲解的是有两种安装方式,但是我使用的是第一种安装方式,后来也证明了,第一种安装方式既简单,有很少会报错。

sudo apt-get install  ros-kinetic-ardrone-autonomy

因为我使用的Ubuntu的版本是16.04,对应的ros的版本是kinetic,如果你是ubuntu 14.04,对应安装的应该是indigo,ubuntu 12.04对应安装hydro,安装ros的步骤其实很简单,具体的步骤可以参照ros wiki,google对应的ros版本就可以里。在这里我需要强调一下的是,如何你用github的版本安装ardrone_autonomy和直接用apt-get install 的方式是不一样的,可能会出很多问题。所以还是建议直接用命令安装,里面的坑我大概花了两三天才搞明白。我还是给出git的链接:https://github.com/tum-vision/ardrone_autonomy
我安装好了ardrone_autonomy之后,需要安装tum_ardrone,这个时候遇到的问题更多,tum_ardrone是一个ros的stack,里面运行的是SLAM 中比较著名的ptam的程序,可以利用UI 界面来控制无人机或者实现无人机的自动控制,也可以对无人机的状态进行估计。
首先我要强调一下的是,**安装tum_ardrone的时候因为对应的ros版本的问题,我走了很多弯路。由于我的电脑只能安装ubuntu 16.04, ROS版本是kinetic,我想试着用这个环境安装好tum_ardrone。弄了三四天编译总是通不过,出现的错误是

recipe for target 'all' failed

后来我换系统换成里ubuntu 14.04,对应的ROS 版本换成里indigo,很快的我这个也搞定了。
安装tum_ardrone的过程:(对应的github的链接:https://github.com/tum-vision/tum_ardrone
首先在任意一个目录下面:

mkdir catkin_ws
cd catkin_ws
mkdir src
cd src
catkin_init_workspace
git clone https://github.com/tum-vision/tum_ardrone.git -b indigo-devel
cd ..
rosdep install tum_ardrone
catkin_make

出创建ROS的workspace和package的过程可以参考链接:http://blog.csdn.net/github_30605157/article/details/52209434
http://blog.csdn.net/xiaocainiaoshangxiao/article/details/13295625
在catkin_make 的时候我遇到了几个问题,记住在git clone 的时候对应的branch分支一定要和安装的ROS版本对应,不然会有很多错误。换了版本之后遇到的错误基本上都是可以通过google解决问题的,主要是
对应的lib没有安装好,直接用sudo apt-get install 就可以解决了,一定要仔细看出的什么错误,静下心来好好google想想。
安装好了这两个之后我又尝试着去编译最原始的SDK,我参考的链接是:
http://petrkout.com/linux/parrot-ardrone-2-0-video-streaming-through-opencv-in-linux/
遇到的问题有这两个:

libavutil.a(eval.o): undefined reference to symbol 'fabs@@GLIBC_2.2.5'
libm.so.6: error adding symbols: DSO missing from command line 

上面安装的链接有人也遇到的相同的问题,作者也给出里解决方案,遇到相同问题的人可以好好参考。

参考文献:
[1]http://developer.parrot.com/products.html
[2]http://blog.csdn.net/u014209688/article/details/42614705#comments
[3]https://github.com/tum-vision/ardrone_autonomy
[4]https://github.com/tum-vision/tum_ardrone
[5]http://blog.csdn.net/github_30605157/article/details/52209434
[6]http://blog.csdn.net/xiaocainiaoshangxiao/article/details/13295625
[7]http://petrkout.com/linux/parrot-ardrone-2-0-video-streaming-through-opencv-in-linux/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170577.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • MySQL设置数据库隔离级别

    MySQL设置数据库隔离级别可以通过命令行设置全局或会话的隔离级别。重启或者退出会话失效SET[SESSION|GLOBAL]TRANSACTIONISOLATIONLEVEL{READUNCOMMITTED|READCOMMITTED|REPEATABLEREAD|SERIALIZA…

  • JavaScript常用基础算法「建议收藏」

    JavaScript常用基础算法「建议收藏」一、字符串1.字符串中出现最多次数的字符functionfindMaxDuplicateChar(str){varcnt={},//用来记录所有的字符的出现频次c="";//用来记录最大频次的字符for(vari=0;i<str.length;i++){varci=str[i];if(!cnt[ci]){

  • combox数据绑定_props父子传值

    combox数据绑定_props父子传值combox可以接受dataset对象作为其数据源。所以,combox.datasource=dataset1;是可以的。 但是在WPF中,combox不支持DataSource方法。可以通过下面的方法添加数据。foreach(datarowdrindataset1.tables[0].rows){combox1.items.add(dr.items[0

    2022年10月30日
  • Microsoft visio 2013 professional激活成功教程软件

    Microsoft visio 2013 professional激活成功教程软件特别说明:软件仅供技术交流,请勿用于商业及非法用途,如产生法律纠纷与本人无关Microsoftvisio2013professional激活成功教程软件下载地址:链接:https://pan.baidu.com/s/1ycZHBzzF2KtGOwAs1LbHMQ密码:npkl激活成功教程步骤:文件—&gt;账号—&gt;更改产品密钥—&gt;输入如下序列号即可。序列号:…

  • C#构造函数的作用_java中构造函数的作用

    C#构造函数的作用_java中构造函数的作用构造函数:一.构造函数的定义:二.构造函数的特点:三.构造函数的作用:四.构造函数的方式:一.构造函数的定义:构造函数:构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们即构造函数的重载,类的构造函数是类的一个特殊的成员函数,当创建类的新对象时执行。当实例化一个类对象的时候自动调用这个函数。二.构造函数的特点:特点:构造函数的命名

  • php字符串大小写转换函数

    php字符串大小写转换函数php字符串大小写转换函数

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号