1. 搭建无人机仿真环境

首先需要安装mavros,这是一个飞机固件与ros通信的包:

sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extraswget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.shsudo chmod a+x ./install_geographiclib_datasets.sh./install_geographiclib_datasets.sh ##此时执行速度很慢,耐心等待完成

接下来,下载固件:

git clone https://github.com/PX4/Firmware.git ##我一般将固件放在主目录下而不是ros的工作空间中cd Firmwaregit checkout v1.9.2make posix_sitl_default gazebo

一般来说,第一次安装飞控固件,编译时会报错,因为缺少了必要的python依赖,因此在下载玩Firmware后,在编译之前,首先:

 cd Firmware bash bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools ##此处跳过了仿真器的安装,因为已经在ros已经配置好了

这之后,再执行下面指令,一般就不会出错,如果继续报错,一般为个人电脑环境配置的问题,请根据终端中的错误提示自行安装依赖。

make posix_sitl_default gazebo

现在,px4无人机的基本环境就配置好了,应该可以看到gazebo界面中已经有了一个叫做iris的无人机。为了方便,将Firmware的环境变量加入bashrc中:

source ~/Firmware/Tools/setup_gazebo.bash ~/Firmware/ ~/Firmware/build/px4_sitl_defaultexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmwareexport ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo

在这之后,就可以通过launch文件启动仿真了:

roslaunch px4 mavros_posix_sitl.launch  ##此命令同时启动了mavros

接下来,安装无人机的地面站控制软件QGC:

sudo usermod -a -G dialout $USERsudo apt-get remove modemmanager -ysudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav -yDownload [QGroundControl.AppImage](https://s3-us-west-2.amazonaws.com/qgroundcontrol/latest/QGroundControl.AppImage)chmod +x ./QGroundControl.AppImage./QGroundControl.AppImage  (or double click)

打开地面站后,可以看见已经自动连接上了仿真中的无人机。

在这里,无人机环境搭建已经全部完成了。

2. 切换无人机模型

上面启动的无人机,并没有携带相机,我们进行目标检测,需要携带一个摄像头,Firmware中已经提供了模型,因此,我们只需要更换一个带有相机的飞机模型。

我提供了一个模型下载:链接: https://pan.baidu.com/s/1JnmHeN7RIQmiY630dSQlRw  密码: 7sqd

将下载的模型放到Firmware/tools/sitl_gazebo/models下,替换原来的模型文件。
然后修改Fimeware/launch/mavros_posix_sitl.launch的第16行:name=”sdf” default=”$(find mavlink_sitl_gazebo)/models/iris_stereo_camera/iris_stereo_camera.sdf”/>此时,iris模型已经携带了一台双目相机,有用的话题为:

/stereo/camera/left/camera_info/stereo/camera/left/image_raw/stereo/camera/right/camera_info/stereo/camera/right/image_raw

3. 配置YOLO环境

该过程参开官方配置文档即可,基本没什么坑,yolo并不完全依赖gpu,但是没有gpu速度会非常慢。
官网提供的环境配置为:darkned_ros安装配置方法 https://github.com/leggedrobotics/darknet_ros
按照官方文档安装必要的依赖和包是非常有必要的。安装完成后,需要修改两处:首先,在darknet_ros/launch/darknet_ros.launch中修改:

"image" 

接着修改darknet_ros/config/ros.yaml:

camera_reading:    topic: /stereo/camera/left/image_raw

然后运行:

roslaunch darknet_ros darknet_ros.launch

此时在终端中可以看到:

说明yolo已经正常运行并且开始检测目标了。接着,可以在gazebo中添加各种模型,然后使用yolo进行检测。本文在这里提供一个gazebo的world文件,下载地址为:XTDronehttps://gitee.com/robin_shaun/XTDrone下载后,复制 XTDrone /sitl_config /worlds/outdoor1.world到Firmware/tools/sitl_gazebo/worlds下。接着修改Fimeware/launch/mavros_posix_sitl.launch的第15行为:

"world" 

此时再次启动,应该看到是这样的:

这样,就完成了所有的配置。

4. 运行效果展示

关闭之前所有的命令,按照这个顺序重新启动仿真:

roslaunch px4 mavros_posix_sitl.launch启动地面站 ##此处建议使用游戏手柄控制无人机,或更简单直接开启QGC自带的虚拟摇杆功能对飞机控制roslaunch darknet_ros darknet_ros.launch

演示效果请看视频:最后,如果你对无人机的仿真和应用感兴趣,推荐一个非常优秀的开源的无人机项目:XTDrone  (https://gitee.com/robin_shaun/XTDrone)在里面可以学习到更多的无人机知识。

古月居原创作者签约计划已开启,网站(guyuehome.com)已上线【投稿】功能,欢迎大家积极投稿,原创优质文章作者将有机会成为古月居签约作者。

agx 安装ros opencv_怎样在ROS下实现基于YOLO的px4无人机目标检测?相关推荐

  1. 怎样在ROS下实现基于YOLO的px4无人机目标检测?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1. 搭建无人机仿真环境 首先需要安装mavros,这是一个飞机固 ...

  2. Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案

    问题描述 AttributeError: 'MSVCCompiler' object has no attribute 'compiler_so' ValueError: Buffer dtype m ...

  3. agx 安装ros opencv_【树莓派ROS开源机器人】阿克曼转向机器人,最接近无人自动驾驶的人工智能机器人...

    塔克创新出品的系列入门ROS智能机器人学习开发平台,包括麦克纳姆轮机器人,四轮差速机器人,两轮差速机器人,阿克曼转向小车等平台.可实现SLAM建图导航.自动避障.雷达跟随.视觉巡线.三维建图.手机AP ...

  4. [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!

    最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统 免责声明 一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任. 二.本文档只是个人使 ...

  5. Win10下搭建旷视YOLOX(新一代anchor-free目标检测网络)并训练自定义CoCo格式数据集

    注意:原始的YOLOX只支持乌班图系统,因此以下所有操作均需要依赖博主自己的安装包.链接:https://pan.baidu.com/s/1CoQa8WjJ89gNfexK59Ewrw 提取码:qhi ...

  6. 24、window11下,使用PYNQ-Z2开发板进行目标检测和识别

    基本思想:使用PYNQ-Z2开发板,调用USB摄像头,进行目标识别和检测 一. 首先进入官网,下载镜像文件,官网地址PYNQ - Python productivity for Zynq - Boar ...

  7. 二十. 在ROS系统上实现基于PyTorch YOLO v5的实时物体检测

    一. 背景介绍 在我前面的博文 十八.在JetsonNano上为基于PyTorch的物体检测网络测速和选型 中,我介绍过在基于Jetson Nano硬件平台和Ubuntu 18.04 with Jet ...

  8. 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)

    我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...

  9. Gluon-cv:安装使用以及目标检测算法样例

    最近学习了解到这个框架,自我感觉使用起来较为简单,官方开源的版本是基于mxnet实现的. 目标检测,跟踪,reid,gan里面都有相关网络样例 github地址:https://github.com/ ...

最新文章

  1. 难以想象SpringBoot中的条件注解底层居然是这样实现的
  2. android 5秒后进入,Android/Java:如何在5秒后停止下载?
  3. [论文笔记]Web service composition using markov decision processes (WAIM 2005)
  4. ADO.Net练习1
  5. iOS开发中显示实时的FPS值
  6. Struts2(批量类型转换器struts2.3.4)
  7. 手机端本地图片或者拍照的上传功能
  8. 我们都有冲动了的飞鸽传书2011
  9. python爬取图文新闻_python爬取新闻需要什么软件
  10. Ray︱高性能的分布式执行引擎 起个头~
  11. 基于deap数据集的脑电情感分析(matlab代码)
  12. 安捷伦频谱仪的使用方法图解_频谱仪的简单操作使用方法lbrack;1rsqb;
  13. ServiceLoader详解
  14. MySQL无法启动,服务没有报告任何错误
  15. 关于ETF的套利机制
  16. 洛谷 P1725 琪露诺 题解
  17. Urchin再包装 Google提供免费网络流量分析工具(zz)
  18. c语言写抢QQ红包软件,Android实现QQ抢红包插件
  19. 补鞋匠(cobbler)的修仙之旅
  20. 7-3 小孩子才做选择,大人全都要 (10 分)

热门文章

  1. java获取2017年第39周_java中怎么样取出39周的每周开始时间和每周结束时间?
  2. 以太网口差分电平_以太网物理层信号测试与分析
  3. 3DSlicer3:模块管理(一)颜色、DCM、数据、模型、注释
  4. VTK修炼之道15:图像处理_显示(vtkImageViewer2 vtkImageActor)
  5. Delphi中点击网页弹出的Alert对话框的确定按钮
  6. Access2007及以后的版本中的数据库连接字符串
  7. 高级C语言教程-存储器和指针
  8. 零起点学算法95——弓型矩阵
  9. 使用异步Servlet改进应用性能
  10. 开启分页机制———《x86汇编语言:从实模式到保护模式》读书笔记44