当前位置: 首页 > news >正文

2024.1.24 GNSS 学习笔记

1.伪距观测值公式

2.载波相位观测值公式

3.单点定位技术(Single Point Positionin,  SPP)

仅使用伪距观测值,不使用其他的辅助信息获得ECEF框架下绝对定位技术。

使用广播星历的轨钟进行定位,考虑到轨钟的米级精度,所以对于<1米的误差,基本不考虑。同时因为仅使用伪距,所以和载波相关的误差也不需要考虑。(不需要天线相位改正、相位缠绕改正等误差改正)

对于单频用戶,一般使用广播星历播发的电离层模型和tgd产品,进行改正。对流层误差同样使用经验模型进行改正,对于各项潮汐引起的误差以及天线相位中心偏差等误差,均可不做考虑。

4.相对定位技术

相对定位技术分两种:

第一种仅伪距参与定位,称为RTD技术(Real Time Differential);

第二种是在加了伪距进行定位的基础上增加了载波观测值的使用,称为RTK技术(Real Time Kinematic,实时载波相位差分技术)。

相对定位技术可以得到可以得到cm-dm的实时定位精度。

5.事后动态处理(Post Processed Kinematic, PPK)

相对定位技术中,还有一种和RTK相似的技术,但它需要经过事后处理得到定位结果,称为PPK技术(Post Processed Kinematic),通过事后处理,可以进一步提升RTK的定位精度。

PPK的应用场景:(要求定位精度比实时性更重要的场景,而RTK技术更注重实时性,适用于要求实时性比定位精度更重要的场景)

在一些场景中,比如地图采集/航测等,定位精度其实比实时性更重要,或者在一些场景中并不能接入电台或者互联网实时获得差分改正信息。

6.差分改正信息是指什么?

所谓差分改正信息,可以认为是另外一个安装在已知点的接收机的卫星观测信息。我们需要一定的通讯手段将差分信息发送到用戶端,供定位算法引擎对同一个卫星的观测值组站间差分。

因为对于距离相对较近的两个站点,其轨道误差对两个站的影响基本相似通过站间差分,可以消除轨道误差的影响

同时,如果两个测站观测时刻相同,对同一个卫星的伪距或者载波组站间差分(星间差分)可直接消除卫星钟差的影响。

7.精密单点定位(Precise Point Pointing, PPP)

和单点定位技术类似,可以使用单台接收机在全球任何位置获得高精度ECEF框架下的绝对坐标

为了获得高精度的定位结果,所有的厘米量级以上的误差均需要考虑

  • 需要使用高精度的轨钟产品(.SP3 .CLK文件),而不能使用广播星历中的低精度广播轨道
  • 使用无电离层组合(使用更多)或者状态参数中增加电离层误差的估计
  • 天顶的对流层湿延迟作为参数参与估计
  • 使用模型对天线相位缠绕(Phase wind-up)进行修正
  • 使用模型对卫星或者接收机的天线相位偏差进行修正
  • 使用模型对潮汐误差进行修正
  • 为了提高收敛速度和定位精度,需要使用phasebias产品,完成模糊度的固定,我们称之为PPPAR技术(PPP Ambiguity Resolution)
  • 为了进一步提高收敛速度和定位精度,可以播发高精度的格网电离层产品和对流层产品,我们称之为PPPRTK技术(PPP Real Time Kinematic)

8.SPP RTK PPP技术对比图


1.该块知识主要涉及输入以及输出。即卫星观测数据以及星历数据的存储格式,实时通信格式以及最后的定位结果输出格式等。主要涉及RINEX、RTCM、NMEA以及一些开源软件的自有格式。

2.RINEX格式的来源与介绍

GNSS观测数据从接收机通过专用软件传输到计算机中,以接收机厂商所定义的专有文件格式以二进制的形式存储。不同GNSS接收机厂商所定义的专有格式各不相同,有时甚至同一厂商不同产品型号格式也不相同。
为解决这一问题(解决不同接收机厂商的观测数据文件格式的不同),1989年提出了RINEX(Receiver Independent Exchange Format,接收机自主交换格式)格式,如今已经成为了
GNSS测量应用的标准数据格式。值得一提的是,2016年在RINEX3.03版中全面支持BDS。目前RINEX已经在2021年12月更新至4.00版本。

数据下载网址:IGS官方产品及数据下载地址汇总——亲验可用(2022.08.05持续更新)_igs下载-CSDN博客

3.RINEX 2.x & 3.x版本

RINEX 2.x版本刚发布时,由于仅有GPS和GLONASS系统,所以在协议制定时考虑不太全面。对于常用的,一般就三种文件:

  • 观测数据文件
  • 导航(星历)文件
  • 气象数据文件

对于2.x版本,文件命名规则:ssssdddf.yyt。

其中ssss表示测站名;ddd表示年积日;

f表示一个字符一天内的文件序号(时段号),f=0:文件包含当天所有观测数据;

yy表示年份后两位,如2022则yy为22;t表示数据类型,如o、n、m、p等。

对于3.x版本,包含两种扩展名

.rnx 表示标准的 RINEX 文件

.crx 表示压缩过的Compact RINEX 格式。crx格式和rnx格式可通过发布的工具进行
转换。

3.x 的命名格式如下:

文件名示例如下:

4.3.x格式的观测数据文件介绍(目前主流使用,2.x格式的过于古老,不予介绍)

观测值文件头 header 介绍

5.星历文件Header

星历导航文件数据区的特点:

  • 每行依然为 80 列;
  • 可以从接收机中导出,亦可以从互联网下载;
  • 第一部分为卫星号、发布时刻、卫星钟参数;
  • 之后以广播轨道 1 到 7 的方式给出卫星的轨道根数;
  • 广播轨道每 2h 更新一次

6.RINEX 4.x 版本

RINEX 4.00主要是为了适应现代化的导航电文信息,需要定义格式来支持所有星座,同时也是为了更加⻓久地支持存储观测值、导航电文等数据。版本号之所以会增加,是因为RINEX 4.00 导航电文文件不再兼容RINEX 3.0X。不过观测值文件仍然兼容RINEX 3.0X,对于观测值文件来说,没有太大的更新,只是一些比较小的改动。

基站存储数据将逐步过渡到RINEX 4.00,不过目前很多基站数据仍然采用RINEX 2.X,或者是正从RINEX 2.X 往RINEX 3.0X进行过渡,最终过渡到RINEX 4.00估计还需要挺⻓的时间。

可以参考官网中的文档。

7.RTCM格式

国际海运事业无线技术委员会(Radio Technical Commission for Maritime Services,简称RTCM)于1983年11月为全球推广差分GPS业务设立了SC-104专⻔委员会,制定各种数据格式标准。

其中版本1和版本2版本较老,对多系统支持相对较差,此处我们简单介绍以下最新的RTCM版本 10403.3即,3.3版本。

2004年标准第三版引入了一种针对RTK、多星系的全新电文格式,该格式使用可变⻓度格式来提高效率并增加可发送的电文数量,这对于实时差分非常重要,更新的新标准还大大增加了可能的消息类型的数量。RTCM 3.x 新定义了多种消息类型,可直接适应正在开发系统,如增加了对网络RTK的支持增加了对北斗系统与伽利略系统的支持,以及对现有系统的修改(如新的L2C与L5信号)。

3.x 版本支持的数据类型如下所示:

8. State space representation  SSR

9.NMEA格式

NMEA 是 National Marine Electronics Association 的缩写,是美国国家海洋电子协会的简称,现在是 GPS 导航设备统一的 RTCM 标准协议

NMEA-0183 协议是目前卫星导航接收机上使用最广泛的协议,大多数常⻅的卫星导航接收机、卫星导航数据处理软件都遵守或者至少兼容这个协议。

NMEA格式的数据示例如下:

在这些数据中,包含了位置、速度、时间等信息,通过解析这数据,就可以实时获取物体的位置信息,或者实现时间同步。

  • GGA 全球定位系统定位数据,如时间、定位等
  • GSA 参与定位的GNSS卫星ID号、精度因子等
  • GSV 可⻅的GNSS卫星,例如可⻅的卫星数、卫星ID号等
  • RMC 推荐的最小具体 GNSS 数据
  • VTG 矢量跟踪与对地速度

通用语句还需要加上所使用的定位系统前缀,

GPS NMEA 语句的前缀为“GP”,

BeiDou NMEA语句的前缀为“GB”,

GLONASS NMEA语句的前缀为“GL”,

Galileo NMEA 语句的前缀为“GA”,

混合定位(Mixed) NMEA语句的前缀为“GN”。 

所以对于现在的接收机,几乎所有的都使用多卫星系统进行定位,多以一般开头均为“GN”

大地水准面高度:地球椭球面相对大地水准面的高度。


1.

相关文章:

  • C# 使用屏障来使多线程并发操作保持同步
  • AcWing:4646. 爬树的甲壳虫
  • mysql INSERT数据覆盖现有元素(若存在)
  • 【MQ01】什么是消息队列?用哪个消息队列?
  • Go语言学习笔记:基础语法和类型
  • 【Java】SpringMVC参数接收
  • 【电商API接口Python实例】100个Python爬虫实例
  • pyspark之Structured Streaming file文件案例1
  • 设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总
  • OpenCV第 2 课 OpenCV 环境搭建
  • LabVIEW高级CAN通信系统
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程
  • notepad++: 插件fingertext 来创建代码块
  • 考研过后你如坐针毡,而有些人因选择中国人民大学与加拿大女王大学金融硕士而乐在其中
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angularjs之国际化
  • ECMAScript6(0):ES6简明参考手册
  • Effective Java 笔记(一)
  • iOS 颜色设置看我就够了
  • uni-app项目数字滚动
  • vue脚手架vue-cli
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 分布式任务队列Celery
  • 欢迎参加第二届中国游戏开发者大会
  • 来,膜拜下android roadmap,强大的执行力
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 网络应用优化——时延与带宽
  • 物联网链路协议
  • 鱼骨图 - 如何绘制?
  • HanLP分词命名实体提取详解
  • python最赚钱的4个方向,你最心动的是哪个?
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • ​虚拟化系列介绍(十)
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #pragma pack(1)
  • (14)Hive调优——合并小文件
  • (zhuan) 一些RL的文献(及笔记)
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (算法)求1到1亿间的质数或素数
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (学习日记)2024.01.19
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • ****Linux下Mysql的安装和配置
  • .Net core 6.0 升8.0
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .NET Core 和 .NET Framework 中的 MEF2