在RDK X3 的20.04系统镜像中, 运行的TROS是基于ROS2 Foxy Server版编译的, 其中672 × 672 分辨率, 80类别的YOLOv5s模型, 推理节点后处理约65ms, 约25fps. 参考TROS手册: YOLO | TogetheROS.Bot用户手册 (horizon.cc)
最近在RDK X3的22.04系统镜像中, 基于ROS2 Humble Server的新版TROS对YOLOv5s的推理节点后处理又优化了一版, 只需要50ms, 不仅仅减少了单帧延迟, 还将80类别模型的分辨率提高到了30fps.
本文给出在地平线RDK X3和RDK X3 Module平台手动的编译方法, 供各位开发者抢鲜体验.
另外推理结果的订阅请参考: RDK X3 (旭日X3派) 使用TROS快速部署YOLOv5刷爆 30 fps !_origin car rdkx3派-CSDN博客
步骤
创建工作目录, 下载源码的Foxy分支, clone不下来可多尝试几次.
mkdir -p tros_hb_dnn_ws/src && cd tros_hb_dnn_ws/src # 新建工作目录及src文件夹, 并进入
git clone -b foxy https://github.com/HorizonRDK/hobot_dnn.git # 拉取foxy分支
cd .. # 回到工作目录
卸载板卡自带的dnn_node和
dnn_node_example`
sudo apt remove -y tros-dnn-node-example tros-dnn-node
安装ROS2第三方编译工具colcon
pip install -U colcon-common-extensions
编译到单独的install目录, 注意, 此后需要单独source此工作目录的 ./install/setup.bash
脚本.
colcon build --packages-select dnn_node_example dnn_node
或者增量编译到TROS, 这样相当于直接替换了原版的hobot_dnn
相关的ROS2 Package, 编译完成需要约2分18秒.
colcon build --packages-select dnn_node_example dnn_node --cmake-args -DIS_ROS2_SH_MODE=DYNAMIC --install-base /opt/tros --merge-install
如果是2GB的板子编译时因为内存不足报错, 可以通过添加下列命令减少编译的线程数量.
colcon build --packages-select dnn_node_example dnn_node --cmake-args -DIS_ROS2_SH_MODE=DYNAMIC --install-base /opt/tros --merge-install --parallel-workers 1
接下来的使用步骤和TROS手册一致
使用MIPI摄像头发布图片
# 配置tros.b环境
source /opt/tros/setup.bash
# 配置MIPI摄像头
export CAM_TYPE=mipi
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov5workconfig.json dnn_example_image_width:=480 dnn_example_image_height:=272
使用USB摄像头发布图片
# 配置tros.b环境
source /opt/tros/setup.bash
# 配置USB摄像头
export CAM_TYPE=usb
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov5workconfig.json dnn_example_image_width:=480 dnn_example_image_height:=272