本文主要介绍基于RRT快速搜索随机树的路径规划算法及其改进,主要参考以下论文:
- 1.1998 Rapidly-exploring random trees: A new tool for path planning
- 2.IEEE2000 RRT-connect: An efficient approach to single-query path planning
- 3.Adaptive tuning of the sampling domain for dynamic-domain RRTs
我们引入了快速搜索随机树(RRT
)的概念,作为一种随机数据结构,它被设计用于广泛的路径规划问题。尽管它们拥有现有随机规划技术的许多有益特性,但RRTs
是专门设计来处理非完整约束(包括动力学)和高自由度的。RRT
是通过应用控制输入来迭代扩展的,这些控制输入将系统略微推向随机选择的点,而不是像概率路线图方法那样要求点对点收敛。讨论了rrt
的几个理想属性和一个基本实现。到目前为止,我们已经成功地将RRTs
应用于完整、非完整和运动学规划问题,最多可达12个自由度。
在过去的十年中,已经提出了几种随机化方法,并成功地应用于高维构型空间中的路径规划问题。比较流行的两种方法包括随机化势场算法和概率路线图算法。
在本文中,我们引入了一种用于路径规划的随机数据结构,该结构设计用于具有非完整约束的问题。这导致了快速探索随机树(RRT
)的引入,它在第2节中定义。RRT
包含一些与概率路线图相同的理想属性。这两种设计都带有较少的启发式和随意性参数尽可能多。这往往会导致更好的性能分析和行为的一致性。它还促进了方法对相关应用程序的适应。RRTs
的独特优势是可以直接应用于非完整和运动学规划。这种优势源于这样一个事实,即rrt
不需要在对配置(或状态)之间建立任何连接,而概率路线图通常需要成千上万个连接。如前所述,对于完整路径规划来说,rrt
可能比基本的概率路线图更有效。
快速搜索随机树
:Rapidly-Exploring Random Trees
路径规划通常被视为在度量空间X中搜索从初始状态T到目标区域X 或目标状态E的连续路径。
将二维场景中的随机树搜索过程总结如下图所示:
本节介绍了rrt
的几个特性,这些特性使它们非常适合于各种各样的实际规划问题。RRT的主要优点是:
上面的每个例子都显示了在二维环境中运动的二维刚体。显示了RRT到平面的投影,以及机器人的计算路径。在左上角,一个紧约束的三维完整规划问题的解决方案显示。右上方显示的是只允许向前移动和不同程度右转的汽车的RRT。左下显示了在杂乱环境中不可控汽车的计算解。这辆车只能在三个不同的增量中向前移动和向左转弯(它甚至不能直线移动)。图1显示了汽车5自由度动力学模型的RRT和计算轨迹。上图右下部分显示了在杂乱环境中相同模型的解决方案路径。目前的实施忽略了许多效率问题;然而,到目前为止,计算性能是令人鼓舞的。
RRT-Connect
:一种有效的单查询路径规划方法
提出了一种简单而有效的求解高维配置空间单查询路径规划问题的随机算法。该方法的工作原理是逐步构建两个快速探索的随机树(RRTs)。这些树都探索周围的空间,并通过使用简单的贪婪启发式向彼此推进。虽然该算法最初设计为计划人体手臂的运动(建模为7-DOF运动链),用于无碰撞抓取和操作任务的自动图形动画,但该算法已成功应用于各种路径规划问题。计算示例包括在2D和3D工作空间中为刚性物体生成无碰撞运动,以及在3D工作空间中为6-DOF的PUMA臂生成的无碰撞操作运动。并进行了一些基本的理论分析。
rrt
作为一个简单的采样方案和数据结构,从而可靠地导致对配置空间的快速和统一的探索。RRT-Connect
最初是为7-DOF人体手臂规划无碰撞运动,用于交互式3D虚拟环境[中动画角色的抓取和操作任务的自动动画,然而,它也被发现是对各种路径规划问题的高效和可靠的。再谈RRT:作为一种有效的数据结构和采样方案,可以快速搜索具有代数约束(障碍)和微分约束(非整体和动力学)的高维空间。关键的思想是使探索偏向于空间中未被探索的部分。
基本的RRT
构造算法如图2所示。每个步骤中执行的一个简单迭代,都试图通过添加一个由随机选择的配置有偏差的新顶点来扩展RRT
。扩展函数,如图3所示,选择RRT
中已经到给定样本配置最近的顶点q
。函数NEW-CONFIG
以一些固定的增量距离向 q
移动 ϵ\epsilonϵ,并测试碰撞。这可以使用增量距离计算算法快速执行(“几乎恒定的时间”)。可以发生三种情况:
q_new != q
被添加到RRT;图4的顶部一行显示了一个在二维正方形空间中构建的RRT。
RRT
-连接规划器是专门为不涉及微分约束的路径规划问题而设计的。在这种情况下,对增量运动的需要就不那么重要了。该方法基于两个想法:连接启发式,试图移动到更长的距离,和RRTs
的增长:由起点到终点。q
或一个障碍。(扩展:先随机生成一点,然后插值后判断路径有无碰撞,循环往复;迭代:以一个设定的步进朝一个方向不断迭代,直至发生碰撞则改变方向,可以看作扩展的结果极速版) 进行了各种更具挑战性的实验。图8描述了一架三角钢琴(超过4500个三角形)从一个房间在墙壁和低障碍物中从一个房间移动到另一个房间的三维模型的计算解决方案。为了解决这个查询,钢琴需要进行几个棘手的旋转。平均计算时间为12.5秒(100次试验)。
对一个6-DOF Puma工业机械臂模型进行了操纵规划实验。结合逆运动学算法,RRTConnect规划器通过计算高级运动请求的三个运动,促进了任务级控制机制来规划操作运动: 1)移动手臂以抓住物体;2)将物体移动到目标位置;3)释放物体,将手臂返回到静止位置。图9显示了将书籍从中间书架移动到桌子底部书架的路径的几个快照。其中3个查询平均在4秒内得到解决。
Adaptive Tuning of the Sampling Domain for Dynamic-Domain RRTs∗
:动态域RRTs∗的采样域的自适应调整
最近,一种名为动态域RRT的新规划器已经被开发出来的[28],它在许多运动规划问题上显著优于其他现有的基于RRT的规划器。规划器的抽样方案考虑了配置空间的障碍,使其沃罗诺伊偏差。这有助于显著减少为了找到解决方案路径所需的迭代次数。因此,对于复杂的几何图形问题,可以更快地解决一个数量级。
最初,动态域rrt
被提出有一个额外的参数,它对应于采样域的大小。该算法的性能依赖于对每个特定的运动规划问题对该参数的仔细调整,这使得该方法与原始的rrt相比更难使用。在本文中,我们提出了一个改进版本的动态域RRT,它可以自动调整输入参数,从而产生更鲁棒的性能。我们在各种经典的运动规划问题上评估了所提出的方法。
RRTs的探索是由树中节点的Voronoi(多边形)图
决定的。选择一个节点进行扩展的概率与其沃罗诺伊区域的体积成正比。因此,rrt倾向于在构型空间的未探索区域快速增长。注意,该算法的固有特性不需要显式的Voronoi图的计算。
依赖于提前配置空间边界,采样域是由构型空间的边界来定义的。由于规划器的行为依赖于边界节点的Voronoi区域,因此它也取决于这些边界的特定设置。如果这些边界的选择不适合于一个给定的运动规划问题,那么规划器的效率就会受到极大的影响。
虽然在这些可见的Voronoi区域上的均匀分布(图2 b)可以理想地规避经典rrt的偏差问题(图2 a),但它的计算是一个非常困难的问题。因此提出了另一种分布,它保留了可见性分布的良好特性,但计算效率更高(图2 c)。
边界节点v的可见Voronoi区域近似于其边界域,该边界域定义为v的Voronoi区域与以v为中心的n维球的交点。那么一组点的半径R的动态域是边界点与所有其他点的Voronoi区域相结合的边界域。在这个域上的均匀分布称为动态域分布。
动态域半径的影响
下面,我们建议在搜索过程中独立地调整每个节点的半径。这种适应有两个主要优势。首先,它可以帮助自动平衡分配给探索和细化的权重。其次,它允许局部区分规划者的行为,从而更好地使其适应自由空间的形状。
DD-RRT
算法的伪代码如图6所示。一旦其中一个节点的扩展失败,该节点就成为边界节点。然后将其半径初始化为一个给定的值。然后,每次选择节点进行扩展时,将根据扩展尝试的成功或失败情况修改其关联半径。如果尝试成功,然后导致在树中创建一个新的节点,那么半径值将增加一个给定的百分比α(算法的第10行)。相反,如果展开失败,半径值将降低相同的比例(算法的第17行)。这里不具体写了,放一些效果吧,如有需求可以详见论文: