4、初始对准:粗对准、精对准、动基座对准

说到初始对准,我脑子里第一个蹦出来的画面,是多年前在戈壁滩上抱着惯导设备等卫星信号的场景。那时候GPS信号被干扰,设备在地上躺了半小时还没完成对准,急得我直冒汗。

说白了,初始对准就是让惯导系统知道「自己朝哪边」。你想想看,一个刚上电的IMU,它只知道自己在转、在加速,但不知道东南西北。没有这个初始姿态,后面算出来的位置全是错的。

核心观点:初始对准的质量,直接决定了整个导航系统的成败。我见过太多项目,因为对准这一步没做好,后面花再多精力滤波也救不回来。

4.1 粗对准:先找个大概方向

粗对准,说白了就是快速估算出初始姿态。精度不用太高,但速度要快。我习惯把它叫做「找北的快速方法」。

原理其实很简单:利用重力加速度和地球自转角速度。重力告诉你「下」在哪,地球自转告诉你「北」在哪。IMU静止时,加速度计测到的是重力矢量,陀螺仪测到的是地球自转角速度矢量。这两个矢量一结合,姿态就出来了。

我的经验:粗对准一般只需要几秒钟。我在项目中遇到过,有些IMU噪声太大,粗对准结果飘得离谱。这时候我会多采几秒数据,做个平均,效果会好很多。

具体怎么算?嗯,这里给个简化版的思路:

// 伪代码:粗对准姿态计算
// 加速度计输出:ax, ay, az
// 陀螺仪输出:wx, wy, wz

// 1. 计算俯仰角和横滚角(利用重力)
pitch = atan2(-ax, sqrt(ay*ay + az*az))
roll  = atan2(ay, az)

// 2. 计算航向角(利用地球自转)
// 注意:只有在高纬度地区,水平分量才明显
w_north = wx * cos(pitch) + wy * sin(pitch) * sin(roll) + wz * sin(pitch) * cos(roll)
yaw = -atan2(w_north, wy * cos(roll) - wz * sin(roll))

这里有个坑——低纬度地区地球自转水平分量很小,陀螺仪噪声稍微大点,航向角就完全不准了。我曾经在赤道附近做过测试,粗对准的航向误差能到十几度。所以,粗对准只适合作为精对准的初始值。

4.2 精对准:把精度提上去

粗对准给了你一个大概方向,精对准就是在这个基础上,用滤波算法把姿态误差压到毫弧度量级。

我个人最常用的是卡尔曼滤波。状态量一般取姿态误差、速度误差、位置误差,再加上陀螺和加速度计的零偏。观测量就是速度误差——因为静止时速度应该是零,IMU算出来的速度就是误差。

注意:精对准的前提是载体必须静止。哪怕有一点点晃动,都会引入额外的加速度,滤波会发散。我见过有人把设备放在桌子上,桌子不稳,结果对准了十分钟还没收敛。

精对准的流程大致是这样的:

  1. 初始化:用粗对准结果设置初始姿态,状态协方差矩阵设大一点
  2. 时间更新:用IMU数据递推姿态、速度、位置
  3. 量测更新:用速度误差作为观测量,修正状态
  4. 收敛判断:当姿态误差协方差降到阈值以下,认为对准完成

这里我分享一个技巧:精对准的时间一般需要3-5分钟。但如果你用的是高精度光纤陀螺,可能1分钟就够了。MEMS的话,我建议至少等5分钟,让滤波器充分收敛。

避坑指南:我曾经遇到过精对准结果看起来很好,但一运动就发散的情况。后来发现是IMU的安装误差没标定。精对准只能修正姿态误差,标定误差得提前做掉。

4.3 动基座对准:运动中的挑战

动基座对准,说白了就是载体在运动过程中完成初始对准。这比静止对准难得多,因为加速度计和陀螺仪的测量值里混入了运动信息。

为什么需要动基座对准?你想想看,有些场景下设备根本没机会静止——比如导弹发射前在车上移动,或者无人机在空中启动惯导。这时候只能边运动边对准。

动基座对准的核心思路是:利用外部辅助信息来分离运动加速度和重力。常用的辅助信息包括:

  • GNSS速度:提供速度参考,帮助区分重力加速度和运动加速度
  • 里程计:提供载体前进方向的速度
  • 视觉/激光:提供相对运动信息

我做过一个项目,车在颠簸路面上行驶,GNSS信号时断时续。动基座对准的难度在于,运动加速度和重力加速度混在一起,滤波器很难区分。后来我们加了一个「加速度判别」逻辑——当加速度计模值偏离重力太多时,降低量测噪声,让滤波器更相信陀螺仪。

我的建议:动基座对准的滤波器设计,状态量里一定要加「运动加速度」这个状态。把它当成有色噪声来建模,效果比白噪声假设好得多。

动基座对准的典型流程:

  1. 粗对准:利用GNSS速度推算航向(如果GNSS可用)
  2. 精对准:用GNSS/里程计辅助的卡尔曼滤波,逐步收敛姿态
  3. 收敛条件:一般需要载体有足够的机动——直线运动只能收敛俯仰和横滚,航向需要转弯才能收敛

这里有个关键点:动基座对准的收敛速度取决于载体的运动特性。如果一直匀速直线运动,航向角基本不收敛。我习惯在测试时让载体走一个「S」形路线,这样所有姿态角都能快速收敛。

警告:动基座对准对IMU的零偏稳定性要求很高。如果陀螺零偏不稳定,对准过程中会引入随时间累积的航向误差。我曾经用低端MEMS做过动基座对准,结果航向误差每分钟漂移0.5度,根本没法用。

三种对准方式的对比

嗯,最后用一张表总结一下:

对准方式 精度 时间 适用场景 主要挑战
粗对准 1-5度 几秒 快速初始化 低纬度航向不准
精对准 0.01-0.1度 3-5分钟 静止启动 需要静止环境
动基座对准 0.1-1度 几分钟到十几分钟 运动启动 运动加速度干扰

我个人觉得,三种对准方式没有绝对的好坏,关键看应用场景。能静止就做精对准,不能静止就做动基座对准,粗对准永远只是第一步。

初始对准知识体系 初始对准 粗对准 精对准 动基座对准 利用重力+地球自转 精度:1-5度 时间:几秒钟 卡尔曼滤波 精度:0.01-0.1度 时间:3-5分钟 GNSS/里程计辅助 精度:0.1-1度 需要机动运动 粗对准 → 精对准 → 动基座对准(递进关系)

最后说一句,初始对准这件事,理论不难,但工程上坑很多。我建议你在做项目时,先把静止精对准跑通,再考虑动基座。一步一个脚印,比什么都重要。

专注资料整理