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算出来的速度就是误差。
注意:精对准的前提是载体必须静止。哪怕有一点点晃动,都会引入额外的加速度,滤波会发散。我见过有人把设备放在桌子上,桌子不稳,结果对准了十分钟还没收敛。
精对准的流程大致是这样的:
- 初始化:用粗对准结果设置初始姿态,状态协方差矩阵设大一点
- 时间更新:用IMU数据递推姿态、速度、位置
- 量测更新:用速度误差作为观测量,修正状态
- 收敛判断:当姿态误差协方差降到阈值以下,认为对准完成
这里我分享一个技巧:精对准的时间一般需要3-5分钟。但如果你用的是高精度光纤陀螺,可能1分钟就够了。MEMS的话,我建议至少等5分钟,让滤波器充分收敛。
避坑指南:我曾经遇到过精对准结果看起来很好,但一运动就发散的情况。后来发现是IMU的安装误差没标定。精对准只能修正姿态误差,标定误差得提前做掉。
4.3 动基座对准:运动中的挑战
动基座对准,说白了就是载体在运动过程中完成初始对准。这比静止对准难得多,因为加速度计和陀螺仪的测量值里混入了运动信息。
为什么需要动基座对准?你想想看,有些场景下设备根本没机会静止——比如导弹发射前在车上移动,或者无人机在空中启动惯导。这时候只能边运动边对准。
动基座对准的核心思路是:利用外部辅助信息来分离运动加速度和重力。常用的辅助信息包括:
- GNSS速度:提供速度参考,帮助区分重力加速度和运动加速度
- 里程计:提供载体前进方向的速度
- 视觉/激光:提供相对运动信息
我做过一个项目,车在颠簸路面上行驶,GNSS信号时断时续。动基座对准的难度在于,运动加速度和重力加速度混在一起,滤波器很难区分。后来我们加了一个「加速度判别」逻辑——当加速度计模值偏离重力太多时,降低量测噪声,让滤波器更相信陀螺仪。
我的建议:动基座对准的滤波器设计,状态量里一定要加「运动加速度」这个状态。把它当成有色噪声来建模,效果比白噪声假设好得多。
动基座对准的典型流程:
- 粗对准:利用GNSS速度推算航向(如果GNSS可用)
- 精对准:用GNSS/里程计辅助的卡尔曼滤波,逐步收敛姿态
- 收敛条件:一般需要载体有足够的机动——直线运动只能收敛俯仰和横滚,航向需要转弯才能收敛
这里有个关键点:动基座对准的收敛速度取决于载体的运动特性。如果一直匀速直线运动,航向角基本不收敛。我习惯在测试时让载体走一个「S」形路线,这样所有姿态角都能快速收敛。
警告:动基座对准对IMU的零偏稳定性要求很高。如果陀螺零偏不稳定,对准过程中会引入随时间累积的航向误差。我曾经用低端MEMS做过动基座对准,结果航向误差每分钟漂移0.5度,根本没法用。
三种对准方式的对比
嗯,最后用一张表总结一下:
| 对准方式 | 精度 | 时间 | 适用场景 | 主要挑战 |
|---|---|---|---|---|
| 粗对准 | 1-5度 | 几秒 | 快速初始化 | 低纬度航向不准 |
| 精对准 | 0.01-0.1度 | 3-5分钟 | 静止启动 | 需要静止环境 |
| 动基座对准 | 0.1-1度 | 几分钟到十几分钟 | 运动启动 | 运动加速度干扰 |
我个人觉得,三种对准方式没有绝对的好坏,关键看应用场景。能静止就做精对准,不能静止就做动基座对准,粗对准永远只是第一步。
最后说一句,初始对准这件事,理论不难,但工程上坑很多。我建议你在做项目时,先把静止精对准跑通,再考虑动基座。一步一个脚印,比什么都重要。