路径规划 | 随机采样算法:PRM、RRT、RRT-Connect、RRT*

基于图搜索的路径规划算法主要用于低维度空间上的路径规划问题,它在这类问题中往往具有较好的完备性,但是需要对环境进行完整的建模工作,在高维度空间中往往会出现维数灾难。为了解决这些问题,本文将介绍基于随机采样的路径规划算法。这类算法适用于高维度空间,它们以概率完备性(当时间接近无限时一定有解)来代替完备性,从而提高搜索效率。

基于随机采样的路径规划算法又分为单查询算法(single-query path planning)以及渐近最优算法(asymptotically optimal path planning),前者只要找到可行路径即可,侧重快速性,后者还会对找到的路径进行逐步优化,慢慢达到最优,侧重最优性。本文介绍的单查询方法为概率路图算法(Probabilistic Road Map, PRM)快速随机扩展树算法(Rapidly-exploring Random Tree, RRT)RRT-Connect算法,渐近最优算法有RRT*算法

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

PRM算法首先使用随机采样的方式在环境中建立路径网络图,将连续的空间转换为离散的空间,然后在路径网络图上进行路径规划,解决在高维空间中搜索效率低的问题。

算法流程如下:

  • 采样:在地图中随机撒点,剔除落在障碍物上的点
    img

  • 生成概率路图:根据点与点间的距离是否存在直线通路将上步中得到的采样点进行连接
    img

  • 搜索路径:使用图搜索算法(如Dijkstra算法)在上步得到的路图中搜索出一条从起点到终点的最短路径
    img

其中采样点的数量采样点间存在通路的最大距离是路径规划成功与否的关键。

采样点太少,可能会导致路径规划失败,下图(a)中不能生成完整的路图,导致规划失败;而通样是300个采样点,图(b)则能生成一个完整的路图
img
采样点数量增加,搜索到的路径会逐渐接近最短路径,但同时搜索效率会降低,如下图:
img
采样点间存在通路的最大距离对规划结果的影响和以上类似:距离太小,会导致规划失败;距离太大,会降低搜索效率。如下图(a),由于设置的最大距离太小,不能生成一张完整的路图,导致规划失败;而图(b)虽然能找到路径,但是生成的路图中存在很多冗余通路。
img
PRM算法参数少、结构简单,能够提高高维空间搜索效率,也能在生成概率路图时添加机器人的运动学约束,使最终生成的路径符合机器人的运动学模型。同时,随机采样得到的概率路图只需要建立一次就可以一直使用,重用性强。但由于采样过程是完全随机的,得到的节点大多数都偏离最终路径,会增加额外的计算量。

快速随机扩展树算法(Rapidly-exploring Random Tree, RRT)

RRT算法是一种单查询(single-query)算法,目标是尽可能快的找到一条从起点到终点的可行路径。它的搜索过程类似于一棵树不断生长、向四周扩散的过程,它以起点作为根节点构建一棵搜索树 T T T
在这里插入图片描述

它的算法流程用伪代码描述如下:


T . i n i t ( x i n i t ) T.init(x_{init}) T.init(xinit)

f o r for for i = 1 , . . . , n i = 1, ..., n i=1,...,n d o do do

x r a n d ← S a m p l e F r e e i x_{rand}←SampleFree_i xrandSampleFreei;

x n e a r ← N e a r e s t ( T , x r a n d ) x_{near}←Nearest(T, x_{rand}) xnearNearest(T,xrand);

x n e w ← S t e e r ( x n e a r , x r a n d ) x_{new}←Steer(x_{near}, x_{rand}) xnewSteer(xnear,xrand);

i f if if O b t a c l e F r e e ( X n e a r , x n e w ) ObtacleFree(X_{near}, x_{new}) ObtacleFree(Xnear,xnew) t h e n then then

T . a d d _ v e r t e x ( x n e w ) T.add\_vertex(x_{new}) T.add_vertex(xnew)

T . a d d _ e d g e ( x n e a r , x n e w ) T.add\_edge(x_{near}, x_{new}) T.add_edge(xnear,xnew)

