GPS定位的基本原理

2024-06-03 10:28
文章标签 定位 基本原理 gps

本文主要是介绍GPS定位的基本原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. GPS定位原理简述

        在GPS定位系统中GPS卫星发送定位信号,定位设备接收定位信号,通过无线电TOF测距原理(1) - 你眼中的TOF与真实的TOF-CSDN博客已知在这种模下定位设备没有办法直接获取到GPS卫星到定位设备的TOF,当然设备到卫星的距离也是不能直接获取到的,不能获取到定位设备的到卫星距离那由如何进行定位?虽然不能直接获取到TOF距离,但通可以通过多颗基站的距离差然后根据双曲线原理完成定位,由于定位设备并不发送信号而仅仅卫星发送定位信号,这种定位方式下定位设备的数量可以无限多。

2. GPS 定位原理V1.0

        假定卫星S0和卫星S1同时发送定位信号(如下图所示),这时设备D收到这两颗卫星信号的时间差为Rt,那么这个时间差Rt是由于什么造成的?由于两个卫星是同时发送的无线信号且信号传输的速度相等,这个时间差Rt是由于d0和d1的距离差导致,当Rt为0时,这时设备应一定位于S0和S1连线的中轴线上;当Rt大于0,这时设备D位于中轴线的左边;当Rt小于0,这时设备D位于中轴线的右边。

GPS定位原理V1.0

        虽然不能直接测量卫星到设备的TOF距离,但有存在两颗卫星可以测量卫星到设备的距离差 :

\delta_d=d_1-d_2\\ R_t = \frac{\delta_d}{c}\\ \delta_d = R_t*c

        其中d为设备D到S0与S1的距离差,c无线电传播速度。当测量到Rt后结合光速的计算就可以计算得到设备D到S0与S1的距离差,当已知这组设备到两颗卫星的距离差后,其实是得到已一组双曲线方程:

\sqrt{(x-x_0)^2+(y-y_0)^2+(z-z_0)^2}-\sqrt{(x-x_1)^2+(y-y_1)^2+(z-z_1)^2}=\delta_0=R_0*c\\

         双曲线图像如下:

        当有这样4颗卫星后,就可以得到3组距离差,可以构建3个方程组,通过解三个方程组可以算出唯一的x,y,z坐标:

\sqrt{(x-x_0)^2+(y-y_0)^2+(z-z_0)^2}-\sqrt{(x-x_1)^2+(y-y_1)^2+(z-z_1)^2}=\delta_0=R_0*c\\ \sqrt{(x-x_1)^2+(y-y_1)^2+(z-z_1)^2}-\sqrt{(x-x_2)^2+(y-y_2)^2+(z-z_2)^2}=\delta_1=R_1*c\\ \sqrt{(x-x_2)^2+(y-y_2)^2+(z-z_2)^2}-\sqrt{(x-x_3)^2+(y-y_3)^2+(z-z_3)^2}=\delta_2=R_1*c

        以上即是卫星定位的基本原理,也是为什么要需要4颗卫星才能定位的根本原因。

3. GPS 定位原理V2.0

        在V1.0要求卫星S0、S1同时发送定位信号,首先需要S0和S1同时发送信号这在工程上几乎是不可能的,其次即使做到了同时发送信号由于无线信号存在相互干扰导致接收端收不到任何的定位信号,在实际上会将S0和S1错峰发送,如下图所示:

         在S0和S1错峰发送后,接收时间差Rt已不再是设备D到卫星S0与S1的距离差了,而是:

\delta_d = d1-d2\\ R_t = \frac{\delta_d}{c} +\frac{d_0}{c} + D2\\ \delta_d=c*(R_t-D2-\frac{d_0}{c})

        在上式中d0为卫星之间的距离,由于卫星间相对位置已知d0为常量,即使不知道也可以通过卫星间完成的TOF测量得到;时间D2等于卫星S2收到S1信号到S2发送信号之间的时间。采用新的距离差计算方案后新的定位公式如下:

\sqrt{(x-x_0)^2+(y-y_0)^2+(z-z_0)^2}-\sqrt{(x-x_1)^2+(y-y_1)^2+(z-z_1)^2}=\delta_0=c*(R_t-D2-\frac{d_0}{c})\\

        同样收到4颗卫星后会得到3组距离差,然后得到为唯一的坐标。

