前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >无人驾驶技术课——定位(2)

无人驾驶技术课——定位(2)

作者头像
刘盼
发布2018-12-29 12:49:23
1.1K0
发布2018-12-29 12:49:23
举报
文章被收录于专栏:人人都是极客人人都是极客

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

? 激光雷达定位

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

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

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

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

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

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

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

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

? 视觉定位

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

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

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

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

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

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

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

视觉车道线示例

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

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

? Apollo 定位

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

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

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

【转自Apollo阿波罗智能驾驶】

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人人都是极客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档