高精度全局定位系统本质上可以看做一个级联的定位系统,先通过GNSS系统提供一个可能的位置范围,再利用激光雷达(Lidar)系统、视觉定位系统等方法进行局部环境的搜索匹配,从而实现厘米级的定位精度。由于需要由GNSS为高精度定位系统提供全局唯一的位置初值和误差范围,所以它在自动驾驶系统中的作用至关重要。
一、什么是GNSS
全球导航卫星系统(Global Navigation Satellite System,GNSS)是能在地球表面或近地空间的任何地点为用户提供全天候的三维坐标、速度以及时间信息的空基无线电导航定位系统。目前最大的GNSS系统是美国的GPS、俄罗斯的GlONASS、中国的北斗和欧盟的Galileo。
1.GPS
广为人知、广泛应用GNSS系统是美国的全球定位系(Global Positioning System,GPS)。
该系统由美国政府于1970年代开始进行研制,并于1994年全面建成,GPS信号分为民用的标准定位服务(SPS,Standard Positioning Service)和军用的精确定位服务(PPS,Precise Positioning Service)两类。由于GPS无须任何授权即可任意使用,原本美国因为担心敌对国家或组织会利用GPS对美国发动攻击,故在民用讯号中人为地加入选择性误差(即SA政策,Selective Availability)以降低其精确度,使其最终定位精确度大概在100米左右;军规的精度在十米以下。2000年以后,比尔·克林顿政府决定取消对民用讯号的干扰。因此,现在民用GPS也可以达到十米左右的定位精度。
2. GLONASS
它是由苏联于1982年研发的卫星导航系统,苏联解体后一度丧失大多数卫星与功能,限制由俄罗斯维护运作。在技术方面,GLONASS系统的抗干扰能力比GPS要好,但其单点定位精确度不及GPS系统。
3. 北斗系统(Beidou Navigation Satellite System, BDS)
北斗卫星导航系统(Beidou Navigation Satellite System,BDS)是中国独立自主建设的一个卫星导航系统,北斗卫星导航系统由两个独立的部分组成,一个是2000年开始运作的区域实验系统,另一个是已经开始面向全球服务的全球导航系统。
4. 伽利略定位系统(Galileo)
伽利略定位系统(Galileo)是一个正在建造中的卫星定位系统,该系统由欧盟通过欧洲空间局和欧洲导航卫星系统管理局建造,总部设在捷克共和国的布拉格。该系统的基本服务(低精度)是提供给所有用户免费使用的,高精度定位服务仅提供给付费用户使用。伽利略系统的目标是在水平和垂直方向提供精度1米以内的定位服务,并且在高纬度地区提供比其他系统更好的定位服务。
伽利略系统的第一颗试验卫星GIOVE-A于2005年12月28日发射,第一颗正式卫星于2011年8月21日发射。该系统计划发射30颗卫星,截止2016年5月,已有14颗卫星发射入轨。于2017年到2018年提供初步工作服务,最终于2019年具备完全工作能力。该系统的30颗卫星预计将于2020年前发射完成,其中包含24颗工作卫星和6颗备用卫星。
二、GNSS定位的原理
在所有的GNSS系统中,以商业化程度而言首推GPS,它家喻户晓,几乎成了全球卫星导航系统(GNSS)的代名词。GPS系统由24~32颗卫星,不间断的运行在6个约20200公里高度的轨道上,这些卫星每隔约12小时绕地球旋转一圈。这样的设计保证每一时刻,每个地点都可观测到4颗以上的卫星。
卫星每时每刻都在广播信号信息,它广播的信息包含两个部分:
1)卫星自身的位置;
2)卫星信号的发送时间。地面的终端接收设备接收到卫星信号,通过对比卫星信号的发送时间和接收时间,用它们的时间差乘以光速,就得到了终端设备到卫星的距离。
每一时刻,终端接收机与卫星的距离可以准确知道,卫星的位置也可以准确知道,所以要计算地球上任意一点的三维空间坐标(x,y,z),理论上只需监测到三颗卫星就可以求解x,y,z三个未知数。但是实际情况下,接收机使用的是石英钟(秒级误差),卫星使用的是原子钟(纳秒级误差),两者的与标准时间均存在误差,为了实现精准定位,必须借助第四颗卫星消除时间误差。
假设t时刻,观测到四颗颗卫星
,有以下公式:
其中C为光速,
为第i颗卫星的钟差,
为接收机的钟差,
为第i颗卫星距离接收机的推算距离。
由以上四个方程即可解算出待测点的坐标x、y、z和接收机的钟差
。
什么是钟差
接收机的时间和卫星的时间都不是标准时间,相对于标准时间都有误差,这个误差就叫钟差。
假设标准时间是北京时间8:00,接收机时间是北京时间8:01,卫星时间是8:02,卫星发射电磁波到接收机的时间间隔为5分钟。在标准时间8:00的时候,卫星以为时间是8:02,所以它发射一个信号“我是在卫星时间8:02发射信号的”。接收机将在(标准时间8:05接收到信号),但此时接收机是时间8:06,它以为现在时间是8:06。所以,接收机就这么计算8:06-8:02=4分钟,信号传播了4分钟,而实际上,信号传播了5分钟。这种时间不统一造成的距离计算误差是不可接受的。
卫星定位计算公式的详解
接收机的时间和卫星的时间是已知的,卫星钟差也可以通过卫星控制器或其他途径获得,所以只存在四个未知数x,y,z
,通过四个方程可以求解。
三、GNSS的误差来源
上述的卫星定位计算过程只考虑了接收设备钟差的影响,事实上,影响卫星定位精度的误差源很多。
大气层延迟
大气层中的电离层和对流层对GPS信号会起到延迟的作用,电离层对电磁波的折射效应使得GPS信号的传播速度发生变化,对流层同样会对电磁波产生折射效应,从而影响GPS信号的传播速度。
卫星星历误差
卫星星历是由地面监控站跟踪监测卫星求定的。由于卫星运行中要受到多种摄动力的复杂影响,而通过地面监控站又难以充分可靠地测定这些作用力或掌握其作用规律,因此在星历预报时会产生较大的误差。它不仅严重影响单点定位的精度,也是精密相对定位的重要误差来源。
卫星时钟误差
由GPS系统的工作原理可知,卫星时钟的精确度越高,其定位精度也越高。早期试验型卫星采用由霍普金斯大学研制的石英振荡器,相对频率稳定度为
秒。误差为14m;1974年以后,GPS卫星采用铷原子钟,相对频率稳定度达到
秒,误差8m;1977年,GPS卫星采用铯原子钟后,相对稳定频率达到
秒,误差再降为2.9m;1981年,GPS卫星采用氢原子钟,相对稳定频率为
,卫星误差降至仅为1m。
卫星钟差是指GPS卫星时钟与GPS标准时间的差别。虽然GPS的原子钟的精度一直在不断升级,但它们与GPS标准时之间仍存在偏差和漂移,这些偏差和漂移会带来定位精度的误差。比如当总漂移量在1ms~0.1ms以内时,由此引起的等效定位误差将达到300km~30km。这是一个系统误差必须加以修正。
多径效应
由于接收终端周围环境的影响,使得接收机所接收到的卫星信号中还包含有反射和折射信号的影响,这些反射和折射信号延长了卫星信号传输的距离,这也是影响在室内和城市楼宇密集的地区定位偏差大的一大因素。
四、如何提升卫星定位的精度
我们是没有办法消除所有误差,那怎么提升定位的精度呢,于是乎一个天才的想法就诞生了:一定范围内的大部分误差是差别不大的。基于这个想法,在已知位置的参考点上建设基站,通过基站修正它周围一定范围的定位误差,从而得到非常精确的定位信息。
目前在无人驾驶和无人机中广泛使用的是RTK (Real Time Kinematic), 即载波相位差分技术。它能够实时地提供测站点在指定坐标系中的三维定位结果,并达到厘米级精度。在RTK作业模式下,基站采集卫星数据,并通过数据链将其观测值和站点坐标信息一起传送给移动站,而移动站通过对所采集到的卫星数据和接收到的数据链进行实时载波相位差分处理,得出厘米级的定位结果。
RTK厘米级定位的前提是你需要接收到足够多的卫星信号,但在实际场景如隧道、车库、高楼的环境下由于难以接收到卫星信号效果是还是很差的,这时候必须借助于其它定位手段(激光雷达定位、视觉定位、惯性导航设备定位等)实现厘米级定位。
参考链接
1.https://zh.wikipedia.org/wiki/全球定位系统 2.https://zh.wikipedia.org/wiki/格洛纳斯系统 3.https://zh.wikipedia.org/wiki/北斗卫星导航系统 4.https://zh.wikipedia.org/wiki/伽利略定位系統
相关文章
自动驾驶硬件系统(十)- Inertial Measurement Unit (IMU)
自动驾驶定位算法(九)-直方图滤波定位
从零开始学习自动驾驶系统(八)-基础知识之车辆姿态表达
从零开始学习自动驾驶系统(七)-无迹卡尔曼滤波Unscented Kalman Filter