自动驾驶传感器(五):卫星导航GNSS-RTK原理

发布于 2023-02-07 21:56・IP 属地北京  ​

目录,作者:BUAA火车侠

成文日期:2022/01/17

0. 前言

自动驾驶的感知层里面,前面Lidar,Radar,Camera的介绍之前已写完。还差GNSS-RTK和IMU模块就补齐了主要的自动驾驶感知层的硬件,而通常这俩模块会被集成到一起形成所谓的“组合导航”。

另外,Lidar,camera等传感器输出的数据都需要经过较为复杂的处理计算,而GNSS,IMU则都可以输出简单、直观的位置数据。因此,它们也是自动驾驶系统中 “定位模块 Localization”的重要组成部分。开始吧~

1. GNSS定位系统概述

1.1 GNSS——Global Navigation Satellite System

GNSS是利用卫星来精确测定地球上任一点时间和位置的系统。其提供的服务有:

精确位置(经度、纬度和高度坐标),精度范围在20m到约1mm之间。

精确时间(协调世界时,即UTC),精度范围在60ns到约5ns之间。

GPS的基本功能:定时,定位

对于定位功能,GNSS利用4个以上卫星的伪距、星历、卫星时钟数据等数据,即可推算出用户当前的位置。目前全球一共有四种GNSS系统。

1.2 四种GNSS系统(无聊,可以不看)

美国:GPS(Global Positioning System)

GPS是卫星导航的首创者,1970s,美国国防部为了给军队提供实时、全天候的全球导航服务,并进行情报收集、应急通讯等一些军事目的,开始研制“导航卫星定时和测距全球定位系统”。后续扩展到了民用领域。GPS由美国空军第50航空联队负责运营,世界范围内的GPS设备在生产阶段,都需要给美国国防部缴纳授权费用。

起初GPS针对军用与民用提供了不同的测量精度,军用为3米,而民用信号增加干扰机制。后来在2000年,GPS取消了民用信号的干扰,推动了民用领域的普及。

在中国国内,出于国家安全考虑,所有民用GNSS接收设备都需要采用不可逆的加偏算法,使其定位不准确。

中国:北斗导航系统

2020年7月,我国的北斗三号系统正式启用,北斗采用三频信号向用户广播导航数据。三种频率信号可以更好地消除高阶电离层延迟影响,提高定位可靠性和抗干扰能力。

北斗还可以提供短报文通信服务,是一项实用性很强的功能,可作军事上紧急通信、求救信号的手段。

俄罗斯:格洛纳斯(GLONASS)

俄罗斯的格洛纳斯卫星采用频分多址技术(FDMA)。格洛纳斯卫星都发射同样的伪随机码,但采用不同的频率发射。具有抗干扰能力和抗互相关的特性。但频分多址技术造成用户接收机体积庞大造价昂贵,基本无法应用于民用市场。

格洛纳斯所用的坐标系是 1990 年苏联所制定的 PZ-90 参考坐标系,其时间系统与莫斯科标准时间 UTC+3关联,其与GPS时间有数十纳秒的差异。由于地缘政治关系,俄罗斯无法在其他国家部署较多地面站点,因此其定位精度在俄罗斯以外的国家也比较差。

欧盟:伽利略(Galileo)

伽利略系统采用与 GPS 类似的码分多址技术,以区别不同的卫星。伽利略信号结构比GPS民用码信号复杂,其信号传输速率从50bit每秒到1000bit每秒不等。伽利略系统提供含有测距码和数据信息的导航信号,测距码由每颗卫星上的高稳定度星钟产生,数据信息则由地面上行注入站向卫星发送。导航电文的内容包括星钟、星历、识别码和状态标识等,以及能使用户预测星钟和星历精度的“空间精度信息”。

1.3 GNSS组成

GNSS系统由三部分组成:空基卫星,地面监控站以及用户接收设备。

1.3.1 地面监控站

以GPS为例,其地面监控部分主要由分布在全球的主控站,注入站和监测站组成。

GPS 地面监控部分的分布

主控站

GPS的主控站位于科罗拉多州的Falcon空军基地。负责协调控制地面监控部分的工作,通过接收、处理所有监测站传来的数据:

计算卫星星历、时钟修正、状态数据、信号电离层延迟修正等;

编算导航电文并传送到注入站;

诊断卫星状态,调度卫星。

给定全球定位系统时间基准。调整卫星运动状态,启动备用卫星。

地面监测站

监测站是在主控站控制下的一个数据自动采集中心,其主要装置包括GPS双频接收机、高精度原子钟、计算机、环境数据传感器等。

监测站的主要任务是通过接收机对GPS卫星进行连续观测和数据采集,收集积分多普勒观测值、卫星时钟、工作状态数据等数据。同时通过环境传感器采集有关当地的气象数据,传送给主控站。

地面注入站

注入站是向卫星注入导航电文和控制指令的地面无线电发射站。注入站接收来自主控站的导航电文和卫星控制指令,经射频链路发送给各导航卫星。注入站的主要设备是一套直径3.6m的发射天线和一台C波段发射机(40-8.0GHz频段)。

