apollo学习整理(一)定位

转载请注明出处https://mp.csdn.net/postedit/91404663


通过学习apollo课程,对内容进行简单梳理。课程链接http://apollo.auto/devcenter/courselist_cn.html?target=3

1. 定位简介

定位是让无人驾驶车知道自身确切未知的方法。很多情况下,GPS的定位精度无法满足自动驾驶的需求,需要找到另外的方法准确获取车辆的位置信息。在车辆坐标系中,汽车前进方向为x轴的正方向,当汽车左右转向时坐标系与汽车一起旋转(如图1),以保证车辆的前进方向始终为x轴的正方向。车辆传感器可以测量车辆与障碍物的相对距离与方向。随着车辆转弯,车辆坐标系必然与地图坐标系不一致(如图2),必须进行坐标系间的数据转换,以实现车辆传感器识别地标与高精度地图上存在地标的比对,并在地图上以十厘米的定位精度确定车辆的精确位置。定位提供了多种可选方案,每种方法都有各自的优缺点。接下来将探讨几种常见的无人驾驶车定位方法,如GNSS RTK, 惯性导航、LiDAR定位和视觉定位,并将了解Apollo框架时如何解决定位问题的。

                                             

                                                                           图1 车辆坐标系随车辆转向变动

                                                

                                                                      图2 不同坐标系下,标识的位置

2. GNSS RTK

GPS,即全球定位系统(美国开发),是指在全球范围内运营的卫星导航系统,这类系统的通用名称为全球导航卫星系统或GNSS。GPS是GNSS中应用最广泛的一种,将以此为例说明GNSS的定位原理。GPS分为三部分:卫星、控制站、GPS接收器,如图3。当待测物周围没有高楼等障碍物,且天气状况良好时,可以接收到GPS信号;GPS接收器每次至少接收到四颗GPS卫星发射地信号,便可实现位置定位。

                

                                                                     图3 GPS的组成

GPS接收器首先测量信号的飞行时间,即信号从卫星传播到GPS接收器所需要的时长,通过与光速相乘得到卫星的距离。由于光速的值很大,即使少量的时间误差也会对距离结果造成巨大的误差影响。

                                                     

为进一步减小误差,可以使用实时运动定位(或RTK),RTK涉及在地面上建立几个基站,每个基站都知道自己精确的“地面实况”位置。每个基站通过GPS测量自己的位置,通过计算与“地面实况”位置的偏差,得到GPS的测量结果误差。将该误差传递给其他GPS接收器,以调整自身的位置计算。在RTK的帮助下,GPS可以将定位误差限制在10厘米以内(如图4)。但仍存在以下几个问题:

  1. 待测物周围有高楼或其他障碍物可能阻挡GPS信号,使得定位困难或无法定位;
  2. GPS的更新频率很低,大概为10Hz或每秒更新10次。

由于无人驾驶车辆在快速移动,可能需要更频繁地更新位置信息。

                                          

                                                                           图4  GNSS RTK定位

3. 惯性导航

假设一辆汽车正以恒定速度直线行驶,若已知汽车的初始位置、速度及行驶时长,便可以知道车辆当前时刻的位置。

                                 

同样,若不知道初始位置和速度,而是提供初始速度v0和加速度a,可得到当前时刻的汽车速度v

                                                                        v = v0+at

通过汽车的加速度、初始速度和初始位置,可以计算任何时间点的车速和位置。可以使用一个三轴加速计的传感器来进行加速度的测量,有三种不同类型的三轴加速度计,但共同目标是精确测量加速度。加速度计是根据车辆坐标系记录测量结果,因而需要将这些测量值转换到全局坐标系中。

坐标转换需要使用传感器——陀螺仪,三轴陀螺仪的三个外部平衡一直在旋转,旋转轴始终固定在世界坐标系中。通过测量旋转轴和三个外部平衡换的相对位置,来计算车辆在世界坐标系中的位置。

加速度计和陀螺仪是惯性测量单元(或IMU)的主要组件。IMU的一个重要特性在于它以高频率更新,其频率可达到1000Hz,所以IMU可以提供接近实时的位置信息。惯性测量单元的缺点在于其运动误差随时间增加而增加。只能依靠惯性测量单元,在很短的时间范围内进行定位。将IMU与GPS相结合,既弥补了GPS更新频率较慢的缺陷,GPS还可以纠正IMU的运动误差。

即使将GPS与IMU相结合,也不能完全解决自动驾驶的定位问题。若在山间、城市峡谷、甚至在地下隧道中行驶,GPS长时间无法更新,可能会使得整个定位系统面临失败。

