2、运动学基础:空间刚体运动描述、旋转矩阵与欧拉角、齐次变换矩阵

各位同行,大家好。今天我们聊聊并联机构运动学的基础。说白了,就是怎么用数学语言描述一个刚体在空间里怎么动。

我刚开始接触并联机构时,觉得这东西不就是几个杆连起来嘛,有啥好描述的?后来真上手做项目,才发现——嗯,描述不清楚,后面奇异性分析根本没法做。所以这块基础,咱们得打扎实。

2.1 空间刚体运动的描述方式

一个刚体在空间里有几个自由度?六个。三个平移,三个旋转。平移好说,就是位置变了。旋转呢?麻烦点。

我个人习惯把刚体运动拆成两步:先看它往哪走了,再看它朝哪个方向转了。这样思路清晰。

举个例子。我在做六自由度并联平台时,动平台的运动就是典型的刚体运动。你得知道平台中心点在哪,还得知道平台平面是水平还是倾斜的。这两部分信息,缺一不可。

核心概念:刚体运动 = 位置变化 + 姿态变化。位置用三维向量描述,姿态用旋转矩阵或欧拉角描述。

2.2 旋转矩阵

旋转矩阵,说白了就是一个3×3的方阵。它能把一个向量从一个坐标系转到另一个坐标系。

你想想看,一个向量在空间里,你换个角度看,它的坐标值就变了。旋转矩阵干的就是这个活。

旋转矩阵有几个重要性质:

  • 正交性:RTR = I,也就是说它的逆等于它的转置。这个性质在计算中非常有用。
  • 行列式为+1:保证了是纯旋转,没有缩放或镜像。
  • 三个自由度:虽然矩阵有9个元素,但受正交性约束,实际只有3个独立参数。

我记得有一次调试一个并联机构的逆解程序,怎么算都不对。折腾了半天,发现是旋转矩阵用错了——我用了非正交矩阵,结果位置全乱套了。从那以后,我每次用旋转矩阵前都会检查一下RTR是否等于I。

常见的旋转矩阵有绕X轴、Y轴、Z轴旋转的三种基本形式:

// 绕X轴旋转角度θ
Rx(θ) = [1,    0,      0;
         0,  cosθ,  -sinθ;
         0,  sinθ,   cosθ]

// 绕Y轴旋转角度θ
Ry(θ) = [cosθ,  0,  sinθ;
         0,     1,     0;
        -sinθ,  0,  cosθ]

// 绕Z轴旋转角度θ
Rz(θ) = [cosθ, -sinθ,  0;
         sinθ,  cosθ,  0;
         0,     0,     1]

小技巧:实际编程时,我建议用四元数代替旋转矩阵做插值。旋转矩阵在连续旋转时容易出现万向锁,四元数就没这个问题。不过这是后话了。

2.3 欧拉角

欧拉角是另一种描述姿态的方式。它用三个角度来表示旋转:偏航角、俯仰角、滚转角。你开过飞机或者玩过无人机的话,对这些应该不陌生。

欧拉角的本质是三次连续的旋转。常见的顺序有ZYX、ZYZ等。不同的顺序,结果不同。这一点很多人容易搞混。

我曾经在项目中吃过这个亏。当时用欧拉角描述并联机构的动平台姿态,结果仿真和实测对不上。后来发现是旋转顺序搞反了——我用了ZYX,但实际机构用的是XYZ。你想想看,顺序一错,姿态全歪。

欧拉角类型 旋转顺序 常见应用
ZYX(偏航-俯仰-滚转) 先绕Z轴,再绕Y轴,最后绕X轴 飞行器、无人机
ZYZ 先绕Z轴,再绕Y轴,最后绕Z轴 机器人关节
XYZ(固定角) 绕固定坐标系的三轴依次旋转 并联机构平台

避坑指南:欧拉角有个致命问题——万向锁。当第二个旋转角为±90°时,第一个和第三个旋转轴会重合,导致失去一个自由度。我曾经在调试一个三自由度并联机构时遇到这个问题,动平台突然卡死,怎么算都算不出逆解。后来改用旋转矩阵才解决。

2.4 齐次变换矩阵

齐次变换矩阵,就是把旋转和平移打包在一起。它是一个4×4的矩阵:

T = [R    p;
     0    1]

其中R是3×3旋转矩阵,p是3×1平移向量。最后一行是[0 0 0 1]。

为什么要用齐次变换矩阵?说白了,就是为了把旋转和平移统一成一个矩阵乘法。这样,连续变换就可以用矩阵乘法串联起来,非常方便。

举个例子。并联机构的运动学链,从基座到动平台,中间经过多个关节。每个关节的变换都可以用一个齐次变换矩阵表示。整条链的变换,就是这些矩阵的乘积。

我在做六自由度并联机构的运动学建模时,就是用齐次变换矩阵把每条支链的变换关系写清楚。然后求逆解时,再把这些矩阵拆开,提取位置和姿态信息。

齐次变换矩阵的逆也很简单:

T^(-1) = [R^T    -R^T * p;
          0       1]

这个性质在运动学求解中非常有用。比如,已知动平台位姿,求基座到各关节的变换,就需要用到逆矩阵。

关键点:齐次变换矩阵是并联机构运动学建模的基石。无论是正解还是逆解,都离不开它。我建议大家在写代码时,把齐次变换矩阵的运算封装成函数,这样后续调用起来方便很多。

2.5 本章知识体系

下面这张图,是我自己总结的运动学基础的知识结构。你可以看看,理一理思路。

运动学基础:知识体系 空间刚体运动描述 位置描述 三维向量 (x, y, z) 基座坐标系 姿态描述 旋转矩阵 (3×3) 欧拉角 (偏航/俯仰/滚转) 齐次变换矩阵 4×4矩阵 旋转 + 平移统一 应用:运动学正解 / 逆解 / 奇异性分析 串联变换 → 并联机构建模

这张图把本章的核心内容串起来了。从空间刚体运动描述出发,分三条线:位置、姿态、齐次变换。姿态又分旋转矩阵和欧拉角两种方式。最后都汇聚到运动学建模中。

我个人觉得,理解这张图比死记公式更重要。因为公式可以查,但知识结构得自己建立。

2.6 小结

好了,这一章的内容就这些。总结一下:

  • 刚体运动 = 位置 + 姿态
  • 旋转矩阵是描述姿态的数学工具,有正交性
  • 欧拉角直观但要注意旋转顺序和万向锁
  • 齐次变换矩阵把旋转和平移统一,是建模利器

这些基础打好了,后面讲奇异性分析时,你就能跟上节奏了。嗯,下一章我们聊聊速度与加速度分析,那是奇异性分析的前奏。


公众号:蓝海资料掘金营,微信deep3321