二、六自由度运动基础:刚体运动学、位置/姿态描述、欧拉角与四元数、自由度定义及坐标变换

Stewart平台的核心任务是精确控制动平台在三维空间中的位置与姿态,使其按照期望轨迹运动。要完成这一任务,首先必须建立一套严格的数学语言来描述刚体的空间状态。本章将系统梳理刚体运动学的基础概念,重点讲解位置与姿态的多种描述方法(旋转矩阵、欧拉角、四元数),明确六自由度的物理含义,并建立从世界坐标系到动平台坐标系的完整变换链路。这些内容是后续运动学解算、动力学建模与控制算法设计的数学基石。

六自由度运动描述与坐标变换知识框架 世界坐标系 {W} 固定于基座/地面 原点 O_W,轴 X_W Y_W Z_W 参考基准,静止不动 位置矢量 P = [x y z]ᵀ 动平台坐标系 {B} 固连于运动平台 原点 O_B,轴 X_B Y_B Z_B 随平台一起运动 姿态变换 R ∈ SO(3) 姿态描述方法 旋转矩阵 R 9元素,无奇异 欧拉角 (α,β,γ) 直观,有万向锁 四元数 q 4元素,无奇异 轴角 (n,θ) 几何直观 六自由度 (6-DOF) 定义 位置 (3) x, y, z 平动 姿态 (3) 滚转/俯仰/偏航 Stewart平台:6个驱动支路 → 6-DOF 过约束/欠约束需特殊处理 坐标变换 齐次变换矩阵 T ∈ SE(3) T = [R | P; 0 0 0 | 1] 复合变换:T_WB = T_WA · T_AB 用于运动学正/逆解 运动学应用 逆运动学 已知位姿 → 求杆长 正运动学 已知杆长 → 求位姿 工程要点 • 位置描述:P = [x, y, z]ᵀ ∈ R³,表示动坐标系原点在世界坐标系中的坐标 • 姿态描述:R ∈ SO(3),满足 RᵀR = I,det(R) = +1 • 欧拉角:ZYX 顺序常用于航空领域,但存在万向锁问题(β = ±90°) • 四元数:q = [w, x, y, z]ᵀ,单位四元数 ||q|| = 1,避免万向锁,插值平滑 • 坐标变换:T_WB = T_WA · T_AB,用于串联多个坐标系之间的位姿传递

2.1 刚体运动学核心原理

刚体是指在外力作用下形状和大小保持不变的物体,其内部任意两点之间的距离在运动过程中恒定不变。在Stewart平台中,动平台和静平台均可视为刚体。刚体在三维空间中的运动可以分解为平动(Translation)和转动(Rotation)两部分。平动描述刚体参考点(通常取质心或几何中心)的位置变化,转动描述刚体绕参考点的方向变化。刚体运动学研究的是位置、速度、加速度与时间的关系,而不考虑产生运动的原因(力与力矩)。

在数学描述上,刚体的完整位姿(Pose)由位置矢量 P 和姿态矩阵 R 组成,记为 (P, R)。位置矢量 P 是一个三维列向量,表示刚体坐标系原点在世界坐标系中的坐标;姿态矩阵 R 是一个 3×3 的正交矩阵,属于特殊正交群 SO(3)。R 的每一列表示刚体坐标系的基向量在世界坐标系中的方向余弦。因此,刚体运动学本质上是在研究 SE(3) 群(特殊欧氏群)上的变换关系。

2.2 位置与姿态的数学描述方法

位置描述相对简单,使用三维坐标即可。姿态描述则有多种方法,每种方法各有优劣,适用于不同的工程场景。下表对比了四种常用姿态描述方法:

描述方法 参数个数 优点 缺点 典型应用
旋转矩阵 R 9(6个约束) 无奇异,组合方便 冗余参数多,计算量大 理论推导、坐标变换
欧拉角 (α, β, γ) 3 直观,物理意义明确 存在万向锁问题,插值不平滑 飞行器姿态显示、人机交互
四元数 q 4(1个约束) 无奇异,插值平滑,计算效率高 不够直观,需转换理解 实时控制、惯性导航、动画
轴角 (n, θ) 4(1个约束) 几何意义清晰 插值需特殊处理,存在多值性 理论分析、旋转合成

在Stewart平台的实际控制中,欧拉角常用于操作员指令输入和状态显示(因为直观),而四元数则用于控制回路内部的姿态解算与插值(因为计算稳定且无奇异)。旋转矩阵作为中间桥梁,用于坐标系之间的矢量变换。

2.2.1 欧拉角的定义与万向锁问题

欧拉角通过三次绕坐标轴的旋转来定义姿态。最常见的顺序是 ZYX(偏航-俯仰-滚转),即先绕 Z 轴旋转偏航角 ψ,再绕新的 Y 轴旋转俯仰角 θ,最后绕新的 X 轴旋转滚转角 φ。旋转矩阵可表示为 R = Rz(ψ) · Ry(θ) · Rx(φ)。当俯仰角 θ = ±90° 时,第一次和第三次旋转的轴重合,导致系统丢失一个旋转自由度,这就是万向锁(Gimbal Lock)现象。在Stewart平台模拟飞行器或车辆运动时,如果出现接近垂直的姿态,欧拉角描述将导致控制指令奇异,因此必须切换到四元数描述。

2.2.2 四元数的数学定义与运算

