ROS 2 中 Astra Pro 相机与 YOLOv5 检测功能编译启动全记录
先记录大概主要流程,后期有时间了再完善细节以及附上截图
一、编译 Astra Pro 相机功能包
1. 清理并编译相机包
cd ~/Astra_ws
rm -rf build/astra_camera install/astra_camera # 清理旧编译
colcon build --packages-select astra_camera --parallel-workers 2 # 编译相机包
source install/setup.bash # 激活环境
- 指令解析:
--packages-select
仅编译指定包,节省时间;--parallel-workers 2
设置 2 线程并行编译,可根据 CPU 核心数调整。
最终显示 Finished <<< astra_camera
,即编译成功。
二、编译 YOLOv5 Rockchip 检测包
1. 清理并编译检测包
cd ~/Astra_ws
rm -rf build/yolov5_rockchip install/yolov5_rockchip # 清理旧编译
colcon build --packages-select yolov5_rockchip --parallel-workers 2 # 编译检测包
source install/setup.bash
- 核心依赖:
需提前安装rknn-toolkit-lite2
(pip install rknn-toolkit-lite2
),用于 Rockchip NPU 推理。
2. 模型路径确认
确保检测节点配置的模型路径正确:
# yolov5_node.py中模型路径
self.declare_parameter('model_path', '/home/elf/Astra_ws/src/yolov5_rockchip/models/yolov5s_relu_rk3588.rknn')
三、启动 Astra Pro 相机
1. 启动相机节点
source install/setup.bash
ros2 launch astra_camera astra_pro.launch.py # 启动Pro型号相机
关键日志:
[INFO] [camera.camera]: Device connected: Astra serial number: xxx # 设备连接成功
[INFO] [camera.camera]: set color video mode Resolution :640x480@30Hz # 图像参数
2. 查看相机话题
ros2 topic list # 确认包含/camera/color/image_raw等图像话题
四、启动 YOLOv5 检测功能
1. 运行检测节点(指定图像输入)
source install/setup.bash
ros2 run yolov5_rockchip yolov5_node --input /camera/color/image_raw
- 参数说明:
--input
需与相机发布的彩色图像话题一致(通过ros2 topic list
查询)。
2. 检测日志验证
正常运行时可见:
[INFO] [yolov5_rockchip_node]: RKNN Lite 初始化成功
[INFO] [yolov5_rockchip_node]: 检测到目标: person, 置信度: 0.92
五、常用调试指令汇总
查看系统日志
ros2 topic echo /rosout | grep -E "yolov5|camera" # 过滤关键日志
统计话题发布频率
ros2 topic hz /yolov5/detections # 检测结果帧率
ros2 topic hz /camera/color/image_raw # 相机图像帧率
保存检测图像(无图形界面时)
修改yolov5_node.py
添加:
cv2.imwrite(f"/home/elf/det_{int(time.time())}.jpg", result_image)
七、完整流程指令速查表
操作阶段 | 指令示例 | 说明 | |
---|---|---|---|
编译相机包 | colcon build --packages-select astra_camera | 仅编译相机功能包 | |
编译检测包 | colcon build --packages-select yolov5_rockchip --parallel-workers 2 | 2 线程编译检测包 | |
启动相机 | ros2 launch astra_camera astra_pro.launch.py | 加载 Pro 型号相机配置 | |
启动检测 | ros2 run yolov5_rockchip yolov5_node --input /camera/color/image_raw | 指定相机图像作为检测输入 | |
查看检测日志 | `ros2 topic echo /rosout | grep yolov5` |
通过以上步骤,可在 ROS 2 中实现 Astra Pro 相机与 YOLOv5 检测的联动,利用 Rockchip NPU 加速推理,适用于机器人视觉、目标跟踪等场景。