导航定位系统的原理解析(写给小白)

    • 前言
    • ‘三星’定位基本原理(导航定位的原理)
    • 传输误差
    • 后记

前言

无人驾驶是这几年大火的一个研究方向,研究无人驾驶需要了解的知识非常多,但是导航定位技术一定是其中必不可少的一环。

本篇文章主要就GNSS系统如何实现定位进行一个简单的介绍,通过阅读本篇文章,你将了解:

l 卫星导航实现定位的原理;

l 辅助增强系统如何实现厘米级定位。

本篇文章的目标读者是对定位导航一无所知的小白玩家,大神请绕路。

‘三星’定位基本原理(导航定位的原理)


提到卫星导航系统,相信就算对此不了解的人也一定听说过,三颗卫星就能确定一个地面坐标的说法。那么这个说法是如何来的呢?

假设小明在户外活动时候迷了路,于是他打电话报警让警察接他回家,警察告诉他不用着急,会首先通过卫星定位他的手机信号确定他的位置坐标信息,所谓位置坐标信息就是小明此时的(X,Y,Z)的信息。
定位原理如图所示:
在这里插入图片描述

假设小明此时的位置坐标信息为(X,Y,Z),与小明进行信号通讯的三颗卫星编号分别为卫星1号,卫星2号和卫星3号。这三颗卫星坐标与小明手机发射的信号抵达三颗卫星的时间分别如上图所示,则显然有如下方程成立:

在这里插入图片描述

解这个三元三次方程组之后,很快就能知道小明的坐标信息。小明很开心,坐等救援队的到来,结果一天一夜过去了,救援队并没有人来,小明赶紧打电话问为什么还没到?救援队接电话的人气喘吁吁的说,不对啊老弟,按照给定的位置信号找不到你啊,你是不是乱跑了啊,小明说哪能呢,我一动没敢动啊。
在这里插入图片描述

那么到底是哪出了问题呢?小明仔细的研究这个方程组,最后发现,最有可能出问题的地方就是卫星接收到信号的时间。意思就是接收小明信号的三个卫星可能初始时间并不统一,这样造成的后果就是,卫星1以为自己接收到小明信号的时间是5s,实际上可能是5.2s,卫星2以为自己接收到小明信号的时间可能是5.1s,实际可能是4.9s,卫星3以为自己接收到小明信号的时间是5.4s,实际可能是5.5s。这种情况是由时钟误差造成,这里不展开,本文仅讲述如何在算法上消除这种误差,很简单,将上述方程的时间作调整,得到新的方程如下:



在这里插入图片描述
想法很性感,现实很骨感,因为小明很沮丧的发现,这些卫星并不知道自己的时间包含多少误差量,于是小明灵机一动,既然三颗卫星互相之间各种推诿,那就委托第三方来处理,于是小明又找到了第四颗卫星,以这一颗卫星作为标准卫星,假设该标准卫星的位置信息为
在这里插入图片描述

该方程组包含4个未知数,四个方程,因此可解。

传输误差

到了这里,小明就能很快得救了吗?如果真的这样想就大错特错了。因为信号在通过电离层、对流层等区域的时候,会很曲折,这时候又会产生新的传输误差。


在这里插入图片描述

你看,本来走直线的信号在经过大气层的时候开始拐弯了,当然了,具体怎么拐的弯我们并不知道,但是误差却产生了。怎么办呢?

小明突然想到在附近貌似有个信号塔,这个信号塔的位置是确定的,而小明通过手机定位这个信号塔,也能够确定自己和信号塔之间的距离。现在小明和信号塔同时给卫星发射信号进行定位,结果信号塔的定位结果和实际结果之间存在误差,**由于信号塔本身位置是确定的,因此卫星和信号塔之间的距离传输误差很容易被确定,然后信号塔就会告诉小明这个误差值,小明根据这个误差值就可以修正自己的位置,然后告诉救援队自己的真实位置了。**这种做法的好处是通过信号塔把所有从卫星到地面标的物之间的误差统一考虑了,但是这样做的前提是信号塔和小明的距离不能太远,这个信号塔其实就是RTK。


为什么RTK和标的物不能距离过远,这是由于当距离较远时,导航卫星收到的电离层和对流层的干扰情况会变的不同,此时无法有效修正误差。

后记


小明获救后,救援队为了防止再次出现类似事件,于是建立了许多参考基准站并组成了网络。当再有救援活动出现时,可以根据目标的初始位置迅速锁定目标周围的三个距离最近的基站,然后根据三个基站的传输数据定位出带救援人员的精确坐标。


总而言之,单纯通过GPS做定位误差会比较大,但是如果增加适当的辅助措施,则可以有效的减小这种误差。关于导航系统的误差来源,作者简单整理如下图所示:


在这里插入图片描述
以上就是关于导航的最基础的知识,作者目前在做一个关于无人工地的项目,里面涉及到大量的无人驾驶、多机协同控制等内容,当前作者在这些领域也是小白一个,随着项目的进行,作者会将搜集到的资料编制成文档与大家分享,如果有大神路过,还请多多指教。