导航电文通常包括预报的卫星轨道参数(即卫星星历表)、卫星时钟偏差参数以及轨道和钟差的改正参数等。卫星控制指令通常包括有效载荷控制指令和卫星平台控制指令。

地面监控部分部分的数据流动为:卫星运行 -> 监测站观测 -> 主控站计算 -> 注入站注入 -> 卫星得知星历 -> 广播给地面接收机;

1.3.2 空基卫星

GPS的空基卫星一共有24颗,其中3颗是备用卫星,部署在6个个轨道平面,平均高度约为 202002km,运行周期为 11h58min。北斗、伽利略、格洛纳斯卫星数量基本大同小异,都是30颗左右。最重要的原则就是:保证在地球各处能同时观测到高度角为15°以上的至少 4 颗卫星。

GNSS卫星会装有定向太阳能帆板,以保证卫星正常工作用电。卫星上安装的多波束定向天线,其发射波束能覆盖约半个地球。每一个卫星上都配备了高精度的铯原子钟,提供高精度的时间。除此之外,卫星还有与地面的通信系统,姿态控制系统以及轨道控制系统等。

卫星星座轨道

1.3.3 用户接收器

地面监控站为卫星确定了准确的位置,然后卫星实时向地球广播自身信息。用户通过GPS接收机接收到多颗的卫星轨道信息和时间,于是用户就知道了自己相对于卫星的距离 R_i ,而卫星自身坐标 (x_i,y_i,z_i) 相对于地球的位置是已知的,所以就能解算出用户在地球的具体位置。

2. 时间、空间坐标系

上一章结尾我们提到了卫星、接收者的坐标信息以及时间信息。“定位”和“定时”需要基于统一的坐标系与统一的表示方法,那么,GNSS系统是基于哪种统一的时间和空间坐标系的呢?

2.1 位置坐标系

对于位置的表达,我们自然而然地想到的是:经度、维度和海拔。这是基于“地球近似一个椭球体”的事实下,最为方便的表达。而事实上,用“海拔”来表述高度并不准确,因为世界各地的海平面高度会由于各种因素而不一样,所以更加准确的表达应该是“高程”。顺着这个想法,我们以地球质心为原点,赤道平面为XOY面,地理北极作为Z轴,X轴指向本初子午线与地球赤道交点,即可建立一个笛卡尔坐标系。该以地心为原点的坐标系固定在地球上,随着地球的自转一起运动。我们将这种坐标系称为“地心地固坐标系” ECEF(earth centered earth fixed coordinate system)。

地心地固坐标系,From wikipedia

相对应的,还有用于天体测量,地面上的点坐标值受到地球自转影响的天球坐标系。而在地固坐标系中,以地球质心作为原点的叫“地心地固坐标系”,以参考椭球的几何中心为原点的叫“参心坐标系”,这里我们不做展开。

坐标系分类

2.2 地心地固坐标系

我们已知ECEF的定义,那么ECEF中各要素的又是如何确定的?首先需要明确的是,地球的质心、地理北极、赤道这些地理要素都不是一成不变的。比如,地球质心可能会随着地质运动而发生偏移。

2.2.1 ECEF的要素定义

地球质心:

地球质心应当如何确定 or 测量呢?其可以根据斯托克斯定理和韦宁-迈内兹公式对全球范围内的引力进行积分,得出地心坐标;或利用卫星观测确定。当前主流方法是,综合利用全球地面大地测量资料和人造卫星观测资料,组成新型弧度测量方程,推求局部坐标系对地心坐标系的转换参数。根据转换参数就可把局部坐标系换算为地心坐标系。

地理北极的测量:

理论上,通过测量北极附近的恒星位置轨迹,其构成的圆心位置即为北极点。

经度表示:

0° 纬线是赤道,纬度是指某点与地球球心的连线和地球赤道面所成的线面角。其中,赤道(equator)指地球表面的点随地球自转产生的轨迹中周长最长的圆周线。

纬度表示:

0° 经线是本初子午线。由于地球是个扁椭球体,经度没有自然起点,所以人为规定经过伦敦格林尼治天文台旧址的子午线作为起点。东经 180° 即西经 180°,约等同于国际换日线,恰好国际换日线在白令海峡附近,没有横穿人类居住密度较大的大陆,对人生活的影响较小。

高程表示

我们已知,地球并非完美的球体,而是一个表面凹凸不平的近似椭球体。而且,由于地球引力和板块的原因,各处的水平面与地心的距离并不一致。因此需要找到一种比“海拔”更合理的高度表示方法。

通用的方式是:找到一个“与地球几何最吻合的椭球体”——基准椭球体作为高程的参照。该椭球体的要求是:

中心与地球质心重合;短轴与地球自转轴一致;表面与大地水准面之间的高度差的平方和最小。

基准椭球体Ellipsoid – 海平面 Geoid – 高程

如上图所示,“高程h” 的定义即是距离基准椭球体的高度。

2.2.2 ECEF的坐标转换

自然地,ECEF下的经纬高坐标 (lambda, phi, h) 可以转换为三维点坐标 (x,y,z)

x= (N+h)cos phi cdot cos lambda

y= (N+h)cos phi cdot sin lambda

z= (N(1-e^2)+h)sin phi