V ← V ∪ { x n e w } ; E ← E ∪ { x n e a r , x n e w } V←V\cup\{x_{new}\}; E←E\cup\{x_{near}, x_{new}\} VV{xnew};EE{xnear,xnew};

r e t u r n return return G = ( V , E ) G=(V, E) G=(V,E);


其中 x i n i t x_{init} xinit表示起点, T T T表示随机树,在算法开始时,将起点 x i n i t x_{init} xinit加入到随机树。接下来使用 S a m p l e F r e e SampleFree SampleFree函数在自由空间中随机采样,获得一个采样点 x r a n d x_{rand} xrand,再使用 N e a r e s t Nearest Nearest函数获得随机树中距离 x r a n d x_{rand} xrand最近的一个节点 x n e a r x_{near} xnear;使用 S t e e r Steer Steer函数在 x n e a r x_{near} xnear x r a n d x_{rand} xrand的连线上距离 x n e a r x_{near} xnear步长 u u u的位置生成一个节点 x n e w x_{new} xnew,使用 O b t a c l e F r e e ObtacleFree ObtacleFree函数判断 x n e a r x_{near} xnear x n e w x_{new} xnew间是否存在直线通路,若存在则将 x n e w x_{new} xnew加入到随机树 T T T的节点集合中,同时将 x n e a r e s t x_{nearest} xnearest作为 x n e w x_{new} xnew的父节点,将边 ( x n e a r e s t , x n e w ) (x_{nearest}, x_{new}) (xnearest,xnew)加入到随机树 T T T的边集中

扩展流程如图:
img
上述是基础的RRT算法流程,它的采样过程是完全随机的,还可以在采样时以一定的概率直接采样终点作为 x r a n d x_{rand} xrand,加快搜索速度。

RRT作为一种随机采样的规划算法,它的复杂度也不受地图的离散程度影响,在高维空间中仍具有很高的搜索效率。但是前面提到RRT是一种单查询算法,只管尽快地找到可行路径,所以最终路径并不是最优的,甚至会非常“绕”。

RRT-Connect

RRT-Connect在RRT的基础上引入了双树扩展环节,分别以起点和目标点为根节点生成两棵树进行双向扩展,当两棵树建立连接时可认为路径规划成功。通过一次采样得到一个采样点 x r a n d x_{rand} xrand,然后两棵搜索树同时向采样点 x r a n d x_{rand} xrand方向进行扩展,加快两棵树建立连接的速度。相较于单树扩展的RRT算法,RRT-Connect加入了启发式步骤,加快了搜索速度,对于狭窄通道也具有较好的效果。
在这里插入图片描述
但是RRT-Connect和RRT一样,都是单查询算法,最终路径并不是最优的。接下来介绍基于随机采样的渐近最优路径规划算法

RRT*

RRT*算法是一种渐近最优算法。
在这里插入图片描述

算法流程与RRT算法流程基本相同,不同之处就在于最后加入将 X n e w X_{new} Xnew加入搜索树 T T T父节点的选择策略

RRT*算法在选择父节点时会有一个**重连(Rewire)**过程,也就是在以 X n e w X_{new} Xnew为圆心、半径为 r r r的邻域内,找到与 X n e w X_{new} Xnew连接后路径代价(从起点移动到 X n e w X_{new} Xnew的路径长度)最小的节点 X m i n X_{min} Xmin,并重新选择 X m i n X_{min} Xmin作为 X n e w X_{new} Xnew的父节点,而不是 X n e a r X_{near} Xnear。重连过程的示意图如下:
img

参考

Lavalle S M . Rapidly-Exploring Random Trees: A New Tool for Path Planning[J]. Research Report, 1999.
Jr J , Lavalle S M . RRT-Connect: An Efficient Approach to Single-Query Path Planning[C]// Proceedings of the 2000 IEEE International Conference on Robotics and Automation, ICRA 2000, April 24-28, 2000, San Francisco, CA, USA. IEEE, 2000.
Karaman S , Frazzoli E . Sampling-based Algorithms for Optimal Motion Planning[J]. The International Journal of Robotics Research, 2011, 30(7):846-894.

  • 12
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值