moveit---可集成的规划器库

原链接:https://moveit.ros.org/documentation/planners/

MoveIt!旨在与许多不同类型的规划人员合作,这非常适合根据以前的方法对改进的规划人员进行基准测试。以下是与MoveIt!一起使用的规划器列表,按MoveIt中的流行度/支持度的降序排列!:

1.开放式运动规划库(OMPL)

OMPL是一个开源运动规划库,主要实现随机运动规划器。MoveIt!直接与OMPL集成,并使用该库中的运动规划器作为其主要/默认规划器集。OMPL中的策划者是抽象的; 即OMPL没有机器人的概念。相反,MoveIt!配置OMPL并为OMPL提供后端以处理Robotics中的问题。完全支持。更多信息

而采样规划算法中,最出名的莫过于 Rapidly-exploring Random Trees (RRT) 和 Probabilistic Roadmap (PRM)了, 当然,这两个是比较老的,还有很多其他新算法。

  • OMPL能做什么? 简单说,就是提供一个运动轨迹。给定一个机器人结构(假设有N个关节),给定一个目标(比如终端移到xyz),给定一个环境,那么OMPL会提供给你一个轨迹,包含M个数组,每一个数组长度是N,也就是一个完整的关节位置。沿着这个轨迹依次移动关节,就可以最终把终端移到xyz,当然,这个轨迹应当不与环境中的任何障碍发生碰撞。
  • 为什么用OMPL? 运动规划的软件库和算法有很多,而OMPL由于其模块化的设计和稳定的更新,成为最流行的规划软件库之一。很多新算法都在OMPL开发。很多其他软件(包括ROS/MoveIt)都使用OMPL做运动规划。

2.运动规划的随机轨迹优化(STOMP)

STOMP(运动规划的随机轨迹优化)是基于PI ^ 2(路径积分的政策改进,Theodorou等人,2010)算法的基于优化的运动规划器。它可以规划机器人手臂的平滑轨迹,避开障碍物,并优化约束。该算法不需要梯度,因此可以优化成本函数中的任意项,如电机工作。部分支持。更多信息

3.基于搜索的规划库(SBPL)

一组通用的运动规划器,使用基于搜索的规划来离散空间。集成到最新版本的MoveIt!正在进行中。更多信息

4.运动规划的协变哈密顿优化(CHOMP)

用于运动规划的协变哈密顿量优化(CHOMP)是一种新颖的基于梯度的轨迹优化程序,它使许多日常运动规划问题既简单又可训练(Ratliff等,2009c)。虽然大多数高维运动规划器将轨迹生成分为不同的规划和优化阶段,但该算法利用协变梯度和功能梯度方法来优化阶段,以设计完全基于轨迹优化的运动规划算法。鉴于不可行的幼稚轨迹,CHOMP对周围环境作出反应,以快速将轨迹拉出碰撞,同时优化动态量,例如关节速度和加速度。它可以快速收敛到一个平滑的无碰撞轨迹,可以在机器人上有效地执行。集成到最新版本的MoveIt!正在进行中。更多信息。

一、OMPL

  • OMPL包含许多基于采样的算法的实现,例如PRM,RRT,EST,SBL,KPIECE,SyCLOP以及这些规划器的几种变体。有关完整列表,请参阅可用的规划人员。
  • 所有这些规划者都在非常抽象的国家空间上运作。已经实现了许多常用的状态空间(例如,SE(2),SE(3),R n等)。
  • 对于任何状态空间,可以使用不同的状态采样器(例如,均匀,高斯,基于障碍物等)
  • 1.是moveit默认的库,其相关算法的配置文件为ompl_planning.yaml,可对其中的参数由moveit助手自动生成,可调整。

2.优化ompl库的方式

http://docs.ros.org/kinetic/api/moveit_tutorials/html/doc/ompl_interface/ompl_interface_tutorial.html

几类可供开发者进行优化的算法由:

  • geometric::RRTstar
  • geometric::PRMstar
  • 优化目标包括:
  • PathLengthOptimizationObjective (默认)
  • MechanicalWorkOptimizationObjective
  • MaximizeMinClearanceObjective
  • StateCostIntegralObjective
  • MinimaxObjective
  • 这些优化目标在ompl_planning.yaml中完成,如将RRstar添加优化目标MaximizeMinClearanceObjective
  • 则ompl_planning.yaml中的planner条目将如下所示:
  • RRTstarkConfigDefault:
        type:geometric :: RRTstar 
        optimization_objective:MaximizeMinClearanceObjective 
        rang:0.0 
        goal_bias:0.05 
        delay_collision_checking:1
  • 更多信息:http://ompl.kavrakilab.org/optimalPlanning.html

 

优化方向:在OMPL中,我们将成本定义为机器人配置空间中运动累积的值。在几何规划中,运动完全由起始状态和结束状态定义。默认情况下,这些目标试图最小化路径成本,但是可以定制此行为。我们还假设,整个路径的成本可以分解为组成路径的较小运动成本的累加;累加的方法(如求和、乘法等)可以自定义。

ompl的局限性:

为了最大化计算效率,OMPL假设路径的成本可以用一个double值表示。在许多问题中,即使我们正在处理多目标问题,一个值也足以完全定义优化目标。在这些情况下,路径的成本可以表示为构成多目标的每个单独目标下的路径成本的加权和。

但是,有些问题无法用这个假设准确表示。例如,OMPL不能代表一个多目标,它结合了以下两个目标:

  • 最小化路径长度
  • 最大化最小间隙

这两个目标无法组合的原因是因为我们需要不止一个值来执行路径成本的累积。我们需要一个值来保持沿路径的长度累积,另一个值保持到目前为止在路径中遇到的最小间隙值。因此,OMPL中无法表示的多目标问题是个别目标不共享成本累积函数的问题。我们注意到,上述目标可以通过将路径长度目标与状态成本积分目标相结合来近似,其中状态成本是间隙的函数。

你可能感兴趣的:(ROS,moveit)