其中:

e 为地球椭球的偏心率, e= frac{a^2-b^2}{b^2} $, a 为长轴半径, b 为短轴半径;

N 为基准椭球体卯酉圈曲率半径, N= frac{a}{sqrt{1-e^2sin^2phi}}

反过来,由 (x,y,z)值也可求解经纬高 (lambda, phi, h) :

varphi=arctanleft[frac{z}{sqrt{x^2+y^2}}cdot frac{1}{1-frac{R_N}{R_N+h}}e^2 right]

lambda = tan^{-1}(frac{y}{x})

h = frac{sqrt{x^2+y^2}}{cosvarphi}-R_N

上面的式子里面R_N是依赖 varphi 的,所以需要多次迭代才能求解。

2.3 GWS84坐标系与CGCS2000坐标系

谁来测量?

前面提到了地心、北极、基准椭球体等概念的定义与测量方法。那么问题又来了:谁来测量这些数据?地球上有没有公认的标准的数据呢?还是每个国家有自己独立的标准?

答案是:国际地球自转服务(International Earth Rotation Service,简写IERS)下的国际地球参考框架(International Terrestrial Reference Frame,简写ITRF),这是一家位于巴黎的专门从事地球自转参数服务和参考系建立的国际组织。 该组织会不定期(有时隔一年,有时隔几年)发布新的历元,GNSS系统基本会采用该组织发布的“历元”基准。

当前,GPS系统采用的地球坐标系系统为WGS84(World Geodetic System 1984),而中国主推的则是CGCS2000(China Geodetic Coordinate System 2000)国家大地坐标系。其区别就是采用了不同的ITRF历元,然后生成了对“基准椭球体”不同的拟合结果。

WGS84和CGCS2000的区别

WGS84一开始采用的自然是1984年的历元,而当前已经采用较新的ITRF2008,CGCS2000则采用的是ITFR97(其自转轴、赤道面会存在微小差异)。并且,两个坐标系的短半轴b的长度不同。

这种拟合的差异会造成两种坐标系下对同一点测量之差达到分米级。这一差异主要由历元差异造成,短半轴的差异造成的测量差值并不大,当然两个坐标系间的换算也并不算复杂。

也有的地图标准会采用EGM96(the Earth Gravitational Model from 1996),1985国家高程来表示高程,其采用了近似海拔高度,不再展开。

坐标系基准长半轴a基准短半轴b极扁率f历元WGS846378137.0m6356752.3142m1/298.257223563ITRF2008

CGCS20006378137.0m6356752.31414m1/298.257222101ITRF97

一般而言,在中国国内,CGCS2000坐标系由国家测绘局主推,原则上国内的大地测绘都应当采用这套空间坐标系统。

2.4 时间坐标系:

一般GNSS都采用协调世界时(UTC,Universal Time Coordinated)。什么是协调世界时?先思考一个问题:时间的定义是什么?一秒、一个小时所代表的时间长度如何定义?

世界时

最为古老、朴素的时间框架就是以地球自转为基础:地球自转一周为一天,在此基础上,拆分出24h,60min,60s,该时间体系叫做 “世界时”。

原子秒

而地球自转的时间却不是恒定的,实际上,几十亿年一来,地球的自转速度一直在变慢。那岂不是“秒”的定义越来越长?后来,人们定义了原子时:秒长定义为铯 -133 原子基态的两个超精细能级间在零磁场下跃迁辐射9192631770周所持续的时间 。而由于原子时与地球自转无关,因此需要闰秒来靠近世界时。

协调世界时

UTC是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。中国大陆采用ISO 8601-1988的《数据元和交换格式信息交换日期和时间表示法》(GB/T 7408-1994)称之为国际协调时间。

GPS时

GNSS系统的时间坐标一般基于UTC。比如用于GPS的时间系统。GPS时与协调世界时的差别在于,所有累计的秒数(2008年相差14s)以及低于1μs的误差。GPS时与协调世界时之差以及该差值的当前特性通过导航电文(子帧4,第18页)发送。我们认为GPS的时间是同步于UTC的。

接收机时间,GPS接收机的内部时间。

该时间通常由内部的石英晶体振荡器确定,其有别于GPS时和协调世界时。该差值在GPS接收机开始工作时未知,但经过数次测量后可以降低。

3. GNSS系统工作原理:

以GPS为例GNSS确定坐标的基础想法很简单:即三边测量(Trilateration)。如果我们知道一个物体距离三个已知位置的卫星的距离,那么我们就能计算出这个物体的位置。直观的讲,我们通过这三个卫星画三个球,那么这三个球面必定相交于空间里的一个点。

Dist_i = sqrt{(x-x_i)^2+(y-y_i)^2+(z-z_i)^2}

上式中, (x_i,y_i,z_i) 为卫星 i 在地球坐标系中的位置,三个方程三个未知数,即能够求出唯一的解。

GNSS的定位的基础想法

而上面的一个前提条件是:卫星和接收器的时钟完全同步,那么就可以用ToF的方法计算距离。但现实中上,接收器不可能配备昂贵的高精度原子钟,而1us造成位置计算误差就可达300m。因此,在实际计算中,GPS接收器和卫星的时间差 Delta t_0 同样被视作一个未知量。有:

Delta t_{meas} = Delta t+Delta t_0

而我们根据测得的时间差 Delta t_{meas} 计算出来得距离并非真实得距离,我们称之“伪距”(pseudo range, PSR)。伪距与真实距离R之间的关系是:

PSR = Delta t_{meas}cdot c = R+Delta t_0cdot c

距离计算公式:

R = sqrt{(X_{sat}-X{user})^2+(Y_{sat}-Y{user})^2+(Z_{sat}-Z{user})^2}

PSR = sqrt{(X_{sat}-X{user})^2+(Y_{sat}-Y{user})^2+(Z_{sat}-Z{user})^2}+Delta t_0cdot c

对于n颗卫星则有n组方程:

PSR_i = sqrt{(X_{sat_i}-X{user})^2+(Y_{sat_i}-Y{user})^2+(Z_{sat_i}-Z{user})^2}+Delta t_0cdot c

其中,已知条件为 PSR_i ,卫星的位置数据 (X_{sat_i},Y_{sat_i},Z_{sat_i}) ,待求数据为接收器位置 (X_{user},Y_{user},Z_{user}) 以及时间差 Delta t_0 四个未知数。因此,需要4个以上的卫星数据,构成4个方程组才能求得唯一解。这也就是平常所说“GPS定位需要4颗卫星”的缘故。

实际计算过程中求解析解较为困难,一般会采用GN,LM那一套非线性优化方法进行迭代计算。计算过程可以参考下面的文章:

GPS定位笔记1(三边测量及多边测量,DOP) – 知乎 (zhihu.com)

4星定位,解决卫星和接收器时间不同步

当然,现实情况要比这个更加复杂一些,要弄明白GNSS卫星的原理,有几个关键问题需要回答:

接收机如何确定卫星在某一时刻 t 的三维坐标位置?

卫星播报的数据格式是什么样的?

然后,如何确定卫星到接收器之间的距离?

3.1 星历

下面来解决第一个问题:接收机如何确定卫星在某一时刻 t 的三维坐标位置?

最直观的想法是:卫星将带有时间戳的坐标 (x_t,y_t,z_t) 连续不断的播报就可以了。但事实并非如此,卫星是依靠播报星历——可以理解为卫星当前运行的轨道参数,来实现对某一时刻位置的测量的。GPS卫星的星历有两种,一种是预报星历(广播星历),另一种为后处理星历(精密星历)。

3.1.2 预报星历:卫星定位的基础

所谓预报星历就是卫星持续播报的星历信息,其内容是:对于某一参考历元的6个开普勒椭圆轨道参数和必要的9个反映摄动力影响的轨改正项参数,一共16个星历参数。

参考时刻的升交点赤经度 Omega_0

升交点赤经变率 dot{Omega}

参考时刻的平近点角 M_{so}

轨道倾角变率 dot{i}

平均运行速度差 Delta n

升交距角的调和改正项振幅 C_{uc},C_{us}

轨道偏心率 e

卫星地心距的调和改正项振幅 C_{rc},C_{rs}

轨道长半轴的方根 sqrt{a_s}

轨道倾角的调和改正项振幅 C_{ic},C_{is}

参考时刻的轨道倾角 i_0

星历参数的参考历元 t_{oe}

近地点角距 omega

星历数据的龄限 AODE

GPS 卫星轨道参数示意图

我们可以不必要理解每一个参数的具体意义是什么,但我们需要知道:“这16个星历参数,描述 or 定义了卫星在当前一段时间内的运行轨道”。当然,这16个参数是由地面站依据对卫星的观测结果推算出来,再注入到卫星,卫星再向用户播报的。然后,接收器就可以根据这16个参数,计算出卫星在某一时刻的三维位置。具体的计算过程略去,有兴趣的可参考下文:

GPS定位笔记4 (轨道理论和星历和历书) – 知乎 (zhihu.com)

卫星运行的轨道当然不是一成不变的,其本身也处在动态的变化中。也因此,GPS卫星的星历参数每过一个小时就会变动一次,以达到对轨道较为精确的描述。

3.1.2 后处理星历:

通过前面描述,我们能够想到,预报星历属于对卫星当前一段时间内运动轨迹的拟合,显然它并非卫星最为真实准确的运行轨迹。

而为了满足大地测量学和地球动力学对高精密度定位的要求,需要精确地刻画某时刻的卫星轨道参数,这即为后处理星历。后处理星历是一些国家的有关部门根据各自建立的GNSS卫星跟踪站所获得的 GPS 卫星精密观测资料,采用确定预报星历相似的方法,计算出以前任意观测时刻的卫星星历。它是一种根据观测资料,事后计算的时间和星历对应的精密轨道信息库。

当然,这个和基于GNSS的定位没什么关系。

3.2 导航电文

下面解决本章开头提出的第二个问题:卫星播报的数据格式是什么样的?

GPS播报的信号实际上包含了三个部分:数据码、测距码和载波信号。先来讲数据码,数据码包含了多种与导航有关的信息:

卫星时和同步信号

精确轨道数据(星历)

用于确定精确卫星时的时间修正信息

所有卫星的近似轨道数据(年历)

用于计算信号发送时间的校正信号

电离层数据卫星的工作状态(健康状况)信息

这些信息为GPS导航定位提供数据基础,故又称为导航电文。导航电文是二进制编码文件,按规定格式组成数据帧,按帧向外播放,每帧电文含有1500bit,播送速度是每秒50bit,因此一帧导航电文的播放时间是30秒。每帧电文有5个子帧,每个子帧含有10个字,每个字为30bit。

导航电文的结构

第1帧:有该卫星的时间值,包括用于修正信号传输延迟和星载时钟时间的参数,以及卫星健康状况信息和卫星位置精度的估算值。

第2、3帧:包含了卫星的星历数据。前三帧数据每小时更新一次。

第4、5子帧:中存放所有空中GPS卫星的历书,信息量比较庞大,完整的信息需要25页,也就是说需要12.5min才能发送完成全部的导航电文。它的内容仅在地面注入站注入新的导航数据后才更新,现也有技术根据设备接入互联网网络获取附近基站拿到过的所有卫星历书。

遥测字 TeLemetry Word:每个单帧的首字是遥测字(TLM),其包含捕获信息的前导,遥测电文(地面监控系统注入数据的状态信息、诊断信息和其他),指示用户是否选用该卫星。

转换字 How-hand Over Word:提供用于捕获 P 码的 Z 计数(从每周六-周日子夜零时起算的时间计数),可以实时了解观测瞬时在 P 码周期中所处的准确位置,预先确定码的移动量,使本机产生的伪随机码的码元与即将到来的卫星信号P码码元相匹配。

3.3 卫星信号

那么数据码是如何被卫星发送出来的?这里会提到测距码和载波信号。

GPS 卫星信号示意图

GPS卫星上的原子钟的共振频率会产生以下工作所需的时间脉冲信号:

50Hz的数据脉冲(对应前面的50Bit/s的导航电文);

C/A码,P码(频率1.023MHz的伪随机PRN码),该码采用异或操作调制数据并2MHz带宽发送数据

L1,L2两种载波频率

GPS卫星信号采用了组合码调制技术,即将编码脉冲(即导航电文或者基带信号)先调制到伪随机码,即经过伪随机码扩频成为组合码,再对 L 波段(1-2GHz的电磁波)进行调制,然后由 GPS 卫星天线发射出去。卫星使用两个载波频率发射,是为了对大气层效应产生的附加延时进行双频矫正。

GPS 发射信号构成原理图

3.4 坐标计算方式

最后分析本章开头的第三个问题:如何确定卫星到接收器之间的距离?首先需要获得接收器到卫星之间的伪距PSD,而伪距的测量有四种方法:

测码伪距观测量(常用)

测量 GPS 卫星发射的测距码信号到达用户接收机天线的电波传播时间。因此这种观测方法也称为时间延迟测量。

测相伪距观测量(常用)

卫星载波信号由发射到被接收,其间载波信号传播的相位称为载波相位观测量。由于载波频率高、波长短,所以载波相位测量精度高。

开普勒积分计数伪距差

卫星相对于地面的 GPS 接收机存在着相对运动,因此接收到的信号中存在着多普勒频移。利用多普勒频移测得相对距离。多普勒积分计数法静态定位需要数小时的观测时间,一般应用于大地测量之中,在动态应用中多普勒测量,可用来计算测站的运动速度。

干涉法测量时间延迟

所需的设备相当昂贵,数据处理十分复杂,待进一步的研究开发。

测码伪距测量

所谓测码,即接收机捕获并对齐测距码之后,即可对卫星的导航电文进行解析,获取子帧中的时间戳。以C/A码为例,根据字节(一个字节0.6s)、位(一个位20ms,共20个C/A周期)、C/A码(周期1ms,共1023码元)、码元位置(一个码元约1微秒)的顺序确定接收码元的时间。例如

假如子帧时间戳为T0,则该子帧第四字节第二位第二C/A码周期第2个码元的发射发射时间为T0+3*0.6+1*0.02+1*0.001+0.000001s。测码伪距测量的原理实质是测量接收信号(码元)在传播中的位置。

精度码:C/A码与P码

而GPS的精度级别分为两种:

SPS(Standard Position System 标准定位系统):使用C/A码,其频率为1.023MHz,也就是一个码的长度是977.5ns,对应的波长是293m,一般情况下水平方向的精度能达到30m左右。应用于最常见的民用系统。

PPS(Precis Position System 精密定位系统):过去只提供给军事或国家使用,使用 P 码,其波长为29.3m,其精度会达到米级。

当然,测码伪距测量方法的精度都不是很高,但胜在原理简单,速度快。因此其是当前GPS接收设备的主流伪距测量方案。

载波相位测量

是依靠载波的相位测量,进行伪距的计算。载波速率是1575.42MHz,其对应的波长为19cm。显然其伪距测量的分辨率要远高于测码。其原理是:假设卫星某一时刻的载波相位为 varphi_0 ,经过距离 R 之后到达接收机时相位为 varphi_1 ,则载波经历的相位变化为 (varphi_1-varphi_0) ,包含了整周数为 n_0 以及不足一周的小数部分 Delta varphi 。其伪距公式可表示为:

