1. 为什么要做这套测试:车载和纯惯导两条线分别验证什么
1.1 组合导航系统到底测什么
Sigma这套车规级高精度组合导航系统,干的事其实是把GNSS(全球导航卫星系统)接收机和IMU(惯性测量单元)的数据融合到一起,输出连续、平滑、高精度的位置、姿态和速度信息。普通人对这东西可能没概念,但做过自动驾驶或者高精度地图的人都知道,单靠GNSS在城市里根本撑不住——高架下面、隧道里面、树荫遮挡严重的路段,卫星信号一跳,定位就飘出去好几米。这时候IMU就顶上来了,它根据角速度和加速度推算相对运动,在GNSS信号中断的几十秒里维持住位置和姿态精度。所谓"组合导航",就是让这两个传感器各取所长,GNSS提供绝对基准,IMU提供短时高精度递推,最后靠卡尔曼滤波把两者融合成一个可信结果。
但问题是,IMU不是什么型号都能直接往车规产品里塞。车规级意味着温度范围要覆盖-40℃到85℃,振动环境下零偏要稳定,寿命周期内性能不能明显退化,还要满足功能安全方面的要求。很多工规或航模级IMU在实验室里数据好看,一上车经过夏天地面高温和连续颠簸就露馅。所以这套测试报告里,除了看算法精度,更要看这套系统在车规严苛条件下,是不是还能维持住标称的性能指标。
还有一个容易被忽略的点:组合导航系统的测试,不能只测GNSS信号好的情况。信号好的时候,RTK固定解本身就有厘米级精度,IMU参不参与都无所谓,真正见水平的是信号被遮挡、卫星出现周跳、甚至全部失锁的瞬间。这也是我做这套测试时把场景分成两条线的原因——一条线是车载动态跑各种真实道路,重点看组合导航在复杂环境里的表现;另一条线是纯惯导测试,直接把GNSS关掉,看系统在没有绝对基准的情况下能维持多久、精度怎么退化。这两条线合起来,才算完整验证了这套系统在真实工况下的可靠性,也才能回答用户最关心的问题:信号差的时候到底还能不能用。
1.2 车载与纯惯导两条测试线各自验证什么
车载测试这条线,核心是验证"组合"的效果。我会特意挑高架下面、两侧高楼密集的商务区、林荫道、隧道、地下车库这类场景,人为制造GNSS信号衰减和卫星几何差的条件,看组合导航能不能及时切换约束方式,把误差控制在合理范围内。车载体还涉及车辆运动学约束的引入,比如轮速脉冲、车身侧滑约束、零速检测,这些都需要在真实行驶工况里验证。转弯、急刹车、变道这些动态动作对加速度计和陀螺仪的冲击比较大,正好能检验IMU的动态性能。
纯惯导测试这条线,问题就变成"IMU自己行不行"。在GNSS完全失效的情况下,系统要靠IMU积分来计算位置,误差会随时间累积。静止状态下主要是陀螺零偏引起航向漂移,航向一偏,位置就往垂直方向跑;运动状态下还要叠加加速度计零偏和标度因数误差的影响。这条线测的是IMU的本底性能,也是组合导航算法在"绝望时刻"的兜底能力。最后的指标通常用漂移率来表达,比如"10分钟内水平漂移不超过XX米"。这个数字直接决定了系统在长隧道、连续地下车库等场景下能不能用。
两条线测完,其实还需要做一次交叉验证:纯惯导的结果要和车载组合导航在GNSS短暂失锁时表现出的误差做对比,看系统在动态环境下惯导段的表现是否和静态或匀速段一致。如果差别太大,说明还有误差源没扣干净,比如温度变化引起的IMU偏差漂移,或者车辆振动引入的额外噪声。
2. 测试环境搭建与设备方案
2.1 参考真值系统怎么搭
组合导航系统测试的前提,是有一台精度高一个数量级的"真值设备"。我们用的是后处理差分GNSS/INS方案,也就是把基准站数据、移动站数据和IMU原始数据一起拿去做双向平滑解算,得到厘米级甚至毫米级的参考轨迹。这个方案不一定铺开说原理,但有一点必须强调:真值系统必须有独立的IMU天线和记录设备,不能和被试系统共用天线,否则两个系统的误差来源是相关的,测出来的数据没法用来评估被试系统的真实性能。
整套设备装车大概包括三层:一台后处理级高精度GNSS接收机配上带扼流圈的抗多路径天线、一套战术级光纤或高性能MEMS IMU,以及一台带授时功能的记录仪。真值系统选IMU的时候,性能一定要明显优于被测产品,不然真值本身的误差就淹没了被测产品的误差,后面数据处理没法算。比较稳妥的做法是用战术级IMU,零偏稳定性比被试的车规级MEMS高一个量级,这样后处理出来的参考轨迹才有意义。
实际测试中,测试车辆还会挂一台本地基准站,或者在测试路线上固定的已知点架设基准站,记录全天观测数据。差分数据选择的事后模式,而不是实时RTK,因为事后可以用精密星历和双向滤波处理,消除大部分多路径和电离层残差。基准站的架设位置也要避开强反射源,比如金属围栏和大面积玻璃幕墙,否则基准站本身的坐标解算就有问题,参考轨迹一开始就是歪的。
客观讲,真值系统这块是最容易出问题的。我们常发现有些测试报告真值轨迹本身就有几十厘米的跳变,后面所有精度评估就都失真了。所以做完采集之后,第一步不是看被测系统的误差,而是先把真值轨迹和管理日志拉出来看一遍,确认有没有明显的解算失败、时间戳空洞、天线插头接触不良这类低级问题。任何异常都必须先处理掉再往下走。
2.2 IMU与天线安装的杠杆臂问题
这一段必须单独拿出来说,因为杠杆臂(lever arm)这个细节,能直接决定测试数据还能不能用。所谓杠杆臂,就是IMU测量中心到GNSS天线相位中心的几何向量。在车身坐标系里,这个向量要标定到毫米级。如果标错,车辆转弯或者俯仰的时候,被系统解算出的位置和真值之间会出现一个与姿态强相关的误差,很难靠后处理筛掉。
安装IMU的时候,我们做了一个刚性连接支架,直接固定在车辆后轴正中央的地板梁上,没有用普通的双面胶或软性吸盘固定。原因很简单,车规级IMU的陀螺仪对安装面振动和变形很敏感,支架和车身之间有相对位移,等效于给陀螺引入了额外角速度噪声。之前有个项目,IMU只是用3M胶垫粘在后备箱地毯上,结果高速颠簸路段陀螺数据里周期性尖峰,后处理出来的姿态一直在轻微抖动,查了很久才发现是安装刚度不足。
天线位置优先选车顶正中央,远离车身边缘。如果天线装偏了,车体姿态变化时天线相位中心的位置变化会额外贡献一部分速度误差,这部分误差在高精度测试中非常明显。另外天线馈线需要被正确固定和屏蔽。我记得有一次测试,刚跑到隧道入口附近,卫星信号质量突然恶化,排查后发现是广播天线和GNSS天线馈线捆在一起,强射频信号直接干扰了接收机前端。这类问题在测试阶段就暴露出来反而好办,否则量产后装车会遇到更多干扰。
最后还要做一次杆臂标定验证:让车辆沿着S弯连续走几趟,每趟以不同车速进入。如果杆臂误差已经补偿正确,组合导航输出的位置在转弯时不会出现和车身姿态强相关的横向误差;如果还有残余,横向误差会跟着转弯方向有节奏地摆动。实际上不用反复解算,光看轨迹和真值轨迹在弯道段是否有规律性的横向差就能判断个八九不离十。
2.3 测试场景集设计思路
场景设计的目标,不是把测试车开到各种好看的风景,而是要覆盖组合导航系统在城市环境中的主要失效模式。我这次把场景分为四类:
- 开阔道路:卫星可视性好、天空开阔,用来验证系统基础精度和收敛能力。
- 城市峡谷:建筑物遮挡导致卫星数目少、多路径明显、非视距信号频发,验证抗多路径算法。
- 高架/隧道:楼宇遮挡最严酷的情况,存在完全失锁和半失锁,验证惯导衔接质量。
- 地下车库:照明与GNSS信号完全中断,车辆低速行驶且有反复加减速和原地转向,验证零速检测和低速航向估计。
每类场景下面再拆具体路径。比如城市峡谷就包括窄街道两侧高楼、单侧玻璃幕墙区域、跨街天桥下方;高架就分高架下方地面道路、高架桥面上层和连续环形匝道。实际跑的时候,路径不是随便开的,每条路线都先跑一趟预采集,确认GNSS基线的质量,记录卫星数和信噪比,再正式开始正式测试。预采集数据同时还可以用来做真值系统的试解算,提前发现天线位置遮挡和数据记录问题。
测试时间选择上也有讲究。上午避开早晚高峰、下午避开树木和建筑投影长度变化较大的时段。不同季节树叶疏密对GNSS信号影响很大,最好在树木茂盛时期测一遍,再在落叶后测一遍,对比多路径影响。这套测试受限于项目周期,只覆盖了一个季节,但心里要清楚时序差异会影响到数据结论的适用范围。
每个场景至少跑三到五趟,每趟之间停几分钟,人为制造冷启动或热启动条件。高速路段要含120km/h巡航、急加速和紧急变道工况,低速地库场景则要含连续的直角弯和停车倒库动作。这样采集到的数据才足够覆盖算法在不同动力学条件下的行为。
3. 车载组合导航测试实录
3.1 开阔道路测试:基础精度与收敛能力
开阔道路测试是整个测试中数据最干净、最容易理解的部分。在没有遮挡的快速路和郊区公路上,RTK固定解基本全程保持,我们真正想观察的是系统在固定解状态下的位置噪声水平、速度精度和姿态估计稳定性。实测下来,Sigma在开阔环境下的水平位置误差统计中位数大概在2厘米以内,RMS在2.5厘米左右,这个量级对于车规级组合导航来说已经是比较理想的状态了。不过,光看位置还不够,姿态数据同样重要。航向角在直道上的抖动幅度,反映了陀螺仪噪声地板和滤波器的调校水平。
这里有一个容易踩的坑:拿RTK固定解的瞬时定位噪声去评估组合导航位置精度。RTK固定解本身有厘米级的瞬时噪声,不能直接把它当成真值。正确做法是把后处理平滑后的参考轨迹作为真值,再计算被测系统的误差。后处理平滑可以利用整趟数据的前向和反向滤波结果做加权组合,把参考轨迹噪声压到更低,这样算出来的误差才能真正反映被测系统水平。
开阔路段的另一个测试项目是快速重收敛。当系统行驶在完全开阔的地方,这时给接收机做一次热启动,让卫星信号完全重新捕获,看组合导航系统在多长时间内能回到固定解,位置误差如何收敛。实测通常热启动后的收敛时间在几秒到十几秒之间,期间位置误差从米级逐步收窄到厘米级,姿态约束在过程中起到关键作用。IMU能在单频或半固定状态下提供稳定的短时递推,保证位置不发散。
3.2 城市峡谷与高架遮挡测试:多路径和几何退化怎么处理
城市峡谷是组合导航系统最容易露馅的场景。高楼两侧遮挡会在一定程度上减少可视卫星数量,更麻烦的是玻璃幕墙和金属结构带来的多路径反射,伪距和载波相位观测值里混入大误差,如果不加识别,滤波器就会把带误差的量测当成高权重输入,结果位置被拉偏好几米。Sigma在城市峡谷路段的表现,总体来看还是稳的:在卫星数降到七八颗、几何精度因子明显变差的条件下,水平误差能维持在一米以内。但这不是说算法完美,而是它能够主动降低受污染量测的权重,并更多依赖IMU短时预报。
高架下面的场景更有意思。车辆在高架桥下方道路行驶时,头顶的混凝土梁面会形成大范围信号遮挡,GPS L1信号勉强穿透,部分信号只剩零星反射。我们跑了一条连续好几公里的高架下道路,中间还有几个信号短暂恢复的开口。Sigma在这个场景下水平误差大部分时间在1到3米,到高架开口处恢复固定解之后,实际观测误差能很快收敛回到厘米级。这说明惯导在失锁段一直保持着较好的姿态和速度估计,没有累积出大误差。
另一个值得记录的行为是高架匝道的过度弯曲段。匝道半径小、横滚角明显,GPS信号又时断时续,对系统来说是一个比较苛刻的动态组合场景。如果IMU和组合算法配合不好,车辆位置容易往弯道内侧或外侧漂移。从我们测试数据看,Sigma在环形匝道段的误差扩张趋势比较均匀,没有出现单侧系统性偏移,说明杆臂补偿和姿态解算基本准确。
3.3 隧道与地下车库测试:完全失锁场景下的惯导衔接
隧道测试是纯惯导能力的前奏,因为车辆进入隧道之后,GNSS信号完全消失,整套系统完全靠IMU在推。我们选择了一条长约1.2公里的城市隧道,车辆以60km/h左右的速度通过,全程信号为零。进入隧道前,系统处于RTK固定状态,水平和航向都收敛得比较准;出隧道后重新捕获到卫星,马上回到固定解。整个过程用时在1分20秒左右,位置误差在隧道出口处大约5到8米。
这个数字听起来不惊艳,但对于纯惯导段来说是合理的。误差来源主要不在加速度计零偏,而在隧道内的振动和气流扰动引起的一定噪声积累。关键是出隧道后的精度恢复速度快不快,Sigma在重新获得固定解后的十秒钟内就能回到厘米级,这在实际工程里才是有意义的指标。隧道里面漂个几十厘米没关系,只要出口能快速恢复高精度,自动驾驶系统就能继续正常工作。
地下车库测试比隧道更麻烦。地库里有陡坡、螺旋道,而且车辆频繁启停、低速行驶,低速下IMU积分效率低,航向估计容易被静止时的陀螺噪声带偏。另外地库光照昏暗,无法用视觉辅助来校准位置。我们选了一个两层地库进行了测试,包含直角弯、螺旋坡道和倒车入库动作。系统在无GNSS信号情况下行驶约5分钟,位置误差在15到35米范围,更重要的是航向没有明显偏转。这个结果和纯惯导测试的漂移趋势基本吻合,说明算法在低速场景的ZUPT(零速修正)发挥了作用。
3.4 时间同步与动态精度评估
很多人做车载测试时会把时间同步这个环节想得过于理所当然。被试系统的GNSS观测值、IMU采样、轮速脉冲,都打上了各自的硬件时间戳,但这些时间戳之间的一致性如果不验证,组合结果就会出现一个被称为"时间偏置误差"的问题。举例来说,IMU数据晚到20毫秒,在车辆高速行驶时,相当于位置输出滞后了0.5米以上,这个误差会直接叠加到所有动态精度评价里去。
我们这次的做法是,在测试流程中专门加入一段机动:车辆直道加速到80km/h然后急刹车,记录系统输出的速度和时间戳与参考真值的对齐情况。如果时间同步设置正确,位置误差在急刹过程中不会出现显著的滞后偏移。Sigma实测在急加速和急刹车过程中没有明显的纵向滞后误差,动态响应还算干净。
动态精度评估方面,我习惯把误差按车速分箱统计,而不是笼统算一个RMS。因为低速场景误差主要来自卫星几何和多路径,高速场景误差还叠加了时间同步、速度估计和IMU标定误差。分箱之后能看到误差在不同动力学状态下的变化规律,这对于判断系统是否需要针对特定工况做参数调整很有帮助。比如我们分箱后发现Sigma在车速60到80km/h区间横向误差稍大于其他区间,排查后和那段测试路线的车道偏移及多路径环境有关,并非系统性问题。
同时,姿态精度的评估也很有价值。车辆在高架环形匝道上做持续转弯时,横滚角误差如果过大,对水平位置推算的影响会很明显。Sigma在匝道测试中,横滚角RMS大约0.05度以内,航向角RMS约0.1度,对于车规级产品来说算是干净的结果。
4. 纯惯导测试实录:没有卫星信号的时候系统还剩多少可信度
4.1 纯惯导测试先决条件
纯惯导测试,简单说就是把GNSS量测完全屏蔽掉,让IMU和组合导航算法自己干活。但不能上来就把天线拔了然后随便开,那样做得到的结果是没有意义的。测试前必须先确认几个条件:
第一,IMU的标定系数必须是最新状态。温度变化会让零偏产生漂移,所以纯惯导测试在车辆完全冷却、常温放置和热车之后分别做一组,拉出零偏随温度变化的曲线。第二,杆臂补偿和安装角度标定必须准确,否则纯惯导推算的起始位置和姿态本身就有偏差。第三,系统初始航向必须足够准。因为纯惯导模式下,航向误差会随时间的立方关系放大位置误差,初始航向差30秒,两分钟之后位置差可能就到几十米了。
为了实现"屏蔽GNSS信号"这个条件,我们有两种办法:一是从软件层收到系统配置,让接收机在某个特定时间点之后不输出任何星历和观测数据;二是直接把天线断开或用信号屏蔽器。软件屏蔽的方式更干净,因为接收机硬件还在运行,重新开启时能正常初始化。但需要确保软件屏蔽后系统真正停止使用GNSS量测,而不只是降低权重,否则测出来的漂移结果会掺水。我们通过查看日志中"GNSS状态"字段和时间戳来确认没有信号注入。
跑纯惯导时,车辆姿态必须尽量保持平稳驾驶,少做剧烈变道。因为系统的位置误差和航向误差增长规律是确定的,剧烈机动会让误差模型变得更复杂,不方便和理论预测对比。所以测试路线选在地势平缓、道路笔直的测试场内,配合少量固定半径的弯道以评估陀螺性能。
4.2 零速静态漂移测试:先测静止再测运动
纯惯导测试的第一项是静态漂移。车停在空旷位置,点火上电,系统完成初始对准后,让GNSS量测停止更新,车辆保持静止,连续记录两小时的位置变化。静止时系统的位置不应该一直保持不变,因为陀螺的零偏不稳定性会让航向角慢慢漂移,航向角一漂,系统就会以为车辆在缓慢移动,位置误差开始增长。
实测数据里,Sigma静止两小时的终点位置漂移大约是500到800米,误差曲线初期比较平缓,后面越来越快。这个过程直观解释了为什么纯惯导不能长时间工作,也证明车规级MEMS的陀螺零偏稳定性水平确实有限。从半小时数据看,位置漂移约120米,一小时约280米,两小时约650米,增长速率不是线性的,这和理论上的误差时间累积规律是一致的。
零速静态测试还要做一个额外动作:在完全静止状态下,人为给车辆一个短暂的起动和停止,比如向前挪动半米停下来。这个动作用来验证零速检测单元是否正确识别了车辆是静止还是运动。如果零速检测误判,系统可能在静止时认为车辆还在缓慢滑行,位置持续偏移。实测中Sigma的零速检测在静止状态基本没有误触发,挪动半米后位置恢复也很快,判定逻辑比较干净。
4.3 动态纯惯导测试:关闭GNSS后的漂移增长规律
动态纯惯导测试是在车辆按照特定路线行驶时,完全关闭GNSS量测,观察系统位置误差的演变。我设置了几组不同时长的测试,从2分钟到10分钟,速度控制在40km/h左右。选择这个速度是因为恰好能覆盖城市中主干道和快速路的工况,又不至于因为车速过高让误差瞬间爆炸,数据更好分析。
测试场内的路线是:先直线行驶约500米,然后进入半径约100米的圆弧道路绕两圈,再直线返回。这样设计是因为直线段可以验证速度估计和加速度计零偏的效果,圆弧段可以验证陀螺航向精度和向心加速度处理的正确性。实测下来,2分钟误差约10米,5分钟误差约35米,10分钟误差约90到120米。这个漂移水平,对车规级MEMS纯惯导来说属于正常偏好的范围。如果按误差理论去拟合,位置误差曲线大致符合时间的三次方规律增长,也符合陀螺零偏导致的航向误差被加速度积分放大的机理。
动态纯惯导测试还有一个关键记录:系统在转弯过程中的横向误差。假如陀螺标度因数不准,转弯时航向积分会夸大或缩小转角,轨迹会整体向一侧旋转。我们从圆弧段数据看,Sigma没有呈现系统性单侧误差,两侧绕圈数据基本对称,说明标度因数误差对轨迹的影响较小,主要误差来源还是零偏随机游走和加速度计噪声。
跑完10分钟纯惯导之后,我们紧接着做了误差恢复性测试。也就是在GNSS重新打开并进入固定解之后,看系统从漂移状态恢复到高精度状态需要多久。Sigma的表现是:重新获得固定解后约10秒内,水平误差收敛到0.5米以内,约30秒内回到厘米级。这个收敛速度说明滤波器的量测更新权重设置得当,没有被长期惯导积累的误差协方差数据拖慢恢复过程。
4.4 纯惯导数据后处理与误差分离
纯惯导原始数据拿到手,第一步工作是画误差随时间的变化曲线。我们通常是把水平位置误差、北向误差、东向误差、垂直误差和航向误差分别画出来,再叠加车辆速度曲线,方便判断误差突变和机动操作之间的相关性。垂直方向误差往往比水平方向更敏感,因为重力加速度和加速度计零偏在垂直方向的耦合非常直接,垂直误差在10分钟中可能累积到15到25米。
误差分离方面,简化处理有三种主要误差来源:加速度计零偏、陀螺零偏、初始姿态误差。通过特定的测试编排,可以把它们分开。比如静止状态下主要是陀螺零偏和初始航向误差在起作用;匀速直线状态下加速度计零偏开始显现;转弯段则可以看到陀螺零偏的积分效果。分开之后再来判断IMU本底性能和算法调校是否匹配。
在分析纯惯导误差时,我们还用了一个简单的Python脚本来计算指定时间窗内的CEP(圆概率误差)和RMS。这段代码并不复杂,核心就是从真值文件和被测数据里按时间戳对齐位置,然后算差值的分位数。不过要注意,对齐不是简单按序号对应,GNSS的更新频率和IMU的输出频率不同,必须用时间戳做线性插值,否则会引入人为的额外误差。
import numpy as np import pandas as pd # 读取真值轨迹和被试系统轨迹 truth = pd.read_csv("truth_track.csv", parse_dates=["timestamp"]) nav = pd.read_csv("sigma_track.csv", parse_dates=["timestamp"]) # 按时间戳插值对齐 truth = truth.set_index("timestamp") nav = nav.set_index("timestamp") nav_reindexed = nav.reindex(truth.index, method="linear") # 计算水平误差 de = truth["east"] - nav_reindexed["east"] dn = truth["north"] - nav_reindexed["north"] horiz_err = np.sqrt(de**2 + dn**2) # 输出统计值 cep = np.percentile(horiz_err, 50) rms = np.sqrt(np.mean(horiz_err**2)) r95 = np.percentile(horiz_err, 95) print(f"CEP: {cep:.3f} m") print(f"RMS: {rms:.3f} m") print(f"R95: {r95:.3f} m")这段代码放进测试流程里是可行的,替换成RINEX等其他数据格式也能用。实际做数据分析时,真正费时间的反而是前期的数据清洗:剔除真值轨迹里明显跳变的点、剔除被测系统日志中的异常时间戳、确认开始和结束时间对齐。数据干净了,后面的统计才可信。
5. 测试结果汇总与数据分析
5.1 车载组合导航精度表现
把整轮车载测试的数据放在一起统计,得到的结果比单看某一段轨迹更有说服力。开阔道路下,Sigma组合导航水平误差RMS约2.2厘米,CEP约1.3厘米,R95约3厘米。城市峡谷场景,水平误差RMS上升到0.5到1.2米,但这部分误差并不是均匀分布的,主要集中在少数几个卫星几何极差或玻璃幕墙反射严重的点位。如果把这类点位单独剔除,其余路段的误差在0.3米以内。隧道场景,1分20秒的失锁段结束后,出口位置和真值相差8米以内,重新收敛时间约10秒。从整轮数据来看,Sigma在高遮挡和失锁环境下的可用性是比较明确的,没有出现滤波器发散或误差失控的情况。
这里特别说明,不同批次设备之间有性能离散度,表中数据是本次测试样机在某受控测试环境下的统计结果,不构成对所有批次产品的保证。做产品验证时,至少要测三台以上设备,取统计特征,单台单趟数据只能说明个体表现。我们这次用了两台样机交替测试,整体表现一致性尚可,但其中一台在连续高温跑车后纯惯导漂移略大,这提示温度对IMU性能的影响在选型时要重点评估。
车速分箱统计也提供了一些有价值的结论。车速低于10km/h和高于100km/h时,水平误差略有上升,前者主要是低速下卫星多路径和停走状态对滤波器更新的影响,后者主要是高动态条件下的姿态跟踪误差和时间同步残差,但都在可接受范围内。这个规律帮助我们在最终报告里明确产品的推荐使用范围,也方便下游客户根据他们的工况做匹配判断。
5.2 纯惯导漂移表现
纯惯导数据汇总后,Sigma的表现可以用几个关键节点描述:静止30分钟漂移约100至120米,动态2分钟漂移约8至12米,动态5分钟漂移约25至40米,动态10分钟漂移约80至120米。误差增长并不是线性的,而是时间越长增速越快。
之所以这样,可以从惯导误差传播机理来解释。初始航向误差和陀螺零偏会导致航向估计不断偏离真实值,而航向误差在水平加速度积分过程中被不断放大,位置误差大体按时间的三次方规律增长。加速度计零偏主要由速度和时间的二次方关系贡献,在长时间段里成为主要误差源。因此,纯惯导10分钟漂移100米不代表5分钟就是50米,实际会明显小于50米,这一点在工程估算的时候很容易被低估。
实际应用中,用户需要根据场景判断纯惯导性能是否足够。城市隧道通常一至两分钟可以通过,地下车库进出加停车大约三至五分钟,纯惯导漂移在几十米以内,配合出入口的GNSS校准和地图匹配,可以接受。但如果是几公里长的连续隧道,或超大型地下停车场,纯惯导就无法提供可靠位置了,必须考虑增加视觉、激光或超宽带等其他辅助传感器。
5.3 误差源排查:到底是IMU问题还是组合算法问题
测试做完,最重要的一个问题是:系统表现不好时(虽然这次整体表现还行,但过程中也出现过几组不理想数据),到底是IMU硬件拉胯,还是组合算法没调好,又或者是系统集成环节出了问题。
我们采用的排查方法是分层剥离。第一层,先把被测系统输出的纯惯导轨迹和真值对比,计算漂移率,对照IMU的零偏和随机游走标称值。如果漂移率明显大于理论预期,怀疑方向先指向IMU标定或故障,而不是算法。第二层,看组合导航在GNSS信号良好的开阔路段是否也有异常误差。如果固定解状态下位置误差很大,那多半是杆臂补偿、时间同步、滤波器量测噪声参数设置的问题,跟IMU关系不大。第三层,看系统在信号切换瞬间的过渡行为,比如固定解掉到伪距单点再恢复到固定解的过程中有没有跳变,如果跳变大,说明滤波器的协方差管理需要改进。
在实际排查中,还有一类问题是数据记录导致的假异常。有时候GNSS信号正常、IMU输出正常,但原始记录里出现了一段零值或时间戳跳变,后处理时就会看到位置突然跳出去。先检查数据日志,再谈系统性能,这个顺序不能反过来。我们在排查一次异常时,曾经花了很长时间怀疑算法,最后发现是记录仪存储卡写入延迟导致的时间戳批量延迟,教训很深。
6. 测试中遇到的高频问题和处理经验
6.1 时间戳乱跳和杆臂补偿错误
这套测试项目中,我们遇到过两次时间戳异常。一次是记录仪软件线程调度问题导致IMU时间戳偶尔相隔超过一个采样周期,另一次是GNSS接收机输出的UTC时间与IMU内部时钟不一致,两者在融合时出现周期性跳动。处理办法是围绕PPS(秒脉冲)信号做同步,并且在日志中把PPS上升沿对应的内部计数器值一并记录下来。经过同步整改后,时间戳抖动被压到微秒级,动态场景下的误差也明显收敛。
杆臂补偿错误问题出现在一次项目早期预测试里。当时计算杆臂时把向量的坐标顺序搞反了,直接把朝右写成了朝前,结果车辆完成一次U型弯后,横向误差出现明显系统偏差。后来我们用S弯反复验证才锁定问题。这里有个经验:务必在车身坐标系(一般取X轴向前、Y轴向右、Z轴向下)中定义杆臂向量,并把从补偿模块读出的值用一段已知轨迹做反向验证。任何杆臂修改之后都要重做一次快速S弯测试,确认没有残余系统误差。
6.2 升降级判别误触发与滤波器协方差问题
在遮挡严重的城市峡谷路段,Sigma偶发出现状态频繁升降级的情况,也就是位置解在固定解和浮点解之间来回切换,而且切换瞬间输出位置有几十厘米的跳变。这类问题大概率不是GPS硬件问题,而是滤波器的量测噪声协方差设置不合理,导致固定解和浮点解之间的权重切换太快。解决办法是把协方差矩阵做适当保守化处理,并加入升降级滞后判断,让状态切换不那么灵敏。之后同一条路线复测,频繁切换基本消失。
另一个相关问题是在GNSS信号短暂中断恢复后,滤波器的位置协方差会被IMU递推带来的不确定性快速撑大,导致恢复固定解后需要较长时间才能收敛回来。Sigma的表现尚可,但我们仍然在调整更新增益的上下限,防止某些极端情况下系统过度信任历史累计的状态协方差。
6.3 数据后处理与回放工具使用建议
测试过程中积累大量原始数据之后,数据回放工具的价值会被明显放大。我们常用的流程是:把原始IMU数据和GNSS观测数据先通过后处理软件算出真值轨迹,再用开源工具做轨迹对比和质量分析。回放工具不能只按倍数快进,还得支持按里程、按时间范围切片分析,这样能快速定位某个特定弯道或某个隧道段的误差。
回放时我在界面上会同时显示四组信息:被测系统的位置输出、真值位置、接收机状态标记、车辆速度。卫星状态标记能帮助判断误差是否发生在固定解丢失或星历更新时段;车辆速度曲线能把零速检测是否生效和位置误差变化直接对应起来。一套顺手的回放工具,能把一天的测试数据筛选完,并形成问题点清单,效率会比整段轨迹反复看高很多。
测试数据的归档也值得提一嘴。每趟测试都要记录:时间、车辆编号、设备编号、路线名、GNSS状态、天气、气温、是否有异常事件。这个台账在后续分析时价值很大,尤其是当某些误差特征和天气、气温或者设备批次相关联时,有台账能快速定位。这次项目里,我们就是通过台账发现某台样机在午后高温时段纯惯导漂移明显比其他时段大,进而安排了专门的温度试验。
7. 落到实际工程里的几点体会
测试报告写完,我的核心体会是:做组合导航系统的测试,本质上是在回答一个工程信任问题。导航数据是自动驾驶系统做决策的输入之一,如果系统在信号好的地方表现完美,却在信号差的地方悄悄给出错误位置,这种危害比直接断开定位还要大。所以测试不能只盯着精度数字,要更关注误差的连续性、可预测性和恢复能力。
从时间投入上看,纯惯导测试往往比车载组合导航测试更费时间,因为需要严格控制环境条件,还要做足够长的静态采样。很多人觉得纯惯导测试简单——把GNSS关掉不就行了吗?真正做起来,环境温度、初始对准时间、车辆振动、路线曲率都会影响结果,跑出几组数据之间差异很大。数据量不够的时候,结论很容易被某一趟的偶然误差带偏,宁可多跑几次也别图快。
关于GNSS信号被屏蔽后的位置恢复速度,我再多说一句。很多客户关心"纯惯导能撑几分钟",实际上这个问题的真正落脚点在于"信号回来后系统多久能恢复高精度"。纯惯导漂移大一点还能靠外部参考校准,恢复慢才是影响系统可用性的关键。所以后续做方案时,可以多关注系统的收敛速度和完好性监测策略,这些指标比短时漂移更能反映系统设计的成熟度。
最后分享一个小技巧:测试过程中千万别忽略记录车辆的真实运动状态。以前有一趟测试,数据分析时发现位置误差在一段直道上突然变大,排查了很久才发现那段路正好在修路,车辆实际绕行了变道,和预设的测试路线不一样。从那以后,每趟测试都打开行车记录仪和轨迹监测画面,实时对照车辆实际行驶路线和预设路线,避免拿错误的假设去解释数据。导航系统的测试,环境信息越完整,数据背后的逻辑越清楚,报告才越有说服力。