普通定位
学过初中数学都知道,我们如果要在一个二维平面上定位的话,首先建立一个笛卡尔坐标系,通过坐标原点,就可以判定A点的具体位置(x,y)的坐标,如果要从A点到B点的绝对距离,也就是通过坐标系上的绝对位置的运算即可。
这里的二维平面的定位比较准确,而且相对容易一些,是只有X/Y方向上的坐标,只要大家都遵循对应的原点坐标,或者哪怕原点坐标不同,轻易转换也可以得到,所以一般情况下在室内的一些平面定位会比较好做一些,比如扫地机器人的定位。
GPS三维定位
我们先来看看地球上的某个位置的定位,其实对于对球上的某个点而言,正常情况下只需要知道经度和纬度,但是对于导航而言,一定还需要定位的高度,否则像重庆这样的魔幻8D城市,太多高架桥的位置,上桥和下桥的导航位置显示的经纬度都一样,只能通过高度来定位自己处于哪条道路上,否则导航分分钟让人在重庆高架桥上半日游,所以大家都说看一个地图准确不,来重庆立交桥溜溜就行。
有的这个概念后我们再来看GPS定位原理就会轻松很多。
首先明白一个事情,无论是GPS还是北斗,都是通过卫星来定位的,GPS 的全称是导航星测时和测距全球定位系统,简称全球定位系统(Global Position System,GPS),可以实现地球表面附近范围的全天候三维位置等信息的获取,其具有实时性好、准确度高的优点,是当前世界发展最完善、应用最广泛的全球卫星导航系统。
我们经常在文章中看到的GNSS,是全球卫星导航系统(GNSS)是卫星导航的统称,是除了GPS以外,还包含目前俄罗斯的GLONASS、中国的北斗,欧洲的伽利略这四大导航系统。
GPS的工作的标准定义如下:
GPS由24颗工作星和4颗备用星组成。卫星工作在互成55度的6条高度为2.02万KM的非同步轨道上。如此一来,在全球的任何地方、任何时间都可观测到4颗以上的GPS卫星。GPS卫星向地球发射导航电文(系统时间、星历、历书、卫星时钟修正参数、导航卫星健康状况、电离层延时参数等内容),GPS终端收到卫星发送的数据,经解算即可确定当前位置,并以NMEA0183格式,WGS-84坐标系输出数据。
读起来很拗口吧,那我以一个专业理科生的理解方式来给你剖析剖析。
①为什么不使用同步轨道卫星呢?
地球同步卫星轨道:卫星的轨道周期等于地球在惯性空间中的自转周期(23小时56分4秒),且方向亦与之一致,卫星在每天同一时间的星下点轨迹相同,当轨道与赤道平面重合时叫做地球静止轨道,即卫星与地面的位置相对保持不变。倾角为零的圆形地球同步轨道称为地球静止轨道,因为在这样的轨道上运行的卫星将始终位于赤道某地的上空,相对于地球表面是静止的。这种轨道卫星的地面高度约为 3.6万千米。它的覆盖范围很广,利用均匀布在地球赤道上的 3颗这样的卫星就可以实现除南北极很小一部分地区外的全球通信。
既然同步轨道卫星数量这么少就可以实现定位,为什么不使用呢,这里涉及到一个发射的问题,地球同步轨道卫星的发射很困难,技术很复杂。但如果一个国家的卫星发射场建在地球的赤道上,那这种卫星的发射就简单多了,在赤道上由西向东发射,达到要求的轨道高度,在适当的位置定点,问题就解决了。可惜的是,许多发射卫星的国家不在赤道上,也不可能在赤道上建立卫星发射场。这样给卫星的发射带来了许多的困难,要经过几次的轨道变换才能成功。
但即使卫星已经定点很准了,当工作时间一长,由于地球形状的影响(地球不是正圆)、地磁场的影响,以及太阳甚至月亮的引力都使得卫星的位置发生变化 (轨道摄动),所以时不时的还要进行轨道修正,要随时控制它的状态和位置,这种修正我们称为卫星的轨迹保持。
简单来说,同步轨道卫星需要在轨道附件发射,如果不是的话,进入同步轨道是魔鬼般的困难,即是卫星到了同步轨道,随着工作时间一长,又要重新修正,花费的成本太大。
所以不用同步轨道卫星导航的根本原因是技术太难,成本太贵,吃不消。
②为什么需要接收到4颗以上的卫星才能定位
我们还是得从GPS的功能说起,除了定位,GPS还给我们提供一个精准的时间修正,这个时间比石英晶体的时间还准100倍,所以车里面的时间校准都基本上使用GPS的时间去校准。
测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。
公式看起来有点费劲,我们就简单来理解,我们还是从坐标系的位置说起,正常情况下需要知道笛卡尔坐标系下的(X,Y,Z),三个坐标分量,同时还有一个时间t0的分量,那么这样算起来就有四个未知数,学过数学咱们都知道,四个未知数,至少需要4个方程才能解出来,那么就至少需要4颗卫星才能组成4个方程。
下面是接收机在搜到不同卫星数量的时候可以做的工作,在搜到1颗卫星的时候就可以更新时间和日期了,但是要实现经纬度和高度的定位至少也是需要4颗卫星以上才能有海拔信息的输出。
有的人也许会担心,我家在遥远偏僻的小山村,怎么能保障头顶上有4颗以上的卫星呢?
上面GPS的搜星说了,一定要收到4颗卫星以上才能定位,由于卫星一直是在运动的,所以每颗卫星大约5小时左右在地平线以上,同时位于地平线上的卫星至少有4颗,最多12颗,上图是用户可接收到卫星数量的概率分布图,7、8、9颗卫星概率最大了,此时定位是毫无压力。
卫星定位有点类似 古希腊唯物主义哲学家赫拉克利特的一句名言“人不能两次走进同一条河流”这句名言的意思是说,河里的水是不断流动的,你这次踏进河,水流走了,你下次踏进河时,又流来的是新水。河.水川流不息,所以你不能踏进同一条河流。同样的,卫星定位的时候,你早上搜到的那颗卫星和你傍晚搜到的那颗卫星都不是同一颗卫星了,但是不影响你最终的定位输出。
有的人说不对啊,为什么经常在桥下或者树林茂密的地方无法定位呢?
是因为卫星的发射功率并不大,信号到达地面时已经很弱。这种信号强度相当于1.6万公里外一个25瓦的灯泡发出的光。再做个比喻,它比电视机天线所接收到的功率还要低10亿倍,此时就和不同手机的接收模块有关系,有的手机GPS接收性能好一些,如果你恰好又在停车场或者天桥等遮挡信号的地方,此时不能定位也是正常的,所以这里埋下伏笔,GPS定位在一些信号恶劣的环境下是无法定位的。
同样都是使用GPS定位,为什么车载导航定位的时间要比手机定位的时间要慢很多呢?
常规情况下,定位模块上电开机后,通过天线搜索卫星,解析卫星发射的数据(导航电文),然后内部生成星历,再经过复杂的计算,从而得到当前精确的位置(3D Fix)。这个过程称之为“冷启动”。根据信号强度、芯片运算能力,通常耗时几十秒到几分钟不等。这个过程中,搜星+生成星历文件耗时最久,不同厂家的芯片算法能力不同,时间就会有差异,基本上目前都是30秒上下。
为什么有的时候定位模块只用了几秒就成功定位了呢?原因有二:
1、非“冷启动”方式,即“温启动”或“热启动”;
2、使用了AGPS辅助定位。
也许大家会以为,这里的“X启动”和电脑的开机、待机(睡眠)、重启近似吧?实际上并非如此哦。由于卫星所处空间位置、终端设备所处地表位置是不固定的,所以此处的“X启动”都是以最后一次定位时间和位移距离作为判断依据的:比如温启动,指的是距离上次的定位时间超过2小时,不足4小时,没有较大距离的位移发生,这样就可以实现秒定位,为什么呢?
因为定位模块要搜星,生成星历,比如我在深圳,头上有某一颗卫星,假如我不移动,这颗卫星要经过4个小时后才会移动到搜不到的地方,更换为其他卫星,如果我没有发生较大位置移动,不足四小时的话,可以使用上次的搜星的星历,就会节省很多时间,就会秒定位,热启动也是一样的原理。
怎么实现AGPS秒定位呢?
那么,什么又是“AGPS辅助定位”呢?在传统GPS定位方式中,定位模块需要全频段搜索以找到可用卫星,因而耗时较长。而“AGPS辅助定位”方式,是通过网络直接下载当前地区的可用卫星星历数据,并将之发送给定位模块,定位模块只搜索特定的卫星,从而提高了搜星速度,减少设备耗电。
想想网络下载当前地区可用星历,那么有好几种方法,比如使用2G/3G/4G网络,中控车上带有TBOX就可以,比如通过WIFI,WIFI连接某个热点也可以下载星历。这里简单说说2G怎么一个AGPS的过程。
1、设备从蜂窝基站获取到当前位置的小区信息;
2、设备通过蜂窝网络,将当前蜂窝小区信息传送给网络中的AGPS位置服务器;
3、APGS位置服务器根据当前小区信息查询该区域当前可用的卫星信息(包括卫星的频段、方位、仰角
等相关信息),生成对应星历文件,并返回给设备;
4、通信模块通过串口把收到的星历文件传输给定位模块;
5、定位模块根据星历文件,得到的可用卫星信息,快速找到当前可用的GPS卫星,针对性的搜星,大大提升定位时间。