PSR= lambda(n_0-Delta varphi)

显然,通过Forier变换,接收机可容易得到小数部分 Delta varphi ,但整周部分 n_0 却无法确定,因此我们称其为“整周模糊数”。如何确定整周模糊数,是一个复杂而艰巨的问题,我写不下去了。可以搜索关键字:Fara搜索法,P码双频法。

载波相位测量

3.5 GNSS的误差分析

实际过程中,GNSS定位会受到多种误差因素的影响,包括:

卫星星历误差

卫星在太空中运行受到其他天体的摄动力影响,地面监测站难以充分可靠测定这些摄动力的影响,使得测定的卫星轨道(星历)会有误差。同时,检测系统,接收系统也会引入误差。导致其真实的位置只能做到1~5m的精度。

卫星时钟误差

卫星上使用了高精度原子钟,但由于这些钟与GPS标准时之间会存在着随时间变化的频偏频飘,导致星钟和GPS标准时不同步。可通过接收机对星钟误差进行二项式拟合求解来消除。

电离层误差 Ionosphere Error

60km-200km的大气层部分被称为电离层,电离层折射率与大气电子密度成正比,和穿过的电磁波频率平方成反比,对于频率确定的电磁波而言,电离层折射率取决于电子密度。电离层的电子密度随太阳及其他天体的辐射强度,季节,时间,以及地理位置等因素的变化而变化。

而信号以光速从卫星出发。其在穿越电离层和对流层时会减慢。这种不确定的偏差会给计算位置带来误差。

通过大气建立补偿模型的方法,可以减少其影响。

对流层误差 Tropospheric delay error

距离地面60km以内的非电离层:包含平流层、对流层。其仅有少量的带电粒子,总体呈现电中性。因此对电磁波的传播几乎没有影响。其对频率低于30GHz的电磁波可认为是非弥散性介质,即电磁波在其中的传播速度与频率无关。

对流层的折射与地面气候、大气压力、温度及湿度等变化密切相关,这也使得对流层折射比电离层折射更为复杂。

对流层折射误差主要反映在导航卫星信号穿过对流层时,传播路径发生弯曲,从而使测量距离产生偏差。对流层折射与卫星仰角有关,随着仰角的降低,GPS信号穿越对流层大气的路径长度增加,延迟逐渐增大。标准大气条件下,在中纬度参考海平面上。天顶方向(仰角0。)的对流层延迟引入的距离误差约为2.3m,而在近地面方向(仰角5。)时,对流层延迟可达25m。

减弱对流层折射影响的主要措施有:一是采用对流层模型加以改正,其气象参数在测站可直接测定;二是引入描述对流层影响的附加待估参数;三是利用同步观测求差法。

大气传播误差:包括电离层、对流层

多径效应

多径效应指的是:GNSS信号会受到建筑、山体、树木等反射,因而接收机可能会接收到这些经过一次甚至多次反射后的卫星信号,从而产生测量误差。反射波的信号强度一般也会减小。

多径误差取决于反射物距离接收机的距离和反射系数,以及卫星信号的方向等条件因素,无法建立起准确的误差模型,只能通过改善接收天线,或延长观测时间的方式抑制。

多径反射对定位影响

接收机噪声

接收机存在接收噪声以及时间延迟,只能以有限的精度确定输入的卫星信号时间。当然,“钞能力”可以抑制这一问题。

卫星几何形态:如果用于测量的4颗参考卫星较为接近,确定位置会较为困难。

卫星距离越远,伪距测量越精确

双频GPS技术

综合以上因素,整理各要素对GNSS定位精度的影响如下:

误差因素对定位造成的影响

可看出,电离层对测量误差的影响最大。其中,低频信号受减缓影响更为严重。因此,通过使用两种不同的信号频率(3.3中提到的L1和L2两种载波频率),可在很大程度上补偿电离层的影响,这也就是“双频GPS”。

简而言之,误差和频率有一定的对应关系,讲两个频率下的差和测得伪距的差做对比,就可以很大程度上消除电离层的影响。目前,最好的双频GPS能到不错的定位精度。如U-Blox 9代芯片,即使不用差分,平面精度已经在2m以内。

4. GNSS定位增强技术

2022.04.29修改内容:对PPP,RTK,NRTK,PPP-RTK结合的定位方式进行调研阐述

从前面可知当然,GNSS的极限定位精度也就是米级的水准。对于自动驾驶而言,需要分米/甚至厘米级的定位精度才能满足车道级导航的需求。因此,有没有方法能进一步提升GNSS的精度?有两种方法,分别是精密单点定位(Precise Point Positioning,PPP)和实时动态定位(Real-Time Kinematic,RTK),以及融合两者的PPP-RTK。

各种定位方式的精度与范围

4.1 精密单点定位PPP

4.1.1 精密单点定位PPP

PPP由非差定位技术发展而来,是一种全球尺度的定位技术,PPP是通过全球分布的约100个基准站,解算高精度的卫星星历,修正用户轨道、钟差误差等,即可获得静态毫米至厘米级,动态厘米至分米级的定位服务。

