第二章 运动学基础(一):空间坐标系与齐次变换、旋转矩阵与欧拉角、刚体姿态描述方法
各位同学,大家好。今天我们正式进入Delta机器人运动学的核心内容。说实话,很多做机器人控制的工程师,一听到「运动学」三个字就头大。我当年刚入行时也一样,觉得不就是让电机转起来吗?搞那么复杂干嘛?直到我第一次调试Delta机器人时,发现末端抓取位置总是偏那么几毫米,怎么调都调不好。后来才明白——坐标系没对齐,姿态描述错了。
所以这一章,我们先把基础打牢。空间坐标系、齐次变换、旋转矩阵、欧拉角,这些概念你搞懂了,后面逆解、轨迹规划、同步控制才能顺下来。
2.1 空间坐标系:机器人运动的「地图」
Delta机器人有三个主动臂,每个臂都绕着各自的基座旋转。这三个旋转轴,就是三个独立的坐标系。但机器人末端执行器(那个抓取头)的运动,我们关心的是它在「世界坐标系」下的位置。
说白了,坐标系就是一张地图。每个关节有自己的局部地图,末端执行器也有自己的地图。我们要做的,就是把这些地图统一起来。
我个人习惯把世界坐标系建在Delta机器人的底座中心,Z轴向上,X轴指向两个前臂的中间方向。这样后续计算比较直观。当然,你也可以按自己的习惯来,但一旦定下来,整个项目就别改了。
2.2 齐次变换:把旋转和平移打包处理
想象一下,你要把一个点从关节坐标系变换到世界坐标系。这个点既需要旋转(因为关节坐标系的方向不同),又需要平移(因为坐标系原点不同)。
传统的做法是:先旋转,再平移。写成矩阵形式就是:
P_world = R * P_local + T
但这样写有个问题——每次变换都要分开处理旋转和平移,代码写起来很啰嗦。而且多个变换串联时,公式会变得非常复杂。
齐次变换就是来解决这个问题的。它把旋转矩阵R和平移向量T塞进一个4x4的矩阵里:
| R T |
| 0 1 |
这样,一个点P_local(用齐次坐标表示成[x, y, z, 1]^T)乘以这个矩阵,就直接得到了世界坐标。干净利落。
我在项目中遇到过一个问题:两个工程师分别写了不同的变换代码,一个用3x3矩阵加平移向量,另一个用4x4齐次矩阵。结果联调时发现末端位置差了2mm。排查了半天,原来是平移向量的符号定义不一致。从那以后,我强制团队统一使用齐次变换矩阵。
2.3 旋转矩阵:描述「朝向」的数学工具
Delta机器人的末端执行器,不仅要到达某个位置,还要保持特定的姿态。比如抓取一个倾斜的工件,末端就得跟着倾斜。
旋转矩阵就是用来描述这个「朝向」的。它是一个3x3的正交矩阵,每一列代表一个坐标轴在参考坐标系下的方向向量。
举个例子,如果末端坐标系完全平行于世界坐标系,旋转矩阵就是单位矩阵:
| 1 0 0 |
| 0 1 0 |
| 0 0 1 |
如果末端绕Z轴旋转了30度,旋转矩阵就变成:
| cos30 -sin30 0 |
| sin30 cos30 0 |
| 0 0 1 |
你想想看,这个矩阵其实就是在说:「末端坐标系的X轴,在世界坐标系下指向(cos30, sin30, 0)方向」。是不是很直观?
2.4 欧拉角:人类更友好的姿态描述方式
旋转矩阵虽然数学上很完美,但人看着不直观。你让我看一个3x3矩阵,我很难想象出末端到底朝哪个方向。
欧拉角就是来解决这个问题的。它用三个角度来描述姿态:绕X轴转(Roll)、绕Y轴转(Pitch)、绕Z轴转(Yaw)。
Delta机器人常用的欧拉角顺序是Z-Y-X,也就是先绕Z轴转Yaw,再绕Y轴转Pitch,最后绕X轴转Roll。这个顺序不是随便定的,它对应了机器人常见的运动方式:先水平旋转,再俯仰,最后调整滚转。
我记得有一次调试一个码垛程序,末端姿态总是差一点。查了半天,发现是欧拉角的旋转顺序搞错了。我用的是Z-Y-X,但算法库默认的是X-Y-Z。嗯,这个坑我踩过,你们别踩了。
2.5 刚体姿态描述方法对比
我们总结一下,描述刚体姿态主要有三种方法:
| 方法 | 优点 | 缺点 | Delta机器人适用场景 |
|---|---|---|---|
| 旋转矩阵 | 数学严谨,无奇异点 | 9个参数,冗余,不直观 | 内部计算,变换串联 |
| 欧拉角 | 直观,3个参数 | 有万向锁,顺序依赖 | 人机交互,示教编程 |
| 四元数 | 无奇异点,插值平滑 | 4个参数,不够直观 | 轨迹规划,姿态插补 |
我个人在Delta机器人项目中,内部计算全部用旋转矩阵或四元数,只有显示给操作员看时才转成欧拉角。这样既保证了计算精度,又方便人理解。
2.6 知识体系总览
下面这张图,是我自己总结的本章知识体系。你可以把它当作一张地图,随时回来对照:
从这张图你可以看到,旋转矩阵、欧拉角、四元数这三种描述方式,最终都要统一到齐次变换矩阵里,才能用于Delta机器人的运动学计算。所以,别只盯着一种方法,要理解它们之间的转换关系。
好了,这一章的内容就到这里。空间坐标系是地图,齐次变换是交通工具,旋转矩阵和欧拉角是导航语言。这三样东西搞明白了,Delta机器人的运动学就算入门了。下一章我们讲正运动学,到时候你会看到这些知识是怎么串起来用的。