0%

apollo学习笔记-day27

本机演示实战

  • Apollo软件的数据流转过程
    • 首先是通过高精地图和定位获得车辆周边的场景信息。然后通过感知模块侦测道路上的障碍物,即一些动态信息,比如旁边的车、行人、自行车等等。
    • 这些工作完成后将感知的信息传递给Prediction,预测感知障碍物的运行轨迹。最后将预测结果包装再传给Planning模块。
    • Planning根据障碍物和周边静态的情况,比如有哪些车道可选,去规划路线。路线规划完成后,将生成的轨迹传到Control模块。
    • Control模块通过Can总线协议跟车辆交互,例如应该打多大角度的方向盘,车辆现在的加速度是多少,当前是应该踩刹车还是继续跟车等。同时也会从Can总线协议层面了解到车辆本身的信息。

车辆与循迹驾驶能力实战

  • 循迹测试涉及最底下的几个模块,只需要定位、控制以及Canbus这三个模块,是Apollo的最小子集,通过循迹可以验证车的线控能力以及模块的整体集成能力。
  • 车辆
    • 首先在硬件上,我们需要一辆线控车辆、一个工控机以及惯导系统GPS和IMU
    • 如果使用的是参考硬件搭建的车辆,不需要进行适配,可以直接进行验证。
    • 如果不是用参考车辆来做这件事,需要做以下几步:
      • 首先是要实现一个适配层。通过代码里的Vehicle模块添加一个新Vehicle,其实就是从代码逻辑上添加一个车辆的设备层。具体包括添加一个新车控制器,再实现一个新消息管理器,然后在工厂类中注册这个新车和更新配置文件。
      • 第二步是Can卡的管理。Canbus通过CAN Card硬件去完成沟通,默认有一个叫ESD的CAN Card。如果我们新添不同的厂家,且它的驱动数据格式不一样,需要按照以下方式去集成一个新CAN Card。
      • 最后是控制模块。控制模块是一个非常开放的模块,大部分情况下,不需要定制。当然如果整个车辆的控制,底层的车辆有很大的差别,在个别情况下需要用自己的控制算法。
  • 定位
    • 目前Apollo提供两种定位方式
      • 一种是RTK定位方式,基于基站的方式,需要GPS和IMU惯导
      • 另一种方案是MSF(多传感器融合)的定位方式,除了GPS和IMU之外,还通过Lidar的3D点云来做认证匹配定位
    • 循迹测试的定位只需要一个GPS即可。
    • 如果使用的不是Apollo推荐的参考硬件,就需要新添加,具体过程就是新建一个GPS解析类去解析GPS 的数据格式,然后再配置就可以实现。
    • 设备搭建完成之后,可以通过HMI界面启动循迹测试,包括录制和执行两步。在录制之前,需要确认已经启动了所有相关的GPS, CAN Card模块。

障碍物感知和路径规划能力实战

  • 从Apollo 2.0开始,开始使用多传感器融合的方式做感知。多传感器融合需要对不同的传感器进行标定。
  • 感知的核心功能是进行障碍物的识别、分类、语义分析和障碍跟踪
  • 规划的目的是告诉车辆按一条什么样的路经行驶,它有几个核心元素:参考线、高精地图、规划器Planner、轨迹发布。
  • 为加速研发过程,百度提出了“云+端”的研发迭代模式
    • 大概的流程是首先从车辆路测中积累海量的数据,将积累的数据传递到云端,然后利用云端服务器集群的强大计算能力去生成深度学习模型,并在云端做回归测试。最后将经过验证的模型更新到车辆上,赋予它新的迭代能力。
  • 自动驾驶数据分类
    • 原始数据:各种传感器、车辆、驾驶员行为等。数据种类繁多,维度不同,数据量大,而且大多是非结构化数据,对于存储、传输、处理提出非常大的挑战。
    • 标注数据:视觉的2D障碍物数据、红绿灯数据、3D点云数据等。
    • 逻辑数据:包括完美感知、环境的抽象以及车辆动力学模型等。
    • 仿真数据:包括参数模糊化数据、三维重建数据等。
  • Apollo开放了六类训练数据
    • 2D红绿灯:用来识别交叉路口红绿灯数据,可以用做训练、测试和验证。
    • 2D障碍物:比如车辆、行人、自行车,还有其他未知类别的图像数据。
    • 3D障碍物:其实是激光雷达点云。
    • 端到端的数据:提供适合end-to-end模块的数据。
    • 场景解析:像素级的语义标注,比如车辆、背景、交通指示牌、障碍物等,可以用来做整体环境的识别。
    • 障碍物预测:用来训练预测算法的数据集。

参考资料