docs/框架设计/核心模块/概述.md
Apollo 自动驾驶应用层提供了感知、预测、规划、控制、人机交互等数十个核心模块。这些模块之间的交互关系如下图所示:
注:橘色箭头线段代表数据流向,黑色箭头线段代表处理流程流向。
感知模块识别自动驾驶车辆周围的世界。感知中有两个重要的子模块:障碍物检测和交通灯检测。
预测模块预测感知障碍物的未来运动轨迹。
路由模块告诉自动驾驶车辆如何通过一系列车道或道路到达其目的地。
规划模块规划自动驾驶车辆的时间和空间轨迹。
控制模块通过产生诸如油门,制动和转向的控制命令来执行规划模块产生的轨迹。
CanBus是将控制命令传递给车辆硬件的接口。它还将底盘信息传递给软件系统。
该模块类似于库(Library)。它不是发布和订阅消息,而是经常用作查询引擎支持,以提供关于道路的特定结构化信息。
定位模块利用来自 GPS,LiDAR 和 IMU 设备的信息来评估自动驾驶车辆的位置。
人机交互模块,或者说 Apollo 中 DreamView 是一个用于查看车辆状态,测试其他模块以及实时控制车辆功能的模块。
监控车辆中所有软硬件模块的监控系统。
功能安全模块,用于干预 Monitor 模块检测到的失效情况并采取相应的动作。
Apollo 提供了丰富的自动驾驶算法,涵盖感知、规划、控制以及定位等自动驾驶核心技术栈。