3、运动学基础(下):齐次变换矩阵、正运动学建模(DH参数法)、逆运动学求解入门
好,咱们接着聊。上一节我们把旋转矩阵、平移向量这些基础概念捋了一遍。这一节,我们要把它们串起来,真正开始搭建机器人的“骨架”——也就是运动学模型。
说实话,我刚入行那会儿,觉得运动学就是一堆矩阵乘法,枯燥得很。直到有一次,我调试一台六轴协作机器人,发现末端执行器总是偏那么几毫米。查来查去,最后发现是相邻两个关节的坐标系定义错了。从那以后,我才真正体会到,运动学这东西,差之毫厘,谬以千里。
一、齐次变换矩阵:把旋转和平移装进一个“盒子”
你想想看,一个关节相对于上一个关节,既有旋转,又有平移。如果我们分开算,先旋转再平移,或者先平移再旋转,公式会变得非常啰嗦。有没有一种方法,能把旋转和平移打包在一起?
有的。就是齐次变换矩阵。
说白了,它就是一个 4x4 的矩阵。左上角 3x3 是旋转矩阵,右上角 3x1 是平移向量,左下角是 0 0 0,右下角是 1。
| R(3x3) | T(3x1) |
| 0 0 0 | 1 |
这个矩阵的好处是什么?
- 统一表达:一个矩阵,同时表达了旋转和平移。
- 连续变换:从基座到末端,只需要把每个关节的变换矩阵乘起来。矩阵乘法,简单粗暴。
- 求逆方便:想知道末端在基座下的位姿?乘。想知道基座在末端下的位姿?求逆矩阵就行。
二、正运动学建模:DH参数法——机器人界的“身份证”
有了齐次变换矩阵这个工具,我们怎么给一个真实的机器人建模呢?
最经典的方法,就是 DH 参数法。Denavit 和 Hartenberg 这两位前辈,在 1955 年提出了一套标准。这套标准,说白了就是给每个关节定义一个坐标系,然后用四个参数来描述相邻坐标系之间的关系。
这四个参数分别是:
- ai-1:连杆长度。沿着 Xi-1 轴,从 Zi-1 到 Zi 的距离。
- αi-1:连杆扭角。绕着 Xi-1 轴,从 Zi-1 转到 Zi 的角度。
- di:连杆偏距。沿着 Zi 轴,从 Xi-1 到 Xi 的距离。
- θi:关节角。绕着 Zi 轴,从 Xi-1 转到 Xi 的角度。
嗯,光看文字可能有点晕。我画个图帮你理解一下。
有了这四个参数,相邻两个坐标系之间的变换矩阵就可以直接写出来了。公式是这样的:
i-1T_i = RotX(αi-1) * TransX(ai-1) * RotZ(θi) * TransZ(di)
展开后,就是一个 4x4 的齐次变换矩阵。你只要把每个关节的 DH 参数填进去,然后从基座开始,一直乘到末端,就能得到末端在基座坐标系下的位姿。这就是正运动学。
三、逆运动学求解入门:从“终点”反推“路径”
正运动学是“已知关节角,求末端位姿”。那逆运动学正好反过来:已知末端位姿,求关节角。
为什么需要逆运动学?
- 你想让机器人把手伸到某个点,你不可能手动调每个关节的角度。你只需要告诉它“把手伸到那里”,它自己算出关节角。
- 轨迹规划、避障、力控……几乎所有高级功能,都离不开逆运动学。
但逆运动学比正运动学难得多。为什么?
- 多解性:同一个末端位姿,可能对应多组关节角。比如“肘部朝上”和“肘部朝下”。
- 无解:目标点太远,机器人够不着。
- 奇异点:在某些位姿下,关节速度会变得无穷大,导致控制失效。
求解方法主要有两类:
- 解析法(封闭解):通过代数或几何方法,直接推导出关节角的表达式。速度快,精度高。但只适用于特定构型的机器人(比如后三个关节轴线交于一点的六轴机器人)。
- 数值法(迭代法):比如牛顿-拉夫森法、雅可比伪逆法。通用性强,任何机器人都能用。但速度慢,可能陷入局部最优。
对于初学者,我建议先从解析法入手。拿一个简单的 2 自由度平面机械臂练手。用几何法,画个三角形,用余弦定理就能算出关节角。等你把解析法的思路理清了,再去看数值法,会容易很多。
四、小结
这一节,我们聊了三个东西:
- 齐次变换矩阵:把旋转和平移打包,方便连续变换。
- DH 参数法:给机器人建模的标准方法。四个参数,搞定一切。
- 逆运动学入门:从末端位姿反推关节角。多解、无解、奇异点,都是你要面对的挑战。
嗯,运动学是机器人控制的基石。你把这些搞懂了,后面学动力学、轨迹规划、控制算法,都会轻松很多。别急,慢慢来。
可可精品资料库