本PDF深入解析Apollo自动驾驶开放平台的核心架构与技术细节,适合对自动驾驶系统开发感兴趣的高级工程师阅读和学习。
Apollo 自动驾驶架构是百度开源的自动驾驶系统中的一个关键部分,它由四个主要组成部分构成:车辆平台、传感器层、核心软件层以及云服务层。
车辆平台作为自动驾驶系统的底层结构,负责执行来自Apollo生成的各种控制指令。为了能够运行这些指令,车辆必须具备线控功能,并能响应如换挡、加速减速和转向等操作命令。在 Apollo 3.0 版本之前,我们称之为“推荐的可运行Apollo车型”,即几种被推荐用于运行Apollo系统的汽车型号;而在之后的版本中,则发布了关于车辆条件的具体需求,包括需要哪些线控功能及相应操作所需的时间限制。只要将车辆改装至满足这些要求的状态下就可以使用 Apollo 系统。
传感器层构成了自动驾驶系统中的第二层级,主要任务是集成各种类型的传感器以感知周围环境的信息。这其中包括 GPS、IMU(惯性测量单元)、摄像头、激光雷达以及毫米波雷达等设备。由于无人驾驶技术对计算能力的要求极高,在Apollo平台上安装了一台高性能工业控制计算机(IPC)。在 Apollo 系统中,GPS 和 IMU 用于车辆的自我定位;相机则主要用于识别交通信号灯的颜色变化;而主传感器——激光雷达,则主要负责感知周围环境中的障碍物。百度内部使用了 Velodyne 的64线激光雷达和国产禾赛科技的Pandora设备,在 Apollo 3.0 版本中,开放支持更多类型的16线激光雷达型号如速腾聚创(Robosense)与镭神智能的产品。
毫米波雷达主要用于远距离目标检测及车辆跟随等场景;超声波传感器则用于探测五米范围内的障碍物。HMI系统指的是向汽车发送指令的设备,例如平板电脑。Blackbox 是百度提供的一种商业化硬件解决方案,它能够记录关键操作数据和事件信息,并在事故发生时起到类似飞机“黑匣子”的作用。
核心软件层可以进一步细分为三层:最底层是RTOS实时操作系统,在Apollo项目中我们通过修补的方式实现了该功能;中间层级为Runtime Framework(运行框架),主要采用ROS技术提供给上一层级的数据支持服务。顶层包含了Apollo所有关键模块的实现,包括地图引擎、定位系统、感知算法、路径规划器等。
云服务平台则提供了高精度地图数据访问接口、模拟仿真工具包等一系列增值服务,如安全更新机制和DuerOS智能语音助手等功能插件。对于中国地区的用户来说,在没有相应政府许可的情况下个人无法自行制作高质量的三维地理信息图层,因此Apollo直接以云端服务的形式向公众开放了预先准备好的高精度地图资源库;模拟仿真主要用于验证自动驾驶算法的有效性和可靠性。
总而言之,Apollo架构设计时充分考虑到了安全性、实时响应能力和可扩展性等多个方面的需求。整个系统从硬件选型到软件开发都旨在满足无人驾驶汽车的实际应用需求,并且Apollo还提供了丰富的接口和API,便于开发者及终端用户进行相关研究与实际操作。