GNSS相关开源项目整理

本文主要是记录、整理一下和GNSS相关的开源项目,方便自己学习和查阅。文中所包含的开源项目,有些我也并没有实际使用过。我一直觉得这个世界上比我聪明的人太多了,阅读他们的思想,对自己也会很大的提升。

另外,对我来说,我觉得并不是所有好的开源项目,我们就得每一行代码都去读,毕竟社畜生活空闲时间也没有那么多。熟练掌握每个方向自己觉得最好的一个,了解其他开源项目的优缺点、所使用的算法,我觉得就可以了。

对GNSS感兴趣的同学,可以关注不迷途导航程序员的公众号,是武汉大学测绘学院的一位工学博士开设的公众号,会不定时发布一些最新的行业动态。本文的部分内容也参考了他公众号的文章。

文章目录

    • 1. RTK相关
      • RTKLIB
    • 2. PPP相关
      • BKG Ntrip Client (BNC)
      • GAMP (基于RTKLIB二次开发的PPP软件)
      • ppp-wizard(基于BNC修改的实时PPP软件)
      • PRIDE-PPPAR
      • gLAB
      • goGPS
      • PPPH
    • 3. 数据质量分析
    • 4. ESA欧空局对开源项目的汇总

1. RTK相关

RTKLIB

  • 作者: 日本东京海洋科技大学的高须知二(Tomoji Takasu)
  • 地址: https://github.com/tomojitakasu/RTKLIB/tree/rtklib_2.4.3
  • 开发语言: C
  • 功能: 单点定位、精密单点定位(PPP)、差分相对定位 ,定位模式有 Single, DGPS/DGNSS, Kinematic, Static, Moving-Baseline, Fixed, PPP-Kinematic, PPP-Static and PPP-Fixed
  • 最新版本: RTKLIB 2.4.3 b34 (2020/12/30更新)

RTKLIB是日本东京海洋大学开发的一款用于GNSS精密定位的开源程序包,支持GPS、GLONASS、BDS、Galileo等多个GNSS系统的精密PPP解算,也支持动态、静态等多种GNSS实时和事后处理定位模式。

此外,RTKLIB能较好地兼容多种GNSS标准格式和协议、GNSS接收机专有数据协议格式和一些外部通信。同时,RTKLIB具有强大的图形输出功能,可对原始观测数据卫星可见性、卫星天空视图、DOP值、多路径及卫星高度角进行图形化显示,为质量分析提供了可视化条件,且对所有代码均进行了开源。

RTKLIB的源码我基本上认真阅读过,也对其有很多源码解析,具体可参见我其他的博客:
RTKLIB demo5对Glonass模糊度固定的算法优化
RTKlib 后处理静态PPP性能分析测试
RTKlib PPP代码解析
RTKlib 2.4.3 b34数据测试与性能分析
RTKlib单点定位-部分思考
RTKlib相对定位源码解析:resamb_LAMBDA (整周模糊度求解)
RTKlib相对定位源码解析: ddres函数
RTKlib相对定位源码解析: udstate函数
RTKlib源码解析:ppp和rtkpost中的周跳检测函数
RTKlib相对定位源码解析:zdres函数

我觉得RTKLIB非常适用于GNSS定位算法学习和研究,我用的比较多的是它的时候事后处理功能:

  1. rtkpost:通过输入RINEX文件,进行后处理,得到高精度位置

  2. convbin: 支持将接收机原始数据(Novatel、ublox、septentrio)、RTCM数据等转为RINEX数据,也可对RINEX数据进行裁剪、版本转换

  3. rtkplot: 支持对rtkpost的定位结果画图,如轨迹图、残差等,也支持查看RINEX文件,显示卫星可见性、仰角、多路径等。

除了RTKLIB本身,也有不少基于RTKLIB衍生的优秀开源项目。比如rtklibexplorer的RTKLIB项目,针对低成本的接收机对RTKLIB进行了很多改进,具体可参见:

  • 博客: http://rtkexplorer.com/
  • github: https://github.com/rtklibexplorer/RTKLIB

2. PPP相关

BKG Ntrip Client (BNC)

  • 作者:
    Leos Mervart (Czech Technical University, Prague)
    Georg Weber (Ntrip Enterprise)
    Andrea Stürze (BKG)
    Dirk Stöcker (Alberding GmbH)
  • 地址:https://igs.bkg.bund.de/ntrip/download
  • 开发语言: C++
  • 功能: 实时GNSS数据流接收、播发、解码、格式转换,也支持实时SPP和PPP实时解算
  • 最新版本: BNC VERSION 2.12.18 (2021/09/28更新)

我目前没有用过BNC软件,在不迷途导航程序员的公众号中,有BNC源码阅读笔记,感兴趣的同学可以去翻阅。不迷途导航程序员认为BNC是目前已知的对实时数据流处理和实时PPP支持最好的开源软件。

GAMP (基于RTKLIB二次开发的PPP软件)

  • 作者:周锋博士
  • 地址:https://www.ngs.noaa.gov/gps-toolbox/GAMP.htm
  • 开发语言: C
  • 功能: 非差非组合多系统GNSS精密单点定位软件

ppp-wizard(基于BNC修改的实时PPP软件)

  • 作者:法国CNES分析中心
  • 地址:http://www.ppp-wizard.net/
  • 开发语言:C++ (需要邮件联系获取最新代码)
  • 功能: 基于BNC修改的实时PPP软件

PRIDE-PPPAR

  • 作者:武汉大学PRIDE课题组
  • 地址:https://github.com/PrideLab/PRIDE-PPPAR
  • 开发语言:Fortran 90

gLAB

  • 作者:西班牙加泰罗尼亚科技大学
  • 地址:https://gage.upc.edu/glab-download/
  • 开发语言: C/C++
  • 最新版本: gLAB v5.5.1 (2020/12/11)

goGPS

  • 作者:Gred公司
  • 地址:https://github.com/goGPS-Project/goGPS_MATLAB
  • 开发语言:Matlab
  • 功能:针对静态运行站的数据做PPP处理,暂时不支持处理移动接收机的动态数据

PPPH

  • 作者:
    Berkay Bahadur, Department of Geomatics Engineering, Hacettepe University, 06800, Ankara, Turkey
    Metin Nohutcu, Department of Geomatics Engineering, Hacettepe University, 06800, Ankara, Turkey
  • 地址:https://geodesy.noaa.gov/gps-toolbox/PPPH.htm
  • 开发语言: MATLAB

3. 数据质量分析

不迷途导航程序员的公众号文章中对三个数据预处理的开源软件进行了整理,具体可以去查看原作者的文章《PPP阶段小结》系列。

其中,我只使用过TEQC,我也总结过TEQC的一些算法,具体可参见博客:TEQC GNSS数据质量分析算法。 我也认同如果TEQC一直不进行更新,应该会被逐渐淘汰,接下来我可能会尝试使用GFZRNX。
GNSS相关开源项目整理_第1张图片

4. ESA欧空局对开源项目的汇总

ESA官网对“Positioning & Navigation”相关的项目进行了汇总,里面包括了上面提到RTKLIB,gLAB等。

GNSS相关开源项目整理_第2张图片

你可能感兴趣的:(GNSS相关,GNSS,PPP,RTKLIB,开源项目)