1. ROS2立体视觉点云生成实战指南
在机器人视觉领域,立体视觉系统能够通过两个摄像头模拟人眼的视差感知,从而获取环境的三维信息。本文将详细介绍如何使用ROS2和两个普通USB摄像头构建完整的立体视觉点云生成系统。
1.1 硬件准备与环境搭建
首先需要准备两个性能相近的USB摄像头(推荐使用同型号产品),我使用的是两个500万像素的USB摄像头模块,类似常见的Raspberry Pi摄像头模组。硬件连接时需要注意:
- 将两个摄像头固定在同一水平线上,间距(基线)建议在6-12cm之间
- 使用稳固的支架减少振动带来的图像抖动
- 确保两个摄像头的视野有足够重叠区域
开发环境配置:
bash复制# 创建ROS2工作空间
mkdir -p ~/stereo_ws/src
cd ~/stereo_ws/src
# 克隆必要的软件包
git clone https://github.com/ros-perception/image_pipeline.git
git clone https://github.com/ros-perception/image_common.git
git clone https://github.com/clydemcqueen/opencv_cam.git
git clone https://github.com/ptrmu/ros2_shared.git
# 安装依赖并编译
cd ..
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
1.2 单目摄像头标定
在开始立体视觉前,需要先完成单个摄像头的标定。这是后续立体匹配的基础,标定质量直接影响最终点云的精度。
标定步骤:
- 打印标准棋盘格图案(推荐8x6网格,方格边长2.5cm)
- 启动摄像头节点:
bash复制source install/setup.bash
ros2 run opencv_cam opencv_cam_main --ros-args --param index:=0
- 启动标定程序:
bash复制ros2 run camera_calibration cameracali
