第2章 坐标系与运动学基础
各位同学,欢迎来到第二章。这一章,我们要啃下机器人运动控制的「地基」——坐标系和刚体运动描述。
说实话,我见过不少工程师,算法写得飞起,结果在坐标系转换上栽了跟头。有一次调试六轴机器人,末端执行器怎么都碰不到目标点,折腾了两天,最后发现是工具坐标系标定错了0.5毫米。嗯,从那以后,我每次做项目都会先花10分钟确认坐标系。
2.1 三大坐标系:你的机器人「世界观」
机器人运动控制,说白了就是回答三个问题:我在哪?我要去哪?怎么去?坐标系就是回答这些问题的「参考系」。
2.1.1 世界坐标系(World Coordinate System)
世界坐标系是固定不动的「绝对参考系」。通常定义在机器人基座或工作空间的某个固定点。
- 特点:静止、唯一、全局
- 用途:描述机器人整体位置、规划全局路径
- 我个人的习惯:把世界坐标系原点放在机器人基座中心,Z轴竖直向上。这样后续计算最直观。
2.1.2 工具坐标系(Tool Coordinate System, TCS)
工具坐标系附着在机器人末端执行器上。比如焊枪的尖端、夹爪的中心、摄像头的焦点。
- 特点:随末端移动、局部参考
- 用途:精确控制工具姿态、实现「工具中心点」(TCP)运动
- 关键点:TCP标定精度直接影响轨迹精度
你想想看,如果焊枪尖端偏移了1毫米,焊缝可能就偏了。在精密装配中,这直接导致产品报废。
2.1.3 关节坐标系(Joint Coordinate System)
关节坐标系是每个关节自己的「小世界」。每个关节有一个独立的坐标系,描述该关节的旋转或平移。
- 特点:每个关节独立、角度/位移值直接对应电机编码器读数
- 用途:底层驱动、正逆运动学计算
- 注意:关节坐标系下的运动是「非笛卡尔」的,末端轨迹是弧线
2.2 刚体运动描述:平移、旋转与齐次变换
坐标系定义好了,接下来要解决的是:如何描述一个刚体从位置A到位置B的运动?
刚体运动包含两部分:平移(位置变化)和旋转(姿态变化)。
2.2.1 平移变换
平移就是「挪个地方」。在三维空间中,平移向量 t = [dx, dy, dz]^T 表示沿X、Y、Z轴分别移动的距离。
// 平移示例:点P从(1,2,3)平移到(4,6,8)
// 平移向量 t = [3, 4, 5]^T
P_new = P_old + t
// 结果:P_new = (1+3, 2+4, 3+5) = (4, 6, 8)
平移很简单,但要注意:平移不改变物体的朝向。你端着咖啡平移,咖啡不会洒——前提是平移过程中没有旋转。
2.2.2 旋转变换
旋转就复杂多了。描述三维旋转,常见的有三种方式:
| 表示方法 | 优点 | 缺点 | 我的使用场景 |
|---|---|---|---|
| 旋转矩阵 R (3x3) | 直观、易于组合 | 9个参数,有冗余 | 理论推导、坐标变换 |
| 欧拉角 (α, β, γ) | 参数少、物理意义明确 | 存在万向锁问题 | 人机交互界面显示 |
| 四元数 (q0, q1, q2, q3) | 无奇点、插值平滑 | 不够直观 | 轨迹插补、姿态平滑 |
旋转矩阵的基本形式(绕Z轴旋转θ角):
R_z(θ) = [cosθ -sinθ 0]
[sinθ cosθ 0]
[0 0 1]
绕X轴和Y轴的旋转矩阵类似,只是把cos和sin放在对应位置。
2.2.3 齐次变换矩阵
平移和旋转分开处理太麻烦。能不能用一个矩阵同时搞定?齐次变换矩阵就是干这个的。
齐次变换矩阵 T 是4x4矩阵:
T = [R t]
[0 1]
其中:
R: 3x3 旋转矩阵
t: 3x1 平移向量
0: 1x3 零向量
1: 标量 1
使用齐次坐标,一个点 P = [x, y, z, 1]^T,变换后:
P' = T * P
一次矩阵乘法,同时完成旋转和平移。是不是很优雅?
2.3 坐标系变换的「链式法则」
实际机器人系统中,坐标系是层层嵌套的:
- 世界坐标系 → 机器人基座坐标系
- 机器人基座坐标系 → 关节1坐标系
- 关节1坐标系 → 关节2坐标系
- ...
- 关节6坐标系 → 工具坐标系
从世界坐标系到工具坐标系的变换,就是这些矩阵的乘积:
T_world_to_tool = T_world_to_base * T_base_to_j1 * T_j1_to_j2 * ... * T_j6_to_tool
这就是机器人正运动学的数学基础。每个 T 矩阵描述了相邻坐标系之间的相对位姿。
2.4 本章知识体系
下面这张图,是我自己总结的坐标系与运动学基础的知识结构。建议你保存下来,每次做项目前看一眼。
2.5 本章小结
这一章的内容,是后续所有轨迹插补算法的基础。你想想看,如果连坐标系都没搞清楚,后面做路径规划、速度规划、加速度规划,那不都是空中楼阁吗?
我个人建议你花时间把齐次变换矩阵的乘法练熟。刚开始可能会觉得矩阵运算很枯燥,但当你看到机器人按照你的计算精确运动时,那种成就感——嗯,值得。
下一章,我们会进入正运动学,把今天学的坐标系变换应用到实际的机器人结构上。到时候你会发现,今天打下的基础,会帮你省下大量调试时间。