Apollo 10.0
自动驾驶开放平台
|
planning
模块包含planning模块的整体架构和流程。planning模块根据上游模块输入的感知周围环境信息,地图定位导航信息,以及全局路径信息,为自动驾驶车辆规划出一条运动轨迹(包含坐标,速度,加速度,jerk加加速度,时间等信息),然后将这些信息传递给控制模块。
Planning模块需要获取外部环境信息,车辆自身信息进行轨迹规划,以下是planning的外部输入信息:
Channel 名 | 类型 | 描述 |
---|---|---|
/apollo/prediction | apollo::prediction::PredictionObstacles | 障碍物预测信息,可通过 modules/planning/planning_component/dag/planning.dag 启动文件修改channel名 |
/apollo/perception/traffic_light | apollo::perception::TrafficLight | perception模块输出的交通灯感知信息,包含交通灯亮起的颜色,id等信息 |
/apollo/localization/pose | apollo::localization::LocalizationEstimate | 定位信息,可通过 modules/planning/planning_component/dag/planning.dag 配置文件修改channel名 |
/apollo/canbus/chassis | apollo::canbus::Chassis | canbus模块输出的车辆底盘信息,包含底盘速度,油门,刹车,档位,灯光等状态, modules/planning/planning_component/dag/planning.dag 配置文件修改channel名 |
此外,planning模块还需要外部输入的导航命令信息,用户首先向external_command发送导航命令请求,external_command再将这些命令进行处理后转发给planning模块。下面介绍用户可以发送的几种导航命令:
Channel 名 | 类型 | 描述 |
---|---|---|
/apollo/external_command/lane_follow | apollo::external_command::LaneFollowCommand | 基于高精地图导航的命令,给定终点的位置或朝向,从当前车辆位置导航到目标终点位置 |
/apollo/external_command/valet_parking | apollo::external_command::ValetParkingCommand | 从当前位置导航泊车到停车位上 |
/apollo/external_command/action | apollo::external_command::ActionCommand | HMI发送的流程操作命令 |
Channel 名 | 类型 | 描述 |
---|---|---|
/apollo/planning | apollo::planning::ADCTrajectory | 输出规划轨迹,包含轨迹点,速度和时间等信息 |
/apollo/planning/command_status | apollo::external_command::CommandStatus | 导航命令的执行状态 |
/apollo/external_command/lane_follow | apollo::external_command::LaneFollowCommand | 在道路被阻塞,换道失败超时时,发送重新路由的申请 |
文件路径 | 说明 |
---|---|
modules/planning/planning_component/conf/planning.conf | planning模块的flag配置文件 |
文件路径 | 说明 |
---|---|
planning | planning组件包,负责启动planning模块,串联planning运行流程 |
planning-interface-base | 包含planning插件父类接口 |
planning-base | 包含planning模块基础数据结构和算法库 |
planning-open-space | 包含开放空间规划算法 |
planning-planner-lattice | LatticePlanner插件包,适用于高速公路等简单场景 |
planning-planner-navi | Navi Planner插件包,适用于高速公路等简单场景 |
planning-planner-rtk | Rtk Panner插件包,根据事先录制好的轨迹进行循迹行驶 |
planning-planner-public-road | PublicRoad Planner插件包,适用于城市道路的场景 |
planning-lane-follow-map | LaneFollowMap插件包,基于高精地图生成参考线 |
planning-scenario-bare-intersection-unprotected | 无保护路口场景插件包,处理没有交通灯的交叉路口场景 |
planning-scenario-emergency-pull-over | 紧急靠边停车场景插件包,接收紧急停靠的命令并就近靠边停车 |
planning-scenario-emergency-stop | 紧急停车场景插件包,接收紧急停车的命令并在当前车道停车 |
planning-scenario-lane-follow | 沿车道线行驶场景插件包,是默认的行驶场景 |
planning-scenario-park-and-go | 停车后重新行驶场景插件包,在车辆停靠在路边非车道线范围内,重新行驶时时会先进入此场景,将车辆行驶到车道线上 |
planning-scenario-pull-over | 靠边停车场景插件包,在车辆接近终点并且终点靠边停车使能后进入此场景 |
planning-scenario-stop-sign-unprotected | 停车标志场景插件包,在行驶过程中遇到停止标志时进入此场景 |
planning-scenario-traffic-light-protected | 有保护交通灯场景插件包,在路口有保护的交通标志时进入此场景 |
planning-scenario-traffic-light-unprotected-left-turn | 无保护交通灯左转场景插件包,在路口无保护的交通灯左转时进入此场景 |
planning-scenario-traffic-light-unprotected-right-turn | 无保护交通灯右转场景插件包,在路口无保护的交通灯右转时进入此场景 |
planning-scenario-valet-parking | 在停车位停车场景插件包,在导航命令中指定了停车位并且车辆接近停车位时进入此场景 |
planning-scenario-yield-sign | 让行标志场景插件包,在行驶时遇到让行标志时进入此场景 |
planning-task-fallback-path | 备用路径任务插件包,在沿道路行驶时无法规划出合理的路径时,此任务产生备用路径,沿当前车道线行驶并在障碍物前停车 |
planning-task-lane-borrow-path | 借道路径任务插件包,在沿道路行驶时当前车道被占用时生成借道路径 |
planning-task-lane-change-path | 换到路径任务插件包,在沿道路行驶时根据路由线路需要换道时生成换道路径 |
planning-task-lane-follow-path | 沿当前车道任务插件包,在沿道路行驶时正常沿当前车道行驶时生成路径 |
planning-task-open-space-fallback-decider | 开放空间行驶备用轨迹任务插件包,检测开放空间下轨迹是否与障碍物发生碰撞并做出相应策略 |
planning-task-open-space-pre-stop-decider | 开放空间行驶预先停车任务插件包,执行泊车与靠边停车任务时,生成在公共道路上的停车点,车辆停在停车点后,会转入开放空间算法 |
planning-task-open-space-roi-decider | 开放空间行驶可行区域生成任务插件包,在开放空间算法中生成可行驶边界 |
planning-task-open-space-trajectory-partition | 开放空间行驶轨迹分割任务插件包,在开放空间将轨迹按前进后退分割成多段,并调整速度规划 |
planning-task-open-space-trajectory-provider | 开放空间轨迹生成任务插件包,在指定规划边界与目标点位姿的情况下,调用开放空间算法,生成相应轨迹 |
planning-task-path-decider | 路径决策任务插件包,对行驶路径进行决策 |
planning-task-path-reference-decider | 路径合理性决策任务插件包,对推理生成的路径的合理性进行决策,用于后续求解 |
planning-task-path-time-heuristic | 速度规划初解任务插件包,基于动态规划算法,在非凸的ST空间做粗的速度规划 |
planning-task-piecewise-jerk-speed | 线性速度规划优化解任务插件包,基于二次规划在凸ST空间进行速度规划 |
planning-task-piecewise-jerk-speed-nonlinear | 非线性速度规划优化解任务插件包,基于非线性规划在凸ST空间进行速度规划 |
planning-task-pull-over-path | 靠边停车路径生成任务插件包,用于生成靠边停车路径 |
planning-task-reuse-path | 复用路径任务插件包,在没有碰撞的情况下,复用上一帧的路径 |
planning-task-rss-decider | RSS决策器任务插件包,用于判断planning给出的规划是否安全 |
planning-task-rule-based-stop-decider | 停车策略任务插件包,用于产生基于规则的停车策略 |
planning-task-speed-bounds-decider | 速度边界生成任务插件包,用于产生速度规划的ST可行驶区间 |
planning-task-speed-decider | 速度规划决策任务插件包,用于根据规划的粗速度曲线产生对障碍物的纵向决策 |
planning-task-st-bounds-decider | st边界决策器任务插件包,生成st边界 |
planning-traffic-rules-backside-vehicle | 后向车辆规则插件包,生成对后向车辆的速度决策 |
planning-traffic-rules-crosswalk | 人行道规则插件包,对前方人行道生成是否停车的决策 |
planning-traffic-rules-destination | 终点规则插件包,在终点附近生成是否停车的决策 |
planning-traffic-rules-keepclear | 禁行区域规则插件包,在禁行区域生成速度决策 |
planning-traffic-rules-reference-line-end | 参考线终点规则插件包,在参考线终点附近生成是否停车的决策 |
planning-traffic-rules-rerouting | 重新规划规则插件包,在规划失败的情况下决策是否要重新规划 |
planning-traffic-rules-stop-sign | 停止标志插件包,在停止标志附近决策是否要停车 |
planning-traffic-rules-traffic-light | 交通灯规则插件包,在交通灯附近决策是否要停车 |
planning-traffic-rules-yield-sign | 让行规则插件包,在让行标志附近生成速度决策 |
如果您在使用文档的过程中,遇到任何问题,请到我们在【开发者社区】建立的 反馈意见收集问答页面,反馈相关的问题。我们会根据反馈意见对文档进行迭代优化。