一、概述
SpeedDecider 是lanefollow 场景下,Apollo Planning算法所调用的第13 个 task,属于task中的decider 类别它的作用主要是:
- 1、对每个目标进行遍历,分别对每个目标进行决策
- 2、或得mutable_obstacle->path_st_boundary()
- 3、根据障碍物st_boundary的时间与位置的分布,判断是否要忽略
- 4、对于虚拟目标 Virtual obstacle,如果不在referenceline的车道上,则跳过
- 5、如果是行人则决策结果置为stop
- 6、SpeedDecider::GetSTLocation() 获取障碍物在st图上与自车路径的位置关系
- 7、根据不同的STLocation,来对障碍物进行决策
- 8、如果没有纵向决策结果,则置位ignore_decision;
本文主要介绍Apollo Planning决策规划算法中纵向决策器SpeedDecider的运行流程。
二、SpeedDecider的具体逻辑如下:
1、PublicRoadPlanner 的 LaneFollowStage 配置了以下几个task 来实现具体的规划逻辑,SpeedDecider 是第13个task:
scenario_type: LANE_FOLLOW
stage_type: