RTKLIB demo5对Glonass模糊度固定的算法优化

demo5是作者rtklibexplore的一个RTKlib版本,本文参考了作者的博客Glonass Ambiguity Resolution with RTKLIB Revisited

和其他导航系统不同,由于GLONASS 采用频分多址,因此各卫星的载波相位存在一定的频间差(inter-frequency bias),这个硬件偏差导致GLONASS卫星的整周模糊度固定会比其他系统更加困难。

通常来说,频间差和频率号成正比,同一颗卫星L1和L2的频间差基本一致。对于同一制造商的所有接收机,频间差特性保持一致。如果基站和移动站使用来自不同厂家的接收机,由于频间差即使双差后也无法抵消,因此需要对其进行处理。

在demo5版本的RTKlib代码中,作者设置了四种GLONASS的模式:

  • off: 如果Glonass AR设置为OFF,则GLONASS的伪距、载波相位只用于计算浮点解。如果基站和移动站使用了不同厂家的接收机,并且采用GLONASS整周模糊度固定情况很差,卫星足够的情况下,可以尝试该选项,不进行GLONASS的整周模糊度固定。不过如果在星况较差的情况下,这样会损失很多卫星。demo5中不推荐使用这个设置。
  • on: 如果Glonass AR设置为on, 那么RTKLIB对待GLONASS卫星和其他系统卫星一样,使用同样的方法去进行整周模糊度固定。如果基站和移动站接收机一致,或者移动站和基站的频间差一致,demo5推荐使用这个设置。 实际如果移动站和基站的频间差都非常小(毫米级或者亚毫米级),也可以先尝试这个配置,看看固定率和残差的情况,在决定是否需要更换设置。
  • Fix-and-Hold: 这是Demo5中增加的一个GLONASS设置选项,是其他系统Fix-and-Hold模式的延伸。在这个模式下,会等其他系统固定之后,才会进行GLONASS模糊度的固定。在这个模式下,每次会将GLONASS双差整周模糊度浮点解的小数部分认为是频间差,然后设置一个增益(0.01)将这部分误差存在glo_icbias中,让它慢慢收敛,在下一次更新时,会减掉这部分误差。具体可以参考原作者的这篇博客作者用数据证明了这个方法的有效性,并且推荐在使用不同接收机且频间差未知的情况下,使用该配置。不过个人感觉这个方法的理论支撑不太强。
  • Auto-cal: 如果使用这个设置,会在卡尔曼滤波中增加额外的状态估计量来估计频间差。原版RTKLIB中也有这个选项,但是不能设置频间差的初始值和初始协方差阵。根据demo5作者描述,如果频间差初始值和实际值相差太多,或者协方差阵不准的话,结果不会太理想,频间差估计不准确。demo5在程序中增加了初始值和初始协方差的设置,并且在通过用零基线或者短基线的方法,基于这篇论文(这篇论文在标定频间差,和使用标定值作为先验值固定GLONASS整周模糊度方面起到了关键作用,值得仔细研读),标定出了不少接收机的频间差。个人觉得这个方法是理论支撑最强的方法。

demo5中和GLONASS频间差相关的配置:

pos2-arthres2 = relative GLONASS hardware bias in meters per frequency slot
pos2-arthres3 = initial variance of GLONASS hardware bias states
pos-arthres4 = process noise for GLONASS hardware bias states

demo5作者标定出的各接收机频间差:

ComNav = 2.3 cm
Leica = 2.3 cm
Novatel = 2.3 cm
Septentrio = -0.3 cm
Spectra Physics = 0.0 cm
SwiftNav = 0.0 cm
Tersus = 0.0 cm
Topcon = 0.0 cm
Trimble = -0.7 cm
u-blox M8T = -3.2 cm
u-blox F9P = 0.0 cm

我个人觉得,如果使用不同厂家的接收机,最好的方法还是用零基线的方法标定频间差,然后将这个先验值直接带入计算,从载波相位中把频间差扣除。

目前也看到GPS Solutions上的一篇论文[4],通过选两颗GLONASS参考星的方法,可以将由于时钟偏差引起的频间差消除。不过感觉作者也不确定频间差是否是由于时钟偏差引起,未曾尝试,不太确定这个方法是否靠谱,感兴趣的同学可以看看。

参考资料:
[1] https://rtklibexplorer.wordpress.com/2018/06/14/glonass-ambiguity-resolution-with-rtklib-revisited/
[2] https://rtklibexplorer.wordpress.com/2016/05/26/fix-and-hold-extended-to-glonass-and-sbas/
[3] Wanninger, Lambert. “Carrier-phase inter-frequency biases of GLONASS receivers.” Journal of Geodesy 86.2 (2012): 139-148.
[4] Banville, Simon, Paul Collins, and François Lahaye. “Model comparison for GLONASS RTK with low-cost receivers.” GPS Solutions 22.2 (2018): 1-12.

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RTKLIB是一款用于实时运动定位和姿态解算的开源软件包,拥有丰富的功能和强大的处理能力。下面是对RTKLIB源码的解析: RTKLIB源码主要由C和C++编写,文件结构清晰,便于理解和修改。源码中包含了几个主要模块,如导航定位模块、信号处理模块和数据存储模块等。 其中导航定位模块是RTKLIB的核心,主要实现了千兆定位算法和RTK定位算法。这些算法包括双差定位、载波相位平滑、相位差分和整周模糊解算等。通过这些算法RTKLIB能够将多频GNSS接收机接收到的GPS、GLONASS和北斗等卫星信号解算为准确的位置和姿态信息。 信号处理模块用于处理接收器接收到的原始观测数据,并转换为可用于定位计算的格式。该模块实现了伪距和载波单频和多频观测数据的读取、解码和处理。此外,还包括了DGNSS和PPP等方法的实现。 数据存储模块用于保存和管理接收器接收到的原始观测数据和定位计算结果。该模块实现了将观测数据保存为日志文件,以及读取和解析日志文件的功能。同时,还能够将定位计算结果保存为坐标文件,以供后续分析和应用。 在RTKLIB源码的解析过程中,可以根据需要进行修改和定制。例如,可以添加新的定位算法改进信号处理方法、增加新的卫星系统支持等。此外,还可以对界面进行修改,以满足特定需求。 综上所述,RTKLIB源码解析涉及到多个模块和算法的实现,包括导航定位、信号处理和数据存储等。通过对源码的解析,可以深入了解RTKLIB的工作原理和内部机制,并且可以根据需要进行修改和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值