Apollo自动驾驶入门课程第①讲—无人驾驶概览
第一课,无人驾驶概览
本节课从无人车的运作方式、Apollo开放平台架构、参考车辆与硬件平台、开源软件架构、云服务等方面,带大家全面了解Apollo及无人驾驶,开启无人驾驶入门的学习路径。
1.全面了解自动驾驶主要模块
Apollo 技术框架由四个层面组成,参考车辆平台、参考硬件平台、开源软件平台、云服务平台。其中主要模块包括高精度地图、定位、感知、预测、规划、控制等模块,后续的课程也将围绕这些模块展开。
在高精地图课程中我们将为大家介绍无人车的核心模块,高精地图几乎支持着软件栈的所有其他模块,尤其是定位、感知、规划和决策。
在定位课程中,我们将讨论车辆如何确认所在位置。车辆利用激光和雷达数据将这些传感器感知内容与高分辨率地图进行对比,这种对比使车辆能够以个位数厘米级精度进行定位。
感知课程将带大家了解无人驾驶车如何感知这个世界,深度学习是一个重要且强有力的感知工具,卷积神经网络构成深度学习分支,对感知任务至关重要,如分类、检测和分割。
预测课程将概述几种不同的方式,用于预测其他车辆或行人可能如何移动一种方法称为递归神经网络,可对其他物体随时间的运动进行跟踪,并使用该时间序列数据预测未来。
进阶拓展阅读学习:直播课程内容 | 无人驾驶行业及Apollo的Overview (qq.com)
2.了解无人车的运作方式
无人驾驶车包括五个核心部件,计算机视觉、传感器融合、定位、路径规划、控制。
无人驾驶车的工作原理
我们使用计算机视觉和传感器融合,获取一幅关于我们在世界上的位置的丰富画面,使用定位确定我们在这个世界的精确位置,然后使用路径规划来绘制一条通过这个世界到达目的地的路径,通过控制转动方向盘、打开油门、然后踩制动器,沿着该轨迹行驶并最终移动车辆。从本质上讲,其他一切无人车都是这些核心功能更复杂的实现。
3.开放式软件栈
Apollo开放式软件层分为三个子层,实时操作系统、运行时框架、应用程序模块层。
实时操作系统(RTOS),可确保在给定时间内完成特定任务,“实时”是指无人车的操作系统,能够及时进行计算,分析并执行相应的操作,是在车辆传感器收集到外界数据后的短时间内完成的。实时性能是确保系统稳定性和驾驶安全性的重要要求。
Apollo RTOS是Ubuntu Linux操作系统与Apollo内核相互结合的成果。原始Ubuntu系统并非实时操作系统,通过加入Apollo设计的内核,我们可以使其成为一个RTOS。
运行时框架是Apollo的操作环境,是ROS的定制版即机器人操作系统。为了使ROS适应无人车,Apollo团队改进了共享内存的功能和性能、去中心化和数据兼容性。
核心内容——应用程序模块:
Apollo软件平台具有各种模块,这些模块包括 MAP引擎、定位、感知、规划、控制、端到端驾驶以及人机接口(HMI)。每个模块都有自己的算法库,之间的关系也非常复杂,我们将在整个课程中对这些模块及其关联方式进行研究。
进阶拓展阅读学习:
《自动驾驶汽车硬件系统概述》
《Apollo“云+端”研发迭代新模式实战》