0%

apollo学习笔记-day11

Apollo地图采集方案

APOLLO地图采集流程

  • 基于Apollo的地图数据采集可以实现一键化
  • 该方案的基础传感器配置有:
    • 平装的64线激光雷达,用于道路路面采集
    • 由于平装的64线激光雷达扫描高度比较低,还需要一个斜向上装的16线激光雷达,用于检测较高处的红绿灯、标牌等信息
    • GPS、IMU、长焦相机以及短焦相机

基站搭建

  • 百度采用的GPS传感器并非一个单纯的GPS,而采用的是RTK的方案,能提供更高的精度
  • RTK方案通过观测站之间载波信号的差分就可以得到厘米级的定位效果
  • 但车辆在城市中行驶,容易受到高楼的遮挡,采集到的数据会受影响

Apollo地图采集硬件方案

进行地图采集的两个先决条件:传感器工作状态正常和传感器已被标定

  • 开发者首先要保证各个传感器处于工作状态
  • 其次是保证各个传感器已经被标定过
    • Camera内部参数和外部参数不一致,不同厂家生产的激光雷达的参数设定也会不一致,会导致采集的数据不准确,从而作废
  • 采集过程中,无人车需要双向车道全覆盖3—5遍,最好是5遍
    • Apollo采集路口红绿灯时使用的是Riegl传感器
  • 一次采集行为完成后,所有的结果会形成数据包:其中包含点云、车辆标定参数、定位结果等信息

地图数据服务平台

  • Apollo地图数据服务平台提供包括数据管理体系、制图任务创建、制图进度跟踪和制图结果下载等服务
  • 制图过程是离线的,百度对Pose做校正和视觉图像处理,完成最终的制图后,会将全套地图提供给开发者

Apollo地图生产技术

高精地图生产流程

在城市道路环境下,高精地图生产分为数据采集、数据处理、元素识别、人工验证四个环节

  • 数据采集
  • 数据处理
    • 传感器采集到的数据分为点云和图像两大类
    • Apollo在制图过程中处理的数据以点云为主
    • 点云拼接:采集过程中出现信号不稳定时,需借助SLAM或其他方案,对Pose进行优化,才能将点云信息拼接,并形成一个完整的点云信息
    • 反射地图:点云拼接后,可将其压缩成可做标注、高度精确的反射地图,甚至基于反射地图来绘制高清地图。其生产过程与定位地图的制图方式一样
  • 元素识别
    • 元素识别包括基于深度学习的元素识别和基于深度学习的点云分类
    • 基于点云压缩成的图像进行车道线的识别,可得出准确的车道线级别的道路形状特征
    • 还需要提炼道路的虚实线、黄白线、路牌标识等,来完善道路特征
    • 通过对收集到的图像等进行深度学习,即可提炼出道路相关元素放到高精地图中
  • 人工验证

全自动数据融合加工

  • 百度高精地图依托模式识别、深度学习、三维重建、点云信息处理等世界领先的技术,其数据自动化处理程度已达到90%,相对精度达0.1-0.2米,准确率高达95%以上

基于深度学习的地图要素识别

地图要素的识别包含两个层面:

  • 第一个层面:能否根据点云分割从中提取精确的Feature

  • 第二个层面:尝试从点云中提取车道线、灯杆、红绿灯。如灯杆可以用来做视觉定位的Feature

人工验证生产

  • 高精度地图的三个步骤:外采、后台数据化处理、人工验证以及发布
  • 验证人员需要从云端下载需要验证的路段数据,然后把自动处理之后的高精度地图数据和对应位置的图像信息作比对,找出错误的地方并进行更正

地图成果

  • Apollo高精地图主要应用在高精定位、环境感知、决策规划、仿真运行四大场景
  • 定位地图类似于整齐排列的小格子,存储了坐标信息和反射强度信息等,用于点云定位
  • 点云定位是Apollo中的一个定位方案,在高精地图各个模块都会应用到
  • 路径规划地图主要用于车道级别规划
  • 仿真地图主要用于基于高精地图的仿真

Apollo高精地图

高精地图的数据元素

  • 道路包括左边界右边界。它可分为两个层次,一是道路级别,一是车道级别
    • 道路边界是强约束,即自动驾驶的时候,道路边界是永远不能压的
  • 路口是一个相对复杂的场景,可以进一步细分为路口边界和虚拟车道
  • 交通信号灯可以分为红绿灯和其他道路标志
  • 逻辑关系表述,Overlap

高精地图的车道模型

  • 纵向切成Section,横向还是使用Lane(车道线)分割
  • 路口表述:路口分为真实路口和十字路口。在实践过程中,发现除了真实路口之外,在车道数变化的时候,比如从两车道变到三车道,需要感知周围有没有车辆,在Apollo高精地图里面也把这种情况处理成一个路口

高精地图的坐标系

  • Apollo内部主要采用UTM坐标系

Apollo OpenDRIVE规范

Apollo的OpenDRIVE跟标准OpenDRIVE有四点区别:

  • 元素形状的表达方式不同
    • 标准OpenDRIVE是基于参考线加偏移,并采用方程来描述,而Apollo里面的OpenDRIVE,都是坐标点,没有采用方程的方式
    • 用点表示对于下游的计算非常友好,不需要再重新通过线去做点的采样
  • 在道路急于转弯的地方,原始的OpenDRIVE把基于Reference Line的方式还原成点的方式,会导致道路上存在毛刺。这种处理方式对于无人驾驶来说非常危险
  • 增加了一些道路元素关系的表述
  • 增加了诸如停止线与红绿灯的关联关系,中心线到边界的距离等的描述

HDMAP引擎

  • HDMAP引擎是Apollo里面用于从HDMAP里面提取相关元素给下游的一个模块

高精地图在政策方面的挑战

  • 在国内,采集地图属于国家机密事项
  • 测绘得到的数据需要进行加密
  • 高程、曲率、坡度等在高精地图里面是不允许表述的,但这些数据对于无人驾驶又是必须的

参考资料