一文了解自动驾驶汽车“定位”

文章来自Apollo阿波罗智能驾驶

1402a201e660b9f9464eab14e3579818.png

本节将介绍自动驾驶汽车的定位技术包括:GNSS(全球导航卫星系统),RTK(实时运动定位)和惯性导航。

一文了解自动驾驶汽车“定位”_第1张图片

图1

定位,是让自动驾驶汽车找到自身确切位置的方法,这对自动驾驶汽车来说非常重要。当你在驾驶一辆车时彻底迷路了,你不知道自己在哪儿,而这时你有一张全球的高精度地图,定位的任务就是确定你的车辆在这张高精度地图上的位置(见图1)。

一文了解自动驾驶汽车“定位”_第2张图片

图2

在日常生活中,我们一直使用手机 GPS 来确定自己的位置,但 GPS 1到3米之间的精确度对自动驾驶汽车来说不够精确。而当我们被高楼、山脉环绕,或位于峡谷内时,GPS 的精度可能会更差,只有10米或50米(见图2)。

由于我们无法完全信任 GPS,因此我们必须找到另一种方法来更准确地确定车辆在地图上的位置。最常用的方法是,将车辆传感器所看到的内容与地图上所显示的内容进行比较,车辆传感器可以测量车辆与静态障碍物(树木、电线杆、路标和墙壁)之间的距离。

一文了解自动驾驶汽车“定位”_第3张图片

图3

我们在车辆自身的坐标系中测量这些距离,以及静态障碍物的方向。在车辆自身的坐标系中,汽车的前进方向始终向前,当汽车左转或右转时,坐标系与汽车一同旋转,以使车辆的前进方向在坐标系中继续向前。随着车辆的转弯,车辆自身的坐标系必然与地图坐标不一致(见图3),车辆的坐标和地图的坐标可能都取决于手机导航系统中的设置。

一文了解自动驾驶汽车“定位”_第4张图片

图4

在地图上也有可能找到车辆传感器所检测到的地标,为估计车辆在地图上的位置,我们将传感器的地标观测值与这些地标在地图上的位置进行匹配,地图自带坐标系,无人驾驶软件必须将传感器的测量得到的在车辆坐标系中的坐标,转换为地图坐标系中的坐标(见图4),执行这类转换是解决定位问题的关键步骤。

总结:车辆将其传感器识别的地标与高精地图上存在的地标进行对比,为了进行该对比,必须能够在它自身坐标系和地图坐标系之间相互转换数据。而后,系统必须在地图上以十厘米的精度确定车辆的精确位置。

定位提供了许多可供选择的方法,每种方法都有各自的优缺点。接下来,我们将探讨几种常见的自动驾驶汽车定位方法。

全球导航卫星系统 GNSS

如果你迷路了,要如何在高精度地图上确定自己的位置?

一文了解自动驾驶汽车“定位”_第5张图片

图5

假如你看到自己离一棵树75米远,你可能比较清楚自己处在什么位置,但仍然不能确定,因为你智能判断自己位于一个以树为圆心、半径75米的圆上(见图5)。

图6

然后,你看到一个离自己64米远的房子,于是你知道自己位于两个圆的交点处,但不知道自己位于哪个交点上(见图6)。

一文了解自动驾驶汽车“定位”_第6张图片

图7

现在假设你看到第三个路标:一个距离你离你55米远的路灯,如果你有一张地图,里面注明了这些地标在世界上的确切位置,那么你就能知道自己相对于这些路标的确切位置,这个过程被称为三角测量(见图7)。

我们要在地球表面上进行三维定位,使用的是传送地标与我们之间距离的卫星,而不是我们可以看到的地标,这就是 GPS 工作的原理,那么,我们需要几颗卫星才能确切知道自己的位置?

GPS 即全球定位系统,是一种由美国政府开发、并在全球范围运营的卫星导航系统。这类系统的通用名称为全球导航卫星系统或 GNSS,GPS 是使用最广泛的 GNSS 系统。起初 GPS 只是用于军事导航,但现在任何人都可以使用 GPS 接收器,从 GPS 卫星收集信号并使用该系统。

GPS 由三部分组成:

  1. 卫星。在任何特定时间,大约有30颗 GPS 卫星在太空运行,他们各自距离地球表面约2万公里。

  2. 控制站。控制站分散在世界各地,用于监视和控制卫星,其主要目的是让系统保持运行,并验证 GPS 广播信号的精确度。

  3. GPS 接收器。GPS 接收器存在于手机、电脑、汽车、船只以及许多其他设备中,如果周围没有高楼等障碍物并且天气良好,那么无论你身在何处,GPS 接收器应每次至少检测到四颗 GPS 卫星。

