1. 标定基础与坐标系:机器人学基础回顾
各位同学,欢迎来到《机器人标定与手眼标定协同调试实战》的第一章。
做标定,说白了就是搞清楚「机器人到底在哪儿」以及「它看到的物体在哪儿」。这两个问题搞不清楚,后面所有的高精度动作都是空谈。我刚开始接触机器人时,总觉得标定是可有可无的步骤,直到有一次在产线上调试,机器人抓取精度差了 2mm,零件全废了……嗯,从那以后我再也不敢轻视标定了。
1.1 刚体变换与齐次矩阵
机器人学里,我们研究的对象都是刚体。刚体不会变形,它只有位置和姿态的变化。描述这种变化,最优雅的工具就是齐次矩阵。
一个 4×4 的齐次矩阵长这样:
| R11 R12 R13 tx |
| R21 R22 R23 ty |
| R31 R32 R33 tz |
| 0 0 0 1 |
左上角 3×3 是旋转矩阵 R,描述姿态。右上角 3×1 是平移向量 t,描述位置。最后一行永远是 [0 0 0 1],这是齐次坐标的约定。
我的习惯:写代码时,我总把齐次矩阵命名为
T_AB,表示从坐标系 B 到坐标系 A 的变换。命名清晰了,后面推导手眼标定方程时能少掉一半的头发。
你想想看,为什么非要用 4×4 矩阵?因为连续变换可以写成矩阵乘法。比如从世界到相机,再经过工具到末端,整个链就是:
T_WC = T_WB * T_BE * T_ET * T_TC
一次乘法,搞定所有坐标变换。这就是齐次矩阵的魅力。
1.2 坐标系定义
做标定前,必须把每个坐标系的位置搞清楚。我见过太多工程师,标定做完了才发现坐标系定义错了,白忙一场。
| 坐标系 | 符号 | 位置 | 作用 |
|---|---|---|---|
| 世界坐标系 | {W} | 固定在机器人基座或工作空间 | 全局参考,所有坐标的最终归宿 |
| 基座坐标系 | {B} | 机器人底座安装面中心 | 机器人自身运动学计算的起点 |
| 工具坐标系 | {T} | 末端执行器(夹爪、焊枪等) | 描述工具尖端的位姿 |
| 相机坐标系 | {C} | 相机光心 | 视觉测量的参考系 |
这里有个关键点:世界坐标系和基座坐标系,在很多场景下是重合的。但我不建议你这么做。我在项目中习惯把世界坐标系放在工作台的一个固定角点上,这样调试时方便测量。
我曾经踩过的坑:有一次,我把世界坐标系设在了机器人基座上,结果后来移动了机器人,所有标定数据全废了。从那以后,世界坐标系我永远放在固定不动的结构件上。
1.3 标定的数学本质
标定到底在干什么?说白了,就是求解一个或多个未知的变换矩阵。
举个例子,手眼标定(Hand-Eye Calibration)的核心方程是:
AX = XB
其中:
- A:机器人末端在两次运动之间的变换(从运动学得到)
- B:相机在两次运动之间看到的标定板变换(从视觉得到)
- X:未知的相机到末端(或末端到相机)的变换
这个方程看起来简单,但求解起来并不容易。因为 A 和 B 都有测量误差,我们需要用最小二乘法或非线性优化来逼近真实解。
核心思想:标定不是一次测量就能搞定的。你需要采集多组数据(至少 3 组,我建议 10 组以上),然后用优化算法求解。数据越多,噪声被平均掉的效果越好。
1.4 知识体系总览
下面这张图,把本章的核心概念串起来了。你可以把它当作后续章节的导航图。
1.5 本章小结
这一章我们打下了标定的理论基础。记住三个要点:
- 齐次矩阵是描述刚体变换的瑞士军刀,4×4 搞定一切
- 坐标系定义要清晰、固定、可复现,这是标定成功的基石
- 标定的本质是求解未知变换,多组数据 + 优化算法是标准套路