2021-11-06 ompl运动规划库的规划算法

OMPL是一个开源的运动规划库,提供多种几何和控制规划器。其中包括多查询和单查询规划器,如PRM、RRT及其变体。这些算法考虑系统的几何、运动学和动态约束,有的保证最优性,有的则提供近似最优解。优化规划器如RRT*和PRM*使用一般成本框架,允许在不同标准下优化路径。此外,还有针对具有差分约束的系统设计的控制规划器。OMPL会根据问题的特性自动选择合适的规划器。

官网介绍available planners

如何实现新的运动规划算法

机翻:

几何规划器

此类别中的规划器仅考虑系统的几何和运动学约束。假设任何可行的路径都可以变成动态可行的轨迹。这些规划器中的任何一个都可用于具有几何约束的规划。此类别中的规划师可以分为几个重叠的子类别:

多查询规划器

这些规划器构建可用于多个查询的整个环境的路线图。

概率路线图方法 (PRM)

这是基于采样的算法。我们的实现使用一个线程来构建路线图,而第二个线程检查路线图中是否存在开始和目标状态之间的路径。OMPL 包含许多 PRM 变体:
LazyPRM
此规划器类似于常规 PRM,但“懒惰”地检查顶点或边的有效性,即仅当它是候选解决方案路径的一部分时。
PRM*
虽然常规 PRM 尝试将状态连接到固定数量的邻居,但 PRM* 会随着路线图的增长逐渐增加连接尝试的次数,以提供收敛到最佳路径的方式。
LazyPRM*
具有惰性状态有效性检查的 PRM* 版本。

SParse Roadmap Spanner algorithm (SPARS)

SPARS 是一种规划器,它提供渐近近最优(一种在最优解的常数因子内的解)并包括一个有意义的停止标准。虽然(因为?)它不能保证最优性,但它的收敛速度往往比 PRM* 高得多。

SPARS2

SPARS2 是 SPARS 算法的变体,它通过类似的机制工作,但使用不同的方法来识别接口并计算通过所述接口的最短路径。

单查询规划器

这些规划器通常会生成由有效运动连接的状态树。这些规划器的不同之处在于它们用于控制树扩展的位置和方式的启发式方法。一些基于树的计划者种植两棵树:一棵从一开始,一棵从目标开始。这样的规划器将尝试将起始树中的一个状态与目标树中的另一个状态连接起来。

快速探索随机树 (RRT)

这是最早的单一查询规划器之一。该算法易于理解且易于实现。已经提出了许多 RRT 的变体。OMPL 包含几个 RRT 变体:
RRT Connect (RRTConnect)
这个规划器是 RRT 的双向版本(即,它长出两棵树)。它通常优于原始 RRT 算法。
RRT* RRT
的渐近最优版本:算法收敛于作为时间函数的最优路径。这是第一个可证明的渐近规划器(与 PRM 一起)。自发布以来,出现了其他几种提高 RRT* 收敛速度的算法,例如RRT#和RRTX。
下界树 RRT (LBTRRT)
LBTRRT 是RRT的渐近接近最优版本:保证收敛到最优解的常数因子内的解。
稀疏稳定 RRT
SST 是RRT的渐近接近最优的增量版本。
基于转换的 RRT (T-RRT)
T-RRT 不提供任何硬性最优保证,而是试图找到短的、低成本的路径。
Vector Field RRT
VF-RRT 是一种基于树的运动规划器,它试图最小化所谓的路径上游成本。上游成本由用户定义的向量场上的积分定义。
并行 RRT (pRRT)
已经为基于采样的规划器提出了许多不同的并行化方案,包括 RRT。在这个实现中,多个线程同时向同一棵树添加状态。一旦找到解决方案,所有线程都会终止。
Lazy RRT (LazyRRT)
这个规划器执行惰性状态有效性检查(类似于 LazyPRM)。它不是实验性的,但根据我们的经验,它似乎在任何类别的问题上都没有明显优于其他规划者。
任务空间 RRT (TSRRT)
TSRRT 是 RRT 的变体,其中探索由任务空间引导。它需要一个ompl::geometric::TaskSpaceConfig实例,该实例定义如何将配置空间状态投影到任务空间以及将任务空间状态提升到配置空间的逆操作。

扩展空间树 (EST)

