对于新手而言,RTKLIB本身的功能完全能够满足你们的需求;而且最好的参考资料就是RTKLIB MANUAL,介绍的很全,很细,包括怎么使用,每个模块的功能甚至对于代码所用的模型都有介绍;但是对于英文差或者是没有太多GNSS基础的人士来说,无疑Manual并不是一个好的参考资料;我在网上查找RTKLIB相关的资料时,同时也发现了一些科普性质的网页,在此推荐给大家。
首先,作者给出了一个demo,教给大家如何使用RTKLIB进行RTK定位,包括配置文件、数据等;
RTKLIB源码和exe下载地址:
RTKLIB: An Open Source Program Package for GNSS Positioning
其中最新版本的源码在GITHUB上面下载:
Tomoji Takasu
RTKLIB手册/manual:
RTKLIB: Documents
数据集和操作指南:
RTKLIB: Tutorial and Demonstration for RTK
网络中对以上数据如何使用的中文介绍:RTKlib使用介绍
RTD:伪距差分
RTK:载波差分
PPP/Precise Point Positioning:精密单点定位,只需一个接收机;译为精密单点定位,属于单点定位也叫绝对定位,精密单点定位是指利用载波相位观测值以及由IGS等组织提供的高精度的卫星星历及卫星钟差来进行高精度单点定位的方法。
PPK/Post Processed Kinematic:事后定位;是一种与RTK相对应的定位技术,这是一种利用载波相位观测值进行事后处理的动态相对定位技术,而RTK是实时的。
WAAS/Wide Area Augmentation System,译为广域增强系统,是由美国运输部(DOT)和联邦航空管理局(FAA)联合开发的一个系统,主要应用在航空领域,如飞机的GPS导航等。
SBAS/Satellite-Based Augmentation System,中文意思是广域差分增强系统,如果不知道这是什么意思,那么说星基增强系统相信大家都知道。广域差分增强系统也就是星基增强系统。
关于星基/地基增强系统可以通过产品来了解:
1、中国精度/Atlas atlas
2、全球精度
3、天音计划
千寻知识课堂
北斗视频
关于RTKNAVI,INPUT中,输入数据类型做一个介绍,如下:
Rover Type里面有 :
Serial(串口),设备通过串口连到电脑;
TCP Client流动站数据吐给RTKLIB原始观测值;走的是TCP协议
TCP SERVER流动站数据是由RTKLIB去拿;走的是TCP协议
NTRIP Client和TCP Client类似,不过走的是Ntrip协议
File,用于没有流动数据站,就一些原始观测数据集,是放在文本里的,那就选这种。
使用Rtklib进行PPP定位和RTK差分定位
RTKLNAVI使用教程
RTKLIB单点定位处理流程之一(postpos/后处理)
RTKLIB源码——如何在VS2017中配置、调试
在VS配置RTKLIB中,常见错误汇总:
(1)C/C++下预处理器 里面我们添加了
(配置属性 ->C/C++ -> 预处理器-> 预处理器定义-> 编辑)
_CRT_SECURE_NO_WARNINGS
_WINSOCK_DEPRECATED_NO_WARNINGS
(2)C/C++下的附加包含目录 里面我们添加了
(配置属性 ->C/C++ 常规-> 附加包含目录-> 编辑)
【.\src】
.\ 表示项目文件所在目录之下的目录。
..\ 表示项目文件所在目录向上一级目录下的目录。
..\..\ 表示项目文件所在目录向上二级目录之下的目录。
都是针对项目文件所在目录而言,用于定位其它文件的路径位置。
(3)连接器下的附加依赖项 里面我们添加了
(配置属性 -> 链接器 -> 输入 -> 附加依赖项)
winmm.lib
ws2_32.lib
补充:
通过上面的设置,我们可以发现,我们大多操作的是[C/C++]下的配置选项,而同样,在[VC++]配置选项下,
同样有[包含目录],作用几乎与[C/C++]下面的[附加包含目录]一样,我们首先了解【包含目录、库目录、附加包含目录、附加库目录、附加依赖项区别】
VC++目录:
包含目录:寻找#include
库目录:寻找.lib文件的搜索目录
C/C++:
常规->附加包含目录:寻找#include
链接器:
常规->附加库目录:寻找.lib文件的搜索目录
输入->附加依赖项:lib库(C++的库会把函数、类的声明放在*.h中,实现放在*.cpp或*.cc中。编译之后,*.cpp,*.cc,*.c会被打包成一个.lib文件,这样可以保护源代码)
故,包含目录和附加包含目录(库目录和附加库目录)的区别:
包含目录:修改了系统的include宏的值,是全局的;
附加包含目录:用于当前项目,对其他项目没有影响。
(库目录和附加库目录的区别同上)
进而可知包含目录和附加包含目录(库目录和附加库目录)的区别主要在于全局还是当前,那么当需要对某工程添加这些目录时,通常情况下,都是在附加包含目录和附加库目录中添加的。
补充这些是因为,笔者刚开始编译RTKLIB库时,头文件的包含路径都是添加在[VC++/包含目录]下的,当时惊奇的发现,即使笔者一开始在[VC++/包含目录]下包含的是“绝对路径”,工程也是可以编译通过,并可以移植到任何地方的。但了解到以上以后,建议我们一般使用C/C++和Linker下面的设置,而一般不建议使用VC++下面的设置。
参考:VS2012编译RTKLIB——GNSS定位开源库
1、中国卫星导航系统管理办公室测试评估研究中心
2、香港大地测量服务
3、rtkexplorer
4、怎样才能下载到精密星历和 gnss 的观测数据?
5、国内外IGS数据及产品下载网站
6、GPS广播星历和精密星历的下载
1、GPS/北斗
2、WHU-学渣
3、 RTKLIB/BNC
4、RTKLIB源码解析(一)——单点定位(pntpos.c)
5、这个博客有多个专栏,可以关注下!
https://blog.csdn.net/Pro2015
6、李英冰的个人主页
7、神秘的卫星导航世界:你到底有什么宝藏会议!
详解RTK,RTD,SBAS,WAAS,PPP,PPK,广域差分等技术之间的关系与区别
【GNSS】星基与地基增强系统