36. 相机内参与坐标标定¶
36.1 学习目标¶
生成与当前分辨率匹配的相机内参,验证重投影效果,并区分相机内参与相机到机器人外参。
36.2 适用范围¶
针孔模型 RGB 相机。鱼眼和深度相机按驱动支持的模型处理。
36.3 操作前检查¶
- 固定相机安装位置。
- 确定实际图像分辨率和标定板方格尺寸。
- 打印标定板时不缩放,测量实际边长。
36.4 工作原理¶
第 35 章的相机驱动通过 camera_info 发布标定结果,OpenCV 和视觉节点用它把像素位置转换成可计算的几何关系。内参描述焦距、主点和畸变,只对特定镜头、对焦和分辨率有效;外参描述相机坐标系相对 base_link 的位置和方向,并通过 TF2 交给机器人其他节点。换分辨率或安装姿态后,不能把两类参数混在一起沿用。
36.5 操作步骤¶
- 启动原始图像和
camera_info。 - 使用规范棋盘格,从近远、左右、上下和倾斜角采集完整视野样本。
- 运行相机标定工具,输入内角点数量和实测方格尺寸。
- 样本覆盖充分后计算并保存 YAML。
- 重启相机节点,确认
camera_info加载新文件。 - 查看去畸变图像和直线边缘;再单独核对相机到机器人坐标的静态 TF。
36.6 验收标准¶
- 标定文件与相机名、分辨率对应。
- 样本覆盖整个画面,不只集中在中心。
- 去畸变后直线合理,重投影误差没有明显离群样本。
camera_info持续发布新内参。- 相机外参通过实物测量和 TF 验证。
36.7 故障排查¶
先确认棋盘格、镜头与原始图像设备状态,再检查相机节点和 camera_info 话题。位置整体偏移时优先核对外参与 TF;图像校正仍异常时才回到相机模型和标定算法设置。
| 现象 | 处理 |
|---|---|
| 棋盘格检测不稳 | 光照、反光、模糊、打印平整度和尺寸设置 |
| 标定后更变形 | 内角点数量、方格尺寸、相机模型或分辨率错误 |
| 视觉位置整体偏 | 检查外参,不重新乱调内参 |
| 重启后参数丢失 | 标定文件路径、相机名和 Launch 参数 |