学习rtklib

2023-05-16

数据下载

日期转换和一些常用数据下载

http://www.gnsscalendar.com/index.html?year=2019.

多系统精密星历和精密钟差下载

2021年10月25日更新:单GPS精密星历文件要在这里下载:
https://cddis.nasa.gov/archive/gnss/products/2087/.
多系统精密星历文件要在这里下载:
https://cddis.nasa.gov/archive/gnss/products/mgex/2109/.
精密星历格式sp3a:
https://blog.csdn.net/liuci3234/article/details/21971241.
精密星历格式sp3c:
http://www.epncb.oma.be/ftp/data/format/sp3c.txt.

多系统广播星历下载

2021年10月24日更新:p文件要在这里下载:
https://cddis.nasa.gov/archive/gnss/data/campaign/mgex/daily/rinex3/2021/281/21p/.
上一个p文件是短名字类型的,并不是每天都有,如果没有的话就去下面这个网站找长名字的:
https://cddis.nasa.gov/archive/gnss/data/daily/2021/221/21p/.

ftp://cddis.gsfc.nasa.gov/gps/data/campaign/mgex/daily/rinex3/.
注意:多系统是p文件,n文件只有GPS的星历
https://cddis.nasa.gov/archive/gnss/data/daily/2021/221/21p/.

电离层下载

http://ftp.aiub.unibe.ch/CODE/2015/.
例如codg0750.15i意思是15年第75天的电离层

天线文件下载

http://www.epncb.oma.be/ftp/station/general/old_calibrations/.
ftp://ftp.igs.org/pub/station/general/pcv_archive/.
http://ftp.aiub.unibe.ch/awg/.

DCB下载

ftp://igs.ign.fr/pub/igs/products/mgex/dcb.
但是上面这个太新了,RTKLIB不支持直接读进去,所以一般就选择下面这个:
http://ftp.aiub.unibe.ch/CODE_MGEX/CODE/2020/.

http://ftp.aiub.unibe.ch/CODE/2019/.

在Visual Studio下打开rtklib

导入源代码并编译

首先从https://github.com/tomojitakasu/RTKLIB下载RTKLIB的源码到一个路径下,我是选择了D:\Project\RTKLIB-master\RTKLIB-master下,然后进行D:\Project\RTKLIB-master\RTKLIB-master\app\rnx2rtkp\msc路径中,我是用Visual Studio2015打开msc.sln(用其他版本的Visual Studio应该也可以,比如2017和2019的,但是我没有尝试过),然后一些版本的问题连续点击确认后进入工程中。
这里有个问题是msc.sln有时候cannot load,先打开VS,然后从VS open project的成功率比较高点;如果提示说少一个vcxproj文件,就把别的版本里的vcxproj复制了一份过来,2.4.3版本的sln就能打开了。
碰到问题,在Debug模式下编译代码有三个错误,其中后面两个.c文件找不到是直接移除文件即可,前面的rtklib.h文件找不到通过下面的博客解决(因为解决了rtklib.h文件找不到的问题以后还有其他问题,就不从其他博客往这里搬运了)
https://blog.csdn.net/weixin_44126610/article/details/105009973.
还要增加ENA_GAL和ENA_CMP两个预编译头,在属性->C+±>预处理器->预处理器定义

配置使用命令

在这里插入图片描述
右键上图msc的属性->配置属性->调试,设置工作目录为数据所在的目录。命令参数为
类似下面这样的
在这里插入图片描述

-k 配置文件 -o 输出文件 -p 处理模式 观测值.o 广播星历.n 精密星历 .sp3 精密钟差.clk
具体参数的解释在rnx2rtkp.c中都有,
rnx2rtkp.c的参数意义
-k后面是一个configuration file,里面有一些电离层、对流层、天线、潮汐等参数以及对应的参数文件
这些文件都可以参考这个博客的下载方式去下载
https://blog.csdn.net/rstaotao/article/details/96274662.
其中电离层的也可以到http://ftp.aiub.unibe.ch/CODE/2015/下载
codg0750.15i意思是15年第75天的电离层

