购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.7 Apollo

3.7.1 Apollo概述

Apollo是百度面向汽车行业及自动驾驶领域合作伙伴发布的一个开放、完整、安全的自动驾驶平台。通过这个平台,开发者可整合车辆和硬件系统,搭建完整的自动驾驶系统。Apollo平台提供的软硬件和服务包括车辆平台、硬件平台、软件平台、云端数据服务四大部分。

Apollo目前已经开放Apollo1.0封闭场景循迹自动驾驶、Apollo1.5昼夜定车道自动驾驶、Apollo2.0简单城市道路自动驾驶、Apollo2.5限定区域视觉高速自动驾驶、Apollo3.0量产园区自动驾驶和Apollo3.5带来的Apollo Enterprise 5个版本,完成平台4大模块全部开源,提供更多场景、更低成本、更高性能的能力支持,为自动驾驶车辆量产提供软件、硬件、安全、多模人机交互方面的全面平台服务支持。

3.7.2 Apollo软件构架

Apollo软件架构由以下几个模块组成:校准模块车辆CAN总线控制模块、控制模块、决策模块、可视化模块、驱动模块、人机交互模块、端到端强化学习、定位模块、高精度地图模块、监控模块、感知模块、预测模块以及通用监控与可视见化工具。自动驾驶系统先通过起点终点规划出全局路径(Routing);然后在行驶过程中感知(Perception)当前环境(识别车辆行人路况标志等),并预测下一步发展;然后将采集到的信息传入规划模块(Planning),规划车辆行驶轨迹;控制模块(Control)将轨迹数据转换成对车辆的控制信号,通过汽车交互模块(CAN Bus)控制汽车,如图3-23所示。

图3-23 Apollo平台各模块之间的关系

1)校准模块:使用前必须对传感器校准和标定,包括激光雷达、毫米波雷达与摄像头等。激光雷达可以获取详细的三维环境信息,但是不能获得颜色信息;摄像头可以获取颜色信息,但无法获得深度等三维信息;毫米波雷达不能获取颜色信息,但可以获得三维信息。将三者采集的信息融合后,就可以更准确地感知环境信息。

2)车辆CAN总线控制模块:接收控制指令,同时给控制模块发送车身状态信息。CAN Bus有两个数据接口。

①第一个数据接口是基于计时器的发布者,回调函数为OnTimer。如果启用,此数据接口会定期发布底盘信息。

②第二个数据接口是一个基于事件的发布者,回调函数为OnControlCommand,当CAN Bus模块接收到控制命令时会触发该函数。

3)控制模块:基于决策规划的输出路径及车身状态,使用不同的控制算法来输出控制命令,如转向、制动、加速等。有3个主要的数据接口:OnPad、OnMonitor和OnTimer。OnPad和OnMonitor是仿真和HMI的交互接口,主要数据接口OnTimer会定期产生实际的控制命令。

4)决策模块:在接收全局路径后,根据从感知模块得到的环境信息(其他车辆、行人等障碍物信息,道路上交通标志、红绿灯等交通规则信息),以及本车当前的行驶路径等状态信息,做出具体的行为决策(如变道超车、跟车行驶、让行、停车、进出站等)。

5)可视化模块:查看规划的轨迹和实时车辆状态。

6)驱动模块:GNSS设备驱动,包括NovAtel、Applanix、u-blox、激光雷达驱动,用来读取传感器内容并输出对应的消息。

7)人机交互模块:可视化自动驾驶模块的输出,例如规划轨迹、汽车定位、底盘状态等。为用户提供人机交互界面,以查看硬件状态,打开或关闭模块,以及起动自动驾驶汽车。

8)端到端强化学习:所谓端到端是指由传感器的输入信息,直接决定车的行为,例如加速、制动、方向等。这是机器学习算法直接学习人类驾驶员的驾驶行为。学习数据主要来源于传感器(包括图像、激光雷达、毫米波雷达等)的原始数据。端到端输入以图像为主,输出车辆的控制决策指令,如转向盘转角、加速、制动等。通过深度神经网络连接输入输出两端,即神经网络直接发送车辆控制指令对车辆进行横向和纵向控制,此过程没有人工参与。横向控制主要是指通过转向盘控制车身横向移动,即转向盘转角。纵向控制,是指通过加速和制动控制车身纵向的移动。横向模型的输出不是转向盘转角,而是道路行驶的曲率。

9)定位模块:聚合各种数据以定位自动驾驶车辆,有两种类型的定位模式,OnTimer和多传感器融合。第一种基于RTK的定位方法,通过计时器的回调函数“OnTimer”实现;另一种是多传感器融合(MSF)方法,其中注册了一些事件触发的回调函数。

10)高精度地图模块:输出结构化地图信息,如车道线和十字路口等。其显著特性是表征路面特征的准确性。通常传统地图只需要做到米量级的精度即可实现基于GPS的导航,但高精度地图需要至少提升100倍以上的精度,即达到厘米级的精度,才能保证无人车的行驶安全。

11)监控模块:包括硬件在内的,车辆中所有模块的监控系统。监控模块从其他模块接收数据并传递给驾驶员,以便驾驶员查看并确保所有模块都正常工作。如果模块或硬件发生故障,监控会向Guardian发送警报,然后决定需要采取哪些操作来防止系统崩溃。

12)感知模块:感知依赖激光雷达点云数据和摄像头原始数据。除了传感器数据输入之外,交通灯检测也需要依赖定位以及高精度地图。由于实时ad-hoc交通灯检测在计算上是不可行的,因此需要依赖定位确定何时何地开始通过摄像头捕获的图像检测交通灯。在感知模块中,Apollo平台有以下几个特点:CIPV检测/尾随,可实现远程精确控制。摄像头有高低两种不同的安装方式。

13)预测模块:负责预测所有感知到的障碍物未来运动的轨迹,输出预测消息封装了感知信息。预测定位和感知障碍物消息时,当接收到定位更新后,预测模块更新其内部状态。当感知模块发布感知到障碍物消息时,触发预测模块实际执行。

14)通用监控与可视化工具:包括一些可视化工具、bag包录制及回放脚本。 eTeDC/U3xZCSj9VqiWrUOJEujw8nCaTdxceoCcNGl0JQK46WEIkMmsArOUzKbHrr

点击中间区域
呼出菜单
上一章
目录
下一章
×