2. 常用参考坐标系:惯性系、地球系、导航系(东北天)、载体坐标系及其转换关系

各位同学,咱们今天聊点实在的。坐标系这个东西,说白了就是给惯性导航找个「家」。你想想看,没有坐标系,你连「我在哪儿」都说不清楚,更别提对准了。我刚开始接触捷联惯导那会儿,就被这几个坐标系绕得晕头转向。后来在项目里摔过几次跟头,才慢慢摸透了它们的脾气。

2.1 惯性坐标系(i系)—— 绝对参考的「老大哥」

惯性系,是所有坐标系里最「轴」的一个。它不随地球自转,也不随你运动。我习惯把它想象成宇宙中一个绝对静止的角落。牛顿第一定律在它里面成立,陀螺仪测量的角速度也是相对于它的。

定义要点:

  • 原点:地球质心(或者太阳质心,看应用场景)
  • Z轴:指向地球自转轴(北极方向)
  • X轴:指向春分点(或者某个固定恒星方向)
  • Y轴:右手定则确定

我个人经验:在初始对准中,惯性系是「锚」。你所有的姿态解算,最终都要回到这个绝对参考系里。我曾经在船载惯导项目里,因为忽略了地球自转角速度在惯性系下的投影,导致对准精度差了0.1度。嗯,那一次被总工叫去喝茶了。

2.2 地球坐标系(e系)—— 跟着地球转的「地头蛇」

地球系,说白了就是固连在地球上的坐标系。它跟着地球一起转,所以你看地面上的经纬度,都是在这个系里定义的。

定义要点:

  • 原点:地球质心
  • Z轴:指向地球自转轴(北极)
  • X轴:指向本初子午线与赤道的交点
  • Y轴:右手定则,指向东经90度方向

你可能会问:「惯性系和地球系有什么区别?」其实很简单——地球系相对于惯性系有一个自转角速度,大约是15.041度/小时。这个值在初始对准里特别重要,尤其是静基座对准时,你得用这个角速度来估计初始姿态。

避坑指南:我曾经在代码里把地球自转角速度写成了15度/小时,结果对准结果一直收敛不到理想值。后来查了半天,才发现是精度问题。记住,工程上一般用15.041067度/小时,或者直接用弧度制:7.292115×10⁻⁵ rad/s。

2.3 导航坐标系(n系)—— 东北天,你最熟悉的「邻居」

导航系,也叫东北天坐标系。这是咱们做惯导最常用的一个系。为什么?因为它直观啊!东、北、天,三个方向清清楚楚,你开车导航时说的「向东走500米」,就是在导航系里说的。

定义要点:

  • 原点:载体所在位置(比如你的IMU中心)
  • X轴:指向东(E)
  • Y轴:指向北(N)
  • Z轴:指向天顶(U),与当地垂线方向一致

这里有个细节要注意:导航系的Z轴是「天向」,不是「地心方向」。因为地球是椭球体,垂线方向并不严格指向地心。嗯,这个在重力场模型里会体现出来,咱们后面再细说。

我建议:在做初始对准时,尽量把导航系作为「参考基准」。你的加速度计测量值、陀螺仪测量值,最终都要转换到导航系里才能用。我记得有一次做车载对准,因为搞混了导航系和载体系,算出来的姿态角全是反的。那感觉,就像你明明往北走,导航却告诉你往南。

2.4 载体坐标系(b系)—— IMU自己的「小天地」

载体系,就是固连在IMU或者载体上的坐标系。它跟着载体一起动,所以陀螺仪和加速度计测到的原始数据,都是在这个系里的。

定义要点:

  • 原点:IMU的测量中心(或者载体的质心)
  • X轴:指向载体的右方(或者前方,看安装方式)
  • Y轴:指向载体的前方(或者左方)
  • Z轴:指向载体的上方(与载体平面垂直)

这里有个常见的坑:不同厂家的IMU,载体系的定义可能不一样。有的把X轴定义为前向,有的定义为右向。你拿到IMU后,第一件事就是看数据手册,搞清楚它的坐标系定义。

注意:我曾经在一个项目里,用了两个不同厂家的IMU,结果它们的载体系定义正好相反。我没有仔细核对,直接把数据拿来用,导致融合后的姿态解算完全乱套。从那以后,我养成了一个习惯:每次拿到新IMU,先做一个简单的旋转测试,验证坐标系方向。

2.5 坐标系之间的转换关系—— 从b系到n系的「桥梁」

好了,四个坐标系都介绍完了。现在的问题是:怎么把它们串起来?

初始对准的核心任务之一,就是求载体系到导航系的转换矩阵,也就是姿态矩阵。这个矩阵通常用方向余弦矩阵(DCM)或者四元数来表示。

常见的转换路径:

  1. b系 → n系:这是最常用的转换。通过姿态矩阵C_b^n,把IMU的测量值从载体系转到导航系。
  2. n系 → e系:通过经纬度信息,把导航系下的位置转到地球系。
  3. e系 → i系:通过地球自转角速度,把地球系转到惯性系。

你想想看,整个转换链条其实就是一个「坐标变换的流水线」。从IMU的原始数据开始,经过b→n→e→i,最终得到你在惯性系下的绝对姿态。

核心公式:

// 方向余弦矩阵的链式法则
C_b^n = C_e^n * C_i^e * C_b^i

// 或者更常用的形式(直接b到n)
C_b^n = f(俯仰角, 横滚角, 航向角)

在实际工程中,我一般用四元数来更新姿态矩阵。为什么?因为四元数没有万向锁问题,而且计算量小。我记得有一次做高动态飞行器的对准,用欧拉角算到一半就卡住了,换成四元数后一切顺利。

2.6 一个小例子:静基座对准中的坐标系转换

咱们来看一个实际场景。假设你有一个IMU放在地面上不动,你要做静基座初始对准。

步骤是这样的:

  1. IMU测量到的是b系下的加速度和角速度。
  2. 你知道在n系下,重力加速度是[0, 0, g]ᵀ,地球自转角速度是[0, ωₑcosφ, ωₑsinφ]ᵀ(φ是当地纬度)。
  3. 通过对比b系测量值和n系理论值,你可以反推出姿态矩阵C_b^n。

这里有个关键点:你不需要知道绝对位置,只需要知道重力方向和地球自转方向。这就是静基座对准的基本原理。

我个人的小技巧:在做对准时,先把b系和n系的对齐关系画出来。我习惯在纸上画一个简单的示意图,标出各个轴的方向。这样不容易搞混。你试试看,真的很有用。

2.7 总结一下

四个坐标系,各有各的用途:

  • 惯性系:绝对参考,陀螺仪测量的基准。
  • 地球系:经纬度的家,跟着地球转。
  • 导航系:东北天,最直观,对准的目标系。
  • 载体系:IMU自己的坐标系,原始数据的来源。

它们之间的转换关系,就是初始对准的数学基础。你把这些搞清楚了,后面的卡尔曼滤波、姿态解算,都会顺很多。

嗯,今天就先聊到这儿。下一节咱们讲姿态的表示方法——欧拉角、四元数、方向余弦矩阵,看看它们各自有什么脾气。