4、手眼标定原理:手眼标定的数学模型、眼在手上与眼在手外的区别、标定流程
手眼标定是机械手视觉定位与抓取系统中承上启下的关键环节。它的本质是求解机器人末端执行器(法兰盘)坐标系与相机坐标系之间的空间变换关系。如果这个变换关系不准确,无论视觉算法识别得多精准、机械臂运动学解算得多完美,最终抓取位置都会产生系统性偏差。本章将深入剖析手眼标定的数学模型,对比“眼在手上”与“眼在手外”两种主流构型的本质区别,并给出可落地的标定流程与实战排障经验。
上图展示了两种构型的核心差异与统一数学模型。无论采用哪种安装方式,最终都归结为求解矩阵方程 AX = XB。下面我们分别从数学模型、构型对比、标定流程三个维度展开。
4.1 手眼标定的数学模型:从坐标变换到 AX=XB
4.1.1 核心原理:坐标系链与齐次变换矩阵
机械手视觉系统涉及多个坐标系:机器人基坐标系(Base)、机械臂末端法兰坐标系(Flange/Tool)、相机坐标系(Cam)、标定板坐标系(CalBoard)。手眼标定的目标就是求解相机与机械臂之间的固定变换关系。在“眼在手上”构型中,需要求解 CamHFlange(相机坐标系到法兰坐标系的齐次变换矩阵);在“眼在手外”构型中,需要求解 CamHBase(相机坐标系到基坐标系的齐次变换矩阵)。
齐次变换矩阵 H 是一个 4×4 矩阵,包含旋转部分 R(3×3)和平移部分 t(3×1):
H = [ R t ]
[ 0 1 ]
对于“眼在手上”构型,当机械臂从位姿 P1 运动到位姿 P2 时,标定板固定在外部工作台上。我们可以建立两个闭环方程:
- 闭环1:BaseHFlange(P1) × FlangeHCam × CamHCalBoard(P1) = BaseHCalBoard
- 闭环2:BaseHFlange(P2) × FlangeHCam × CamHCalBoard(P2) = BaseHCalBoard
由于标定板固定,BaseHCalBoard 不变。将两式联立消去 BaseHCalBoard,并令 A = inv(BaseHFlange(P1)) × BaseHFlange(P2)(即机械臂自身的运动),B = CamHCalBoard(P1) × inv(CamHCalBoard(P2))(即标定板在相机系下的运动),则得到经典方程:
AX = XB,其中 X = FlangeHCam(待求的手眼矩阵)。
对于“眼在手外”构型,相机固定,标定板装在机械臂末端。同理可推导出相同形式的 AX = XB,只是 X 的含义变为 CamHBase。A 由机械臂运动学给出,B 由视觉检测标定板位姿给出。
4.1.2 求解方法:两步法与单步法
AX = XB 的求解通常分为两步:先求解旋转部分,再求解平移部分。常用算法包括 Tsai-Lenz 法、Park-Martin 法、Daniilidis 法等。现代工程实践中更推荐使用 非线性优化方法(如 Levenberg-Marquardt),将旋转矩阵参数化(如李代数 so(3)),对所有采集样本进行全局优化,以抑制噪声影响。
| 方法类别 | 代表算法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| 两步法 | Tsai-Lenz | 计算快、实现简单 | 对噪声敏感,旋转误差会传递到平移 | 标定板位姿精度高、噪声小的离线标定 |
| 单步法 | Daniilidis(四元数) | 旋转和平移同时求解,精度更高 | 实现复杂,需处理四元数约束 | 精度要求高的场合 |
| 非线性优化 | L-M / Gauss-Newton | 可引入权重、鲁棒核,精度最高 | 需要良好初值,计算量较大 | 工程首选,配合两步法结果作为初值 |
4.1.3 案例拆解:为什么采集 15 组数据仍然标定失败?
某汽车零部件装配线,使用眼在手上构型,相机安装在第六轴法兰盘上。工程师采集了 15 组机械臂位姿和对应的标定板图像,使用 Tsai-Lenz 算法求解,但重投影误差高达 8 像素,抓取时出现 5mm 以上的位置偏差。
分析过程:检查采集数据发现,15 组位姿中机械臂的平移量较大,但旋转角度变化很小(所有姿态的欧拉角变化均在 ±5° 以内)。这导致 A 矩阵的旋转部分接近单位阵,方程 AX=XB 中旋转约束不足,解算出的旋转矩阵 R 严重病态。
实际操作步骤:
- 重新设计采集策略:确保机械臂在 3 个正交方向上有超过 30° 的旋转变化,同时平移量覆盖相机视野的各个区域。
- 增加采集组数至 20 组,并剔除标定板边缘被遮挡的图像。
- 改用两步法初值 + 非线性优化精求解。
结果对比:重投影误差从 8 像素降至 0.3 像素,抓取位置偏差从 5mm 降至 0.5mm 以内。
风险提示:旋转角度变化不足是手眼标定最常见的失败原因。务必在采集时让机械臂做大幅度的姿态变化,而非仅平移。
4.2 眼在手上与眼在手外的区别:构型选型与精度影响
4.2.1 核心原理:两种构型的本质差异
两种构型的根本区别在于相机与机械臂的相对运动关系。眼在手上(Eye-in-Hand)相机随机械臂运动,视野随末端移动而移动,适合需要近距离观察目标、且目标位置不固定的场景。眼在手外(Eye-to-Hand)相机固定安装,视野覆盖整个工作区域,适合目标位置相对固定、且机械臂运动范围较大的场景。
4.2.2 判断方法:构型选型对比表
| 对比维度 | 眼在手上(Eye-in-Hand) | 眼在手外(Eye-to-Hand) |
|---|---|---|
| 相机安装位置 | 机械臂末端法兰盘 | 工作区域上方或侧方固定支架 |
| 标定目标矩阵 | CamHFlange(相机→法兰) | CamHBase(相机→基座) |
| 视野特点 | 随机械臂移动,可近距离观察目标,但视野有限 | 视野固定且较大,但可能存在遮挡 |
| 标定板位置 | 固定在工作台上 | 安装在机械臂末端 |
| 精度影响因素 | 机械臂运动学误差直接影响标定结果 | 相机安装刚性、视野畸变影响较大 |
| 典型应用 | 抓取流水线上移动的工件、近距离精密装配 | 料箱拣选、大范围定位、AGV 导航 |
| 标定复杂度 | 中等,需保证标定板在视野内 | 较低,标定板随机械臂运动 |
4.2.3 实战场景:两种构型的切换与补偿
某 3C 电子装配线,最初采用眼在手外构型,相机固定于机架顶部,负责定位传送带上的手机中框。但后来产线改造,传送带位置偏移,且中框来料角度随机,固定相机视野受限,导致识别率下降。工程师将构型改为眼在手上,相机随机械臂移动,每次抓取前先移动到预拍摄位,对中框进行精确定位。
关键操作:
- 重新执行手眼标定,求解 CamHFlange。
- 在抓取流程中增加“预拍摄”步骤:机械臂先运动到目标上方固定高度,拍摄图像,计算目标在法兰坐标系下的位置,再执行抓取。
- 针对机械臂运动学误差,在标定后增加补偿矩阵(通过多点拟合修正)。
结果:识别率从 92% 提升至 99.5%,抓取节拍仅增加 0.3 秒。
经验提醒:如果目标物体较大或工作区域广,优先考虑眼在手外;如果目标小、需要高精度近距离观察,优先考虑眼在手上。但眼在手上对机械臂运动学精度要求更高,标定时需特别注意。
4.3 标定流程:从准备到验证的完整闭环
4.3.1 操作流程:七步标定法
无论哪种构型,标定流程都遵循以下七个步骤。以下以眼在手上构型为例:
- 准备阶段:固定标定板(如 7×9 棋盘格,方格边长 30mm),确保标定板平整、无污渍。测量方格边长并输入标定程序。
- 机械臂运动规划:编写脚本控制机械臂运动到 15-20 个不同位姿。要求:姿态变化覆盖 ±30° 以上,平移覆盖相机视野的 80% 区域,且标定板始终完整出现在图像中。
- 数据采集:在每个位姿下,同时记录机械臂法兰盘位姿(从控制器读取)和标定板图像。
- 角点提取与位姿估计:使用 OpenCV 的
findChessboardCorners和solvePnP计算标定板在相机坐标系下的位姿。 - 构建 AX=XB 方程组:将相邻两组数据配对,计算 A 和 B 矩阵。
- 求解与优化:先用 Tsai-Lenz 求初值,再用 L-M 算法对所有数据做全局优化。
- 验证与部署:使用未参与标定的测试位姿,计算重投影误差。若误差小于 0.5 像素,则标定合格;否则返回步骤 2 重新采集。
4.3.2 案例拆解:标定板角点提取失败的排障
某机器人实验室在标定过程中,发现 findChessboardCorners 频繁返回空值。检查图像发现,由于机械臂运动到某些位姿时,环境灯光在标定板上产生强烈反光,导致棋盘格对比度不足。
排障过程:
- 初步尝试:调整相机曝光时间,但反光区域仍然过曝。
- 进一步分析:在标定板上方加装偏振片,消除镜面反射。
- 最终方案:更换为哑光材质的陶瓷标定板,并调整光源角度至 45° 侧光。
结果:角点提取成功率从 60% 提升至 100%,标定时间缩短一半。
风险提示:标定板材质和光照条件是标定质量的隐形杀手。优先选用陶瓷或玻璃基板,避免塑料反光。光源建议使用漫射 LED 面板,避免点光源直射。
4.3.3 常见误区与总结复盘
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 只采集平移位姿,旋转变化小 | 旋转矩阵病态,标定精度差 | 确保每个位姿的旋转角度差异大于 30° |
| 标定板图像占视野比例过小 | 角点提取精度低 | 标定板面积占图像 1/4 以上 |
| 忽略机械臂运动学误差 | 标定结果包含系统误差 | 使用高精度机械臂,或对运动学做补偿 |
| 未做重投影验证 | 标定错误未被发现 | 预留 5 组测试位姿,计算重投影误差 |
| 使用单张图像求解 | 方程欠约束,无唯一解 | 至少 10 组以上有效位姿 |
总结复盘:手眼标定的核心在于“多姿态、大角度、高精度、重验证”。在工程实践中,建议将标定流程封装为自动化脚本,每次更换相机或机械臂后自动执行标定,并将标定结果(重投影误差、手眼矩阵)存档,便于追溯。同时,标定完成后务必用真实抓取测试验证,而非仅依赖重投影误差——因为重投影误差只反映视觉重建精度,不包含机械臂运动学误差的影响。