agx 安装ros opencv_怎样在ROS下实现基于YOLO的px4无人机目标检测?
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无人机目标检测?相关推荐
- 怎样在ROS下实现基于YOLO的px4无人机目标检测?
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1. 搭建无人机仿真环境 首先需要安装mavros,这是一个飞机固 ...
- Cython——Windows环境下配置faster-rcnn、yolo、ctpn等目标检测框架中Cython文件[cython_nms、bbox、gpu_nms]编译问题解决方案
问题描述 AttributeError: 'MSVCCompiler' object has no attribute 'compiler_so' ValueError: Buffer dtype m ...
- agx 安装ros opencv_【树莓派ROS开源机器人】阿克曼转向机器人,最接近无人自动驾驶的人工智能机器人...
塔克创新出品的系列入门ROS智能机器人学习开发平台,包括麦克纳姆轮机器人,四轮差速机器人,两轮差速机器人,阿克曼转向小车等平台.可实现SLAM建图导航.自动避障.雷达跟随.视觉巡线.三维建图.手机AP ...
- [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!
最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统 免责声明 一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任. 二.本文档只是个人使 ...
- Win10下搭建旷视YOLOX(新一代anchor-free目标检测网络)并训练自定义CoCo格式数据集
注意:原始的YOLOX只支持乌班图系统,因此以下所有操作均需要依赖博主自己的安装包.链接:https://pan.baidu.com/s/1CoQa8WjJ89gNfexK59Ewrw 提取码:qhi ...
- 24、window11下,使用PYNQ-Z2开发板进行目标检测和识别
基本思想:使用PYNQ-Z2开发板,调用USB摄像头,进行目标识别和检测 一. 首先进入官网,下载镜像文件,官网地址PYNQ - Python productivity for Zynq - Boar ...
- 二十. 在ROS系统上实现基于PyTorch YOLO v5的实时物体检测
一. 背景介绍 在我前面的博文 十八.在JetsonNano上为基于PyTorch的物体检测网络测速和选型 中,我介绍过在基于Jetson Nano硬件平台和Ubuntu 18.04 with Jet ...
- 后 R-CNN时代, Faster R-CNN、SSD、YOLO 各类变体统治下的目标检测综述:Faster R-CNN系列胜了吗?,(知乎ChenJoya大佬,讲的挺好的,记录一下)
我们检测到你可能使用了 AdBlock 或 Adblock Plus,它的部分策略可能会影响到正常功能的使用(如关注). 你可以设定特殊规则或将知乎加入白名单,以便我们更好地提供服务. (为什么?) ...
- Gluon-cv:安装使用以及目标检测算法样例
最近学习了解到这个框架,自我感觉使用起来较为简单,官方开源的版本是基于mxnet实现的. 目标检测,跟踪,reid,gan里面都有相关网络样例 github地址:https://github.com/ ...
最新文章
- 难以想象SpringBoot中的条件注解底层居然是这样实现的
- android 5秒后进入,Android/Java:如何在5秒后停止下载?
- [论文笔记]Web service composition using markov decision processes (WAIM 2005)
- ADO.Net练习1
- iOS开发中显示实时的FPS值
- Struts2(批量类型转换器struts2.3.4)
- 手机端本地图片或者拍照的上传功能
- 我们都有冲动了的飞鸽传书2011
- python爬取图文新闻_python爬取新闻需要什么软件
- Ray︱高性能的分布式执行引擎 起个头~
- 基于deap数据集的脑电情感分析(matlab代码)
- 安捷伦频谱仪的使用方法图解_频谱仪的简单操作使用方法lbrack;1rsqb;
- ServiceLoader详解
- MySQL无法启动,服务没有报告任何错误
- 关于ETF的套利机制
- 洛谷 P1725 琪露诺 题解
- Urchin再包装 Google提供免费网络流量分析工具(zz)
- c语言写抢QQ红包软件,Android实现QQ抢红包插件
- 补鞋匠(cobbler)的修仙之旅
- 7-3 小孩子才做选择,大人全都要 (10 分)
热门文章
- java获取2017年第39周_java中怎么样取出39周的每周开始时间和每周结束时间?
- 以太网口差分电平_以太网物理层信号测试与分析
- 3DSlicer3:模块管理(一)颜色、DCM、数据、模型、注释
- VTK修炼之道15:图像处理_显示(vtkImageViewer2 vtkImageActor)
- Delphi中点击网页弹出的Alert对话框的确定按钮
- Access2007及以后的版本中的数据库连接字符串
- 高级C语言教程-存储器和指针
- 零起点学算法95——弓型矩阵
- 使用异步Servlet改进应用性能
- 开启分页机制———《x86汇编语言:从实模式到保护模式》读书笔记44