DCB (Differential code bias, DCB )差分码偏差,主要有两种,即相同频率伪距信号C1与P1之间存在的偏差(C1-P1),以及不同频率P1与P2之间存在的偏差(P1-P2)。系统性偏差的存在使得采用不同对应观测进行参数解算时,得到的参数不具有一致性。为了使得解算得到的参数具有一致性,需要进行系统性偏差的估计或者补偿。具体意义看: http://blog.sciencenet.cn/blog-858128-1081047.html

geoid model是大地水准面模型,在rtklib中可以选择以下几种:
GEOID_EMBEDDED : embedded model(1x1deg)
GEOID_EGM96_M150 : EGM96 15x15"
GEOID_EGM2008_M25: EGM2008 2.5x2.5"
GEOID_EGM2008_M10: EGM2008 1.0x1.0"
GEOID_GSI2000_M15: GSI geoid 2000 1.0x1.5"
其中EGM96模型是美国推出的一种适用于全球范围,并综合利用现有全球大量重力数据所计算出来的高精度大地水准面模型。采用该模型可以解算全球任何一点的大地版水准面差距,其精度在美国本土50km的范围内权达厘米级。

海潮的模型简介见http://holt.oso.chalmers.se/loading/tidemodels.html
http://holt.oso.chalmers.se/loading/tidemodels.html
FES2004.BLQ海潮文件下载到
http://ftp.aiub.unibe.ch/BSWUSER52/STA/

用于解析IGS的erp文件,算极移,时差(or岁差?)等数据

EXTSTEC这个宏定义是做什么的?好像和电离层电子数有关
slant total electron content(STEC):斜电子含量
total electron content(TEC):总电子含量

PPP做模糊度固定需要星间差,做周跳探测做历元差,原因是构造检验量

代码细节

单点定位代码详解: https://www.cnblogs.com/taqikema/p/8819798.html.

像settspan(ts,te);这个函数没有实现的是怎么回事?

ppp.c中的pppos函数是精密单点定位的程序

RINEX文件类型

O文件是观测文件,N文件是星历文件,M文件是气象数据,G是GLONASS星历,H是同步卫星GPS载荷的导航电文,C是钟文件

使用u-center记录ubloxF9P的原始数据

打开u-center,在左上角Receiver中选择串口和波特率,我这里设置的是38400。然后在左上角的View,选择Configuration View,里面选择MSG,然后选择02-15是观测值,02-13是星历,打开UART1
在这里插入图片描述
开始记录以后,得到一个.ubx文件,然后打开rtklib中的rtkconv文件,选择format为u-blox,然后选择观测值和星历输出即可
在这里插入图片描述

代码运行无法使用伽利略和北斗数据的bug调试

https://github.com/tomojitakasu/RTKLIB/blob/rtklib_2.4.3/src/rtklib.h#L177
发现这两个宏我没有定义,所以代码解不出北斗和伽利略的数据。所以增加预定义器处理即可.
在这里插入图片描述
另外,北斗的C1~C5以及C18的星是GEO卫星,精密轨道不太准,一般ppp不使用这几颗卫星。

同样代码无法输出.trace文件也是因为没有定义宏TRACE

使用rtkpost软件进行ppp和spp定位

rtkpost使用方法见下面这个博客。
https://blog.csdn.net/weixin_44986362/article/details/107715558.

ppp代码解读

ppp的代码流程主要函数有:
rnx2rtkp.c文件中的main函数,调用
postpos(后处理,在postpos.c中)->
execses_b(execute processing session for each base station 为每个基站执行处理会话)->
execses_r(为每个流动站执行处理会话)->
execses(这个函数里有/open debug trace/)->
procpos(ep_debug在这个函数中)->corr_phase_bias_fcb; corr_phase_bias_ssr(fcb模式和ssr模式有什么区别?);rtkpos-> (rtkpos是输入观测数据和导航信息,通过精确定位计算流动站位置)
pntpos(单点定位);
pppos(精密单点定位)->
udstate_ppp(ekf状态的时间更新):(udpos_ppp, udclk_ppp, udtrop_ppp, udiono_ppp, uddcb_ppp, udbias_ppp) udbias_ppp
satposs(卫星位置和时钟)
tidedisp(地球自转改正)
ppp_res(prefit先验残差,这个函数比较关键)

使用ucenter进行RTK处理

