基础路线二:规划子系统与框架
规划子系统分为三层设计:任务规划(Mission planning),行为规划(Behavioral planning)和动作规划(Motion planning)。其中,任务规划也可称之为路径规划或者路由规划(Route planning), 负责全局的路由寻径,如起点到终点的路径选择;行为规划也可称之为行为决策(Decision),负责根据结合全局路径信息、当前交通信息和障碍物等情况,给运动规划模块输入一系列的决策信息,如在十字路口通行优先级、交通堵塞处理、车辆汇流合理判断问题等;动作规划接收行为规划信息,生成一系列的动作以达到某种目的,如安全规避障碍物、准确进入停车位。
2.1 任务规划
根据道路网络定义文件(RNDF)中提供的数据来创建道路编码图形,对环境中的航路连通性进行描述,主要包括道路与道路之间的连接情况、通行规则以及道路的路宽等信息。任务规划器根据路网信息,计算每条道路的cost,生成车辆可行驶的路径。当然,在车辆动态行驶过程中,车辆会检测道路堵塞(blockage)等情况,添加新的观测数据进行路网图更新。任务规划器也会根据实时的路网信息进行可行驶路径规划。主要处理步骤为:
1. 根据路网信息,计算每条道路的cost,以进行任务规划;
2. 车辆实时检测阻塞或者根据静态障碍地图,进行路网信息更新;
3. 在阻塞前后进行U形转弯操作,将U形转弯赋予较低的cost,将通过阻塞赋予较高的cost;
4. 检测阻塞算法中漏过的一些障碍物,添加虚拟阻塞;
5. 道路信息是变化的,车辆会重新再次访问(Revisit)原来到过的地方,并通过指数型cost更新函数进行降低通过阻塞的cost。
2.2 行为规划
行为规划负责执行任务规划生成的路线,基于三种主要驾驶环境进行相应驾驶行为。三个环境分别是:道路(road)、交叉路口(intersection)和区域(zone)。
它们的相应驾驶行为分别是进行车道行驶,交叉路口处理和实现区域姿态处理(停车等)。
State estimator:将车辆的位置与世界模型结合起来,使用RNDF生成车辆位置。
Goal selector:使用状态估算器报告的当前逻辑位置来生成下一系列本地目标,以供运动计划者执行;这些将是道路目标或区域目标。
Lane selector: 使用周围的交通状况来确定最佳车道随时进入,并在可行时执行合并到该车道的操作。
Merge planner: 确定lane selector建议的车道的可行性。
Current scene reporter:将已知车辆和离散障碍物的列表提炼为几个离散数据元素,最值得注意的是当前车道中距Boss前方最近车辆的距离和速度。
Distance keeper: 利用周围的交通状况来确定必要的车道内车辆安全距离,并据此控制车辆的速度。
Vehicle driver: 将Distance keeper和Lane selector的输出与其自己的内部规则结合起来,以生成所谓的“运动参数”消息,可控制诸如速度,加速度和所需跟踪车道之类的细节。
Precedence estimator:使用已知的其他车辆列表及其状态信息来确定交叉路口的优先级。
Pan-head planner:传感器获取相关的信息,以进行交叉路口优先决策。
Transition manager:管理行为规划和运动规划之间的离散目标序列,确定何时传输到下一个目标序列。
场景:两车道汇流
主要判断指标包括:自车车道是否满足merge过去的空间;目标车道各障碍物前后以及障碍物之间是否满足自车merge过来后需要的空间;自车与merge目标点前后障碍物车的速度、加速度等指标是否合理。根据以上指标在目标车道挑选最好的merge目标点。