1. ROS2环境下RealSense相机内参标定实战指南
在机器人视觉系统中,相机标定是构建感知能力的基础环节。最近在部署一台搭载Intel RealSense D435i的移动机器人时,发现直接使用出厂参数会导致3D点云与激光雷达数据匹配误差达到8cm以上。经过完整的内参标定流程后,重投影误差成功控制在0.15像素以内,SLAM建图精度提升显著。本文将详细记录基于ROS2的标定全过程,包含那些官方文档没写的实战细节。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 标定原理与准备工作
2.1 内参标定的数学本质
相机内参描述的是从三维相机坐标系到二维图像坐标系的映射关系,核心参数包括:
- 焦距(fx, fy):决定成像的放大倍数
- 主点(cx, cy):光轴与成像平面的交点
- 畸变系数(k1, k2, p1, p2, k3):表征镜头非线性畸变
对于RealSense这类RGB-D相机,需要分别标定彩色相机和红外相机的内参。二者在出厂时已做过硬件同步,但软件层面仍需单独处理。
2.2 硬件准备要点
-
标定板选择:
- 推荐使用AprilTag或Charuco板(实测比传统棋盘格抗干扰性强)
- 尺寸建议:A3幅面以上(小尺寸标定板在远距离时角点检测会失效)
- 我的配置:36x24cm Charuco板,6x8方格,字典使用DICT_4X4_50
-
环境要求:
- 光照均匀(避免强光直射导致红外图像过曝)
- 标定板保持刚性平整(可贴在亚克力板上)
- 工作距离覆盖实际使用范围(如0.3-2m分段采集)
2.3 软件依赖安装
bash复制# ROS2必备包(以Humble为例)
sudo apt install ros-humble-camera-calibration-parsers \
ros-humble-camera-info-manager \
ros-humble-launch-testing-ament-cmake
# 标定工具链
sudo apt install ros-humble-camera-calibration
pip install opencv-contrib-python==4.5.5.64
关键提示:必须使用contrib版本的OpenCV,标准
