软硬件平台
- PC端:win10
- TX2端:使用JetPack3.3刷机的系统
1 darknet_ros安装
1.1 从github上下载工程
如果网络不好的话,下载github上的工程需要花费挺长时间 我在电脑上下载过,所以这里直接将整个src文件夹都上传到TX2中建立的catkin_ws中的src里了
mkdir -p catkin_workspace/src
cd catkin_workspace/src
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
cd ../
1.1.1 在工程下载完成后,需要提前下载权重文件,这样在下面编译的时候会加快速度
需要下载的文件名称:
yolov2.weights
yolov2-tiny.weights
yolov3.weights
这里也可以不下载,但是在/home/nvidia/catkin_ws/src/darknet_ros/darknet_ros/yolo_network_config/weights
目录下创建相同名字的文件即可
1.1.2 更改Makefile文件
先复制一份Makefile文件,作为备份
修改/home/nvidia/catkin_ws/src/darknet_ros/darknet
下的Makefile
修改yolo的makefile使用gpu编译,注意写入tx2的62架构
GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0
# Note that CUDA architecture of TX2 is 62, while TX1 53.
ARCH= -gencode arch=compute_62,code=[sm_62,compute_62] \
-gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52] \
-gencode arch=compute_70,code=[sm_70,compute_70]
1.2 编译工程
注意:此步骤需要在catkin_ws根目录执行
在第一步中已经通过使用cd的命令切换到了工程根目录
catkin_make -DCMAKE_BUILD_TYPE=Release
echo "/darknet_ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
1.3 运行摄像头节点
这里参考上一篇文章中介绍ROS下使用jetson_csi_cam节点的方法
链接
打开一个终端,输入
roslaunch jetson_csi_cam jetson_csi_cam.launch
1.4 运行darknet_ros
1. 修改darknet_ros/config/ros.yaml文件中topic的名称为/zed_node/right_raw/image_raw_color
subscribers:
camera_reading:
topic: /camera/rgb/image_raw
queue_size: 1
2. 修改检测的yaml文件
在/darknet_ros/yolo_network_config/中存放了cfg和weights文件
在/darknet_ros/config/存放了不同的yaml,会调用配套的cfg和weights
在/darknet_ros/launch/darknet_ros.launch中修改下面一行就可以调用不同的yaml进行检测,下面采用YOLOV2-tiny网络和权重
<arg name="network_param_file" default="$(find darknet_ros)/config/yolov2-tiny.yaml"/>
1.5 测试
再打开一个终端,输入
roslaunch darknet_ros darknet_ros.launch
如果输入上述指令的时候提示找不到对应launch文件,则在对应指令前输入如下指令:
source devel/setup.bash