4. LiDAR定位

利用激光雷达,可以通过点云匹配实现车辆定位。该方法将来自激光雷达传感器的检测数据,与预先存在的高精度地图连续匹配,通过比对获知车辆在高精度地图上的全球位置和行驶方向。当前已有多种激光雷达定位的方法。

1. 迭代最近点(ICP)

假设想对两次点云的扫描结果进行匹配,需要找到另一次扫描中最接近的匹配点,最终会手机到许多匹配点对。把每对点之间的距离误差相加,然后计算平均距离误差。通过点云旋转和平移最大限度地降低平均误差距离,在传感器扫描与地图之间找到匹配,将测量数据从车辆坐标系转换到世界坐标系上,获取车辆在高精度地图上的精确位置。

2. 滤波算法

滤波算法可以消除冗余信息,并在地图上找到最可能的车辆位置。Apollo使用了直方图滤波算法,该方法有时也被称为误差平方和算法(SSD)。将传感器扫描到的点云划过地图上每个位置,在每个位置上计算扫描点与对应点之间的误差或距离,然后对误差的平方求和。所求误差平方和越小,扫描结果与地图之间的匹配结果越好。图5中,红色表示对齐较好的点,绿色表示中等对齐的点,蓝色表示对齐较差的点。

                                  

                                                                                 图5 直方图滤波算法

3. 卡尔曼滤波法

卡尔曼滤波是一种是算法,根据过去的状态和新的测量结果来预测当前的状态。首先,根据之前的状态以及对移动距离和方向的估计,来预估或“预测”新的位置。当然,运动估计并不完美,所以需要通过传感器测量位置并加以纠正。一旦传感器测量到新的位置,便可以通过概率规则,将传感器测量结果与现有位置预测相结合,实现车辆定位。

LiDAR定位的主要优势在于稳健性,只要从高精度地图开始并存在有效的传感器,就能实现定位与更新。事实上,无法保证地图保持完全更新,因为每个地图都包含瞬态元素,如汽车、行人及停放的车辆登等,都会在下一次驾车时发生变化。

5. 视觉定位

直接使用图像信息实现精确定位非常困难,通常将摄像头图像与其他传感器的数据相结合,以实现车辆定位。将摄像头与地图和GPS数据相结合,比单独使用摄像头图像进行定位的效果要好。假设一辆车正在路上行驶,它感知到右边有一棵树,但是地图显示道路右侧有几棵树,且处于不同的位置,如何知道车辆现在看到的是哪颗树?可以使用概率来解决这个问题。假设在车辆右侧观察到一棵树,则可以在地图上先排除右侧无树木的点。开车的同时继续观察周边环境,若前进过程中观察到右边有另一棵树,会发现地图上仅有少数几个位置的右侧有成排的树木,便是车辆最可能的位置之一,图6显示了具体的识别过程。通过观察结果、概率和地图来确定车辆最可能的位置,这个过程被称为粒子滤波。可以使用粒子或点来估计车辆最可能的位置。

            

                                                                                    图6 粒子滤波的过程

树木在一些道路上不常见,因而可以选用车道线来进行对比。通过粒子滤波原理对车道线拍照,然后使用拍摄的图像来确定车辆在道路中间的位置。如图7显示了视觉车道线匹配的示例,蓝色代表地图上两个不同位置的车道线,红色表示车辆摄像头观察到的车道线。通过比对可发现,红线与右侧蓝线的匹配度要高得多,因而更可能位于右侧图像对应的地图位置。

                                                            

                                                                              图7 视觉车道线匹配的示例

视觉定位的优点在于图像数据很容易获取,缺点在于缺乏三维系信息和对三维地图的依赖。

6. Apollo定位

Apollo使用基于GPS、IMU和激光雷达的多传感器融合定位系统,利用不同传感器的互补优势,提高系统的稳定性和准确性。Apollo定位模块依赖于IMU、GPS、激光雷达、雷达和高精度地图,这些传感器同时支持GNSS定位和LiDAR定位,GNSS定位输出位置和速度信息,LiDAR定位输出位置和行进方向信息。融合框架通过卡尔曼滤波将这些输出结合在一起,卡尔曼滤波建立在两步预测测量周期之上。在Apollo中,惯性导航解决方案用于卡尔曼滤波的预测,GNSS和LiDAR定位用于卡尔曼滤波的测量结果更新。

                                                         

                                                                                      图8 定位融合框架

猜你喜欢

转载自blog.csdn.net/gloria_iris/article/details/91404663