4. 手眼标定原理与实现
在机器人视觉引导系统中,相机与机器人之间的空间关系必须被精确建立,否则视觉系统给出的目标坐标无法正确映射到机器人运动指令。手眼标定(Hand-Eye Calibration)正是求解相机坐标系与机器人坐标系之间刚体变换的过程。根据相机安装位置的不同,分为 Eye-in-Hand 与 Eye-to-Hand 两种模型,二者在数学结构、标定流程和误差特性上存在显著差异。
一、两种手眼模型的结构差异
Eye-in-Hand(眼在手上):相机固定在机器人末端法兰或末端执行器上,随机器人一起运动。相机与末端之间的变换 T_cam_tool 是固定的,标定目标是求解该固定变换。标定时机器人带动相机从多个位姿拍摄同一标定板,利用末端位姿变化与相机观测变化之间的约束求解。
Eye-to-Hand(眼在手外):相机固定在工位支架上,不随机器人运动,观测整个工作区域。标定目标是求解相机坐标系到机器人基坐标系的固定变换 T_cam_base。标定时机器人末端夹持标定板(或末端安装标记点)运动到多个位姿,相机拍摄末端标记,通过末端在机器人基坐标系下的已知位姿与相机观测位姿建立对应关系。
两种模型的核心区别在于:Eye-in-Hand 求解的是“相机—末端”固定关系,标定板通常固定不动;Eye-to-Hand 求解的是“相机—基座”固定关系,标定物随末端运动。这一差异直接决定了标定流程中谁动、谁静。
二、标定流程与关键实现
无论哪种模型,标定流程都遵循“数据采集—对应关系建立—方程求解—精度验证”的主线,但具体操作不同。
Eye-in-Hand 标定流程:
- 将标定板固定在机器人工作空间内,确保相机在多个位姿下都能完整拍摄到标定板。
- 控制机器人带动相机运动到 N 个不同位姿(通常 N ≥ 10),每个位姿记录机器人末端在基坐标系下的位姿
T_base_tool_i,同时用相机拍摄标定板并计算标定板在相机坐标系下的位姿T_cam_board_i。 - 由于标定板固定,
T_base_board恒定,可建立方程:T_base_tool_i · T_tool_cam · T_cam_board_i = T_base_board。对任意两组位姿 i、j 消去T_base_board,得到AX = XB形式,其中A = T_base_tool_j⁻¹ · T_base_tool_i,B = T_cam_board_j · T_cam_board_i⁻¹,X = T_tool_cam。 - 使用 Tsai-Lenz、Park 或 Daniilidis 等算法求解
X,即相机到末端的变换。
Eye-to-Hand 标定流程:
- 相机固定在支架上,标定板安装在机器人末端。
- 机器人带动标定板运动到 N 个位姿,每个位姿记录末端在基坐标系下的位姿
T_base_tool_i,同时相机拍摄标定板得到T_cam_board_i。 - 由于标定板与末端固定,
T_tool_board恒定,建立方程:T_cam_base · T_base_tool_i · T_tool_board = T_cam_board_i。整理后同样可化为AX = XB形式求解T_cam_base。
三、标定精度评估
标定完成后必须评估精度,不能仅凭求解成功就认为可用。常用评估方法包括:
- 重投影误差:将标定板角点通过求解出的变换投影到图像平面,计算与检测角点的像素距离。Eye-in-Hand 中通常要求平均重投影误差小于 0.5 像素,最大误差小于 1.0 像素。
- 闭环验证:选取未参与标定的验证位姿,用标定结果计算标定板在机器人基坐标系下的位置,与理论位置比较。例如,若标定板固定,则不同位姿计算出的
T_base_board应一致,位置偏差应小于 0.5 mm,角度偏差小于 0.1°。 - 实际引导测试:让机器人根据视觉结果抓取或到达目标点,测量实际到达位置与目标位置的偏差。这是最直接的精度验证,通常要求重复定位偏差小于 1 mm。
四、误差来源与补偿策略
手眼标定误差主要来自以下几个方面:
| 误差来源 | 影响 | 补偿策略 |
|---|---|---|
| 机器人绝对定位误差 | 末端位姿记录不准,直接传递到标定结果 | 使用高精度标定板、增加标定位姿数量、采用鲁棒估计算法 |
| 相机内参标定误差 | 影响 T_cam_board 的准确性 | 先单独完成相机内参标定,重投影误差控制在 0.3 像素以内 |
| 标定板制造与安装误差 | 角点间距偏差导致尺度误差 | 使用高精度陶瓷标定板,安装时保证平面度 |
| 位姿分布不合理 | 旋转分量求解病态 | 位姿覆盖不同平移和旋转方向,避免共面 |
| 温度漂移与机械松动 | 标定后精度随时间下降 | 定期复标,关键工位增加在线校验标记点 |
对于精度要求较高的场景,可在标定后引入误差补偿模型。一种实用做法是:在机器人工作空间内选取若干验证点,测量实际偏差,建立偏差随位置变化的查找表或多项式拟合模型,在视觉引导输出坐标时叠加补偿量。另一种做法是使用手眼标定与机器人运动学参数联合优化,将机器人连杆参数误差与手眼变换一并求解,可显著降低绝对定位误差。
实际工程中,建议将标定流程固化为可重复执行的脚本或工具,每次标定自动输出精度报告。对于 Eye-in-Hand 系统,还需注意相机线缆和末端负载对机器人运动精度的影响;对于 Eye-to-Hand 系统,则需确保相机支架刚度足够,避免振动导致图像模糊或标定关系漂移。只有将标定、验证和补偿形成闭环,才能为后续的机器人定位与引导提供可靠的空间基准。