深度剖析GNSS高精度定位原理

一、背景

       目前室外使用最广泛的定位手段是GNSS定位,常规的GNSS定位精度约5、10米左右,无法满足高精度场景的应用,如何提升GNSS定位性能是亟待解决的问题。本文由浅入深剖析GNSS定位原理并介绍如何实现厘米级高度定位。

二、GNSS定位原理

1、GNSS基本概念

    全球卫星导航系统(GNSS:Global Navigation Satellite System)是一种以卫星为基础的无线电导航系统,系统可提供时间/空间基准和所有与位置信息相关的实时动态信息,又称天基系统。GNSS是否就是GPS?答案是否定的,GNSS包含了多个国家不同的星座系统,主要有美国的GPS系统,欧盟的伽利略系统,俄罗斯的GLONASS系统,中国的北斗系统等另外还有其他的些区域定位系统,如日本QZSS等。

每个GNSS星座都是由空间星座部分、地面控制部分以及用户设备部分组成,空间部分提供我们定位所需要的各种信息包括星历(卫星轨道参数等信息)、发射测距信号等;地面控制部分的主要作用是根据监控到的GNSS观测数据,计算出卫星的星历和卫星钟的改造参数,并反馈给卫星,同时可以对卫星进行控制以及发布指令等;用户设备通过接收卫星信号并进行一定的解算,可以获得自身的位置和时间等信息。

2、GNSS定位基本原理

      GNSS定位的基本原理是基于测距,即根据测量得到的卫星与用户设备之间的距离,计算用户自身的位置。我们可以通过哪些信息来计算卫星与用户之间的距离?已知距离信息后需要与哪些信息结合才能够计算出用户自身的位置?

      首先分析如何获取卫星与用户之间的距离,接收机(即用户设备,后续直接称为接收机)一般可以获取到两类距离测量信息,一类是伪距测量,一类是载波相位测量,下面分别说明。接收机可以根据一定的方法接收到卫星发射的信号同时记录当前接收机的时间,卫星发射时间是已知的,因此可以获得信号在空间中传播的时间,由于信号传播速度为光速,因此测量得到的距离为pr称为伪距,即pr不是真实的距离,有一定的误差。

      另外一种距离信息是载波相位测距,载波相位测距不是基于信号空间传播时间完成测量,而是利用了电磁波的相位周期性完成测量;由于GNSS信号是电磁波,相位具有周期性,因此真实的相位应该是N个整周+一个非整周相位,非整周部分可以通过锁相环精确获得,而整周部分N不确定,需要通过其他手段确定,即Cp=(N+γ)*入,其中N为整周,γ一般是未知的,为非整周部分,λ为信号波长。

     载波相位测距与伪距有何区别?主要区别是精度不同,伪距精度一般是~1m,当载波相位整周模糊度固定正确时,精度为~0.001m,因此基于伪距定位精度一般是米级,根据载波相位定位度可以达到cm级。

    我们获取到卫星到接收机的距离时,需要结合哪些信息计算接收机的位置呢?其实我们还有另外一个信息.星历信息,根据星历信息我们可以获取到卫星在各时刻的位詈及速度,结合卫星位置以及卫星与接收机之间的距离,通过最小二乘法或者扩展卡尔曼滤波等方法可以确定接收机的位置。

3、GNSS定位难点

    如第2节所述,可以很简单的计算出接收机的位置GNSS定位真的这么简单吗?我们详细看一下伪距测量以及载波测量有哪些误差源:①GNSS时钟与接收机不同步;②不同GNSS之间时钟也不同步;③接收机时钟一般存在漂移;④GNSS信号在传幡过程中;会经过大气层和对流层,存在信号反射和折射,因此实际测距或者相位不是真实的距离;⑤接收机与卫星之间可能存在多路径效应,致接收到的信号不是直达信号;⑥在很多地方只能收到极少数卫星无法满足定位需求;⑦部分地方GNSS信号完全被遮挡,无法完成定位。以上只列出了部分误差源,实际情况可能会更复杂具体分类如下:

    与卫星有关的误差:卫星轨误差,卫星钟差;

    与传幡途径有关的误差:电离层延迟,对流层延迟,多路径效应

    与接收设备有关的误差:接收机天线相位中心的偏移和变化,接收机钟差等;

    下图以示意图的方式列出了各误差源:

4、GNSS定位消除误差方法

    消除上述误差一般有如下2种思路:①模型改正法:对误差进行建模估计并补偿;②求差法:通过差分将特定的误差、消除或减弱,根据如何消除这些误差源,实时GNSS定位可以简单分为单点定位、以及RTK定位。

    单点定位直接根据测量得到的伪距信息完成定位,定位过程中对接收机钟差进行建模,部分算法会对电离层和对流层进行建模,计算中采用广播星历精度较低,最终定位精度一般是米级。

    PPP是精密单点定位,是采用精密星历并对接收机和卫星的钟差、时钟漂移、电离层,对流层进行建模,从而实现较高精度定位,PPP定位度可达10cm,但是一般收敛时间较慢,需要30min以上。

    RTK是实时动态定位,除了利用接收机收到信息,还用了差分基站的信息。差分站是一个位置精确已知的高精度接收机,可以接收到与用户接收机比较类似的GNSS信息,差分站接收到GNSS信号后,通过网络传输给用户接收机,用户接收机通过对自身接收的信号与差分站接收到的各信息作差,可以完全消除钟差,卫星轨道等参数影响,也可以削弱电离层和对流层的影响,为何是削弱而不是消除呢?因为此处我们假设卫星到用户接收机的传幡路径中电离层与对流层特征,与卫星到差分站接收机的传播路径中电离层和对流层特征一致,但是在实际场景中,二者不一致,但是比较接近,因此可以削弱电离层与对流层的影响。

    差分定位意图如下:包括站间差分、星间差分以及历元间差分。

