本科生学习GNSS算法(五)- rtklib多系统多频单点定位算法 – bug修复、无电离层组合定位以及kalman滤波

  • Post author:
  • Post category:其他

上一节提到的bug

问题定位到pntpos.c->660行,发现是valsol计算dop有问题,具体原因是我们使用了多频数据,对后续的一些gdop计算没有进行兼容,导致报错,然后定位结果丢失。在以下commit中对该问题进行了修复,具体请自行查看。

2ade8fea5d70998d6e868993c939c324bd249dab

在配置文件中配置使用的频率以及电离层改正方法,即可实现不同频率的单点定位模式

单频

pos1-frequency     =l1
pos1-ionoopt       =brdc

三频

pos1-frequency     =l1+2+3
pos1-ionoopt       =brdc

一二频点无电离层组合单点定位

pos1-frequency     =l1+2
pos1-ionoopt       =dual-freq

修改的增加无电离层组合的定位模式比较简单,在以下commit

d7bfefed0637ee1a3910af89334a5d95f6b414e3

主要是以下改动

通过对不同频率组合的定位结果分析,无电离层组合的定位精度还是明显优于其他原始频点组合。虽然无电离层组合会带来观测值噪声的放大,但相对于经验模型修正残留的电离层影响,无电离层组合还是拥有明显的优势。

但是仅单历元定位进行定位,并未考虑载体自身的运动特性,这其实就有相当一部分的信息未利用,载体的自身运动信息是损失掉的。所以增加了单点定位的kalman滤波算法逻辑。

无电离层组合的kalman滤波结果

两个结果均是kalman滤波的结果,其中噪声较大的是使用类似rtklib中rtk算法的PVA模型,很平滑的结果,则是人为给了一个速度为0的约束的结果。下一系列教程会详细介绍。

GNSS高级教程介绍

正如上面介绍的,高级教程计划如下:

  1. 实现kalman滤波的单点定位算法
  2. 针对静态模式,增加零速约束以及doppler观测值对速度更新。

本文首发于个人公众号 GNSS和自动驾驶,欢迎关注。


版权声明:本文为dong20081991原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。