机器人手眼标定 AX=XB:Eye-in-Hand 与 Eye-to-Hand 实战指南

相机固定在机器人腕部时属于 Eye-in-Hand;相机固定在工作站一侧时属于 Eye-to-Hand。采集数据前,必须写清每个变换从哪个坐标系指向哪个坐标系。OpenCV calibrateHandEye 官方文档使用 gripper-to-base 与 target-to-camera 位姿序列求取 camera-to-gripper 变换。输入方向颠倒时,算法仍可能返回看似正常的矩阵。

可靠流程还需要绕至少两个独立轴旋转的位姿、未参与求解的验证样本,以及真实工作空间中的测量。更宽泛的校准分类可参阅机器人校准指南,变换方向见机器人坐标系与TF2,目标位姿估计见6D 物体位姿估计

先固定相机安装方式和坐标变换方向

在 Eye-in-Hand 中,相机随末端执行器移动,标定板固定在机器人工作区。在 Eye-to-Hand 中,相机固定,标定板通常随工具移动。两者都可以写成 AX=XB,但需要求逆的位置和最终结果的物理含义不同。

把 base、gripper、camera optical frame 和 target 画在同一张图上,标出每条箭头。确认光学坐标轴、机器人驱动输出的位姿方向、检测器返回的变换方向,并统一 m 与 mm、旋转矩阵与四元数的约定。

配置固定部分移动部分待求关系常见错误
Eye-in-Hand标定板、机器人基座夹爪、相机camera↔gripper把 gripper→base 当成反方向
Eye-to-Hand相机、机器人基座夹爪、标定板camera↔base漏掉目标位姿求逆
两者共通尺寸与坐标定义机器人位姿一致的 SE(3) 变换混用毫米、米或旋转约定

在求解 AX=XB 前检查内参与标定板

手眼标定不会修复错误的相机内参。应使用实际运行时的镜头、焦点、分辨率、曝光流程和保护窗,并确认 CameraInfo 与视频流匹配。镜头、焦点或外壳发生变化后,不应直接沿用旧结果。

可依据OpenCV 标定图案官方指南选择图案。标定板要平整,尺寸要实测,并核对打印缩放。目标过小、模糊、被裁切或倾斜过大时,位姿误差会直接进入手眼变换。

位姿的旋转多样性比单纯增加数量更重要

保持方向不变而反复平移,无法充分约束 AX=XB。MoveIt 手眼标定教程指出,五个样本后可以开始计算,至少需要绕两个轴旋转,结果通常会在约 12 至 15 个样本后逐渐稳定。这只是采集参考,不是精度保证。

应覆盖工作区中心与边缘、近距离与远距离、正向与反向旋转,同时保留关节限位和碰撞余量。机器人稳定后再同步保存图像与关节状态;检测置信度低或存在运动模糊的样本应在求解前剔除并记录原因。

安装在Curiosity机械臂末端的MAHLI相机
这是机械臂末端相机的真实案例,但未展示AX=XB手眼标定、标定板、变换矩阵或误差结果。 来源: NASA. 许可: Public domain.

求解器结果分歧时先检查数据

OpenCV 提供 Tsai、Park、Horaud 等分步方法,也提供 Andreff、Daniilidis 等联合估计方法。多种方法给出接近结果,说明数据条件较好;若差异明显,应优先检查坐标方向、旋转覆盖和异常样本,而不是挑选误差最小的一个。

对同一份清洗后的数据集运行多个求解器,记录平移差、旋转差和残差。再逐个移除样本或进行重采样,观察结果是否敏感。最终版本必须依据留出位姿和真实任务误差选择。

指标使用数据能说明什么可能漏掉什么
重投影误差图像角点检测与相机内参一致性机器人坐标误差
AX=XB 残差训练位姿对方程内部一致性过拟合或工作区偏差
留出位姿误差未参与求解的位姿对新姿态的泛化工具中心点偏差
抓取或探针误差独立作业点是否满足任务动态延迟与背隙

用未见位姿和实际作业空间做验证

调参前就划出留出样本。利用估计变换把目标转换到 base 坐标系,观察机器人换姿态后目标位置是否漂移。除平均值外,还要报告最大误差和各方向偏差,避免平均值掩盖系统性旋转错误。

随后用真实夹爪或测量探针接近已知点,覆盖近端、远端、高处、低处和工作区四角,不能只测图像中心的一点。工具中心点应单独校验,以免把 TCP 偏差归因于手眼标定。

汇总《机器人手眼标定 AX=XB:Eye-in-Hand 与 Eye-to-Hand 实战指南》四项关键判断的移动端信息卡
Physical AI Lab 根据文章引用的官方资料和对比表制作的编辑信息卡。 来源: Physical AI Lab. 许可: Owned original.

根据误差随姿态变化的方式定位故障

所有位姿都出现近似固定的平移偏差时,应检查标定板尺寸、TCP 和固定变换。误差方向随机器人姿态旋转时,应检查旋转估计、变换求逆、时间同步或结构变形。只有画面边缘恶化时,应重新检查内参与镜头模型。

若只有运动中精度变差,要检查图像与关节时间戳、曝光时刻和滚动快门。相机支架的微小位移、线缆拉力也会破坏刚性假设。不要用只对某一姿态有效的经验偏移掩盖机械或同步问题。

发布结果时同时保存可复现条件

除最终矩阵外,还要保存相机序列号、镜头、分辨率、标定板类型与实测尺寸、机器人和固件版本、TCP、位姿列表、求解器、剔除样本及验证结果。源坐标系、目标坐标系和单位应写入机器可读元数据。

相机或工具重新安装、发生碰撞、更换支架、调整焦点或修改图像链路后,应重新验证。生产系统可定期观测参考目标;超过项目自定阈值时暂停相关任务并重新标定。不存在适用于所有机器人和工艺的统一毫米阈值。

常见问题

手眼标定需要多少个位姿?

实务上可从约 12 至 15 个包含至少两个旋转轴的多样位姿开始,并另外保留验证样本。旋转覆盖和检测质量比固定数量更重要。

重投影误差很小就表示手眼标定正确吗?

不能。重投影误差主要检查图像检测和相机模型,还必须验证 AX=XB 残差、未见位姿以及真实抓取或探针误差。

Eye-in-Hand 的结果能直接用于 Eye-to-Hand 吗?

不能直接使用。固定与移动坐标系、求逆位置和输出关系都不同。可以使用同类求解器,但必须按照实际安装重新定义变换链。

已核验的官方资料

最后核查:2026年8月7日