该规划器与 RRT 大约同时发布。根据我们的经验,拥有一个好的距离度量并不那么敏感,这对于复杂的高维状态空间来说可能很难定义。EST实际上有三个版本:接近第一次发布的原始版本、双向版本和基于投影的版本。低维投影用于跟踪状态空间是如何被探索的。大多数时候 OMPL 可以自动确定合理的投影。我们已经实施了一些规划器,它们不一定是 EST 的简单变体,但确实共享相同的扩展策略:
单查询双向延迟碰撞检查规划器 (SBL)
该规划器本质上是具有延迟状态有效性检查的 EST 的双向版本。
并行单查询双向延迟碰撞检查规划器 (pSBL)
该规划器在 SBL 中用多个线程并行生长两棵树。

内部-外部单元探索 (KPIECE) 的运动学规划

KPIECE 是一种基于树的规划器,它使用离散化(通常是多级)来指导(连续)状态空间的探索。OMPL 的实现是一种简化的实现,使用单一级别的离散化:一个网格。网格被强加在状态空间的投影上。在探索空间时,优先考虑到目前为止已经探索过的网格部分的边界。边界被定义为在n维投影空间中具有少于 2 n 个非对角非空相邻网格单元的网格单元集。KPIECE 有两种变体:
Bi-directional KPIECE (BKPIECE)
Lazy Bi-directional KPIECE (LBKPIECE)

具有分辨率独立密度估计 (STRIDE) 的搜索树

该规划器的灵感来自 EST。STRIDE 不使用投影,而是使用几何近邻访问树直接在状态空间中估计采样密度。STRIDE 对于高维系统很有用,在这些系统中,自由空间无法通过低维(线性)投影轻松捕获。

路径定向细分树 (PDST)

PDST 是一种规划器,它完全消除了对距离度量的依赖,这在难以定义良好距离度量的情况下非常有用。PDST 维护一个二元空间分区,以便运动完全包含在分区的一个单元格内。每个单元格的运动密度用于指导树的扩展。

快速行进树算法 (FMT*)

FMT* 算法对一组概率绘制的样本执行“惰性”动态规划递归,以生成路径树,该路径树在到达成本空间中向外移动。与所有其他规划器不同,需要事先选择有效样本的数量。

双向快速行进树算法 (BFMT*)

执行两棵 FMT* 树,一棵从一开始,另一棵从目标开始,从而在探索更少空间时产生更快的规划器。

商空间 RRT (QRRT) RRT

的概括,用于规划不同的抽象级别。抽象级别由商空间表示,并且 QRRT 在每个商空间上顺序和同时地生长随机树。有大量的指南、教程和演示形式的文档。

优化规划器

近年来,已经提出了几种基于采样的规划算法,它们仍然提供一些最优性保证。通常,最优解被假定为最短路径。在 OMPL 中,我们有一个更通用的框架来表达状态和路径的成本,允许您例如最大化沿路径的最小间隙、最小化机械功或一些任意用户定义的优化标准。有关详细信息,请参阅最佳规划。下面的一些规划器使用这个通用成本框架,但请记住,在优化路径长度以外的其他内容时,不能保证收敛到最优。
PRM* PRM
的渐近最优版本;使用一般成本框架。
LazyPRM*
PRM* 的惰性版本;使用一般成本框架。
RRT* RRT
的渐近最优版本;使用一般成本框架。
RRT#
具有改进收敛速度的 RRT* 变体。它使用一般成本框架。
RRTX
具有改进收敛速度的 RRT* 变体。它使用一般成本框架。
Informed RRT* RRT* 的
一种变体,它使用启发式方法来限制对最佳解决方案的搜索。它使用一般成本框架。
Batch Informed Trees (BIT*)
一种随时渐近最优算法,它使用启发式对最优解的搜索进行排序和限制。它使用一般成本框架。
高级 BIT* (ABIT*)
BIT* 的扩展,它使用高级图搜索技术更快地找到初始解决方案。它使用一般成本框架。
自适应知情树 (AIT*)
一种随时渐近优化的算法,可同时估计和利用特定于问题的启发式算法。它使用一般成本框架。
下界树 RRT (LBTRRT)
一种渐近接近最优的 RRT 版本。
稀疏稳定 RRT
SST 是RRT的渐近接近最优的增量版本。
基于转换的 RRT (T-RRT)
T-RRT 不提供任何硬性最优性保证,而是尝试寻找短的、低成本的路径。它使用一般成本框架。
SPARS
基于路线图的渐近近乎最优的规划器。
SPARS2
基于路线图的渐近近乎最优的规划器。
FMT*
一种渐近最优的基于树的规划器。
CForest
一个元规划器,它在不同的线程中运行多个渐近最优规划器的实例。当一个线程找到更好的解决方案路径时,路径上的状态会传递给其他线程。
AnytimePathShortening (APS)
APS 是围绕一个或多个几何运动规划器的通用包装器,可重复将快捷方式和混合应用于一组解决方案路径。可以指定任意数量和组合的规划器,每个都在单独的线程中运行。

