【自动驾驶决策规划】RRT算法

1 基于采样的路径规划方法

路径搜索常用方式之一是基于网格的的方法(grid-based method),如A*算法,但基于网格的方法复杂度较高,与求解空间的维度相关,且得到的路径比较僵硬,对于车辆或移动机器人来说都不是很友好。

另外一种路径规划是基于采样的方法(sampling method),包括以下模块:

  • 随机或确定性选择函数,在采样空间确定点
  • 采样评估函数,来选择合适采样点
  • 距离函数,确定待扩展点与当前之间的距离

这些模块可以构建出图或树结构来探索可行域内的可行轨迹。采样方法不是以最优为目的,只能得到近似最优解,好处是在解空间内探索效率较高,能快速得到满足要求的可行解

典型的基于采样的方法包括RRTs(Rapidly Exploring Random Trees)和PRMs(Probabilistic roadmaps),RRT更适合为单体轨迹规划提供有效的轨迹,PRM更适合为多体轨迹规划提供路线图(roadmap graph)

2 RRT过程

RRT算法是基于给定的初始状态 X s t a r t X_{start} Xstart和目标状态 X g o a l X_{goal} Xgoal探索出无碰撞的路径。RRT适用于静态和动态约束的环境,轨迹点的拓展可以满足特定的运动学约束。RRT生成单树的一般过程如下所示。

【自动驾驶决策规划】RRT算法_第1张图片

3 RRT一些细节

  • RRT算法本质上是一种随机采样方法,从起始点开始向空间发散式探索,直至新探索点到达目标状态集合
  • RRT探索过程是以最近点到随机采样点的方向来运动一小步长,即为搜索树生成的过程
  • RRT探索过程比较重要的是距离公式,一般用欧氏距离,关键参数是探索步长,步长过小,迭代探索效率低,太大可能无法绕过障碍
  • RRT随机采样过程可以是均匀采样,也可以是有倾向性地重点采样某些区域(如果有先验支持的话)

【自动驾驶决策规划】RRT算法_第2张图片

4 RRT的变种算法

  • 双边RRT:从初始状态 X s t a r t X_{start} Xstart和目标状态 X g o a l X_{goal} Xgoal各自分别生成搜索树,直至两棵树“相遇”。好处是搜索效率大大提升,而且能够到达目标状态 X g o a l X_{goal} Xgoal,难点是需要对于两棵树的“相遇”进行额外的局部优化
  • RRT*:传统的RRT模型扩展点的时候是找寻搜索树中距离最近的点,而这里的做法是考虑搜索树中距离较近的多个点作为临近点,而以初始状态出发到达各个临近点的距离为cost,选择cost最小的临近点来扩展。这样做的好处是:可以尽可能让找寻到的路径更小。下图左边是RRT,右边是RRT*
    【自动驾驶决策规划】RRT算法_第3张图片

你可能感兴趣的:(自动驾驶,自动驾驶,人工智能,机器学习)