4. GNSS/INS组合定位架构与数据流
无人矿卡的定位系统通常由GNSS接收机与惯性测量单元(IMU)共同构成。GNSS提供长期稳定的绝对位置,但在矿区陡坡、装卸点、破碎站遮挡和粉尘环境下容易失锁或多径;IMU输出高频加速度与角速度,短时精度高,却会随时间积分漂移。组合定位的核心任务,就是把两者放进同一个估计框架,让GNSS约束IMU的漂移,让IMU在GNSS中断期间维持连续、平滑的位姿输出。理解组合架构,关键是看清两件事:观测信息在哪一层进入滤波器,以及各传感器数据如何在同一时间基准上对齐。
一、松耦合与紧耦合:观测进入的层级不同
松耦合(Loosely Coupled)是最常见的工程实现。GNSS接收机先独立解算出位置、速度(必要时含航向),再把这份“定位结果”作为观测量送入卡尔曼滤波器,与IMU的机械编排结果做融合。它的优点是结构清晰、对接收机品牌不敏感、GNSS异常时可直接切断观测;缺点是接收机内部已经完成了卫星层面的解算,滤波器看不到卫星原始信息,当可见卫星少于4颗、接收机无法给出有效定位解时,松耦合就失去了GNSS观测,只能纯惯导递推。
紧耦合(Tightly Coupled)则把GNSS的原始观测——伪距、伪距率、载波相位(如支持RTK)——直接送入组合滤波器,由滤波器统一估计位置、速度、姿态以及接收机钟差等状态。这样即使只有2~3颗卫星,仍能提供有效约束;在矿区遮挡频繁、卫星数剧烈波动的场景下,紧耦合的连续性和抗差能力明显更好。代价是实现复杂度高,需要处理卫星观测模型、钟差状态和观测质量控制。
工程上还有一种更深层的深耦合,用INS信息辅助接收机载波环跟踪,属于接收机内部改造,矿卡量产中较少直接采用。对排障而言,先确认车辆用的是哪种模式,决定了后续看哪些日志、查哪些接口。
二、卡尔曼滤波融合框架:状态、预测与更新
无论松耦合还是紧耦合,融合主体都是一个误差状态卡尔曼滤波器。工程上通常不直接估计绝对位姿,而是估计“名义状态 + 误差状态”:名义状态由IMU机械编排递推,滤波器估计位置、速度、姿态、陀螺零偏、加计零偏等误差量,再把误差反馈修正名义状态。这样线性化更准确,数值也更稳定。
滤波循环分两步。预测步用IMU数据推进状态和协方差:
// 预测(以IMU采样周期 dt 递推,示意)
x = F * x; // 误差状态传播
P = F * P * F^T + Q; // 协方差传播,Q 由IMU噪声参数决定
// 更新(GNSS观测到达时)
K = P * H^T * (H * P * H^T + R)^(-1);
x = x + K * (z - H * x); // z 为观测残差
P = (I - K * H) * P;
其中Q来自IMU的零偏稳定性和随机游走参数,R来自GNSS观测精度。排障时经常遇到“定位跳变”或“缓慢拉偏”,本质往往是Q/R失配:R设得过小,滤波器过度相信GNSS,多径一出现位姿就跳;R设得过大,GNSS约束不足,航向慢慢漂。矿区实践中,可根据接收机报出的定位质量、卫星数和差分状态动态调整R,而不是全程用固定值。
三、传感器数据流向与时间同步
数据流的方向是:IMU以100~200Hz持续输出,进入机械编排和预测步;GNSS以1~10Hz输出观测,触发更新步;融合结果再以较高频率对外发布给规控模块。这条链路上最容易出问题的不是算法,而是时间。
时间同步通常分三层。第一层是硬同步:用GNSS的秒脉冲PPS对齐整秒,让接收机与组合导航主机的时间基准一致。第二层是时间戳对齐:IMU采样时刻与GNSS观测历元往往不重合,需要把IMU数据插值或把观测外推到同一历元,否则高速行驶时几毫秒偏差就会带来厘米级到分米级的位置误差。第三层是杆臂补偿:IMU安装位置与GNSS天线相位中心不重合,车辆转弯和俯仰时两者速度、位置不同,必须用杆臂向量做补偿,否则动态场景下会引入系统性偏差。
四、融合结果如何判读
组合导航输出一般包含位置、速度、姿态及各自的协方差(或标准差)。判读时不要只看位置数值,要看协方差是否收敛、新息残差是否在门限内、GNSS更新是否持续发生。一个可操作的检查顺序是:先确认PPS和时间戳正常,再看GNSS观测是否按预期频率进入更新,然后看新息残差是否平稳,最后看协方差是否随观测增加而下降。若协方差长期不降,说明观测没有真正参与融合;若残差频繁超限被剔除,说明观测质量或R参数需要复核。这套判读逻辑,比单纯盯着屏幕上的坐标数字更能定位问题根源。