路径规划之采样搜索算法

采样搜索算法基础

两项基本任务

术语

概率路图算法(Probabilistic Road Map, PRM)

Learning phase

在配置空间中随机撒点,构建一个可以代表环境的连通图

Query phase

通过图搜索算法找到一条从起点通往终点的路径

PRM5

提升效率的方法

Lazy Collision-Checking

快速生成随机树算法(Rapidly-exploring Random Trees, RRT)

RRT以一个初始点作为根节点,通过随机采样增加叶子节点的方式,生成一个随机扩展树,当随机树中的叶子节点包含了目标点或进入了目标区域,便可以在随机树中找到一条由从初始点到目标点的路径。

RRT算法流程

如下图所示:

RRT1

算法效果如下:

rrt1

提高效率的方法

RRT-Connet

在RRT的基础上引入双树拓展环节,即分别以起点和目标点为根节点生成两棵树进行双向拓展。通过一次采样得到一个采样点xrand,然后两棵搜索树同时向采样点xrand方向进行扩展,加快两棵树建立连接的速度。

算法效果如下:

rrt2

RRT*

RRT*算法流程

其算法流程与RRT算法流程基本相同,变化在于在最后将xnew加入到搜索树时,增加一步选择父节点的策略。

在选择父节点时,在以xnew为圆心,半径为r的邻域内,找到与xnew连接后路径代价最小的节点,选择xmin作为xnew的父节点。

示意图如下:

rrt2

算法效果如下:

rrt3

提高效率的方法

Bias Sampling

向目标节点采样

Sample Rejection

g+h>c时,拒绝这个采样点

Branch-and-bound (Tree Pruning)

将无希望的子树直接放弃

Graph Sparsify

按分辨率拒绝采样点

Delay Collision Check

按潜在的代价值对邻居进行排序。按顺序检查碰撞,一旦发现无碰撞的边就停止。

从起点和终点同时生长树

Conditional Rewire

重新布线直到找到第一个解决方案。

Data Re-use

为选择父节点和重新布线存储碰撞检测的结果

RRT#

RRT*的缺陷

over-exploitation

对无希望的节点重新布线

under-exploitation

Informed Sampling

Informed Set

omniscient set

Guided Incremental Local Densification (GuILD)

Local Subsets

LS

如图所示,LSs具有如下特性: