apollo规划能力介绍

规划是自动驾驶中重要的模块。规划模块基于预测模块输入的障碍物信息、地图定位信息、路径导航信息对车辆的未来的运动轨迹进行规划,保证自动驾驶车辆高效、安全、舒适的行至目标位置。

本文档主要介绍规划模块的基本原理以及输入输出,帮助开发者快速了解规划模块的运作机制,方便开发者开展后续的模块开发任务

Apollo 规划能力介绍

Apollo 规划模块的主要作用是结合障碍物、地图定位以及导航信息为自动驾驶车辆规划一条运动轨迹,这条轨迹由若干轨迹点组成,每个轨迹点均包含了位置坐标、速度、加速度、加加速度、相对时间等信息,这些信息为自动驾驶车辆的运动提供依据,参照规划的轨迹,自动驾驶车辆可以高效、安全、舒适的驶向目的地。

Apollo 规划模块原理

Apollo 规划模块功能的实现是基于场景(scenario-based)实现的,针对不同的场景,规划模块通过一系列独立的 任务(task) 组合来完成轨迹的规划。开发者可以根据自己的使用需求,调整 apollo/modules/planning/conf/scenario/ 下的配置文件,调配任务组合实现自己的规划要求。

architecture-planning.png

Apollo 规划架构示意图如上,其中部分重要模块如下:

  • 状态机(Apollo FSM(Finite State Machine)):一个有限状态机,结合导航、环境等信息确定自动驾驶车辆的驾驶场景
  • 规划分发器(Planning Dispatcher):根据状态机与车辆相关信息,调用合适当前场景的规划器
  • 规划器(Planner):结合上游模块信息,通过一系列的任务组合,完成自动驾驶车辆的轨迹规划
  • 决策器 & 优化器(Deciders & Optimizers):一组实现决策和优化任务的 task 集合。优化器用于优化车辆的轨迹和速度。决策器则基于规则,确定自动驾驶车辆何时换车道、何时停车、何时蠕行(慢速行进)或蠕行何时完成等驾驶行为。

规划模块的输入输出

规划模块的输入

channel 名称 输入 channel 说明
/apollo/canbus/chassis 输入 车身底盘反馈信息
/apollo/localization/pose 输入 车辆定位信息
/apollo/perception/traffic_light 输入 感知红绿灯信息
/apollo/prediction 输入 预测障碍物信息
/apollo/relative_map 输入 局部地图信息
/apollo/routing_response 输入 导航 routing 信息

规划模块的输出

channel 名称 输出 channel 说明
/apollo/planning 输出 自动驾驶车辆的轨迹信息

文档意见反馈

如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。

上机实践Apollo定位能力apollo规划模块实践