代码下载
mkdir -p catkin_workspace/src
cd catkin_workspace/src
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
cd ../
编译
catkin_make -DCMAKE_BUILD_TYPE=Release
此时会开始编译整个项目,编译完成后会检查{catkin_ws}/darknet_ros/darknet_ros/yolo_network_config/weights文件下有没有yolov2-tiny.weights和yolov3.weights两个模型文件,默认下载好的代码里面为了节省体积是不带这两个模型文件的。因此编译之后会自动开始下载模型文件,此时又是一段漫长的等待时间。
如果刚好你之前已经下载好了模型文件,那就好了,在开始编译之前就把模型文件拷贝到上述文件夹下,就不会再次下载了。
运行代码
图像话题发布
因为darknet_ros会直接订阅指定的图像话题名,然后对图像进行检测,绘制检测框,并发布相应的检测话题,因此首先需要找一个能够发布图像话题的ROS包,这里推荐使用ROS官方提供的usb_cam驱动包,可以直接将电脑自带摄像头或连接电脑的USB摄像头采集的图像发布为ROS图像话题。
下载摄像头驱动:
sudo apt-get install ros-kinetic-usb-cam
然后发布摄像头图像话题:
roslaunch usb_cam usb_cam-test.launch
如果顺利的话应该可以看到实际的图像显示界面。
运行darknet
然后执行darknet_ros进行检测,在运行检测之前需要更改一下配置文件,使得darknet_ros订阅的话题与usb_cam发布的图片话题对应。
打开darknet_ros/config/ros.yaml文件,修改:
subscribers:
camera_reading:
topic: /camera/rgb/image_raw
queue_size: 1
为
subscribers:
camera_reading:
topic: /usb_cam/image_raw
queue_size: 1
修改darknet_ros.launch
arg name="network_param_file" default="$(find darknet_ros)/config/yolov2-tiny.yaml"/
改为
arg name="network_param_file" default="$(find darknet_ros)/config/yolov3.yaml"/
在工作空间运行
source devel/setup.bash
roslaunch darknet_ros darknet_ros.launch
rgb颜色乱了,要换下gb位置
kojikoji