对Rapidly-exploring Random Trees(RRT)路径规划方法的理解

RRT与PRM一样,也是概率完备且不最优的。概率完备是指只要解存在就一定能在某一时刻找到。但解不一定是最优的。RRT与PRM相比,有一个优势就是,它在构建图的过程中就在寻找路径。

RRT的主要算法流程

对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第1张图片

这份基于matlab的代码很好的展示了RRT的算法流程

RRT的优劣分析

优势:

  • 相对于PRM更具有目标导向,它在构建图的过程中就在寻找路径。
  • 无需对系统进行建模,无需对搜索区域进行几何划分,在搜索空间的覆盖率高,搜索的范围广,可以尽可能的探索未知区域。

劣势:

  • RRT得到的路径往往不是最优的。有比较大的优化空间。
  • RRT是在整个地图空间中随机采样点,这样全范围的采样往往效率不高。可以考虑启发式的采样,让采样的点更具有目标导向。
  • 在狭窄的通道里不易获得采样点。所以有时无法通过狭窄通道。

在RRT上的改进

Bidirectional-RRT/RRT-Connect

算法流程:
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第2张图片
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第3张图片

关于双向RRT的介绍来源于:https://www.cnblogs.com/21207-iHome/p/7210543.html

RRT*

RRT* 完全继承了RRT的特性,并在其基础上扩展了两个新的特性。正是由于新特性的加入,RRT* 可以生成更优的路径。同时由于算法步骤的增加和collision check的增加,计算消耗也增加了。
下面是RRT* 的算法流程:
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第4张图片
其实整个RRT* 算法可以分为三个大的部分。第一部分是继承至RRT的。这一部分和RRT是一样的,就是寻找到 z n e w z_{new} znew z n e a r e s t z_{nearest} znearest。这一过程就是伪代码中的4,5,6步骤。
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第5张图片

near neighbor search
在这一步骤中,我们要为新得到的 z n e w z_{new} znew找一个合适的父节点。思路是,以 z n e w z_{new} znew为圆心,以固定的半径 r r r画圆。落在该圆范围内的节点就是 z n e w z_{new} znew潜在的父节点。我们将 z n e w z_{new} znew与每个邻近的节点相连(如下图节点 a a a b b b),计算 z n e w z_{new} znew通过哪个邻近节点到达 z i n i t z_{init} zinit的cost最小。注意,这里的cost一般是指路径长度。

最终我们会发现, z n e w z_{new} znew通过 z n e a r e s t z_{nearest} znearest到达 z i n i t z_{init} zinit路径最短。这时 z n e a r e s t z_{nearest} znearest就会设置成 z n e w z_{new} znew的父节点。

rewiring tree operations
到这一步时, z n e w z_{new} znew已经和 z n e a r e s t z_{nearest} znearest建立了连接,形成了一条新的边。这时我们要考虑a节点和b节点通过 z n e w z_{new} znew到达 z i n i t z_{init} zinit路径会短一点吗?从我画的图直观来看a节点和b节点原来的连接似乎使得路径更短。所以可以保留其原来的连接,不进行更改。

为了说明这一步骤的功能,我们做一个假设。我认为b节点通过 z n e w z_{new} znew到达 z i n i t z_{init} zinit路径会短一点,即红色路径比黑色路径短。这时会发生什么? a节点和b节点间的连接会断开,b节点会将自己的父节点改为 z n e w z_{new} znew

通过不断迭代上述步骤,RRT*会逐渐生成越来越短的路径。

RRT algorithm illustrative example

https://blog.csdn.net/ljq31446/article/details/78867011

A Comparison of RRT, RRT* and RRT*-Smart Path Planning Algorithms

Informed RRT*

在寻找到第一条可行的路径前,Informed RRT* 所做的工作与RRT* 是一样的。不同之处在于,Informed RRT* 使用初始路径的长度来画一个以起始点和终止点为焦点的椭圆。
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第6张图片
随着迭代的进行,路径会越来越短。椭圆的面积也越来越小。因为采样点的区域被限定了,采样效率更高。收敛到最优路径花的时间也更少。
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第7张图片

下图是RRT* 和Informed RRT* 的效果图。可以看到Informed RRT* 只在限定的椭圆内优化路径。当路径优化到相同的cost时,RRT* 比Informed RRT* 多花了8倍多的时间。
对Rapidly-exploring Random Trees(RRT)路径规划方法的理解_第8张图片

informed

论文:
Informed RRT*: Optimal sampling-based path planning focused via direct sampling of an admissible ell

你可能感兴趣的:(运动规划,RRT,Motion,planning)