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.
2.伪距观测值方程

3.伪距方程线性化及其定位方程的求取

同时我们计算卫星到接收机概略位置的单位向量,理论上来说如果概略位置偏差不太大,那么单位向量的差异就不太大,甚至可以忽略。u就可以用u0表示。

进一步整理以下公式:

先验残差:由观测值文件获取的伪距观测值 减去 由广播星历和广播钟差计算得到的卫星位置与接收机概略位置(观测值文件中读取)之间差值的平方和(即两者之间的距离) + 卫星钟差值(广播星历计算) 减去 电离层延迟模型估计值 减去 对流层延迟模型估计值 减去 观测噪声值(通常在配置文件中设置)

4.多系统定位方程(对于同时存在BDS和GPS两个系统的定位方程如何列)
因为GPS和BDS是两个系统,所以主要表现在接收机端的误差会存在差异,这些误差会被接收机钟进行吸收,所以我们一般可以为GPS和BDS系统分别估计一个接收机钟差。
即其设计矩阵和待估状态量如下:

当然如果我们将GPS的接收机钟差作为基准的话,那么也可以估计北斗接收机钟相对于GPS系统的偏差,该偏差短时相对问题,可以增加一定的时间上的约束,起到增强观测方程强度的作用。
即其设计矩阵和待估状态量如下:

至于再增加GAL/GLO系统,原理一致,不再展开。
综上所述:单点定位的定位流程可以用以下流程图进行描述:

相关文章:
2024.1.24 GNSS 学习笔记
1.伪距观测值公式 2.载波相位观测值公式 3.单点定位技术(Single Point Positionin, SPP) 仅使用伪距观测值,不使用其他的辅助信息获得ECEF框架下绝对定位技术。 使用广播星历的轨钟进行定位,考虑到轨钟的米级精度,所以对于<1米的误差&…...
2024-01-22(MongoDB)
1.Mongodb使用的业务场景: 传统的关系型数据库/mysql在“三高”需求以及应对web2.0的网站需求面前,有点力不从心,什么是“三高”需求: a. 对数据库高并发的读写需求 b. 对海量数据的高效率存储和访问需求 c. 对数据库的高可扩…...
无人机航迹规划(六):七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划(提供MATLAB代码)
一、七种算法(DBO、LO、SWO、COA、LSO、KOA、GRO)简介 1、蜣螂优化算法DBO 蜣螂优化算法(Dung beetle optimizer,DBO)由Jiankai Xue和Bo Shen于2022年提出,该算法主要受蜣螂的滚球、跳舞、觅食、偷窃和繁…...
《WebKit 技术内幕》学习之十二(2):安全机制
2 沙箱模型 2.1 原理 一般而言,对于网络上的网页中的JavaScript代码和插件是不受信的(除非是经过认证的网站),特别是一些故意设计侵入浏览器运行的主机代码更是非常危险,通过一些手段或者浏览器中的漏洞,…...
算法优化:LeetCode第122场双周赛解题策略与技巧
接下来会以刷常规题为主 ,周赛的难题想要独立做出来还是有一定难度的,需要消耗大量时间 比赛地址 3011. 判断一个数组是否可以变为有序 public class Solution {public int minimumCost(int[] nums) {if (nums.length < 3) {// 数组长度小于3时&a…...
IDEA导出jar
1、选择导出方式 2、选择Main Class 3、构建jar...
Win10/11中VMware Workstation设置网络桥接模式
文章目录 一、添加VMware Bridge Protocol服务二、配置桥接参数1.启用系统Device Install Service服务2.配置VMware 需要确认物理网卡是否有添加VMware Bridge Protocol服务 添加VMware Bridge Protocol服务 提示:以下是本篇文章正文内容,下面案例可供参…...
html Canvas粒子文字特效
代码有点长,下面是代码: <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>HTML5 Canvas粒子效果文字动画特效DEMO演示</title><link rel"stylesheet" href"css/normalize.c…...
@JsonFormat失效,被jackson自定义配置覆盖
jackson配置类 我的jackson配置类如下,其中serializerByType(LocalDateTime.class, new LocalDateTimeSerializer()) 覆盖了JsonFormat注解 Configuration public class JacksonConfiguration {public static final DateTimeFormatter optionalDateTimePattern (n…...
SaaS系统如何助力企业数字化转型
随着科技的快速发展,数字化转型已经成为企业适应市场变化、提高竞争力的必要手段。在这个过程中,SaaS(软件即服务)系统以其独特的优势,正在成为越来越多企业的首选。乔拓云SaaS系统作为这一领域的佼佼者,更…...
nginx配置内网代理,前端+后端分开配置
安装好后nginx,进入配置文件 我这块安装在了home里面,各位根据自身情况选择 打开nginx.conf文件 在底部查看是否包含这段信息:含义是配置文件包含该路径下的配置文件 include /home/nginx/conf/conf.d/*.conf; # 该路径根据自己的安装位置自行修改 配置文件 进入conf.d文…...
i18n多国语言Internationalization的动态实现
一、数据动态的更新 在上一篇i18n多国语言Internationalization的实现-CSDN博客,可能会遇到一个问题,我们在进行英文或中文切换时,并没有办法对当前的数据进行动态的更新。指的是什么意思呢?当前app.js当中一个组件内容ÿ…...
C++笔记(二)
函数的默认参数 如果我们自己传入数据,就用自己的数据,如果没有,就用默认值 语法: 返回值类型 函数名(形参默认值){} int func(int a,int b20,int c30){} …...
【技能---构建github中SSH密钥的流程】
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言SSH基于账号口令的安全验证通过SSH连接到服务器打开终端(命令行界面)使用 SSH 命令连接: 在 Ubuntu 中生成 SSH 密钥并将其添…...
linux-centos服务器离线安装yapi(包含nodejs、mongodb、yapi、pm2离线安装)
yapi是使用vue框架开发的,借助nodejs 前端直接访问的mongodb数据库,离线安装yapi步骤如下 下载离线安装包 下载地址 https://download.csdn.net/download/qq445829096/88778418 离线安装包先复制到 dev/yapi目录(根据自己习惯自定义目录) node-v12.13.0-linux-x64.tar.xz …...
手撕重采样,考虑C的实现方式
一、参考文章: 重采样、上采样、下采样 - 知乎 (zhihu.com) 先直接给结论,正常重采样过程如下: 1、对于原采样率fs,需要重采样到fs1,一般fs和fs1都是整数哈,则先找fs和fs1的最小公倍数,设为m…...
网络安全产品之认识入侵防御系统
由于网络安全威胁的不断演变和增长。随着网络技术的不断发展和普及,网络攻击的种类和数量也在不断增加,给企业和个人带来了巨大的安全风险。传统的防火墙、入侵检测防护体系等安全产品在面对这些威胁时,存在一定的局限性和不足,无…...
第20课 在Android Native开发中加入新的C++类
这节课我们开始利用ffmpeg和opencv在Android环境下来实现一个rtmp播放器,与第2课在PC端实现播放器的思路类似,只不过在处理音视频显示和播放的细节略有不同。 1.压缩备份上节课工程文件夹并修改工程文件夹为demo20,将demo20导入到Eclipse或…...
python学习笔记11(程序跳转语句、空语句)
(一)程序跳转语句 1、break 用法:循环语句中使用,结束本层循环,一般搭配if来使用。注意while/else语法 示例: i0; while i<3:user_nameinput(请输入用户名:)pwdinput("请输入密码&a…...
C. Doremy‘s City Construction(二分图问题)
思路:把集合划分成两部分,一部分中每个数都比另一部分小,这两部分连成一个完全二分图,这种情况是最优的,还需要特判所有数都相等的情况. 代码: void solve(){int n;cin >> n;vector<int>a(n 1);for(int i 1;i < n;i )cin >> a[…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)
推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...
Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合
无论是python,或者java 的大型项目中,都会涉及到 自身平台微服务之间的相互调用,以及和第三发平台的 接口对接,那在python 中是怎么实现的呢? 在 Python Web 开发中,FastAPI 和 Django 是两个重要但定位不…...
Java多线程实现之Runnable接口深度解析
Java多线程实现之Runnable接口深度解析 一、Runnable接口概述1.1 接口定义1.2 与Thread类的关系1.3 使用Runnable接口的优势 二、Runnable接口的基本实现方式2.1 传统方式实现Runnable接口2.2 使用匿名内部类实现Runnable接口2.3 使用Lambda表达式实现Runnable接口 三、Runnabl…...
【R语言编程——数据调用】
这里写自定义目录标题 可用库及数据集外部数据导入方法查看数据集信息 在R语言中,有多个库支持调用内置数据集或外部数据,包括studentdata等教学或示例数据集。以下是常见的库和方法: 可用库及数据集 openintro库 该库包含多个教学数据集&a…...
大模型智能体核心技术:CoT与ReAct深度解析
**导读:**在当今AI技术快速发展的背景下,大模型的推理能力和可解释性成为业界关注的焦点。本文深入解析了两项核心技术:CoT(思维链)和ReAct(推理与行动),这两种方法正在重新定义大模…...
