运动学基础:坐标系与变换
各位同学,咱们今天聊点硬核的。运动学,说白了就是研究“怎么动”的学问。你让机器人从A点走到B点,中间怎么走、关节怎么转、速度怎么变,全得靠运动学来算。我刚开始做多轴联动的时候,觉得这玩意儿就是套公式,后来踩了坑才发现——坐标系没搞对,后面全白费。
核心观点:运动学是整个轨迹规划的“地基”。地基不稳,楼盖得再高也得塌。坐标系变换、正逆解、速度加速度,这三块必须吃透。
2.1 坐标系与齐次变换矩阵
先问个问题:你让机器人“往右走10厘米”,它知道“右”是哪儿吗?
答案是否定的。机器人只知道自己的关节角度,它需要你把“往右”这个指令,翻译成它听得懂的关节空间语言。这个翻译过程,就是坐标系变换。
2.1.1 坐标系的定义
每个运动轴、每个工具、每个工件,都有自己的坐标系。常见的坐标系有:
- 世界坐标系(基坐标系):固定在机器人底座,是全局参考。
- 关节坐标系:每个关节自己的角度参考。
- 工具坐标系(TCP):固定在机器人末端,焊枪、夹爪都在这个系里。
- 工件坐标系:固定在工件上,方便编程。
我个人习惯,在项目一开始就把所有坐标系标定好。有一次在产线上,因为工具坐标系偏了2毫米,焊枪直接怼到了工件上……嗯,从那以后我再也不敢偷懒了。
2.1.2 齐次变换矩阵
坐标系之间的变换,用齐次变换矩阵来描述。它是一个4x4的矩阵,包含了旋转和平移信息:
T = | R p |
| 0 1 |
其中:
- R 是3x3旋转矩阵,描述姿态。
- p 是3x1平移向量,描述位置。
- 最后一行是 [0 0 0 1],保持齐次形式。
举个例子,把点从坐标系{A}变换到坐标系{B}:
^B P = ^B_T_A * ^A P
你想想看,这个矩阵乘法,其实就是把旋转和平移打包在一起,一次搞定。我在做六轴机器人离线编程时,经常要串联五六个变换矩阵,一个符号写错,末端位置就飞到天上去。
小技巧:写变换矩阵时,先写旋转,再写平移。我习惯在矩阵旁边标注“从哪到哪”,比如 ^B_T_A 表示“从A到B的变换”。这样不容易搞混。
2.2 正运动学与逆运动学
这两个概念,是运动学的“左右手”。
2.2.1 正运动学
正运动学:已知关节角度,求末端位姿。
说白了,就是“你告诉我关节转了多少,我告诉你手在哪儿”。
对于串联机器人,正运动学就是一连串的齐次变换矩阵相乘:
^0_T_n = ^0_T_1 * ^1_T_2 * ... * ^(n-1)_T_n
这个计算是确定的、唯一的。你给一组关节角,末端位姿就只有一个答案。我在调试SCARA机器人时,正运动学用来验证逆解是否正确——先正解算出位姿,再逆解算回关节角,看能不能对得上。
2.2.2 逆运动学
逆运动学:已知末端位姿,求关节角度。
这个就麻烦多了。同一个末端位置,可能有多种关节角度组合(多解),甚至可能无解(超出工作空间)。
逆运动学的求解方法主要有:
- 解析法:通过几何关系直接推导公式。速度快,但只适用于特定构型(如PUMA 560)。
- 数值法:用迭代逼近(如牛顿-拉夫森法)。通用性强,但计算慢,且可能不收敛。
避坑指南:我曾经在项目里直接用数值法做逆解,结果在奇异点附近迭代发散,机器人直接“抽风”。后来我改用解析法+数值法混合策略——先解析求初值,再数值微调。稳得很。
2.3 速度与加速度的数学描述
位置搞定了,接下来就是“动起来”的问题。速度、加速度,决定了轨迹的平滑度和执行效率。
2.3.1 速度描述
在关节空间,速度就是关节角度的变化率:
ω = dθ/dt
在笛卡尔空间,速度是末端位置的线速度和角速度:
v = dp/dt
ω = dR/dt
两者之间通过雅可比矩阵 J 关联:
ẋ = J * θ̇
这个雅可比矩阵,是运动学里最“要命”的东西。它把关节速度映射到末端速度,而且它还包含了机器人的几何信息。我在做轨迹规划时,经常要检查雅可比矩阵的秩——如果秩降低,说明机器人进入了奇异位形,这时候末端在某些方向上会失去自由度。
2.3.2 加速度描述
加速度是速度的变化率:
a = dv/dt
α = dω/dt
在轨迹规划中,加速度直接决定了运动的冲击度(Jerk)。加速度变化太剧烈,机器人会抖动,甚至损坏机械结构。
我个人的经验是:加速度的规划比速度更重要。速度可以快,但加速度一定要平滑。S型速度曲线比梯形曲线好得多,就是因为它的加速度是连续的。
关键公式:末端加速度与关节加速度的关系:
ẍ = J * θ̈ + J̇ * θ̇
注意,这里多了一项 J̇ * θ̇,这是速度对加速度的耦合项。很多初学者会漏掉这一项,导致加速度计算不准。
2.4 知识体系总览
下面这张图,把本章的核心逻辑串起来了。你仔细看,坐标系变换是基础,正逆运动学是桥梁,速度加速度是执行层。三者缺一不可。
2.5 本章小结
这一章的内容,说白了就是三件事:
- 坐标系与齐次变换矩阵:让机器人在不同坐标系之间“翻译”位置和姿态。
- 正运动学与逆运动学:关节空间和笛卡尔空间之间的“双向翻译”。
- 速度与加速度:让运动“动起来”的数学描述,雅可比矩阵是关键。