最近又有点时间了,来唠一唠自动驾驶技术的第一个部分,定位系统吧。对于一辆自动驾驶的车辆来说,定位技术是关键技术之一,在这一篇小Q来说一说不同的定位技术,这里面包括GNSS全球导航卫星系统,激光雷达(LiDAR),高精度地图,视觉里程计和其他的行位推测传感器,亦或是他们之间不同的融合。
挨个遛遛。
GNSS 全球导航卫星系统
GNSS, Global Navigation Satellite System, 全球导航卫星系统,说的高大上,其实入门版的GNSS就是我们用的高德百度的导航,就是成天我们开车的导航。 目前 GNSS 由四种卫星系统组成:全球定位系统GPS, 格洛纳斯卫星导航系统GLONASS,伽利略卫星导航系统Galileo和北斗卫星导航系统BeiDou。
GNSS概述
其实每个卫星系统的工作原理都是大同小异,只不过用的波段和服务区域和民用服务精度有些不同罢了,我们这里还是以最老而且最著名的GPS作为一个例子进行介绍吧。
GPS提供可在GPS接收机中处理的编码卫星编号,允许接收机估计位置,速度和时间。
如上图所示,图中的GPS接收器为当前要确定位置的设备,卫星1、2、3、4为本次定位要用到的四颗卫星,为什么要用到四颗卫星,因为根据一些数学推导我们需要这四个卫星的信号来计算三维位置和接收机时间偏移。GPS卫星分布在六个近似圆形的轨道平面上,距离地面大概20200km。相对赤道倾斜55度,轨道周期约为11hr58min。
GPS卫星信号就是GPS卫星向广大用户发送的用于导航定位的调制波,并且是利用伪随机噪声码传送导航电文。其载波为L段波(L1载波和12载波),调制波是卫星电文和伪随机噪声码的组合码。即GPS卫星信号包括三种信号分量:载波、两个伪随机噪声PRN码(C/A码、P码)和数据码(D码)。载波是指被调制用以传播信号的高频波,它的振幅、频率或相位随着调制信号的变化而变化。GPS卫星信号采用L波段的不同频率作为载波,分别被称作L1的主频率和L2的次频率。L1载波由卫星的原子钟的基准频率/= 10.23 MHz倍频154形成,其中心频率为1575.42 MHz。L2载波由基准频率倍频120形成,其中心频率为1227.6 MHz。高频波具有减小天线收发信号困难的优点。此外,对于单频接收机来讲,较高的载波频率也有助于削弱电离层延迟。精确解决GPS信号的电离层延迟是进行高精度GPS测量的必要条件,而最好的一种方法就是利用电离层的特性进行双频改正。在一般的通信传输中,载波只起到搬运调制信号的作用。但在GPS中,载波除了传送测距码和导航电文外,本身也被当作一种测距码信号,即使用载波相位测量。因为精度很高,在高精度GPS定位中有广泛的应用。
全球导航卫星系统的下一个关键部分是定义参考坐标系,这对于描述卫星运动,可观测模型和结果解析至关重要,需要两个参考系统:
1.太空固定参考系统,用于描述卫星运动;
2.大地固定参考系统,用于确定观测站的位置和描述卫星测量的结果。
这两个系统表坐标系的转化参数是已知的,将参数直接应用在GNSS接收机和后处理程序当中,用这个来计算接收器在大地坐标系当中的位置。按照惯例,地球参考坐标系由三轴定义,其中Z轴是和国际定义的地球旋转轴重合,X轴与格林尼治平均子午线相关联,Y与Z,X正交,满足右手坐标系法则,GPS使用WGS84作为参考系统,并且WGS84与一个地心等电位旋转椭圆球体相关联。
GNSS误差分析
理想情况下使用GNSS我们可获得非常精确的定位结果,而且不会出现任何误差。但是GNSS中可能有多种原因引发误差。下面我们来说说这些误差的来源。
卫星时钟
GNSS中原子钟任何微小的不准确度都可能导致接收机的位置出现明显的误差。粗略计算,10ns的始终误差会导致3m左右的位置误差。
轨道误差
GNSS卫星在轨道上面运行,但是卫星时钟,轨道确实有小幅度的变化。当卫星轨道发生变化,地面控制系统向卫星发送一个矫正信号并更新卫星星历表。即使GNSS地址控制系统矫正,轨道上面很小的误差仍然可能会导致2.5m左右的位置误差。
电离层延迟
电离层,就是距离地面80-600km的大气层,这层大气含有称为离子的带电粒子,这些例子会是卫星信号延迟,并可能导致大量的卫星出现误差(一般为5m)。电离层延迟随太阳活动,年份,季节,时间地点而变化。
对流层延迟
对流层是最接近地球表面的的大气层,对流层延迟的变化是由于对六层的湿度,温度和大气压力造成的。由于局部地区的对流层情况非常相似,基站和对流接收机的对流层延迟非常相似,是的RTK GNSS可以弥补,什么是RTK, 下面说。
多路径
当一个GNSS信号从一个物体反射出来是会产生多路径,例如建筑物的墙壁达到GNSS天线。由于反射信号穿越很远才能达到天线,因此反射信号到达接收机会有轻微延迟,这会导致接收机计算出的位置含有误差。
误差源 | 误差范围 |
---|---|
卫星时钟 | 2m |
轨道误差 | 2.5m |
电离层延迟 | 5m |
对流层延迟 | 0.5m |
接收机噪声 | 0.3m |
多路径 | 1m |
这么多误差,就没有消除的办法吗?
很多很多,这里举一个例子。
星基增强系统SBAS
SBAS Satellite-Based Augmentation System, 通过地球静止轨道(GEO)卫星搭载卫各SBAS系统全球分布图星导航增强信号转发器,可以向用户播发星历误差、卫星钟差、电离层延迟等多种修正信息,实现对于原有卫星导航系统定位精度的改进,从而成为各航天大国竞相发展的手段。
星基增强系统在完整性,连续性和可用范围方面能够有效补充现有GNSS的缺点,以减少测量误差。他的概念就是通过部署在全球的参考站来获取GNSS的原始定位数据,随后GNSS误差被转移到计算中心
,该系统计算完整的差分矫正信号,然后使用地球同步卫星广播,以增强原始GNSS信号。
很多国家都有了自己的SBAS,比如美帝的WAAS,欧洲的EGNOS和中国的BDS中SBAS的服务。
其实大部分的GNSS商业接收器都提供SBAS的功能,而且拿WAAS为例,经过与实际测量的比对,美国大部分坐标的横向纵向的精度都要优于1m和1,5m。
载波相位差分技术和差分GNSS
现在根据我们目前讨论的情况其实可以看出来,大部分的商用GNSS提供精度差不多在2m左右,这虽然对于一般车辆已经足够了,但是对于自动驾驶的精度要求远远不够,他需要的是亚分米级别的定位精度。所以对于这个要求,我们有载波相位差分RTK和差分GNSS ( RTK GNSS)
RTK GNSS
RTK GNSS 通过减少卫星时钟误差,轨道误差,非球面延迟和对流层延迟,达到了很高的精度。如下图所示。校正这些GNSS的误差的一个最好方法就是在一个位置一致的基站上设置一个接收机,基站接收器通过卫星数据计算其位置然后与实际一直位置进行比对,得到误差,然后修正,将修正信号传输给汽车。
详细的说RTK使用了基于载波的测距原理,因此在测距和定位精度上比标准定位更高。标准定位服务是通过一台粗糙的采集码接收器收集数据,并利用卫星伪码包含的信息来计算位置的信号处理技术,经过差分校正后,可达到5m的精度。同时,载波代码比伪随即代码需要参考数据更少,在差分校正以后,该处理技术会到亚分米级别的。在基于载波的测距当中,通过确卫星与飞行器之间的载波周期数来计算距离,然后乘以载波波长。
车辆使用包含模糊分辨率和差分校正算法的RTK GNSS来确定他们的位置。车辆的位置精度取决于其基站的距离和差分校正的精确性,基站的位置和基站的卫星观测质量与校正的精度密切相关,因此,基站选址对于最小化的多路径干扰等环境影响至关重要,就像基站与车辆接受其和天线之间的相对位置会影响精度一样。
精确点定位 PPP
尽管要求RTK GNSS 系统提供了满足无人驾驶所需的亚分米级别精度,但这种方案往往要求用户自己部署基站,而基站的维护费用往往很高,所以,另外一种精确点定位PPP(Precise Point Positioning)GNSS。
精确点定位(PPP)是使用当前和未来GNSS星座提供全球增强服务的最佳方法。PPP将精确的卫星位置和时钟与双频GNSS接收器相结合,能够提供从厘米到分米级的位置解决方案。PPP需要的全球分布参考站较少,而不是经典的差分方法(如RTK),还有一组精确的轨道和时钟数据(由处理中心计算)适用于所有用户,并且解决方案在很大程度上不受个别参考站故障的影响。总是有许多参考站观测同一卫星,因为精确的轨道和时钟是从全球参考站网络计算出来的。因此,PPP提供了高度冗余和稳健的定位解决方案。
精确点定位(PPP)是一种全球精确定位服务,因为它需要使用全球分布的GNSS网络实时提供精确的参考卫星轨道和时钟产品。
将精确的卫星位置和时钟与双频GNSS接收机相结合(以消除电离层的一阶效应),PPP能够提供厘米到分米级的位置解决方案,甚至不到1厘米级的定位在静态模式下。PPP不同于双差分实时运动学(RTK)定位的意义在于,它不需要从一个或多个精密调查的近距离参考站获取观测数据,并且PPP提供绝对定位,而不是像RTK那样提供相对于参考站的位置。PPP只需要精确的轨道和时钟数据,由处理中心通过相对稀疏的台站网络(相隔数千km就足够了)的参考站测量结果进行计算。这使得PPP在RTK覆盖不可用的地区成为RTK非常有吸引力的替代方案。相反,PPP技术仍然不如RTK那么强大,并且需要更长的收敛时间才能实现最高性能(大约为几十分钟)。目前,有几个合并的后处理PPP服务。相反,实时PPP系统正处于初期发展阶段。
所述PPP算法用作输入代码和从双频接收机相位观测值,和精确的卫星轨道和时钟,以便计算精确接收机坐标和时钟。来自所有卫星的观测资料在一个滤波器中一起处理,这个滤波器可以解决不同的未知问题,即接收机坐标,接收机时钟,天顶对流层延迟和相位模糊。
卫星时钟和轨道的精度是影响PPP质量的最重要因素之一。影响PPP表现的另一个相关因素是观测的数量和质量。像任何GNSS技术一样,PPP受到卫星视距障碍物的影响。即使最精确的轨道和时钟数据是无用的,如果用户不能跟踪特定的卫星。当卫星能见度部分受阻时,通过使用来自GPS和GLONASS系统的全系列卫星,或未来的伽利略卫星,可以确保尽可能好的服务。
下面介绍一个PPP的实际例子:
实时PPP网络介绍—StarFire
StarFire 是一个全球GPS差分网络,能为世界上任何位置的用户提供可靠的,史无前例的分米级定位精度。由于广域差分GPS修正系统通过Inmarsat地球同步通信卫星作为通信链路,所以用户不用搭建本地参考站或数据后处理,就可获得很高的精度。此外,由于采用覆盖全球的地球同步卫星作为差分通信链路,则可以在地球表面从北纬75°到南纬75°都可获得相同的精度。
StarFire系统由GPS卫星星座,L波段通信卫星,和一个分布在世界各地的参考站网络组成,并由该系统提供实时的高精度定位信息。为提供这一独特定位服务,StarFire搭建了一个全球双频参考站网络,这些参考站不断地接收来自GPS卫星信号。参考站接收的信号被传送到分别位于 California,Torrance和位于Illinois,Moline的网络处理中心,并在这两处生成差分改正信息。上述两处网络处理中心的差分信息,通过独立的通信链路,被传送到卫星上行链路站。这些站分别位于加拿大的Laurentides,英格兰的Goonhilly和新西兰的 Aucklang。在这些卫信上行链路站,修正信号被上传给地球同步通信卫星。
GNSS和惯性导航系统INS的融合
惯性导航系统INS一般使用惯性测量单元IMU的旋转和加速度信息来计算相对位置,一个典型的IMU是有六个互补的传感器组成,在三个正交轴上排列,三个轴上每个轴上面都有一个加速度计和一个陀螺仪,加速度测量线性加速度,陀螺仪测量旋转加速度。通过这些传感器,它在三维空间中的精确相对运动,INS使用这些测量来计算位置和速度。
通常INS会以1kHz的频率运行,位置更新频率很高。然而,INS也有缺点。首先,INS仅从初始七点提供相对解决方案,这个处世七点必须提供给INS。更关键的是,在三维空间中使用IMU导航实际上是美妙千百的样本的积累,这样就会造成误差,这就意思如果没有外部的参照物来修正而仅仅使用INS就会很快偏离它的正确位置,所以我们需要GNSS的一段时间的参照数字并用卡尔曼滤波进行融合最小化定位误差。
卡尔曼滤波我就不多通俗地解释了解释了,通俗解释已经在概论当中说过,如果不清楚请看我的概论:讲一点点自动驾驶技术(1)概论
更详细一点的数学意义我来稍微说一下:
卡尔曼滤波器是一个最优化的自回归数据处理算法(Optimal recursive data processing algorithm)。卡尔曼滤波器对于解决大部分问题,是最优效率最高甚至最有用的。
根据已知的速度来预测新的位置的均值,通过方差来考虑随机误差,通过预测值与传感器测量结果的融合(两个高斯分布乘积)来进一步修正位置的均值与方差,其中涉及到大量的数学运算。不是开发人员只需要了解基本原理和运算方式即可满足使用条件。下面是他的五个核心方程。
激光雷达和高精地图定位
目前主流的OEM和自动驾驶厂商比如Waymo,百度,宝马等公司在内大多数商业化的自动驾驶原型车都依靠激光雷达和高精地图进行定位。代表着市场的主流。
激光雷达概述
激光雷达(LIDAR-Light Detected And Ranging)是一套复杂的光机系统,它结合了光源、光电探测等技术,有时还包括计算机图象处理技术,能够同时获得方位、俯仰角度、距离、强度等信息,特别适合用于森林结构的估计、城市建设、工业、农业、航空航天等领域。激光雷达是一种主动式遥感探测设备,从工作原理来说,它只是把传统微波雷达的光源变成了激光:向被测目标发射激光信号,然后接收反射回来的信号、并与发射信号进行比较,作适当处理后,就可获得目标的有关信息。激光雷达不同于机器视觉技术,使用的是更为精确的激光光源和光电传感器,而机器视觉多是使用普通相机摄像头探测和CCD或CMOS作为图像传感器。激光雷达可以实现较大测量范围内的3D立体探测,但易受环境天气因素影响;使用微波(毫米波)雷达的机器视觉探测技术,立体测量范围有限、精度不高,但抗干扰性强、测量距离远。
激光雷达的工作原理如图:
一般情况下,有两种激光检测的方法:非相干检测和相干检测。
非相干检测(incoherent detection)是无需提取和利用接收信号相位信息进行检测的技术。
在非相干检测中,未利用接收信号(或输入信号)的相位信息。例如,在调幅通信中,包络检波用以检测接收信号的振幅变化;在调频通信中,用鉴频器接收调频信号时,先将接收信号中频率的变化变换成振幅的变化,然后进行包络检测。无论在模拟传输或数字传输中,均存在相干检测与非相干检测,非相干检测适合在大信号噪声功率比的情况下工作。此时非相干检测与相干检测的性能基本相同;但当信号噪声功率比小于一定门限值时,非相干检测的性能急剧变坏。由于实现非相干检测的电路比较简单,价格低廉,故在工作于大信号噪声比的环境下时,常采用非相干检测。
相干检测可检测强度,相位以及频率调制的光载无线信号。光信号在进入光接收机之前与接收端的本振激光器(LO)进行混频,产生一个等于本振激光器的频率和原光源频率之差的中频分量。
与直接检测相比,相干检测更容易获得大的信噪比,可恢复的信号种类较多,并且频率选择性较好,更适合密集波分复用系统。但相干检测获得较好的检测性质代价就是大大提高了系统的复杂性,而且缺乏灵活性。
在相干和非相干的激光雷达中,存在两个主要的脉冲模型系统:高能量和微脉冲系统。高能量发出的高功率光线对人眼由上海,所以在自动驾驶的激光雷达当中,我们主要使用的是微脉冲系统。
在激光雷达中使用激光器可以按其波长分类,波长600~1000nm的激光器是最常用的,另外还有波长为1550nm的激光器也是常用的,因为它们可以用于更远距离和更低精度的探测。
典型的激光雷达系统是有两个主要部件,一个是激光扫描仪,一个是激光接收器。生成图像的速度收到系统速度的影响。各种扫描方法可以用于不同目的,比如说方位角,仰角,双振荡平面镜,双轴扫描仪和多边形镜。它们的类型决定了系统可以检测到分辨率和范围。激光接收器是读取记录他们的返回信号。目前市场主流有两种类型的激光接受技术:硅雪崩光电二极管和光电倍增管。
如下图所示,这是一个Velodyne 64线高精度激光雷达,它被广泛应用于无人驾驶车辆当中。64代表有64根激光通道,共有26.9°的垂直视角,从+2°到-24.9°,这一预期旋转头设计,其水平视角有360度。用户可在5到20Hz之间选择旋转频率,通过改变旋转频率,用户可以自定义激光雷达产生数据点的密度。这个激光雷达产生的激光波长905nm,脉冲5ns的,他每秒能够获取220w的piont,最大探测距离为120m,误差控制在±2cm之内,其上部有激光发射器组成(4组,16个一组),下部分是激光接收器(2组,32个一组)
目前在实际的使用情况当中,主要问题是calibration校准的问题,激光雷达的好坏严重依赖于校准的结果。
校准过程涉及多个参数,可以分为以下三个步骤:
- 参数选择:我们至少需要五个参数来定义三维坐标系中的一个激光束,包括两个角度参数来定义相关线的方向以及另外的三个参数来定义光束的点源。如果需要距离修正系数来矫正激光束的测量值,则每个激光束的校准参数数量为6个或者7个。
- 目标函数的选择:一个目标/代价函数C构成了优化过程的基础,并用定量比较获取三维点云数据和真实数据的差异。
- 数据分割: 获取数据的提取对应于一直地面状况的校准对象数据。
好了先写到这里吧,高精地图和视觉里程计(VLSAM部分)和轮式里程计还有多传感器融合人我们到part 2再说, 内容太多,慢慢讲。
回见。