【运动规划】RRT快速搜索随机树 Rapidly Exploring Random Tree


Randomized Kinodynamic Planning

Steven M. LaValle
James J. Kuffner, Jr.



1. Exploring the State Space – 构造随机搜索树

即不断在整个状态空间随机产生状态点 x r a n d x_{rand} xrand,在已生成的树上找到其最近邻 x n e a r x_{near} xnear,向其施加控制 u n e w u_{new} unew,产生一个由当前搜索树向 x r a n d x_{rand} xrand靠近的状态点 x n e w x_{new} xnew,并把 x n e w x_{new} xnew加入搜索树中,循环往复。
在这里插入图片描述
由当前搜索树向随机点靠近的过程称为扩展(EXTEND),这个过程会隐式地进行碰撞检测,保证 x n e w x_{new} xnew不会发生碰撞(即作者提到的满足全局约束–Global Constraints)。

扩展有三种结果:
Reached:到达 x r a n d x_{rand} xrand
Advanced:未到达 x r a n d x_{rand} xrand但还在向其靠近
Trapped:无法再向 x r a n d x_{rand} xrand靠近,其示意图如下

在这里插入图片描述

作者提出,这样产生的搜索树可以迅速地搜索到整个状态空间(Exploring the State Space)

在这里插入图片描述

2. Bidirectional Planning Algorithm – 向指定目标寻径

上述构建搜索树的过程可以看做广度搜索,向整个状态空间蔓延。当由起点向一个具体的目标寻径时,使用“双向”的想法,由起点和目标点每次向随机产生的同一个 x r a n d x_{rand} xrand扩展,一旦一方到达且另一方未Trapped,则认为寻径成功,并将其返回。

在这里插入图片描述
在这里插入图片描述
上述双向连结搜索树的缺陷:会出现两段路径不连续的情况。

论文后半部分给出了不同自由度和维度的场景应用RRT进行规划的结果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


3. 一点补充

一开始我对RRT的一个疑惑是,既然每次都能定向地向环境中随机生成的点扩展,为什么不干脆每次都定向地向目标点扩展,这样不是更快地就能到达目标点吗?

向了解RRT的朋友请教后思考了一下,我的理解是这样的:

如果每一次都定向地向目标扩展,那么实际上算法生成规划路径的唯一标准是:离目标越近越好。那么这样一个单一的标准是否能满足我们的规划需求呢?

想象如下情况,机器人处在一个U形障碍物内部,目标点位置如图:
在这里插入图片描述
如果按上述标准规划,那么机器人一定会往前走直到被挡住,且很有可能因为其“只想无限接近目标”而在前面那堵墙附近一直震荡。

可以发现,在类似的情况中,仅考虑离目标的距离,是无法得到我们预期的规划结果的,相反可能限制自身而出现上述震荡情况。

那么,随机搜索的目的就在于规避这种情况的发生,当被挡住了前路,不至于一直震荡,而会随机向其他方向走。就像当一个人朝着目标走,前方被挡住了,他不至于死脑筋地还是一直在这堵墙前面徘徊,而会随意地向其他方向走一走,试试能不能“绕路”抵达目标。

当然,随机化本身也增加了一些不必要的“绕路”成本,这是为了平衡单一目标导向所产生的弊端所必然带来的。

※进一步地

后面提出的双向连结随机树,甚至扩展时一定程度上加入目标导向(一定概率下把目标点作为生成的随机点),都可以让算法加速搜索到目标。




最后放一篇看到的很详细的介绍RRT搜索的文章
https://www.cnblogs.com/21207-iHome/p/7210543.html

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值