首先电脑上安装ucenter
https://www.u-blox.com/en/product/u-center.
安装时一定要把驱动安装上,然后插上ublox,并且查看端口是对应哪个,下图就是COM6
在这里插入图片描述

在ucenter最上面的Receiver中选择对应的COM,比如这里是COM6。
选择之后在Receiver选择NTRIP Client,输入千寻的ip,端口以及账号,上面输入完要点一下Update source table。
在这里插入图片描述

最后可以View->Text console看到输出的解的结果。也可以另外选择保存的手段把解保存下来。

RTKLIB输出大地水准面高程的时候,必须是以llh而不能以xyz形式输出,以xyz形式输出就不会改大地水准面和地球椭球面的差异了

用rtklib进行实时PPP

在windows下使用rtknavi进行实时PPP

首先需要在u-center下配置ublox-m8,把原始观测以及星历都播发出来。
具体操作是,View->Message View,在UBX下面把NAV->ORB,NAV->PVT,NAV->SAT,以及RXM下面的RXM->RAWX都打开。再打开rtknavi.exe,在右上角的Input
在这里插入图片描述
设置如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意选择ssr的时候要看是APC(天线相位中心)还是CoM(质心)

在Linux下使用rtkrcv进行实时PPP

下载最新版本(2.4.3)rtklib,进入到app->consappp->rtkrcv下面后,把rtkrcv.c中的#define ISTOPT对应语句改成:
#define ISTOPT “0:off,1:serial,2:file,3:tcpsvr,4:tcpcli,6:ntripcli,7:ftp,8:http”
在这里插入图片描述
否则会报下面的错误(也就是用ftp去连改正数服务器了):
在这里插入图片描述
然后进入gcc进行make,再输入一个正确的conf文件即可。

在ros下使用rtkrcv_ros进行实时PPP

看到一个开源的库,在rtkrcv2.4.2版本上进行ros接口的编写
https://gitee.com/smilejx001/rtkrcv_ros
但是目前运行如下
在这里插入图片描述
在预编译头这里,出现add_compile_definitions这个需要3.12以后的cmake才能支持的情况,但是ubuntu16.04的ros kinetic只能支持3.5的,即使我升级系统的cmake,但是ros编译的就是3.5cmake,所以catkin_make的时候仍旧说还只有3.5的cmake。于是只能用老版本的cmake指令,按照下面这样替换。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

学习rtklib 的相关文章

