3. 姿态描述与坐标系

在无人机云台控制中,姿态描述是所有控制算法的起点。云台要回答三个基本问题:我现在指向哪里、目标在哪里、我该如何转过去。要准确回答这些问题,必须先建立统一的坐标系体系,并选择合适的方法描述姿态。本节从坐标系定义出发,逐步引出欧拉角、旋转矩阵与四元数三种姿态表示方法,并说明它们在云台工程中的适用场景。

一、四个核心坐标系的定义与关系

无人机云台系统通常涉及四个坐标系,它们构成一条从全局到局部的描述链:

  • 惯性坐标系(I系):也称世界坐标系或导航坐标系,原点固定于地面某点,X轴指向北、Y轴指向东、Z轴指向地(NED)或天(ENU)。它不随无人机运动变化,是描述绝对姿态的基准。
  • 机体坐标系(B系):原点位于无人机质心,X轴指向机头、Y轴指向右翼、Z轴指向机腹。它随无人机姿态变化,反映飞行器自身的朝向。
  • 云台坐标系(G系):原点位于云台关节中心,各轴与云台负载(相机)固连。云台坐标系相对机体坐标系的旋转,就是云台关节角产生的补偿量。
  • 相机/负载坐标系(C系):与光轴对齐,Z轴沿光轴指向目标,用于描述成像方向与视场。

四者关系可概括为:惯性系是绝对基准,机体系描述飞行器姿态,云台系描述负载相对机体的补偿,相机系描述最终指向。云台控制的核心目标,就是让相机系在惯性系中保持期望指向,而不受机体姿态扰动影响。

无人机云台姿态描述坐标系链 惯性坐标系 I 原点:地面固定点 X:北 Y:东 Z:地 绝对基准,不随运动变化 机体坐标系 B 原点:无人机质心 X:机头 Y:右翼 Z:机腹 随飞行器姿态变化 云台坐标系 G 原点:云台关节中心 与负载固连 描述关节补偿量 相机坐标系 C Z轴沿光轴指向目标 描述成像方向与视场 R_IB 飞行器姿态 R_BG 关节角补偿 R_GC 安装偏差 姿态链核心关系 R_IC = R_IB · R_BG · R_GC 云台控制目标:使 R_IC 保持期望值,抵消 R_IB 的扰动 即 R_BG = R_IB⁻¹ · R_IC_desired · R_GC⁻¹

二、欧拉角:直观但存在万向节死锁

欧拉角用三个角度描述姿态,最常见的是航空领域的偏航-俯仰-滚转(Yaw-Pitch-Roll)序列。对于云台而言,三轴云台通常对应偏航轴、俯仰轴和滚转轴,每个轴的角度直接对应一个关节的机械转角,因此欧拉角在云台控制中非常直观。

以Z-Y-X内旋序列为例,从惯性系到机体系的旋转矩阵可表示为:

R = Rz(yaw) · Ry(pitch) · Rx(roll)

其中:
Rx(roll)  = [[1, 0, 0],
             [0, cos(roll), -sin(roll)],
             [0, sin(roll),  cos(roll)]]

Ry(pitch) = [[cos(pitch), 0, sin(pitch)],
             [0, 1, 0],
             [-sin(pitch), 0, cos(pitch)]]

Rz(yaw)   = [[cos(yaw), -sin(yaw), 0],
             [sin(yaw),  cos(yaw), 0],
             [0, 0, 1]]

欧拉角的优点是物理意义明确、参数少、便于人机交互。但它存在两个严重问题:一是旋转顺序不同结果不同,必须约定统一序列;二是当俯仰角接近±90°时,偏航与滚转轴重合,出现万向节死锁,导致姿态解算奇异。云台在垂直向下拍摄时,俯仰角接近-90°,正是死锁高发区。

三、旋转矩阵:无奇异但冗余

旋转矩阵是3×3正交矩阵,行列式为1,直接描述两个坐标系之间的基变换关系。它的最大优点是无奇异点,任意姿态都能唯一表示,且旋转的复合就是矩阵乘法,非常适合级联计算。