PPP优点在于在全球任何位置,空基卫星使得接收者能获得均一的定位增强效果。然而,单纯的PPP最大的缺陷是其需要接近30分钟才能完成精密定位的初始化,并且,信号丢失后的重新初始化时间几乎和首次初始化一样久,漫长的收敛时间限制了其普及。

PPP原理示意图

天宝RTX全球参考站全球分布

4.2 实时动态定位RTK

4.2.1 RTK原理

RTK是由差分定位技术(Differential GNSS)发展而来。其简要原理是:对于相距不远的GNSS接收站而言,其受到的卫星轨道误差、卫星钟差、电离层延迟、对流层延迟等误差是接近的,因此可以通过站间观测值差分消除,进而实现瞬时的厘米级定位。

具体的做法是将一台接收机安置在基准站上进行观测。基准站已知自身的精密坐标,通过GNSS计算出的信号是带有误差的信号。根据精密坐标和测量信号,即可计算一个距离修正值,并由基准站实时地将这一数据广播出去。用户的接收机接收到了GNSS信号的同时,也接收到了由基准站传来的修正信号,即可对提升定位结果,其理论精度可以达到1cm+1ppm(RMS)。

RTK原理示意图

并且,RTK的另一个天然优势是:能够很快的实现位置测量收敛。当然,接收机距离基准站越远,其定位精度也就越差。

4.2.2 RTK基准站的形式

广播差分信号的参考基准站可以有多种布置形式,简而言之:可以分为移动基准站,固定基准站。

移动的基准站

移动基准站——控制点

RTK常用的基准站是类似上图这种可以移动的基站。在作业时候,需要在待测绘的地区提前布置调试基准站,之后再在相应的区域内进行作业。具体到高精地图外业采集场景,则至少需要两量作业车辆。前一辆车在规划的路径上安装基准站,为后一辆高精地图采集车提供精准的定位。

这种RTK作业方式需要两套设备+两拨人马,且需要架设基站后需要半小时的等待时间,相对不够高效灵活。

连续运行参考站 CROS 与网络RTK(NRTK)

与常规RTK需要架设移动基站不同,另一种实现RTK方式是组建连续运行参考站网络(CORS,Continuously Operating Reference Stations)。所谓的CROS是:

一个或若干个固定的、连续运行的GNSS参考站,利用数据通信和互联网(LAN/WAN)技术组成的网络,实时地向用户自动地提供经过检验的不同类型的GNSS观测值(载波相位,伪距),各种改正数、状态信息,以及其他有关GNSS服务项目的系统。

CROS基站

这种使用固定基站的RTK技术也叫“网络RTK(NRTK)”。对于网络RTK,用户可以利用多个固定基站进行信号差分,实现高精度的定位。显然,使用CROS可以很大程度提高作业的灵活性,但CROS作为一种基础设施必须要有人建立并维护,且就像手机信号塔一样,其覆盖度需要比较高。

代表性的CROS服务商是千寻位置,其是由中国兵工和阿里巴巴在2015年合资成立的。由中国兵工提供了全国超过2000多个精确位置的基站,阿里巴巴则负责研发定位算法,向用户出售差分定位服务。同样的,四维图新旗下的六分科技,以及如中国移动等拥有大规模基站的企业也都有CROS服务(定位基站涉及国家机密地理数据,上述CROS供应商基本都有官方背景)。腾讯在2022年也推出了自己的CROS基站服务。

4.2.3 三种信号差分的方式

用户地接收机在进行GPS观测的同时,也接收到基准站发出的改正数,并对其定位结果进行差分校正,从而提高定位精度。差分方式可分为三类:位置差分、伪距差分和载波相位差分。

一般而言,以坐标方式差分可达±5m 的精度,以伪距方式可达±(1~3)m级精度,而以载波相位方式可达±(1~3)cm的精度,高程精度大约为平面精度的2~3倍。

位置差分:

这是最简单的差分方法。简而言之,基准站接收GNSS信号后解算出的坐标,与基准站的已知坐标之间存在误差,记为 (Delta X,Delta Y,Delta Z) 。

基准站将此位置修正数播送出去,由用户站接收后,直接加在用户接收机解算后的坐标上即可。这种方式适用于基准站和用户站观测同一组卫星的情况,用户与基准站间的距离需在100km以内。

位置差分:最简单的差分原理

伪距差分:

伪距差分是应用较广的一种差分。基准站观测卫星,根据基准站已知坐标和各卫星的坐标,求出每颗卫星每一时刻到基准站的真实距离 [R_i] 。再与测得的伪距 [PSR_i] 比较,得出伪距的改正数 [PSR_{error i}] ,将其广播至用户接收机。该种差分方式可得到米级定位精度。

与位置差分相似,伪距差分能将基站和用户接收机共有的误差抵消,但随着用户到基准站距离的增加,又会出现新的系统误差,这种误差用任何差分法都是不能消除的。用户和基准站之间的距离对精度有决定性影响。

载波相位差分原理

