第一章 坐标系与姿态表示

各位同学好,我是你们这门课的老朋友。今天咱们来聊聊惯性导航里最基础、也最绕不开的话题——坐标系和姿态表示。

说实话,我刚开始做惯导那会儿,被坐标系绕得晕头转向。地球坐标系、导航坐标系、载体坐标系……光名字就够记一阵子的。后来在项目里摔过几次跟头,才真正明白:坐标系选不对,后面全白费。

1.1 三大坐标系

先说说最常用的三个坐标系。你想想看,惯导系统要工作,总得知道自己在哪、朝哪飞吧?这就离不开坐标系。

地球坐标系(e系)

地球坐标系,简称e系。原点在地心,Z轴指向北极,X轴指向本初子午线与赤道的交点,Y轴按右手定则补齐。说白了,就是固定在地球上的一个坐标系。

我在做捷联惯导时,经常要处理地球自转角速度。这个量在e系里很简单——就是绕Z轴转,每秒15度。但在其他坐标系里,就得做坐标变换了。

导航坐标系(n系)

导航坐标系,也叫n系。通常选“东北天”或者“北东地”。我个人习惯用东北天,因为直观。原点就在载体所在位置,X轴指向东,Y轴指向北,Z轴指向天顶。

为什么要用n系?因为导航解算出来的位置、速度,最终要给人看。人理解的是“向东多少米、向北多少米”,而不是“在地心坐标系下的三维坐标”。

载体坐标系(b系)

载体坐标系,b系。原点在载体重心,X轴指向载体前方,Y轴指向右侧,Z轴指向下方。这个坐标系是跟着载体一起动的。

IMU(惯性测量单元)输出的加速度和角速度,都是在b系下的。你得把它们转换到n系,才能做导航解算。嗯,这里要注意:转换不对,导航结果就是错的。

核心要点:

  • e系:固定在地球上,用于描述地球自转
  • n系:跟随载体,用于导航解算
  • b系:固定在载体上,IMU原始数据所在坐标系

1.2 姿态表示方法

姿态表示,说白了就是描述b系相对于n系怎么转的。常用的有四种:欧拉角、方向余弦矩阵、四元数、等效旋转矢量。

欧拉角

欧拉角最直观。三个角度:航向角ψ、俯仰角θ、横滚角γ。分别绕Z轴、Y轴、X轴旋转。

但欧拉角有个大坑——万向锁。当俯仰角接近±90度时,航向角和横滚角会耦合,丢失一个自由度。我在做无人机飞控时遇到过这个问题,飞机垂直爬升时姿态解算直接炸了。

所以,欧拉角只适合小角度或者非全姿态的场景。全姿态导航,别用欧拉角。

方向余弦矩阵(DCM)

方向余弦矩阵,也叫姿态矩阵。它是一个3×3的正交矩阵,每一列代表b系的一个轴在n系下的投影。

DCM的好处是:没有奇异点,可以描述任意姿态。但缺点是:9个元素,计算量大。而且每次更新后要重新正交化,否则误差会累积。

我曾经在项目里用DCM做姿态解算,跑了一段时间后矩阵不再正交,姿态误差越来越大。后来加了正交化修正,才稳定下来。

四元数

四元数,我个人最喜欢用的姿态表示方法。一个四元数q = [q0, q1, q2, q3]^T,四个参数,没有奇异点,计算量小。

四元数更新方程很简单:

dq/dt = 0.5 * q ⊗ ω

其中ω是角速度,⊗表示四元数乘法。每次更新后,只需要归一化一下,保证模长为1就行。

我建议初学者直接学四元数。虽然概念上不如欧拉角直观,但用起来真香。

等效旋转矢量

等效旋转矢量,也叫罗德里格斯参数。它用一个三维向量φ来描述旋转,方向是旋转轴,大小是旋转角度。

这个表示法在圆锥运动补偿中特别有用。圆锥运动是惯导系统最头疼的误差源之一,用等效旋转矢量可以很好地补偿。

我记得在车载惯导项目中,车辆转弯时角速度变化剧烈,用四元数直接积分会引入圆锥误差。后来改用等效旋转矢量做补偿,精度提升了一个数量级。

避坑指南:

我曾经在代码里混用四元数和欧拉角,结果姿态解算时对时错。后来统一用四元数,再也没出过问题。记住:一个系统里只用一种姿态表示法,别混着用。

1.3 坐标系转换实战

理论说完了,咱们来点实际的。假设IMU输出的角速度是ω_b,加速度是a_b,都在b系下。要转换到n系,需要姿态矩阵C_b^n。

用四元数表示姿态矩阵:

C_b^n = [
  [q0^2+q1^2-q2^2-q3^2, 2(q1q2-q0q3), 2(q1q3+q0q2)],
  [2(q1q2+q0q3), q0^2-q1^2+q2^2-q3^2, 2(q2q3-q0q1)],
  [2(q1q3-q0q2), 2(q2q3+q0q1), q0^2-q1^2-q2^2+q3^2]
]

然后加速度转换:

a_n = C_b^n * a_b

角速度转换稍微复杂点,因为要考虑地球自转和载体运动引起的哥氏项。这个后面章节会详细讲。

注意事项:

  • 四元数更新时,角速度单位必须是弧度/秒
  • 每次更新后要归一化,否则模长会漂移
  • 初始姿态要准确,否则后面误差会越来越大

1.4 小结

这一章咱们聊了坐标系和姿态表示。说白了,坐标系就是给导航问题找个参考系,姿态表示就是描述载体怎么转的。

我个人建议:

  • 坐标系用东北天(n系),直观好理解
  • 姿态表示用四元数,计算量小、无奇异点
  • 遇到圆锥运动时,用等效旋转矢量做补偿

下一章咱们会讲惯性传感器原理和误差模型。到时候我会分享一些标定和补偿的实战经验,敬请期待。

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