Apollo教程1——无人驾驶概览

What will you learn?

  • HDMaps
  • Localization
  • Perception
  • Prediction
  • Planning
  • Control

HDMaps

高精度地图模块
Apollo教程1——无人驾驶概览

Localization

定位模块:汽车如何确定它所处的位置,汽车利用激光和雷达数据,将这些传感器感知的内容与高分辨率地图进行对比,这种对比使汽车能够以个位数的厘米级精度进行自定位。
Apollo教程1——无人驾驶概览

Perception

感知模块:了解无人驾驶汽车如何感知这个世界。深度学习是一个重要且强有力的感知工具。卷积神经网络构成深度学习分支,对感知任务至关重要,如分类、检测和分割。
Apollo教程1——无人驾驶概览

Prediction

预测模块:用于预测其它车辆或行人可能如何移动。

递归神经网络:可对其它物体随时间的运动进行跟踪。并使用该时间序列数据预测未来。
Apollo教程1——无人驾驶概览

Planning

规划模块:涵盖如何将预测与路线相结合,以生成车辆轨迹。规划是构建无人驾驶车最困难的部分之一。
Apollo教程1——无人驾驶概览

Control

控制模块:如何使用转向、油门和制动来执行规划轨迹。
Apollo教程1——无人驾驶概览

What is Self-Driving?

为什么我们需要无人驾驶?

  • 最重要的原因是安全
    Apollo教程1——无人驾驶概览
    无人驾驶的等级划分
  • Level 0 : 基本等级,驾驶员是系统的唯一决策者,驾驶员控制方向盘、油门、制动器和所有其他车辆控制装置。
  • Level 1: Driver Assistance, 驾驶员辅助,车辆为驾驶员提供转向或加速支持。如巡航控制为1级自动化系统
  • Level 2: Partial Automation
  • Level 3: Conditional Automation
  • Level 4: No Human Interference
  • Level 5: Fully Automation
    Apollo教程1——无人驾驶概览
    无人驾驶的历史:
    Apollo教程1——无人驾驶概览

How Self-Driving Cars Work?

Apollo教程1——无人驾驶概览
Apollo’s system centers around HD Maps and Localization. The other components of the system revolve around HD Maps and Localization, as we’ll see throughout this course.

Apollo Team and Architecture

Apollo platform framework consists of:

  • Reference Vehicle Platform
  • Reference Hardware Platform
  • Open Software Platform
  • Cloud Service Platform

Reference Vehicle Platform and Hardware Platform

首先要开发一款可通过电子控制的基础车辆——线控驾驶车辆(a drive-by-wire vehicle)

  • 控制区域网络(CAN)——车辆的内部通信网络,计算机通过CAN卡连接汽车内部网络。发送加速、制动和转向信号。
  • 全球定位系统GPS——通过绕地卫星接收信号,确定所处位置
  • 惯性测量装置(IMU)——测量车辆的运动和位置,是通过跟踪位置、速度、加速度和其他因素
  • 激光雷达(LiDAR)——由一组脉冲激光器组成,可360度扫描车辆周围。这些激光束的反射形成了软件可用于了解环境的点云。
  • 摄像头捕获图像数据,使用计算机视觉来提取这些图像的内容并了解周围的环境。
  • 雷达也用于检测障碍物,雷达特别擅长于测量其他车辆的速度。
    Apollo教程1——无人驾驶概览

Open Software Stack

三个子层:

  1. 实时操作系统 Real-time Operating System(RTOS) :确保在给定时间内完成特定任务
  2. 运行时框架 Runtime Framework :Apollo 的操作环境,ROS的定制版(ROS是应用最广泛的机器人框架)
  3. 应用程序模块 Application Modules
    Apollo教程1——无人驾驶概览
    共享内容:一次写入,多次读取,降低了需要访问不同模块时的数据复制需求。
    Apollo教程1——无人驾驶概览

去中心化(Decentralization)解决了单点故障问题。如下图,如果ROS Master 主节点发生故障,整个系统都会失效。
Apollo教程1——无人驾驶概览

Apollo将所有节点放到一个公共域中,域中的每个节点都有关于域中其他节点的信息。
公共域取代了原来的ROS主节点
Apollo教程1——无人驾驶概览
数据兼容:protobuf

Cloud Service

Apollo教程1——无人驾驶概览

Apollo Github Repo

Click the link of Apollo repo to know more if you’re interested.