旋转矩阵的缺点也很明显:9个元素中只有3个独立自由度,存在6个约束,计算和存储冗余;长期迭代后数值误差会破坏正交性,需要定期重正交化。在云台控制中,旋转矩阵常用于姿态链的级联推导和坐标变换,但很少直接作为状态量进行积分。

四、四元数:云台姿态解算的主流选择

四元数用一个标量和三个矢量分量表示旋转,形式为 q = [w, x, y, z],满足 w² + x² + y² + z² = 1。它没有奇异点,参数只有4个,计算效率高,插值平滑,是现代飞控和云台姿态解算的主流表示方法。

四元数与旋转矩阵的转换关系如下:

// 四元数转旋转矩阵
R = [[1-2(y²+z²),   2(xy-wz),   2(xz+wy)],
     [  2(xy+wz), 1-2(x²+z²),   2(yz-wx)],
     [  2(xz-wy),   2(yz+wx), 1-2(x²+y²)]]

// 四元数微分方程(姿态更新)
q_dot = 0.5 * q ⊗ ω

其中 ω = [0, ωx, ωy, ωz] 为机体角速度

在云台控制中,四元数用于姿态估计、姿态误差计算和姿态插值。例如,云台目标姿态与当前姿态之间的误差,可以用四元数误差 q_err = q_current⁻¹ ⊗ q_target 表示,再转换为轴角形式驱动关节运动。

五、三种姿态表示方法对比

对比项 欧拉角 旋转矩阵 四元数
参数个数 3 9 4
自由度 3 3(含6约束) 3(含1约束)
奇异点 有(万向节死锁) 无 无
复合运算 需按序三角函数 矩阵乘法 四元数乘法
插值质量 差,需特殊处理 需正交化 好,SLERP平滑
云台典型用途 关节角指令、人机交互 坐标变换、级联推导 姿态估计、误差计算、插值

六、工程案例:三轴云台姿态链计算

假设某三轴云台安装在无人机上,飞控输出机体姿态四元数 q_IB,云台关节角为[yaw_g, pitch_g, roll_g],相机安装偏差已知为 q_GC。要计算相机在惯性系中的指向,流程如下:

  1. 将云台关节角转换为四元数 q_BG。
  2. 计算相机在机体系中的姿态:q_BC = q_BG ⊗ q_GC。
  3. 计算相机在惯性系中的姿态:q_IC = q_IB ⊗ q_BC。
  4. 提取 q_IC 的偏航、俯仰角,与目标指向比较,生成控制误差。
  5. 将误差分配到三个关节,经PID或LQR控制器输出电机指令。
关键点:云台控制的目标不是让关节角等于某个固定值,而是让 q_IC 保持期望指向。当机体姿态 q_IB 变化时,q_BG 必须反向补偿,这就是云台增稳的本质。

七、常见误区与复盘

  • 误区一:混用旋转顺序。欧拉角必须明确旋转序列和内外旋约定,否则同一组角度对应不同姿态。工程中应在接口文档中固定Z-Y-X内旋序列。
  • 误区二:忽略安装偏差。相机光轴与云台机械轴往往不重合,q_GC 必须标定,否则指向精度会随姿态变化产生周期性误差。
  • 误区三:四元数未归一化。迭代更新后四元数模长会漂移,必须定期归一化,否则旋转矩阵会出现缩放和畸变。
  • 误区四:在死锁区直接使用欧拉角误差。当俯仰接近±90°时,应切换到四元数误差计算,避免控制量突变。
工程建议:内部姿态解算和误差计算统一使用四元数;对外接口和人机交互使用欧拉角;坐标变换和级联推导使用旋转矩阵。三者之间通过标准转换函数互转,形成清晰的姿态处理流水线。

掌握坐标系定义和三种姿态表示方法,是后续云台姿态解算、增稳控制和目标跟踪的数学基础。实际工程中,应根据计算环节的特点选择最合适的表示方法,而不是全程只用一种。