上一节提到的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高级教程介绍
正如上面介绍的,高级教程计划如下:
- 实现kalman滤波的单点定位算法
- 针对静态模式,增加零速约束以及doppler观测值对速度更新。