一、引言
目前为系统添加了局部路径规划模块,结合之前做的视觉激光雷达信息融合模块,系统需要进一步对避障部分进行处理。
局部路径规划总的来说是在全局路径规划模块下,结合避障信息重新生成局部路径的模块,上层的全局路径规划确定了A到B的一个全局路径,不过轨迹跟踪模块(比如 pure persuit)实际进行跟踪的不能是这个直接生成的全局路径,因为系统实际工作可能会有其他情况发生,轨迹跟踪模块实际跟踪的是结合障碍物信息的局部路径。
局部路径规划算法有好多种,例如人工势场法,动态窗口法等,
这里要介绍的是DARPA比赛中斯坦福大学Stanley自动驾驶系统所使用局部路径规划算法,是一种基于采样的局部路径规划算法,该算法在autoware的op_planner模块也有使用,本文主要是基于autoware的op_planner模块进行介绍。
整体来看op_planner的local_planner主要分为两部分:Rollouts Generator 和 Rollouts Evaluator,前者根据全局中心路径生成一系列平滑的候选局部路径,后者结合障碍物信息和其他因素计算各个Rollout的代价Cost,从而选出最终平滑的,无障碍的局部路径。
Rollouts 的含义就是根据中心全局路径生成的一些列候选局部路径。如下图所示:
中间的绿线是全局路径规划模块生成的全局路径,棕色线是生成的一系列候选局部路径。
在有障碍物存在的情况下,经过计算每个rollout的代价Cost,选出最优的路径如下所示:
其中,白线就是评估后得到的最优的局部路径。
下面针对local_planner的两个主要部分的算法Rollouts Generator 和 Rollouts Evaluator进行简要分析,相关代码已经同步到我的github,位于planning/local_planner
https://github.com/sunmiaozju/smartcargithub.com参考论文: Open Source Integrated Planner for Autonomous Navigation in Highly Dynamic Environments
完整的论文地址