您好,欢迎来到中国自动驾驶高精地图产业创新发展论坛2019!

Apollo高精地图概述

发布日期:2020-05-17

GRCC hdmap 今天 

手机阅读

点击上方蓝色字体,关注我们


mmexport1566315445540
参考文档:Apollo社区公开课

前言

与普通地图不同,高精地图主要服务于自动驾驶车辆,通过一套独特的导航体系,帮助自动驾驶解决系统性能问题,扩展传感器检测边界避免在恶劣天气条件下传感器失效的情况。在自动驾驶的几个重要模块,包括定位、决策、规划和感知。本章主要记录以下内容。
apollo高精地图生产制作流程概述
高精地图定义、分层
高精地图可以应对的一些挑战性的场景;
高精地图在自动驾驶系统中如何发挥最大的作用;
百度高精地图制作流程以及数据量的大小;

1、高精地图概述

1.1、高精地图是什么?

高精度地图,HD Map=high definition map,是提供给自动驾驶系统使用的地图。高精度,指地图的**坐标精度更高;另一方面地图所包含的道路交通信息元素更加细致丰富。

1567124421096

1567124460332

自动驾驶汽车在行进过程中需要准确知道自己在路上的位置,所以高精度地图的**精度一般都会在亚米级别(也就是1米以内的精度),而且横向的相对精度往往会更高。

高精度地图不仅有高精度坐标,还包含丰富的语义信息,例如交通信号灯的位置及类型等。高精度地图针对道路形状的准确描绘,甚至可以精确到每个车道的坡度、曲率、航向、高程等。

1567124621998

1.2、高精地图分层

1567124590593

1567124608207

1567124644935

2、高精地图可以应对的一些挑战性的场景

目前 Apollo 内部高精地图主要应用在高精定位、环境感知、决策规划、仿真运行四大场景,帮助解决林荫道路 GPS 信号弱、红绿灯是定位与感知以及十字路口复杂等导航难题。

  • 林荫道路 GPS 信号弱:一般树木环绕的环境下 GPS 定位效果都不佳,Apollo 采用的解决办法是在高精地图里面嵌入多个定位的锚点,通过锚点**定位出一条导航线路,解决弱 GPS 环境下的导航问题;

  • 红绿灯是定位与感知:采用停止线关联对应的红绿灯方式,高精地图内部包含红绿灯的精确位置和高度信息,来降低感知难度,避免误识别;

  • 复杂路口:对于复杂的路口,高精地图在路口所有的左转 / 右转车道上绘出虚拟车道及其关联线,来降低决策规划的难度,并在所有左转 / 右转的路口标志 ROI 区域,减少计算量的同时保证也能安全。

3、高精地图在Apollo中的支撑作用

Apollo架构图

Apollo 开放框架中,高精地图排在云服务的第一位,高精引擎排在开放软件平台的第一位。高精引擎,通过和云端高精地图联网,它可以为其他模块提供丰富的数据,主要从四方面对自动驾驶提供支持:一是定位,二是感知,三是决策,四是规划。

1567124665836

关于感知

扩展传感器检测边界、不仅是测量范围,还有面对不同环境时表现出来的感知缺陷

高精地图是语义性的数据,这是图标,但这个图标代表什么意思,高精地图在制作过程中赋予语义信息

关于定位

高精地图提供标准的位置,采用单目相机实时识别虚线和实线,把采集的图像和高精地图做匹配,可以确定当前在道路面的第几个车道。算出车道后解决定位问题,这是横向定位。纵向定位可以借助交通信号灯、路灯、灯杆等道路特征实现定位。

img

关于规划

1567125361893

如果车在路上发现前面有事故或者施工路面,这时候需要变道,高精地图提供了有利的支持。例如路口车道线的规划。高精度地图的优势就在于提供车道级别的区分,可以在变道的过程中提供若干个参考的车道、区域的变化、自动车道的辅助信息等来完成变道、变向的部分操作。

关于决策

车到了十字路口,高精地图会采集安全岛的信息,复杂十字路口有安全岛,车在决策过程中需要参考安全岛等重要要素,否则这辆车冲上安全岛,导致行人发生交通事故。

4、百度高精地图制作流程以及数据量的大小

高精地图制作流程

数据采集、AI算法处理/分类/校验、人工验证、数据发布

地图发布的三个级别:Hdmap 、ADAS Map(卡车或者乘用车)

ADAS 地图应用广泛在卡车行业和乘用车行业。卡车拉着四五十吨货物,如果它能提前预知前方 1 公里外有一个大坡或者小坡,它可以灵活的控制发动机,进行节能技术的开发,我们跟 OEM 合作中有一定的项目经验。结合 ADAS 地图的卡车能耗节省 30%。地图需要持续的更新。

数据采集

1、数据采集,百度自行设计的采集车,可以融合传感器采集到的数据

高精地图的**度需要达到亚米级,数据维度还涉及到高精度定位能力(HD Localization), 横向/纵向精确定位(Lateral/Longitudinal Positioning), 运动规划(Motion Planning), 基于车道模型的二次规划( Motion Planning with lanemodel), 智能调速 (Acceleration/deceleration), 转向和引导 (Steering and guidance)等诸多方面,所以单单依靠卫星与GPS肯定不行。因此在生产过程中会涉及到利用多种传感器来收集数据的情况,数据收集后接下来会通过线下处理将各种数据融合,从而产生高精度地图。

采集方案

目前从全球范围内观察,高精度地图测绘数据采集的方式主要集中两类

  • 一种以谷歌、here的地图测绘车为主要力量,例如here高精度测绘车上的激光雷达传感器可以一秒内感知约60万个扫描点(其中包括周边建筑物、树木等),一天内测绘车能够收集和处理的数据超过100G。

  • 另一种则以特斯拉的“车队学习网络”(Fleet Learning Network)为代表,可以理解为用量产车将测绘任务众包出去,调动整个车队的所有传感器来收集数据,并通过云上传到中央数据库,这个方式在一定程度上有效弥补了由于测绘车数量不足而造成的数据获取以及更新缓慢等问题。

硬件设备

mmexport1566315475901

通常情况下,高精度地图的制作包括了几种主要的传感器设备。

  • 陀螺仪(IMU), 一般使用6轴运动处理组件,包含了3轴加速度和3轴陀螺仪。陀螺仪主要就是角速度检测仪,检测每个加速度。

  • 轮测距器(Wheel Odometer), 一般可以通过轮测距器推算出无人车的位置。汽车的前轮如果安装了轮测距器,分别会记录左轮与右轮的总转数。通过分析每个时间段里左右轮的转数,就可以科学推算出车辆向前走了多远,向左右分别转了多少度等。

  • GPS,主要任务是确定四颗或更多卫星的位置,并计算出它与每颗卫星之间的距离,然后用这些信息使用三维空间的三边测量法推算出自己的位置。

  • 激光雷达(LiDAR), 光学雷达通过向目标物体发射一束激光,然后根据接收——反射的时间间隔来确定目标物体的实际距离,随后根据距离及激光发射的角度,通过简单的几何变化可以推导出物体的位置信息。LiDAR系统一般可以分为三部分,分别是激光发射器,发出波长为600nm到1000nm的激光射线;扫描与光学部件主要用于收集反射点距离与该点发生的时间和水平角度(Azimuth);感光部件主要检测返回光的强度。

传感器融合

整体过程可以简单描述为,陀螺仪(IMU)及轮测距器 (Wheel Odometer)可以高频率地给出当前车辆的位置预测,但由于其精确度原因,位置可能会有一定程度的偏差。为了纠正这些偏差,可以使用传感器融合技术(比如使用Kalman Filter) 结合GPS与激光雷达(LiDAR)的数据算出当前无人车的准确位置,然后根据当前的准确位置与激光雷达的扫描数据,把新数据加入地图中。如果探究具体的实践过程,其实可以参照下面的关系式:

mmexport1566315480210
其中Q代表优化方程,z代表激光雷达扫描出的点,h为方程预测**扫描点的位置与反光度,m为扫描到的点在地图中的位置,x代表无人车当前位置。

这个方程的目的是通过最小化J求出测量点在地图中的准确位置。在计算模型中,m与x开始都是未知的,可以先通过多传感器融合求x,再求出测量点在地图中的准确位置m。

数据预处理

2.数据预处理

用深度学习方法来识别交通标志、车道线、OCR、点云物体,可以做到90%以上的准确率。

简单说,就是把 GPS、点云、图像等数据叠加在一起,进行道路标线、路沿、路牌、交通标志等道路元素的识别。此外,如果同一条道路上下行双向采集后带来了数据重复, 也会在这个过程中被自动整合,去掉重复内容。

数据预处理2

各地交通标志多,约230种,需要准确识别。还有水泥护栏,双层护栏等也需要识别。

人工校验

3.预处理的地图,需要人工去进行校验发布

数据

质检完成后,数据发布。符合NDS规格,即如何存储和管理导航和高精地图数据。

4.数据管理更新及使用

百度目前的高精度地图涉及到云端服务,就是以服务的方式,将云端已经采集好的高精度地图以数据的形式分发。

管理

关于地图数据的管理,无人车使用的高精地图是2D网格,数据主要由激光雷达提供。由于激光雷达的精度大约是5厘米,所以地图的**精度可以达到每个网格5×5厘米,在如此高倍的精度下,如何有效管理数据是很“麻烦”的一件事儿。

一般情况下,激光雷达可覆盖方圆100米范围,假设每个反光强度可以用一个字节记录,那么每次激光雷达扫描后就可产生4MB数据。但是这种扫描会涵盖公路旁边的树木及房屋等,实际上无人车行驶并不需要这些,只需记录公路表面的数据,数据过滤就成为关键一步。过滤数据中,通常可以使用无损压缩算法,例如LASzip,有望达到超过10倍的压缩率。经过这些处理,通常1TB硬盘就可以存下全国超过10万公里的高精地图数据。

地图更新

更新

高精地图动态更新的能力至关重要。用户采集的数据通过一些简单的融合传到云端,进行大数据的分析,如果可靠性得到了保障,就会推送给车端,形成更新的闭环。至于数据的更新频率,可能与自动化剩下的10%左右的工作量有关系。这个具体频率目前还暂未确定,但大概要按照天级别的维度来更新,未来可达到小时级的更新。

地图元素获取

使用

用户获取地图频率,范围,要素个数,都可以定制。比如卡车只需要关注坡度,曲率和航向,只获取ADAS地图。一般自动驾驶系统设计的反应时间是200ms,留给高精地图的时间为50ms, apollo可做到5ms以内。需要严格注意的是地图格式,相当于一个容器,百度支持自己设计的格式以及OpenDRIVE,但openDRIVE不能表达所有的地图元素,比如人行横道,API支持多个系统,包括Android等

API

高精地图API,获取车周围的道路元素拓扑关系。

5.基于高精地图的路径规划问题

关于路径规划问题。例如一辆自动驾驶的汽车,需要某条车道高精度地图的数据。

首先会需要一个像地图一样的客户端,或者map engine的模块来融合这些高精度地图的道路数据。这时候请求的数据就是从例如百度高精度地图的云服务端直接导出来,这个过程可能是不同的***或车厂,他们的方案可能有不同,这与百度现在提供的方式有关系,可以以接口的形式,也可以以车道级别的文件形式来直接获取。如果用从技术角度的话,可以被这样理解。

在路径规划的过程中首先需要做几个限定:

  • 一是地图已知,通常来说没有做到已知就无法规划。

  • 二是立足自动驾驶领域,一般还是2D或2.5D地图,而不是在3D地图上六个自由度运动规划(那是室内全自主无人机飞行),也就是明确地图的类型,个人认为。

  • 三是路径规划,一般默认自动驾驶车辆按照规划的路径,每一步执行后的定位pose准确。可以理解为这里刻意把定位和路径规划分开,但实际上这两者紧密联系,因为如果定位不准,路径规划一定会受到影响。

即使有了这几个设定,路径规划本身也有很多可能出现的版本。

启发式算法

通常来说,一种情况是明确寻找**路径的搜索A算法,本质就是如果有**的路径便一定将其找到,如果单位路径成本(cost)不一样,**的路径不一定是最短的。A是搜索了所有可能后选择了**的,而且运用了启发式算法来决定;其数据结构实现是priority queue,不停选取“最小成本”节点来扩建路径。

抽样算法

另一类是基于抽样(sampling based)的路径规划,通常可以理解为并不知道**路径是什么,需要从起点开始随机抽样(怎么随机这个问题还是比较讲究的)来扩建可能的路径集。这里面有一个很重要的因素可以加速抽样,例如障碍物的检测。若遇到障碍物,在其方向再扩建路径便没有意义。典型的算法是RRT (Rapidly-exploring Random Tree)。需要引起注意的是,在实践过程中如果有了启发式算法,实时的路径规划会很注重效率,需根据实际情况优化,这方面的研究包括RRT变种或两类算法的结合(如A*-RRT)。

-------------    本文结束  感谢您的阅读    -------------


文章作者:胡想成

发布时间:2019年08月20日 - 08:08

最后更新:2020年03月14日 - 10:03



相关文章

业界高精地图产品之Here、Google 、TomTom、Mobileye 地图的生产采集和表述
高精度地图架构
智能高精地图数据逻辑结构与关键技术






SELECTED EVENTS




 

长按二维码识别关注


  • 电话咨询
  • 021-22306692
  • 15021948198
None