RTK (Real Time Kinematic)技术基于的差分原理即为载波相位差分。 (注意,不是所有的差分GNSS都可以被称为RTK)。其原理是将基准站采集的载波相位发给用户接收机,进行求差解算坐标,载波相位差分可使定位精度达到厘米级。基准站通过网络实时将其载波观测量及站坐标信息一同传送给用户站。用户站接收GPS卫星的载波相位与来自基准站的载波相位,并组成相位差分观测值进行实时处理,能实时给出厘米级的定位结果。

差分

定位原理:卫星,基准站,接收者

4.3 载波相位差分技术原理(这里笔者没搞懂,放弃了)

用户接收机 i 和基准站接收机 j 。同时跟踪一颗编号为 i 的卫星,则载波相位观测方程可以表示为:

由两个整数相减得到的单差整周模糊度仍是一个整数,而一旦的值被正确求解出来,那么单差载波相位就成为既没有模糊度又具有高精度的单差距离测量值。

观测站A、B对卫星 j 的观测值分别为:

rho_A = f_1(X_A,Y_A,Z_A,delta_{t_A},delta_{t_j},Delta_{trop}^A,Delta_{ion}^A,N_A)

rho_B = f_1(X_B,Y_B,Z_B,delta_{t_B},delta_{t_j},Delta_{trop}^B,Delta_{ion}^B,N_B)

根据参与差分的基准站的数量,差分方式可以分为:

单差:不同观测站同步观测相同卫星所得观测量之差。消除了卫星钟差,基本消除了电流层、对流层延迟误差。

deltarho = f_2(Delta X,Delta Y,Delta Z,d_{AB},0,rightarrow,0,rightarrow,0,Delta N)

双差:不同观测站同步观测一组卫星所得观测量的单差之差。消除了星历误差,进一步消除了电流层、对流层延迟误差。

deltarho = f_3(Delta X,Delta Y,Delta Z,0,0,rightarrow,0,rightarrow,0,delta N)

三差:不同观测站同步观测同一组卫星所得观测量的双差之差。消除了整周模糊度、电流层、对流层延迟误差。

deltarho = f_4(Delta X,Delta Y,Delta Z,0,0,0,0,0)

显然,多个基准站的差分要优于单基准站差分。

4.4 PPP-RTK技术

4.1节提到,PPP漫长的收敛时间限制了其应用场景。不过,通过近些年来的研究,基于PPP解决方案取得长足进步。其原理较为复杂,公开的技术细节也不多,笔者也基本看不懂,因此只给出结论。大趋势是PPP与RTK在算法层面的统一,或许可以理解为一种空基基准站的RTK。

PPP-RTK的合流

瞬时厘米级的定位是RTK主要优势,全球低成本是PPP的主要优势。PPP-RTK从算法层面统一了RTK与PPP,在实际应用中也同时具备两者优势。例如,某PPP-RTK系统在平面收敛至5厘米和2厘米分别需要0.5分钟和2.5分钟,高程收敛至10厘米和5厘米分别需要2分钟和3.5分钟,这大大优于PPP的收敛速度。RTK、PPP、PPP-RTK的收敛速度、定位精度、覆盖范围三个维度的对比如下图,可见PPP-RTK具有较高的“伸缩性”。

RTK、PPP与PPP-RTK导航与位置服务模式对比

当前,不少商业公司都开始提供PPP-RTK服务,例如Trimble公司的CenterPoint RTX、NovAtel公司的TerraStar-X、Fugro公司的Marinestar G4+以及GEO++公司的SSRPOST等。在国内,PPP作为北斗系统规划公开服务类型之一,已能够利用三颗卫星为中国及周边地区用户提供30分钟内收敛的分米级免费定位服务。北斗预计将进一步提升精度,减少收敛时间,而显然PPP-RTK是一个attractive的方案。

5. GNSS定位增强技术与自动驾驶

增强的GNSS定位技术,包括PPP和RTK,都为自动驾驶的定位应用提供了有效的支撑,其中RTK的应用相对更加广一些。例如,基于CROS的NRTK技术在自动驾驶领域起到了重要作用:

一些高精地图厂商逐渐放弃自己打控制点的做法,而采用NRTK的方案,很大程度上减少外业作业成本。比如高德、Monenta购买了千寻的服务,四维则是采用自家的六分科技的CROS服务。

一些自动驾驶车辆也会采用基于CROS的RTK定位技术,例如小鹏P7即由千寻位置提供差分定位服务。截至2022年,RTK已在多个装备了辅助驾驶的车型上量产。当前,较为成熟的RTK模块u-blox F9批量采购的成本可降至千元以内。当前许多车型都预装了该RTK模块。

U-blox F9模块

PPP-RTK也在一些量产车型上得到了应用,比如凯迪拉克装备了Super Cruise辅助驾驶系统的车型,统一采用了天宝(Trimble)提供的Centerpoint RTX高精定位系统,可以实现亚米级的定位精度。

当然,之前已经从电磁波自身角度进行了分析,GNSS-RTK在城市、山区等存在遮挡的状况下的性能会严重下降,基本只能提供约1-2米级的定位精度。因此在自动驾驶系统中,RTK或PPP-RTK并非100%工况适用的定位系统,仍然需要配合其他定位系统,例如IMU、基于视觉、激光雷达的定位系统使用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注


往期评论