3. 眼在手上标定板位姿采集与数据质量检查
眼在手上:标定板位姿采集与数据质量检查
眼在手上(eye-in-hand)配置中,相机固定在机器人末端法兰上,随末端一起运动。标定板固定在机器人工作空间内(如装配台面),相机在不同末端位姿下拍摄标定板,得到标定板在相机坐标系下的位姿。与眼在手外不同,眼在手上采集时相机本身在运动,因此标定板在图像中的位置、姿态和尺度会随末端位姿大幅变化,数据质量检查的重点是末端运动激励是否充分和标定板是否始终可见。
采集前的坐标系与参数确认
采集前需明确以下对象与参数,避免后续求解时坐标系混乱:
- 机器人基座坐标系 B:机器人本体基准,末端位姿通常以 B 为参考输出。
- 末端法兰坐标系 F:相机通过工装固定在法兰上,相机坐标系 C 与 F 存在固定但未知的变换
^F T_C,即待求手眼矩阵。 - 标定板坐标系 T:固定在台面上,相机拍摄后由标定算法给出
^C T_T(标定板在相机中的位姿)。 - 标定板规格:棋盘格或圆点板,需记录方格尺寸、行列数、图案类型,供标定算法使用。
- 相机内参:焦距、主点、畸变系数,需提前标定并固定,采集过程中不得改变焦距或分辨率。
眼在手上采集时,机器人末端位姿
^B T_F 与相机中标定板位姿 ^C T_T 是成对数据。后续 AX=XB 求解需要每一组数据同时包含这两个位姿,缺一不可。采集位姿的设计原则
末端运动激励不足是眼在手上标定失败的最常见原因。若所有采集位姿的旋转轴几乎相同,或平移变化很小,AX=XB 方程会退化,求解出的手眼矩阵旋转部分不稳定。设计采集位姿时应满足:
- 旋转激励:末端绕至少两个不同轴旋转,建议绕 X、Y、Z 轴均有明显角度变化,单轴旋转范围建议大于 20°。
- 平移激励:末端在三个方向均有平移,平移范围建议覆盖相机工作距离的 10%~30%。
- 标定板可见性:每个位姿下标定板完整出现在图像中,不遮挡、不截断、不过曝。
- 位姿数量:建议 15~25 组,太少方程约束不足,太多则采集时间长且可能引入重复位姿。
采集操作流程
- 固定标定板:将标定板平放在装配台面,确保采集过程中不发生移动。若台面有振动或人员走动,需等待稳定后再采集。
- 示教采集位姿:手动或程序控制机器人末端到达设计好的位姿。每个位姿下,相机光轴与标定板法线夹角建议控制在 30°~60°,避免正对导致姿态退化,也避免过大角度导致标定板透视畸变严重。
- 触发拍照并记录:在每个位姿稳定后触发相机拍照,同时记录机器人控制器输出的末端位姿
^B T_F。注意记录时刻与拍照时刻应对齐,若机器人未完全停止,位姿会漂移。 - 解算标定板位姿:使用 OpenCV
solvePnP或标定板检测函数,从图像中提取角点并解算^C T_T,同时输出重投影误差。 - 逐组检查:对每组数据检查标定板是否完整可见、重投影误差是否在阈值内、位姿是否与已有数据重复。
数据质量检查要点
| 检查项 | 判断依据 | 不通过时的处理 |
|---|---|---|
| 标定板可见性 | 所有角点均在图像内,无遮挡、无过曝 | 调整末端位姿或光照,重新采集该组 |
| 重投影误差 | 建议 < 0.5 pixel,最大不超过 1 pixel | 检查角点提取质量、镜头畸变、标定板平整度 |
| 旋转激励 | 末端旋转轴至少覆盖 2 个不同方向,单轴角度 > 20° | 补充绕缺失轴旋转的位姿 |
| 平移激励 | 三方向平移范围覆盖相机工作距离的 10%~30% | 补充平移变化明显的位姿 |
| 位姿重复度 | 任意两组末端位姿的旋转角差异 > 5° 或平移差异 > 10 mm | 剔除过于接近的重复位姿 |
| 数据完整性 | 每组同时有 ^B T_F 和 ^C T_T,时间戳对齐 | 补录缺失数据或重新采集 |
眼在手上采集时,相机随末端运动,标定板在图像中的尺度会随距离变化。若相机工作距离变化过大,标定板可能超出景深导致模糊,角点提取误差增大。建议将工作距离变化控制在标定板尺寸的 2~3 倍以内。
采集记录表示例
建议每组数据记录以下字段,便于后续筛选和复现:
组号 | 末端位置(mm) x,y,z | 末端姿态(deg) rx,ry,rz | 标定板位姿(^C T_T) | 重投影误差(px) | 可见性 | 备注
-----|---------------------|------------------------|---------------------|----------------|--------|-----
1 | 320.5, -80.2, 450.1 | 12.3, -5.6, 30.2 | 已解算 | 0.32 | 完整 | 初始位姿
2 | 350.1, -60.8, 430.5 | 25.1, 10.2, 45.8 | 已解算 | 0.28 | 完整 | 绕Y旋转
3 | 290.3, -95.6, 470.2 | -8.5, 18.7, 15.3 | 已解算 | 0.41 | 完整 | 绕X旋转
... | ... | ... | ... | ... | ... | ...
采集完成后,先做一轮整体检查:统计旋转轴分布、平移范围、重投影误差均值与最大值。若旋转轴集中在单一方向,或平移范围过小,应补充采集后再进入 AX=XB 求解。数据质量不合格时强行求解,得到的旋转矩阵往往在后续装配中产生明显偏差。