• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

ROS下基于YOLO的px4无人机目标检测

人工智能 神秘老铁 2516次浏览 0个评论

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 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_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

 
ROS下基于YOLO的px4无人机目标检测   接下来,安装无人机的地面站控制软件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)

  打开地面站后,可以看见已经自动连接上了仿真中的无人机。
ROS下基于YOLO的px4无人机目标检测   在这里,无人机环境搭建已经全部完成了。

2 切换无人机模型

上面启动的无人机,并没有携带相机,我们进行目标检测,需要携带一个摄像头,Firmware中已经提供了模型,因此,我们只需要更换一个带有相机的飞机模型。 我提供了一个模型下载:   链接:https://pan.baidu.com/s/1D_3pG3bqmBsSxLOCZVhl3w 提取码:fnam   将下载的模型放到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

 
ROS下基于YOLO的px4无人机目标检测

3 配置YOLO环境

该过程参开官方配置文档即可,基本没什么坑,yolo并不完全依赖gpu,但是没有gpu速度会非常慢。 官网提供的环境配置为:darkned_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

  此时在终端中可以看到:
ROS下基于YOLO的px4无人机目标检测   说明yolo已经正常运行并且开始检测目标了。   接着,可以在gazebo中添加各种模型,然后使用yolo进行检测。   本文在这里提供一个gazebo的world文件,下载地址为: 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"/>

  此时再次启动,应该看到是这样的:
ROS下基于YOLO的px4无人机目标检测   这样,就完成了所有的配置。

4 运行效果展示

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

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

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


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明ROS下基于YOLO的px4无人机目标检测
喜欢 (0)

您必须 登录 才能发表评论!

加载中……