四元数由一个实部和三个虚部组成:q = w + xi + yj + zk,通常写作 q = [w, x, y, z]ᵀ。单位四元数满足 w² + x² + y² + z² = 1,可用于表示三维旋转。四元数乘法满足哈密顿规则:i² = j² = k² = ijk = -1。两个四元数 q₁ 和 q₂ 的乘积表示先进行 q₁ 旋转再进行 q₂ 旋转的复合旋转。四元数的共轭 q* = [w, -x, -y, -z]ᵀ 表示逆旋转。在控制系统中,四元数插值(如 SLERP)可以生成平滑的姿态过渡轨迹,避免欧拉角插值时的抖动问题。

2.3 自由度定义与Stewart平台对应关系

自由度的严格定义是:描述一个力学系统状态所需的独立广义坐标的个数。对于三维空间中的自由刚体,其自由度为 6——3 个平动自由度(沿 X、Y、Z 轴的移动)和 3 个转动自由度(绕 X、Y、Z 轴的转动)。Stewart平台通过 6 个可伸缩支腿(通常由电动缸或液压缸驱动)连接静平台和动平台,理论上可以实现动平台在空间中的全部 6 个自由度运动。

然而,实际工程中需要注意以下几点:

  • 奇异位形:当平台运动到某些特殊位置时,雅可比矩阵可能降秩,导致平台在某些方向上失去控制能力或产生极大的驱动力。设计时应通过工作空间分析避开奇异点。
  • 冗余驱动:如果支腿数量大于 6,系统变为冗余驱动,需要额外的力分配算法;如果小于 6,则为欠驱动系统,无法实现完整的六自由度运动。
  • 自由度耦合:平台的平动和转动并非完全独立,尤其是在大角度姿态下,位置和姿态之间存在非线性耦合,运动学解算时必须统一考虑。

2.4 坐标变换与齐次变换矩阵

在Stewart平台中,存在多个坐标系:世界坐标系 {W}(固定于地面)、静平台坐标系 {S}(固定于静平台中心)、动平台坐标系 {B}(固定于动平台中心)、以及每个支腿的局部坐标系。运动学解算的核心任务就是在这些坐标系之间进行位姿变换。

齐次变换矩阵 T 将旋转和平移统一在一个 4×4 矩阵中:

T = | R   P |
    | 0   1 |

其中 R 为 3×3 旋转矩阵,P 为 3×1 位置矢量。齐次变换矩阵属于 SE(3) 群,其逆矩阵为:

T⁻¹ = | Rᵀ  -Rᵀ·P |
       | 0     1    |

坐标变换的链式法则为:T_WB = T_WS · T_SB,其中 T_WS 表示静平台坐标系相对于世界坐标系的变换(通常为固定值),T_SB 表示动平台相对于静平台的变换(由六个支腿长度决定)。通过逆运动学,我们可以根据期望的 T_WB 反解出每个支腿的长度;通过正运动学,我们可以根据实测的支腿长度计算出当前的 T_WB。

实战场景:飞行模拟器姿态指令解算

假设某飞行模拟器需要模拟飞机以 30° 俯仰角、10° 滚转角、5° 偏航角爬升。操作员输入欧拉角 (ψ=5°, θ=30°, φ=10°)。控制系统首先将欧拉角转换为四元数 q = [0.943, 0.127, 0.229, 0.044](示例值),然后计算旋转矩阵 R,再结合期望位置 P = [0.2, 0.1, 1.5] 米,构建齐次变换矩阵 T_WB。接着通过逆运动学求解六个电动缸的目标长度。若直接使用欧拉角进行插值,当俯仰角接近 90° 时会出现万向锁,导致滚转和偏航指令混乱;而使用四元数 SLERP 插值,则姿态过渡平滑且无奇异。

2.5 常见误区与工程复盘

在六自由度运动基础的学习和工程应用中,以下误区值得特别注意:

  • 误区一:混淆欧拉角旋转顺序。不同的旋转顺序(ZYX、ZYZ、XYZ 等)会产生不同的旋转矩阵。在团队协作中,必须统一约定旋转顺序,否则会导致姿态解算错误。建议在代码中明确注释旋转顺序,并编写单元测试验证。
  • 误区二:忽视四元数的单位化。由于数值积分误差或计算舍入,四元数可能偏离单位长度,导致旋转矩阵不正交。每次更新四元数后必须重新归一化。
  • 误区三:坐标变换方向搞反。T_WB 表示从 {B} 到 {W} 的变换,即把 {B} 中的坐标转换到 {W} 中。如果误用 T_BW,会导致位置和姿态完全错误。建议在代码中统一命名规范,如 transform_world_to_body。
  • 误区四:忽略平台结构参数的影响。铰点位置、支腿初始长度等结构参数直接影响运动学模型。在仿真和实机调试前,务必使用激光跟踪仪或三坐标测量仪标定实际结构参数,而不是直接使用 CAD 理论值。

风险提示:在将欧拉角转换为四元数时,注意角度单位(度/弧度)的一致性。在 C++ 或 Python 代码中,建议使用弧度制进行内部计算,仅在用户界面层转换为度。此外,当平台运动速度较高时,姿态更新频率需满足奈奎斯特采样定理,否则会出现运动失真。

2.6 本章小结与知识结构复盘

本章建立了六自由度运动描述的完整数学框架。核心要点归纳如下:

知识点 关键公式/定义 工程应用要点
位置描述 P = [x, y, z]ᵀ 相对于世界坐标系原点
旋转矩阵 R ∈ SO(3),RᵀR = I 用于矢量旋转,组合方便
欧拉角 R = Rz(ψ)·Ry(θ)·Rx(φ) 直观,但存在万向锁
四元数 q = [w, x, y, z]ᵀ,||q||=1 无奇异,适合实时控制
齐次变换 T = [R P; 0 1] 统一处理旋转和平移
自由度 6 = 3 平动 + 3 转动 Stewart平台实现6-DOF