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[…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
JDK 17 序列化是怎么回事
如何序列化?其实很简单,就是根据每个类型,用工厂类调用。逐个完成。 没什么漂亮的代码,只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...