随机推荐

  • 一行代码实现数组中数据频次值

    问题 xff1a 一行代码实现统计数组中每个name出现的次数 数组示例如下 xff1a 期望结果 xff1a 39 哈哈 39 2 39 哈哈1 39 1 39 哈哈2 39 2 span class token keyword var
  • mac bash_profile报错导致所有命令失效解决办法

    项目场景 xff1a 搭建flutter环境时 xff0c 在mac下需要配置环境变量 问题描述 xff1a 配置环境变量 xff0c 需要修改 bash profile文件 xff0c 修改文件保存退出后 发现文件有报错 xff0c 导致
  • 我理解的“大前端”

    前言 随着业务场景越来越复杂 xff0c 前端技术也越来越丰富 xff0c 这几年也迎来爆发期 xff0c 大前端 的概念逐渐涌现 本图根据本人理解整理 xff0c 如有不足 xff0c 欢迎指正 xff0c 感谢 一 终端 PC端 PC端
  • 前端获取用户地理定位的几种方式(Geolocation API,微信,腾讯地图)

    文章目录 前言一 Geolocation API二 微信 SDK1 引入jssdk2 获取签名 xff0c 注入配置3 调用JS SDK api 获取位置 三 第三方服务 xff08 腾讯地图服务 xff09 1 引入js文件2 获取定位
  • H5 软键盘自动搜索功能

    业务场景 xff1a 通常APP中的顶部搜索栏 xff0c 都配一个搜索按钮 同时输入文字软键盘弹起 xff0c 回车键自动变成搜索键 xff0c 点击软键盘中的搜索能进行搜索功能 xff0c 如下图taobao所示 xff1a 思考 软键
  • 基于vue-cli3构建自己的UI库

    文章目录 前言一 创建项目二 编写组件1 button组件2 引入字体图标icon文件3 引入Button组件看效果 三 修改目录结构1 packages文件夹2 打包修改2 demo展示 四 将UI库部署到npm上五 项目使用自己的UI库
  • vue3源码分析(三)—— 响应式系统(reactivity)

    系列文章目录 目录分析初始化流程响应式系统shared工具函数 文章目录 系列文章目录前言一 定义响应式数据1 reactive target 2 createReactiveObject2 1 入参2 2 响应式创建过程2 3 proxy
  • vue3源码分析(四)—— shared工具函数

    系列文章目录 目录分析初始化流程响应式系统shared工具函数 文章目录 系列文章目录前言1 数组中移除某元素2 字符串转数字3 转为字符串4 判定值是否发生改变5 判定数据类型5 1 数组5 2 Map5 3 Set5 4 Date5 5
  • 如何将两个rosbag包合并或者提取rosbag包中某些话题到一个rosbag里

    代码叫做merge bag py 运行的时候 python merge bag py v 1028msf bag msf bag vinReNoOutlier bag 就把msf bag和vinReNoOutlier bag完全合并在一起了
  • 解决 vscode中js变量 文件不能自动跳转问题~

    项目场景 xff1a 在项目开发中 xff0c 为了便于理解js代码逻辑和调试 xff0c 通常会使用快捷键自动定位到变量原始定义的文件位置 mac中快捷键 xff1a command 43 鼠标点击 但在vue项目开发中 xff0c 发现
  • vue3源码分析(二)—— 初始化流程

    系列文章目录 目录分析初始化流程响应式系统shared工具函数 文章目录 系列文章目录前言一 createApp在项目中的使用二 createApp源码追溯1 创建app实例1 1 ensureRenderer1 2 ensureRende
  • JS基础 ——解释执行

    文章目录 前言一 词法分析二 预编译创建全局作用域GO对象创建局部作用域AO对象 三 代码执行总结 前言 大家都知道 xff0c JS是一种不需要编译的解释型语言 但其实在浏览器执行JS代码前 xff0c 也有一个词法分析和预编译过程 xf
  • vue 项目中引入字体文件的正确方式~

    文章目录 前言一 开发中需要什么样的字体1 字体图标2 特殊字体 二 项目中引入字体文件1 字体文件2 css文件3 项目使用该字体 总结 前言 在UI设计稿中 xff0c 可能会有一些特殊字体 xff0c 或者是一些字体图标 对于特殊字体
  • vue3 使用 swiper轮播库

    文章目录 前言一 Swiper引入方式1 HTML标签引入方式2 CommonJs引入方式3 ES引入方式 xff08 采用 xff09 二 使用Swiper总结 前言 轮播图在前端开发中 xff0c 是常见需求 而Swiper库是最受前端
  • vue-cli2 老项目webpack3升级webpack5过程总结

    文章目录 背景一 webpack5环境要求二 升级步骤1 脚手架webpack cli2 升级webpack包3 更新webpack相关插件3 1 不推荐或被移除的插件3 2 升级babel到7版本3 3 更新插件 4 修改配置4 1 新增
  • 前端下载文件

    文章目录 前言二进制流前端核心实现下载功能有 xff1a 一 a标签 43 download属性二 window open url 34 blank 34 三 form表单四 接口请求 43 blob 43 a标签 43 download属
  • 前端JS 云打印 LODOP实践

    文章目录 前言一 Lodop是什么 xff1f 二 如何使用Lodop1 下载打印插件2 配置打印机3 html中植入打印控件4 调用Lodop对应的JS相关方法接口实现打印功能 三 Lodop主要方法接口三 注意点总结 前言 一般B S系
  • axios源码——工具函数utils.js

    文章目录 前言一 工具函数所在目录二 判定数据类型的函数1 isArray 判定数组 2 isString 判定字符串 3 isNumber 判定数值 4 isObject 判定对象 5 isPlainObject 判定纯对象 6 isUn
  • 源码阅读——validate-npm-package-name

    文章目录 前言一 源码阅读工具二 阅读源码1 目录结构2 package json3 index js 三 使用该包1 vue cli中使用2 create react app 中使用 总结 前言 validate npm package
  • 学习rtklib

    数据下载 日期转换和一些常用数据下载 http www gnsscalendar com index html year 61 2019 多系统精密星历和精密钟差下载 2021年10月25日更新 xff1a 单GPS精密星历文件要在这里下载