4. GPS 定位原理V3.0

        在V2.0中解决了GPS的同时发送导致的干扰问题,但是未能解决设备之间的时钟误差问题,卫星使用的时钟精度极高,但是终端设备受限成本问题导致时钟精度不高,在V3.0中需要解决时钟误差问题。解决方案与无线电TOF测距原理(1) - 你眼中的TOF与真实的TOF-CSDN博客类似。

5. 总结

        卫星定位的基本原理是通过接收4颗卫星然后得到3组距离差,通过计算3组双曲线(对于3维是双曲面)相的交点解算得到唯一的坐标。

这篇关于GPS定位的基本原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026726

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

js定位navigator.geolocation

一、简介   html5为window.navigator提供了geolocation属性,用于获取基于浏览器的当前用户地理位置。   window.navigator.geolocation提供了3个方法分别是: void getCurrentPosition(onSuccess,onError,options);//获取用户当前位置int watchCurrentPosition(

防盗链的基本原理与实现

我的实现防盗链的做法,也是参考该位前辈的文章。基本原理就是就是一句话:通过判断request请求头的refer是否来源于本站。(当然请求头是来自于客户端的,是可伪造的,暂不在本文讨论范围内)。首先我们去了解下什么是HTTP Referer。简言之,HTTP Referer是header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务

【CSS in Depth 2 精译_023】第四章概述 + 4.1 Flexbox 布局的基本原理

当前内容所在位置(可进入专栏查看其他译好的章节内容) 第一章 层叠、优先级与继承(已完结) 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位(已完结) 2.1 相对单位的威力2.2 em 与 rem2.3 告别像素思维2.4 视口的相对单位2.5 无单位的数值与行高2.6 自定义属性2.7 本章小结 第三章 文档流与盒模型(已

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位

flume系列之:记录一次flume agent进程被异常oom kill -9的原因定位 一、背景二、定位问题三、解决方法 一、背景 flume系列之:定位flume没有关闭某个时间点生成的tmp文件的原因,并制定解决方案在博主上面这篇文章的基础上,在机器内存、cpu资源、flume agent资源都足够的情况下,flume agent又出现了tmp文件无法关闭的情况 二、

AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理

AI学习指南深度学习篇——带动量的随机梯度下降法的基本原理 引言 在深度学习中,优化算法被广泛应用于训练神经网络模型。随机梯度下降法(SGD)是最常用的优化算法之一,但单独使用SGD在收敛速度和稳定性方面存在一些问题。为了应对这些挑战,动量法应运而生。本文将详细介绍动量法的原理,包括动量的概念、指数加权移动平均、参数更新等内容,最后通过实际示例展示动量如何帮助SGD在参数更新过程中平稳地前进。

一次生产环境大量CLOSE_WAIT导致服务无法访问的定位过程

1.症状 生产环境的一个服务突然无法访问,服务的交互过程如下所示: 所有的请求都是通过网关进入,之后分发到后端服务。 现在的情况是用户服务无法访问商旅服务,网关有大量java.net.SocketTimeoutException: Read timed out报错日志,商旅服务也不断有日志打印,大多是回调和定时任务日志,所以故障点在网关和商旅服务,大概率是商旅服务无法访问导致网关超时。 后

定位cpu占用过高的线程和对应的方法

如何定位cpu占用过高的线程和对应的方法? 主要是通过线程id找到对应的方法。 1 查询某个用户cpu占用最高的进程号 top -u 用户名 2 查询这个进程中占用cpu最高的线程号 top –p 进程号-H    3 查询到进程id后把进程相关的代码打印到jstack文件 jstack -l pid > jstack.txt 4 在jstack文件中通过16进制的线程id搜索到

Zookeeper基本原理

1.什么是Zookeeper?         Zookeeper是一个开源的分布式协调服务器框架,由Apache软件基金会开发,专为分布式系统设计。它主要用于在分布式环境中管理和协调多个节点之间的配置信息、状态数据和元数据。         Zookeeper采用了观察者模式的设计理念,其核心职责是存储和管理集群中共享的数据,并为各个节点提供一致的数据视图。在Zookeeper中,客户端(如

Autoware 定位之ndt定位(八)

0. 简介 这一讲按照《Autoware 技术代码解读(三)》梳理的顺序,我们来说一说Autoware中的ndt定位,这个软件包有两个主要功能:1. 通过扫描匹配进行位置估计,2. 通过ROS服务使用蒙特卡洛方法估计初始位置 1. 代码阅读 1.1 debug.cpp 这段代码是一个用于生成用于调试的可视化标记数组的函数。它接受时间戳、坐标系、缩放比例、粒子信息和索引作为输入,并返回一个