一文了解自动驾驶汽车“定位”_第7张图片

GPS 接收器实际上并不直接探测你与卫星之间的距离。它首先测量信号的飞行时间,即信号从卫星传播到你的 GPS 接收器需要多长时间,然后通过将光速乘以这个飞行时间来计算卫星的距离。

实时运动定位 RTK

因为光速的值很大,即使是少量的时间误差也会在计算过程中造成巨大的误差,所以每颗卫星都配备了高精度的原子钟。而为进一步减小误差,我们可以使用 RTK(实时运动定位)。

RTK 需要在地面上建立几个基站,每个基站都知道自己精确的地面位置,同时每个基站也通过 GPS 测量自己的位置,已知的地面位置与通过 GPS 测量的位置之间的偏差为 GPS 测量结果中的误差,然后基站将这个误差传递给其他 GPS 接收器,以供其调整自身位置的定位结果。

一文了解自动驾驶汽车“定位”_第8张图片

在 RTK 的帮助下,GPS 可以将定位误差限定在10厘米以内,但是:

  • 高楼和其他障碍物可能阻挡 GPS 信号,这使定位变得困难或根本无法进行;

  • 同时,GPS 的更新频率很低,大约为10赫(每秒更新10次),但由于自动驾驶汽车在快速移动,需要更频繁地更新位置。

惯性导航

假设一辆车正以恒定速度直线行驶,已知汽车的初始位置、速度及行驶时长,我们可以算出汽车的当前位置。再进一步,我们可以使用加速度、初始速度和初始位置计算汽车在任何时间点的车速和位置。而在这个计算过程中,我们需要解决一个问题:如何测量加速度。

一文了解自动驾驶汽车“定位”_第9张图片

当前位置=初始位置+速度×时间

为了测量加速度,我们需要“三轴加速度计”传感器。它可以精确测量加速度。但加速度计本身不足以计算车辆的位置和速度。加速度计根据车辆的坐标系记录测量结果,而后这些测量值被转换成世界坐标系,为了实现这种转换我们需要借助“陀螺仪”传感器。三轴陀螺仪的三个外部平衡环一直在旋转,但在三轴陀螺仪中的旋转轴始终固定在世界坐标系中,车辆通过测量旋转轴和三个外部平衡环的相对位置来计算其在坐标系中的位置。

一文了解自动驾驶汽车“定位”_第10张图片

陀螺仪 3D 展示图

加速度计和陀螺仪是 IMU(惯性测量单元)的主要组件。IMU 的一个重要特征在于它以高频率更新,其频率可达到1000赫兹,所以 IMU 可以提供接近实时的位置信息。

惯性测量单元的缺点在于其运动误差随时间增加而增加,我们只能依靠惯性测量单元在很短的时间范围内进行定位。但是,我们可以结合 GPS 和 IMU 来定位汽车,一方面,IMU 弥补了GPS 更新频率较低的缺陷;另一方面,GPS 纠正了 IMU 的运动误差。

对自动驾驶汽车而言,仅将 GPS 和 IMU 系统相结合,还不能完全解决定位所面临的问题,如果我们在山间、峡谷或地下隧道中行驶,我们可能会长时间没有 GPS 更新,这会让整个定位面临失败的风险。

69633da9fdc460a75370f41e0eaebe82.gif

本节将介绍自动驾驶汽车的定位技术:激光雷达定位和视觉定位,以及Apollo框架是如何解决定位问题的。

激光雷达定位

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

有许多算法可用于匹配点云,迭代最近点(ICP)是其中一种方法。假设我们想对两次点云扫描进行匹配,对于第一次扫描中的每个点,我们需要找到另一次扫描中最接近的匹配点。最终会收集到许多匹配点对,把每对点之间的距离误差相加,计算平均距离误差。

我们的目标是通过点云旋转和平移来最大限度降低这一平均距离误差这样就可以在传感器扫描和地图之间找到匹配。我们将通过传感器扫描到的车辆位置转换为全球地图上的位置,并计算出在地图上的精确位置。

滤波算法是一种 LiDAR 定位方法,可消除冗余信息,并在地图上找到最可能的车辆位置。Apollo 使用了直方图滤波算法该方法有时候也被称为误差平方和算法(SSD)。为了应用直方图滤波,我们将通过传感器扫描的点云划过地图上的每个位置,在每个位置,我们计算扫描的点与高精度地图上的对应点之间的误差或距离,然后对误差的平方求和。求得的和越小,扫描结果与地图之间的匹配越好。

