3. 运动学基础:正运动学、逆运动学、雅可比矩阵、奇异性分析
各位同学,今天我们来啃一块硬骨头——运动学基础。说实话,我刚入行那会儿,觉得这东西就是纯数学推导,跟实际工程差得远。直到有一次在产线上调试六轴机器人,末端执行器死活走不到目标点,我才意识到:运动学不是纸上谈兵,它是你控制算法的地基。地基不稳,楼盖得再高也得塌。
3.1 正运动学:从关节到末端
正运动学,说白了就是:我知道每个关节转了多少度,求末端执行器在空间里到底在哪儿。这就像你看着机器人的关节角度,就能算出它的手在哪儿。
我个人的习惯是,先建立坐标系。常用的方法是Denavit-Hartenberg参数法,也就是DH法。每个关节建立一个坐标系,然后用四个参数来描述相邻坐标系之间的变换:
- θ:绕Z轴的旋转角(关节角)
- d:沿Z轴的平移距离
- a:沿X轴的平移距离(连杆长度)
- α:绕X轴的旋转角(连杆扭角)
有了这四个参数,我们就可以写出相邻坐标系的齐次变换矩阵:
T = [cosθ -sinθ·cosα sinθ·sinα a·cosθ
sinθ cosθ·cosα -cosθ·sinα a·sinθ
0 sinα cosα d
0 0 0 1]
然后,把每个关节的变换矩阵连乘起来,就得到了末端相对于基座的位姿:
T_0n = T_01 · T_12 · T_23 · ... · T_(n-1)n
嗯,这里要注意:矩阵乘法不满足交换律,顺序一定不能搞反。我在项目中遇到过有人把顺序写反了,结果末端位置差了十万八千里,排查了半天才发现是矩阵乘反了。
3.2 逆运动学:从末端到关节
逆运动学正好反过来:我知道末端要走到哪儿,求每个关节该转多少度。这在实际控制中更常用——你告诉机器人“把手伸到那个点”,它得自己算出关节角度。
逆运动学比正运动学难得多。为什么?因为正运动学是唯一的,但逆运动学可能有多个解,甚至无解。你想想看,一个六轴机器人,同一个末端位姿,可能有8组甚至16组关节角度解。
求解方法主要有两种:
- 解析法:通过几何关系直接推导出角度公式。速度快,但只适用于特定构型的机器人(比如有相邻关节轴线相交的情况)。
- 数值法:用迭代的方式逼近解。通用性强,但计算量大,而且可能不收敛。
我个人更偏爱解析法,只要机器人构型允许。我记得有一次做七自由度冗余机器人的逆解,解析法搞不定,最后用了牛顿-拉夫森迭代法。那段时间天天盯着收敛曲线看,生怕它发散。
3.3 雅可比矩阵:速度与力的桥梁
雅可比矩阵,听起来很高大上,其实它就是关节速度到末端速度的线性映射。用数学语言说:
ẋ = J(q) · q̇
其中ẋ是末端速度(包括线速度和角速度),q̇是关节速度,J就是雅可比矩阵。
雅可比矩阵的物理意义很丰富:
- 速度映射:给定关节速度,算出末端速度
- 力映射:通过虚功原理,末端力可以映射到关节力矩:τ = J^T · F
- 奇异性检测:当J的行列式为零时,机器人处于奇异位形
计算雅可比矩阵的方法,我推荐用向量积法。对于旋转关节,第i列雅可比可以写成:
J_i = [z_i × (p_n - p_i)
z_i]
其中z_i是第i个关节的旋转轴方向,p_i是第i个坐标系的原点位置,p_n是末端位置。
这个方法的好处是,你不需要求导,直接通过正运动学算出来的位置和姿态就能得到雅可比矩阵。我在实际项目中一直用这个方法,稳定可靠。
3.4 奇异性分析:机器人的“死穴”
奇异性,是每个机器人工程师的噩梦。当机器人处于奇异位形时,雅可比矩阵的秩降低,导致:
- 某些方向上的运动能力丧失
- 关节速度会趋于无穷大
- 控制精度急剧下降
常见的奇异类型有三种:
| 奇异类型 | 产生原因 | 典型表现 |
|---|---|---|
| 边界奇异 | 关节到达物理限位 | 末端无法继续向外延伸 |
| 内部奇异 | 关节轴线共线或共面 | 某个方向突然失去自由度 |
| 腕部奇异 | 腕部三个关节轴线共面 | 末端姿态无法调整 |
为什么会这样?你想想看,当雅可比矩阵不满秩时,末端速度空间被压缩了。比如一个六轴机器人,正常情况下末端可以在6个自由度上运动。但在奇异位形下,可能只能运动5个甚至更少的方向。
我记得有一次调试焊接机器人,焊枪走到某个位置时突然剧烈抖动。我一看关节速度曲线,有个关节的速度瞬间飙到了3000度/秒——这显然不可能。后来一查,是遇到了腕部奇异。解决办法是重新规划路径,绕开那个奇异区域。
· 计算雅可比矩阵的条件数,条件数越大越接近奇异
· 在路径规划中加入奇异回避约束
· 使用阻尼最小二乘法(DLS)在奇异区域附近平滑过渡
3.5 知识体系总览
下面这张图,是我自己总结的运动学知识体系。你可以把它当作一个导航图,学完这一章后,对照着看看自己掌握了哪些。
这张图把四个知识点串起来了。正运动学是基础,逆运动学是应用,雅可比矩阵是桥梁,奇异性分析是避坑指南。学完这一章,你应该能回答三个问题:
- 给定关节角,末端在哪儿?(正运动学)
- 给定末端位姿,关节角是多少?(逆运动学)
- 机器人在哪些位置会“卡住”?(奇异性分析)
好了,运动学基础就讲到这里。下一章我们会聊动力学,那又是另一片天地了。记住,运动学是控制的基础,基础不牢,地动山摇。回去把DH参数多推几遍,把雅可比矩阵多算几次,你会感谢自己的。
公众号:蓝海资料掘金营,微信deep3321