基于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/

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何将 apache2 URL 映射到 /var/www/ 以外的目录

    如何将 apache2 URL 映射到 /var/www/ 以外的目录

    2021年4月28日
    116
  • IDEA中使用Git拉取代码时报 Git pull failed原因及处理方法

    IDEA中使用Git拉取代码时报 Git pull failed原因及处理方法

    2020年11月9日
    300
  • leetcode-172. 阶乘后的零[通俗易懂]

    leetcode-172. 阶乘后的零[通俗易懂]给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释: 3! = 6, 尾数中没有零。示例 2:输入: 5输出: 1解释: 5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为 O(log n) 。class Solution {public: int trailingZeroes(int n) { int ans = 0; for(int i = 5;i <= n;i += 5){

    2022年8月9日
    2
  • java中jbpm工作流_node 工作流引擎

    java中jbpm工作流_node 工作流引擎1.      JBPM工作流引擎是用来做什么的首先要说明的一点是工作流引擎指的并不只是JBPM,JBPM只是工作流引擎的一种。JBPM利用JPDL流程定义语言将现实生活中处理事务的业务流程进行抽象,形成一套业务流程规则,只要处理该项业务就必须按照这个流程规则进行。举一个很简单的例子,就拿看医生来讲,看医生的整个流程必须是先挂号,再看病,再抓药,只要你进行看医生这个业务就必须按照这套流程进行。

    2022年9月9日
    0
  • 把list转为JSON字符串

    把list转为JSON字符串把list转为字符串,把对象转为字符串,toJSONString(),json的jar包

    2022年10月17日
    0
  • 防止网站被挂马_网站被挂马的原因

    防止网站被挂马_网站被挂马的原因今天遇到一个很奇怪的挂马问题,查关键词,查数据库等常规方法都没有找到原因,debug断点都放在了程序执行代码最前面还是输出挂马内容,用php探针发现也有代码,所以确认了是iis全局的问题,所以查加载查组件,最终经过比对是iis被黑添加了模块,被添加的名称很具有迷惑性,通常伪装的很像系统模块,遇到查不到是什么地方挂马,可以放一个探针来判断下是不是iis问题。»转载请保留出处:豫章小站…

    2022年9月29日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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