高精度地图包括大量的驾驶辅助信息,最重要的信息是道路网的精确三维表征
例如:交叉路口布局和路标位置
高精度地图还包括许多语义信息,地图可能会报告交通灯上不同颜色的含义,也可能指示道路的速度限速,以及左转车道的位置,高精度地图做重要的特征之一是,精度,手机上的导航只能达到米级精度,高精度地图可以达到厘米级精度,这对无人驾驶车至关重要。
地图与定位,感知与规划
定位,感知软件及规划都依赖高精度地图,高精度地图可以帮助车辆找到合适的行车空间,帮助规划器确定不同的路线选择,并帮助预测软件预测道路上其他车辆在将来的位置,在有限速或障碍物的路段,高精度地图可以使车辆提前查看,提前加速或者变道。
Apollo高精度地图
Apollo高精度地图包括
道路定义
交叉路口
交通信号
车道规则
以及用于汽车导航的其他元素
标准 OpenDRIVE v.s. Apollo OpenDRIVE
主要区别 | 标准 OpenDRIVE | Apollo OpenDRIVE |
---|---|---|
应用场景 | 主要用于仿真场景 | 主要应用于实际无人驾驶场景 |
元素形式表达 | 使用曲线方程和基于参考线的偏移描述车道形状 | 使用绝对坐标序列描述元素形状 |
元素丰富度 | 提供常见的元素类型,如道路、交叉点、信号和对象 | 细化元素表达并丰富元素属性。如增加新的禁止停车区域、人行横道、减速带、停车线、允许停车标志、允许减速标志等。 |
自适应无人驾驶算法 | N/A (不适用) | 整合百度的无人驾驶经验,以提高无人驾驶算法的可行性和可靠性 |
高精度地图的构建
五个步骤:
(1)数据采集
(2)数据处理
(3)对象检测
(4)手动验证
(5)地图发布
- 数据采集
采用多种传感器,如GPS,惯性测量单元,激光雷达和摄像机,通过多种传感器收集大量数据,最终绘制出高精度地图
- 数据处理
指的是Apollo如何对收集到来 的数据进行整理,分类和清洗以获得没有任何语义信息或注释的初始地图模板
经过5个步骤之后,地图建立。Apollo还发布了自上而下的视图的相应定位地图以及三维点云地图,在构建和更新高精度地图时,Apollo使用了众包,众包意味着Apollo向公众发布其数据采集工具,以便任何人都可以参与制作高精度地图的任务。众包加快了高精度地图的制作和维护。
高精度地图服务
高精度地图是 Apollo 的重要组成部分。 百度可以为学员提供高精度,高质量和最适合 Apollo 代码的高精度地图服务支持。
在装备所需硬件的 Apollo 汽车后,Apollo 合作伙伴可以在特定条件下接收高精度地图技术支持,以进行无人驾驶路测。
定位:
机器需要知道自己在什么位置,在哪里,不仅包括x,y坐标,也包括航向等信息。车辆将传感器识别的地标与其高精度地图上的地标进行比对,为了进行这一比对,必须在它自身做标系和地图坐标系之间转换数据,然后系统必须在地图上以十厘米的精度确定车辆的精确位置。
定位方法:
GNSS RTK
惯性导航
LIDAR定位
视觉定位
Apollo定位
GNSS RTK
GPS是最广泛的GNSS系统,分为三个部分:
卫星(Satellites),在任何时间大约有30颗GPS卫星在外太空运行
地面上世界各地的控制站组成(Control Stations):用于监视和控制卫星
GPS接收器(手机,汽车,电脑,轮船等上)
这样的话GPS是有很大的误差的,距离太远,时间太长。使用实时运动定位(或RTK)
- 可信性
RTK涉及在地面上建立几个基站,每个基站都知道自己精确的“地面实况”位置,但是每个基站也通过GPS测量自己的位置,将测出来的位置与自身位置对比得出误差,再将这个误差传给接收设备,以供其调整自身位置计算。
- 不可行性
虽然在RTK的作用下,能将车辆的位置精度确定在10厘米以内,但还是存在很多问题,比如GPS信号被高楼大厦挡住了,或者受到天气影响,导致更本无法接收到信号,另外更新频率很低,大于10赫兹或者每秒更新10次 。
惯性导航
- 可行性
- 不可行性
运动误差随时间的增加而增加
因此可以集合GPS和IMU
LIDAR定位
利用激光雷达可以通过点云匹配来给车给汽车进行定位,该方法来自于激光雷达传感器的检测数据与预先存在的高精度地图连续匹配,通过这种匹配可以获得汽车在高精度地图上的全球位置及行驶方向。
匹配点运算法很多,几个常见的算法如下
其中:迭代最近点(或IPC)是一种方法。
假如我们相对两次点云扫描进行匹配,对第一次扫描的每一个点我们需要找到另一次扫描中最近的匹配点,最终我们会收都许多匹配点对,将每对点距离误差相加,然后计算平均距离误差。目标是通过点云旋转和平移来最大限度地降低这一平均误差,一旦实现,就可以在传感器扫描和地图之间找到匹配,这样我们将传感器扫描得到到的位置转换成全球地图上的位置,并计算出地图上的精度位置。
其次:滤波算法是LIDAR定位的另一种算法。
可消除冗余信息,并在地图上找最可能的车辆位置,Apollo采用了直方图滤波算法(有时也叫误差平方和算法(或SSD)),为了利用直方滤波,我们将通过传感器扫描的点云滑过地图的每一个位置,在每个位置,我们计算扫描的点和高精度地图上对应点之间的距离误差或距离,然后对误差的平方求和,求和的数越小说明扫描结果与地图之间的匹配越好。在该示例中,匹配最好的点显示红色,最差的点显示蓝色,绿色代表适中的点。
最后:卡尔曼滤波是LIDAR的另一种定位方法。
卡尔曼滤波是一种算法,用于根据我们在过去的状态和新的传感器测量的结果预测我们当前的状态。卡尔曼滤波使用了预测更新周期,首先我们根据之前的状态以及对移动距离和方向的估计来估计和“预测”我们新的位置。
LIDAR定位的优势:稳健性
主要缺点:难以构建高精度地图,即使能够绘制也无法跟上世界瞬时变化的速度。
视觉定位
图像数据是收集最容易的数据,摄像头便宜且种类繁多,还易于使用,但要用摄像头来实现高精度定位是很困难的。但是可以将摄像头数据与地图和GPS结合起来,利用概率来判断摄像头数据与地图或者GPS等传感器采集的数据做比对,来定位车辆或者障碍物的位置。下图为利用视觉概率思维来确定树的位置。
优点:图像易于采集
缺点:缺乏三维信息和对三维地图的依赖
Apollo定位
Apollo使用基于GPS,IMU和激光雷达等多种传感器融合的定位系统。这种融合利用了不同传感器的互补优势,提高了稳定性和准确性。Apollo定位模块依赖于IMU,GPS,激光雷达,雷达和高精度地图,这些传感器同时支持GNSS定位和LIDAR定位,GNSS定位输出速度和位置信息,LIDAR定位输出位置和行进方向信息,融合框架通过卡尔曼滤波将这些输出结合在一起,卡尔曼滤波建立在两步预测测量周期之上。
在Apollo中,惯性导航解决方案,用于卡尔曼滤波的预测步骤,GNSS定位和LIDAR定位用于卡尔曼滤波的测量结果更新步骤。