该示例图中显示的一些对齐较好的点,用红色表示;以及一些对齐较差的点,用蓝色表示;绿色表示中等对齐。

卡尔曼滤波是另一种 LiDAR 定位方法,也是一种算法,它根据我们在过去的状态和新的传感器测量结果预测我们当前的状态。具体来说,卡尔曼滤波使用了预测更新周期:

首先,我们根据之前的状态以及对移动距离和方向的估计,来估计或“预测”我们的新位置,并通过使用传感器测量我们的位置并加以纠正。一旦使用传感器测量了我们的新位置,便可以使用概率规则,将传感器测量结果与我们现有的位置预测结合起来。我们会永远遵循这个预测更新周期也即需要对车辆进行定位时,先预测我们的新位置,然后用传感器测量我们的位置。

总结:LiDAR 定位的主要优势在于稳健性只要从高精度地图开始,并且存在有效的传感器,我们就始终能够进行定位。主要缺点在于难以构建高精度地图,并使其保持最新。事实上,几乎不可能让地图保持完全最新,因为几乎每个地图均包含瞬态元素,汽车和行人,甚至停放的汽车,在我们下次驾车驶过时都会消失,街道上的垃圾会被吹走,世界上的许多元素都在不断发生变化。

视觉定位

图像需要收集到最简单的数据类型。摄像头便宜且种类繁多还易于使用,我们可以使用图像来定位汽车吗?

通过图像实现精确定位非常困难。实际上,摄像头图像通常与来自其他传感器的数据相结合,用以准确定位车。但将摄像头数据与地图和 GPS 数据相结合比单独使用摄像头图像进行定位的效果更好。

假设一辆车正在路上行驶,它感知到右边有一棵树,但是地图显示道路右侧有几棵树,全部位于不通的位置,我们如何知道车辆现在“看”到的是哪棵树?

一文了解自动驾驶汽车“定位”_第11张图片

我们可以用概率来解决这个问题。想象一下,我们正位于道路上许多不同点中的任意一点处,使用概率能确定哪个点最可能代表我们的实际位置。

已知车辆右侧有一棵树,我们假设从一些点可以看到右边有一棵树,而从另一些点则看不到。我们可以在开车的同时继续观察周边世界。

想象一下,我们开车前行,观察到车辆右边的另一棵树,在观察到地图上的其余点之后,我们发现仅在少数几个位置会发现车辆右侧有成排的两棵树,我们当然最有可能位于这些位置之一,所以我们可以排除所有其他位置。

过程继续,通过观察结果、概率和地图来确定我们最可能的位置,该过程被称为粒子滤波。因为我们使用粒子或点来估计最可能的位置,当然,树木在许多道路上比较稀少,但是车道线在许多道路上却很常见,可以使用相同的粒子滤波原理对车道线进行拍照。使用拍摄的图像来确定车辆在道路中的位置,可以将道路摄像头图像与地图进行比较。我们的摄像头图像与地图的某些部分匹配得很好,但与地图的其他部分匹配得没那么好。

视觉车道线示例

上图是视觉车道线的一个示例,蓝色代表地图上两个不同位置的车道线,红色代表车辆摄像头观察到的车道线,红线与右侧蓝线的匹配度要比与左侧蓝线的匹配度高得多,因此我们更有可能位于与右侧图像对应的地图位置上。

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

 Apollo 定位

Apollo 使用基于 GPS、IMU 和激光雷达的多传感器融合定位系统,这种融合方式利用了不同传感器的互补优势,它也提高了稳定性和准确性,Apollo 定位模块依赖于 IMU、GPS、激光雷达、雷达和高精度地图。

这些传感器同时支持 GNSS 定位和 LiDAR 定位。GNSS 定位输出位置和速度信息,LiDAR 定位输出位置和行进方向信息。融合框架通过卡尔曼滤波将这些输出结合在一起,卡尔曼滤波建立在两步预测测量周期之上,在 Apollo 定位中,惯性导航解决方案用于卡尔曼滤波的预测步骤,GNSS 和 LiDAR 定位用于卡尔曼滤波的测量结果更新步骤。

本节课我们了解了自动驾驶汽车的定位技术,包括:激光雷达定位和视觉定位,以及 Apollo 框架是如何解决定位问题的。现在,我们可以将有关汽车定位的信息与软件栈中其他信息相结合,以便我们的车辆开往世界各地。

— THE END —

你可能感兴趣的:(定位,人工智能,计算机视觉,机器学习,python)