点击上方“小白学视觉”,选择加"星标"或“置顶”

重磅干货,第一时间送达

1. 搭建无人机仿真环境

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

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

接下来,下载固件:

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

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

cd Firmwarebashbash ./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_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/Firmware/Tools/sitl_gazebo

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

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

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

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav -y
Download [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行:

<arg 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中修改:

<arg name="image" default="/stereo/camera/left/image_raw" />

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

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

然后运行:

roslaunch darknet_ros darknet_ros.launch

此时在终端中可以看到:

说明yolo已经正常运行并且开始检测目标了。

接着,可以在gazebo中添加各种模型,然后使用yolo进行检测。

本文在这里提供一个gazebo的world文件,下载地址为:
XTDrone

https://gitee.com/robin_shaun/XTDrone

下载后,复制 XTDrone /sitl_config /worlds/outdoor1.world到Firmware/tools/sitl_gazebo/worlds下。

接着修改Fimeware/launch/mavros_posix_sitl.launch的第15行为:

<arg name="world" default="$(find mavlink_sitl_gazebo)/worlds/outdoor1.world"/>

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

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

4. 运行效果展示

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

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

演示效果请看视频:

最后,如果你对无人机的仿真和应用感兴趣,推荐一个非常优秀的开源的无人机项目:

XTDrone

(https://gitee.com/robin_shaun/XTDrone)

在里面可以学习到更多的无人机知识。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python+OpenCV视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:Pytorch常用函数手册

在「小白学视觉」公众号后台回复:pytorch常用函数手册即可下载含有200余个Pytorch常用函数的使用方式,帮助快速入门深度学习。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

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

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

    1. 搭建无人机仿真环境 首先需要安装mavros,这是一个飞机固件与ros通信的包: sudo apt install ros-kinetic-mavros ros-kinetic-mavros-e ...

  2. 目标检测YOLO实战应用案例100讲-基于深度学习的无人机目标检测算法轻量化研究

    目录 基于深度学习的无人机图像目标检测算法研究 目标检测相关技术理论 2.1 引言

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

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

  4. kcf 跟随_基于YOLO和KCF的目标跟踪算法研究

    1. 引言 随着AI技术的不断发展,其子领域计算机视觉技术也获得了突飞猛进的进步,计算机视觉即通过机器实现"人眼"对事物的测量和判别能力.目前,计算机视觉技术主要应用于智能视频监控 ...

  5. 目标检测YOLO实战应用案例100讲-基于深度学习的显著性目标检测研究与应用(论文篇)

    目录 基于深度学习的显著性目标检测综述 基于深度学习的显著性目标检测分类及难点分析

  6. 目标检测YOLO实战应用案例100讲-基于卷积神经网络的小目标检测算法研究

    目录 基于卷积神经网络的小目标检测算法研究 基于卷积神经网络的小目标检测相关理论 2.1 引言

  7. 独家 | 在树莓派+Movidius NCS上运用YOLO和Tiny-YOLO完成目标检测(附代码下载)

    作者:Adrian Rosebrock 翻译:吴振东 校对:郑滋 本文约5000字,建议阅读10+分钟 本文教你如何在树莓派和Movidius神经加速棒上运用Tiny-YOLO来实现近乎实时的目标检测 ...

  8. 基于深度卷积神经网络的目标检测研究综述

    基于深度卷积神经网络的目标检测研究综述 人工智能技术与咨询 来自<光学精密工程> ,作者范丽丽等 摘要:作为计算机视觉中的基本视觉识别问题,目标检测在过去的几十年中得到了广泛地研究.目标检 ...

  9. YOLO V1 实时的目标检测 论文翻译

    YOLO V1 实时的目标检测 论文翻译 注:学习记录用 摘要 我们提出了一种新的目标检测方法 YOLO.先前关于目标检测的工作重新使用分类器来执行检测. 相反,我们将目标检测框架作为一个回归问题,以 ...

最新文章

  1. 禁止validateRequest的办法
  2. Spring Boot实现热部署
  3. 有趣程序和让人捧腹大笑的注释,你的注释还不够骚
  4. python3程序运行中会跳过注释行,Python: 读取文件时如何忽略#条注释行
  5. java商城项目中多线程执行_java多线程中执行多个程序的实例分析
  6. apache make install 问题
  7. 【Linux】Linux备份与恢复——dump和restore命令
  8. linux下的p2p终结者
  9. 对抗机器学习论文-Towards Deep Learning Models Resistant to Adversarial Attacks(PGD)
  10. STM32F7--->FMC(可变存储控制器) Flexible Memory Controller
  11. ACM之路的高一下学期
  12. 蓝牙血压计医疗方案设计
  13. navicat12,使用自动完成代码,没有默认选中第1个,怎么设置?
  14. mysql mdl 锁_详细分析mysql MDL元数据锁
  15. 网页中实现安卓手机在线预览PDF文件
  16. 微信的分享功能(针对web手机站页面进行的分享功能)
  17. 用wget下载网站,实现离线浏览
  18. 达梦HS搭建(DM-DM)_yxy
  19. JS小游戏-象棋暗棋
  20. BZOJ2456 mode

热门文章

  1. 数据安全引担忧?get它,让你吃一颗“定心丸”
  2. 21个必须知道的机器学习开源工具!
  3. 亚马逊首席科学家李沐「实训营」国内独家直播,马上报名 !
  4. RetinaFace,最强开源人脸检测算法
  5. 来学习几个简单的Hive函数吧!
  6. GitHub告急!黑客威胁程序员不交钱就删库
  7. AI一分钟 | 特斯拉再融46亿;腾讯AI Lab宣布开源多标签图像数据集
  8. SpringCloud 2020版本教程3:使用sentinel作为熔断器
  9. 一文深入了解 Redis 内存模型,Redis 的快是有原因的!
  10. 机器学习调参自动优化方法