OMPL 如何选择几何规划器

如果您使用ompl::geometric::SimpleSetup类(强烈推荐)来定义和解决您的运动规划问题,那么 OMPL 将自动选择一个合适的规划器(除非您已明确指定)。如果状态空间具有默认投影(如果您使用任何内置状态空间,情况就会如此),那么如果可以使用双向规划器,它将使用LBKPIECE,否则它将使用KPIECE。这些规划器已被证明可以在许多现实世界的运动规划问题中始终如一地工作,这就是为什么这些规划器是默认选择的原因。如果状态空间没有默认投影,RRTConnect或常规RRT将使用,取决于是否可以使用双向规划器。目标的概念在 OMPL 中非常普遍:甚至可能无法对满足目标的状态进行采样,在这种情况下,OMPL 无法在目标状态下生成第二棵树。
可行性和最优
性 可行和最优规划器之间的界限在实践中并不是那么黑白分明。可以使用适当的ompl::base::PlannerTerminationCondition模糊它们之间的界限。例如,ompl::base::exactSolnPlannerTerminationCondition函数返回一个终止条件,一旦找到第一个解决方案,就会导致优化规划器终止。作为另一示例,使用ompl ::基:: CostConvergenceTerminationCondition与参数solutionsWindow=10和epsilon=1,导致优化规划器何时终止恰好已发现10级的解决方案。您可以使用ompl::base::plannerOrTerminationCondition和ompl::base::plannerAndTerminationCondition结合规划器终止条件(例如,“当找到 10 个解决方案或超过 10 秒的时间限制时终止”)。有关详细信息,请参阅Planner 终止条件。

其他工具:

爬山
基因搜索

控制规划器

如果所考虑的系统受到差分约束,则使用基于控制的规划器。这些规划器依靠状态传播而不是简单的插值来生成运动。这些规划器不需要转向功能,但如果用户实现它,所有规划器(KPIECE 除外)都会使用它。下面的前两个规划器是上述相应几何规划器的动动力学适应。
快速探索随机树 (RRT)
稀疏稳定 RRT
SST 是RRT的渐近接近最优的增量版本。
膨胀空间树 (EST)
由内-外细胞探索 (KPIECE) 进行的运动动力学规划 顾名思义
,KPIECE 基于控制的版本首先出现,几何版本是从它派生出来的。
路径定向细分树 (PDST)
基于控件的 PDST 版本实际上出现在几何版本之前。鉴于基于控件的版本,实现几何版本也很简单。
Syclop 是一种元规划器,它在较低级别使用其他规划器
Syclop 是一种元规划器,它将通过状态空间分解计算的高级指南与低级规划算法相结合。低级计划者取得的进展会反馈给高级计划者,后者使用此信息来更新指南。Syclop 有两个不同的版本:
Syclop 使用 RRT 作为低级规划器
Syclop 使用 EST 作为低级规划器
线性时序逻辑规划器 (LTLPlanner)
LTLPlanner 为目标由线性时序逻辑 (LTL) 规范指定的运动规划问题找到解决方案。

OMPL 如何选择基于控制的规划器

如果您使用ompl::control::SimpleSetup类(强烈推荐)来定义和解决您的运动规划问题,那么 OMPL 将自动选择一个合适的规划器(除非您已明确指定)。如果状态空间具有默认投影(如果您使用任何内置状态空间,就会出现这种情况),那么它将使用KPIECE。该规划器已被证明可以在许多现实世界的运动规划问题上始终如一地工作,这就是为什么它是默认选择的原因。如果状态空间没有默认投影,RRT将会被使用。请注意,没有基于双向控制的规划器,因为我们不假设存在可以精确连接两个状态的转向函数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值