差分定位优点:①消除或减弱一些具有系统性误差的影响;②减少平差计算中未知数的个数。差分定位缺点:①原始独立观测量通过求差将引起差分量之间的相关性;②平差计算中,差分法将使观测方程数明显减少。

5、RTK算法基本原理

    RTK算法是前最常用的GNSS高度定位技术,在开阔场景下,定位度达cm级,且在几秒内就可以完成。

    上节我们介绍了测量误差的修正,当误差修正后我们可以采用修正后的距离测量信息,计算定位结果,高精度定位必须采用载波相位进行定位,但是载波相位存在整周模糊度问题,即必须精确已知整周模糊度才能够获取精确的定位结果,因此RTK算法的核心是整周模糊度固定。

    理论上,整周模糊度N必须是整数但是我们根据最小二乘法或者卡尔曼滤波估计得到的N不是整数,而是实数,如何根据实数获取到整数呢?最基本的方法是搜索即历实数N附近的所有整数,评估定位误差选取误差最小的整数组合即为真实的整周N。由于测量信息中存在载波相位和伪距,二者量测精度差异较大,导致整周模糊度搜索空间巨大,复杂度高,因此我们可以通过数据转换,消除各参数之间的相关性,缩小搜索空间,从而提升算法效率,常用的方法有lambda等。如下图所示:参数变换前后,搜索空间明显减小。

三、RTK算法缺点及改进方法

    RTK定位在较为开阔环境下定位可达厘米级性能满足高定位要求,但是在复杂环境下定位性能无法保证,因此无法通过单独依靠RTK完成全场景高精度,我们必须通过其他手段来提升定位精度,主要有以下几个方案:1、通过大量历史数据分析,直接优化RTK算法;2、通过结合惯性传感器,利用组合导航的优势提升定位性能;3、采用其他短离高度定位的方式,比如蓝牙定位以及NFC定位等。

四、成果应用及意义

   高精度定位技术是一种非常精密、复杂的精确导航技术。在交通运输、测量测绘、无人机定位、自动驾驶、共享两轮车等领域中具有广泛的应用,它已经成为现代社会中不可或缺的一部分。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/481535.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL下载安装和本地连接

1、下载MySQL 从MySQL官网下载MySQL Community Server版本: 下载地址:MySQL官网 1、进入官网,点击DOWNLOADS 2、点击MySQL Community(GPL)Downloads 3、点击MySQL Installer for Windows 4、这个会直接跳转到最新的版本 如果想下载以往的…

面试算法-83-不同路径 II

题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish”)。 现在考虑网格中有障碍物。那么从左上角到…

【进程概念】启动进程 | 查看进程 | 创建进程

目录 启动进程 查看进程 方法1:/proc 方法2:查看脚本 ​方法3:系统调用获取进程标示符❗❗ 终止进程 创建进程(主fork) 🙂查看父子进程的pid 🙂进程创建/执行/终止 🙂多次重新启动进…

java的IO之NIO

NIO是一种同步非阻塞的I/O模型,在Java 1.4中引入了NIO框架,对应java.nio包,提供了channel、selector、buffer等。 NIO中的N可以理解为Non-blocking不在单纯是New,它支持面向缓冲的,基于通道的I/O操作方法。NIO提供了与…

论文阅读之LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS(2021)

文章目录 论文地址主要内容主要贡献模型图技术细节实验结果 论文地址 LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS 主要内容 这篇文章的主要内容是介绍了一种名为LoRA(Low-Rank Adaptation)的技术,这是一种针对大型语言模型进行…

阅读MySQL知识4

一、MySQL数据库主从同步延迟产生的原因 MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。 Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作…

【欧拉函数+快速幂】第十四届蓝桥杯省赛C++ C组 Java A组/研究生组 Python 研究生组《互质数的个数》(C++)

【题目描述】 给定 a,b&#xff0c;求 1≤x< 中有多少个 x 与 互质。 由于答案可能很大&#xff0c;你只需要输出答案对 998244353 取模的结果。 【输入格式】 输入一行包含两个整数分别表示 a,b&#xff0c;用一个空格分隔。 【输出格式】 输出一行包含一个整数表示…

8-深度学习

声明 本文章基于哔哩哔哩付费课程《小白也能听懂的人工智能原理》。仅供学习记录、分享&#xff0c;严禁他用&#xff01;&#xff01;如有侵权&#xff0c;请联系删除 目录 一、知识引入 &#xff08;一&#xff09;深度学习 &#xff08;二&#xff09;Tensorflo…

Java全栈课程之Linux———基本属性

一、看懂文件属性 Linux系统是一种典型的多用户系统&#xff0c;不同的用户处于不同的地位&#xff0c;拥有不同的权限。为了保护系统的安全性&#xff0c;Linux系统对不同的用户访问同一文件&#xff08;包括目录文件&#xff09;的权限做了不同的规定。 在Linux中我们可以使…

深入理解Ubuntu22:探索Linux操作系统的功能与应用

一、linux &#xff08;一&#xff09;、安装 1、电脑可以安装双系统&#xff0c;即在一套硬件上只能同时运行一个操作系统&#xff0c;例&#xff1a;C盘安装win&#xff0c;D盘安装linux。 2、虚拟机 虚拟机需要硬件支持&#xff0c;并需开启VT-x. 如&#xff1a;Virtual…

Ubuntu18.04显示--有线连接未托管

引用: Ubuntu18.04连不网 报"有线连接未托管"_ubuntu20.04以太网未托管-CSDN博客 正文 虚拟机环境配置&#xff1a; VirtaualBox Ubuntu18.04桌面版 问题现象&#xff1a; Ubuntu18.04虚拟机的桌面上提示“有线连接未托管”&#xff0c;虚拟机不能上网&#xf…

使用倒模耳机壳UV树脂胶液制作舞台监听耳返入耳式耳机壳有哪些缺点?

使用倒模耳机壳UV树脂胶液制作舞台监听耳返入耳式耳机壳也存在一些缺点&#xff0c;具体如下&#xff1a; 成本较高&#xff1a;相对于传统的塑料或金属材料&#xff0c;UV树脂胶液的成本较高&#xff0c;需要更多的材料和工艺成本。制作难度较大&#xff1a;由于UV树脂的特殊…

鸿蒙ArkTS实战开发-Native XComponent组件的使用

介绍 本篇Codelab主要介绍如何使用XComponent组件调用NAPI来创建EGL/GLES环境&#xff0c;实现在主页面绘制一个正方形&#xff0c;并可以改变正方形的颜色。本篇CodeLab使用Native C模板创建。 如图所示&#xff0c;点击绘制矩形按钮&#xff0c;XComponent组件绘制区域中渲…

校招岗位大解析

校园招聘岗位需要综合考虑岗位描述、行业背景、公司文化、职业发展路径、技能要求、薪酬福利以及公司口碑等多个方面的因素&#xff0c;全面了解并综合考虑这些因素&#xff0c;才能更好地选择适合自己的岗位&#xff0c;实现个人职业发展目标。 1. 软件/后端/前端开发 软件/…

【SpringBoot】如何定义接口

定义get接口 使用GetMapping定义一个基本get接口 RestController //表示定义一个json格式返回给前端 public class test {private Map<String,Object> map new HashMap<>();GetMapping(value "/test") //定义接口路径public Object userInfo(Strin…

搭建Linux内核开发环境——保姆教程(持续更新中)

搭建Linux内核开发环境——保姆教程&#xff08;持续更新中&#xff09; git版本管理汇编器链接器调试器编辑器构建系统模拟器文档工具图形设计工具 在此文中&#xff0c;持续完善&#xff0c;搭建内核开发环境的细节&#xff0c;有需要的小伙伴儿可以持续关注下 git版本管理 …

【小白入门篇1】GPT到底是怎样练成?

由于具有代表性的OpenAI公司GPT模型并没有开源&#xff0c;所以本章节是参考一些开源和现有课程&#xff08;李宏毅&#xff09;讲解ChatGPT原理。本章没有涉及到很多数学运算&#xff0c;比较适合小白了解GPT到底是怎么练成。GPT的三个英文字母分别代表Generative(生成式)&…

【LeetCode】升级打怪之路 Day 27:回溯算法 — 单词拆分问题

今日题目&#xff1a; 140. 单词拆分 II139. 单词拆分 参考文章&#xff1a;回溯算法&#xff1a;单词拆分 今天主要做了两道单词拆分的问题&#xff0c;都是需要使用回溯算法来解决&#xff0c;第一个题目难度不大&#xff0c;第二个题目需要在“剪枝”上多做一些功夫&#xf…

电脑共享文件使用记录怎么查

共享文件是指在网络环境下&#xff0c;多台计算机之间或同一台计算机的不同用户之间&#xff0c;能够对文件进行共享的一种机制。 通过共享文件&#xff0c;用户可以方便地在多台计算机之间传输和访问文件&#xff0c;实现文件资源的共享和协作。 在共享文件的设置中&#xf…

基于modbus TCP实现EPICS与西门子S7 1200系列1215C PLC的通信

PLC介绍 西门子系列PLC在国内的市场占比第一&#xff0c;1200系列中小型PLC&#xff0c;因其众多的产品序列、强大的通讯功能和丰富扩展模块&#xff0c;被使用在工业生产、自动化生产线、智能制造、机器人等各行各业。根据CPU的供电电源的型号和数字量输出的类型&#xff0c;…