planner5d安卓全部解锁,planner5d使用教程
covnthamiltonian no optimization Information Planning[CHOMP]是一种新的基于梯度的轨迹优化方法,使许多日常运动规划问题变得简单且可训练[Ratliff et al .2009c]当高维运动规划将轨迹生成分为不同的规划和优化阶段时,该算法利用协变梯度法和泛函梯度法的优化阶段,设计了完全基于轨迹优化的运动规划算法。如果在不可能的情况下指定初始轨迹,CHOMP会通过对周围环境的响应,快速将轨迹拉出碰撞,同时优化关节速度和加速度等动力学。它能快速收敛到平滑的无碰撞轨迹,有效地运行机器人。将MoveIt集成到最新版本的工作正在进行中。其他信息。
一.Getting Started
如果没有,请确保您已经完成了开始步骤。这些步骤也要通过视觉运动来完成!虚拟插件。
二.Prerequisites
需要安装最新版本的MoveIt。ROS Kinetic要求从源代码编译MoveIt。CHOMP还不是正式版本的一部分,所以需要从源代码开始构建。因此,它不包含在二进制包中。这是通过以下步骤实现的。
要使用CHOMP和机器人,您已经需要MoveIt机器人配置软件包。比如有一个熊猫自动机,可能叫熊猫_moveit_config。这通常是使用MoveIt设置助手构建的。
三.Installing MoveIt! from Source
在工作区中添加和删除包时,必须清理工作区,然后重新运行命令以安装新的缺失依赖项。清理工作区并删除对MoveIt的系统范围安装的引用:
Cd ~/ws_MoveIt/srccatkin clean目前moveit Kinetic是按照MoveIt首页的说明从源代码安装的。请注意,您可以跳过先决条件部分,因为柳絮工作空间应该已经存在。
重新启动安装文件:
source ~ ~/ws _ move it/devel/setup . bash http://www.Sina.com/
注意:如果您使用ROS-Planning/panda _ moveit _ config存储库中的panda _ move it _ config进行演示,则这些步骤已经完成。
1.只需将chomp _ planning _ pipeline . launch . XML文件下载到MoveIt配置包的启动目录下即可。示例将此文件保存在panda_moveit_config/launch目录中。
2.ROSparamcommand= load file= $(find panda _ moveit _ config)/config/chomp _ planning . YAML /to ROS param
下载chomp_planning.yaml文件,放在MoveIt配置包的配置目录下。示例将该文件保存在panda_moveit_config/config目录中。
在收藏夹编辑器中打开chomp_planning.yaml,将animate _ end effector _ segment: panda _ right finger 更改为自动机的相应链接。
将demo.launch文件复制到demo_chomp.launch该文件也位于Moveitconfigurationpack的启动目录中。在本例中,它是panda_moveit_config/launch目录。
找到包含move_group.launch的行,并进行以下更改:
!-用thenameofyourmoveit替换robot _ moveit _!package-include file= $(find robot _ move it _ config)/launch/move _ group . launch argname= aarge
在robot_moveit_config/launch/文件夹中启动文件,并进行两处更改:
[1]在启动标签下添加argname= planner default= ompl /。
[2]在includes ns= move _ group 的标签中,将argname= pipeline value= ompl /替换为argname= pipeline value= $(arg planner)/。
五.Running the Demo
如果您要从ROS-Planning/panda_moveit_config仓库获取panda _ move it _ config,您应该能够简单地运行演示:
roslaunch panda _ moveit _ config demo _ chomp . launch1.Running CHOMP with Obstacles in the Scene
在有障碍物的环境中运行CHOMP运行Python脚本示例:collision_scene_example.py
这个脚本创建一个有四个障碍物的混乱场景,或者一个只有一个障碍物的简单场景,这取决于脚本的参数。你也可以改变障碍物的位置/大小来改变场景。
要运行CHOMP计划和障碍,打开两个外壳。在第一个shell中启动RViz,并等待所有内容完成加载:
roslaunch panda _ moveit _ config demo _ chomp . launch在第二个shell中,运行以下两个命令之一:
rosmoveit _ tutorials conflict _ scene _ example . py toilet或
ROS moveit _ tutorials conflict _ scene _ example . py sparse接下来,在RViz中,在“上下文”选项卡下的“运动规划”窗格中选择CHOMP。使用imarker移动末端效应器以设置所需的开始和目标状态,然后单击“运动规划”窗格中“规划”选项卡下的“规划”按钮以开始规划。规划者现在将试图在给定的起始和结束位置之间找到一个可行的解决方案。
六.Tweaking some of the parameters for CHOMP
CHOMP有一些与之相关的优化参数。这些可以针对正在使用的特定环境/机器人进行修改,通常出现在chomp_planning.yaml文件中。在工作机器人的配置文件夹中。如果机器人不存在此文件,您可以创建它并设置所需的参数值。下面是对其中一些参数值设置的一些看法:1.planning_time_limit:优化器在终止前找到一个解所需要的最大时间:2.max_iterations:这是规划者在优化时能找到一个好解的最大迭代次数:3.max_iterations_after_collision_free:找到无冲突路径后要执行的最大迭代次数:4.smoothness_cost_weight:smoothness _ cos T _ weight参数控制其在CHOMP最终代价中的权重5.obstacle_cost_weight比如0.0会有一些可以忽略的障碍,1.0会是一个硬约束6.learning_rate:这是优化器用来寻找局部/全局最小值同时降低总成本的学习率7.smoothness_cost_velocity,smoothness_cost_acceleration, smoothness_cost_jerk;与速度、加速度和加加速度相关的变量8.ridge_factor:目标函数中总二次成本矩阵对角线上的噪声。添加小噪声[例如0.001]可以使CHOMP避开障碍物,但代价是轨迹平滑度9.use_pseudo_inverse:是否启用伪逆计算10.pseudo_inverse_ridge_factor:如果启用伪逆,则设置脊因子11.joint_update_limit:设置机器人关节的更新限制12.collision_clearance:避开障碍物的最小距离13.collision_threshold:为避免冲突而要保持的冲突阈值成本14.use_stochastic_descent:在随机下降中,使用轨迹上的随机点,而不是所有轨迹点。这样更快,并保证收敛,但在最坏的情况下可能需要更多的迭代15.enable failure recovery:如果设置为true,Chomp将调整ceratin参数,希望在CHOMP_planning.yaml文件中指定的默认参数不存在时找到解决方案16.max_recovery_attempts:这是CHOMP首次尝试使用默认参数,最大运行时间17.trajectory_initializaiton_method使用不同的参数集:CHOMP可以在此提供轨迹初始化的类型,可以是五次样条曲线前三个选项是插值方法,用于初始化起始状态和目标状态之间的轨迹。FillTrajectory提供了一个选项,从现有运动规划器[如OMPL]计算的路径初始化轨迹。
为CHOMP选择参数需要规划环境提供的一些直觉。比如CHOMP的默认参数在无障碍环境下效果很好。然而,在有许多障碍物的环境中,默认参数可能会导致CHOMP陷入局部最小值。通过调整参数,可以提高CHOMP生成的计划的质量。
一些未使用/注释的参数是hmc_stochasticity、HMC _注释_因子、HMC _公开、使用_哈密顿_蒙特卡罗、动画_结束效果、动画_结束效果_分段、动画_路径、随机_跳跃_数量和添加_随机性。
七.Difference between plans obtained by CHOMP and OMPL
规划者优化了一个成本函数,这有时可能会导致令人惊讶的结果:通过一个薄障碍物的成本可能低于通过一个长而弯曲的轨道的成本,从而避免所有碰撞。在本节中,将区分从CHOMP获得的路径,并与从OMPL获得的路径进行比较。
OMPL是一个基于采样/随机化的运动规划算法的开源库。基于采样的算法在概率上是完全的:如果一个解存在,那么它最终会被找到,但是解的缺失不能被报告。这些算法是有效的,通常可以快速找到解决方案。OMPL不包含任何与冲突检查或可视化相关的代码,因为OMPL的设计者不想将其绑定到任何特定的冲突检查器或可视化前端。该库被设计成易于集成到提供附加组件的系统中。MoveIt直接与OMPL集成,并使用OMPL的运动规划器作为默认规划器集。OMPL的规划者很抽象:也就是说,OMPL没有机器人的概念。相反,MoveIt配置OMPL,为OMPL处理机器人方面的问题提供后端。
CHOMP:虽然大多数高维运动规划器将轨迹生成分为不同的规划和优化阶段,但CHOMP使用协变梯度和泛函梯度方法对阶段进行优化,设计了完全基于轨迹优化的运动规划算法。在不可行时给定一个初始轨迹,CHOMP可以通过对周围环境的响应,快速将轨迹拉出碰撞,同时优化关节速度、加速度等动力学。它快速收敛到平滑的无碰撞轨迹,能够有效地执行机器人。改变新规则,保证CHOMP快速收敛到局部最优轨迹。
对于有障碍物的场景,CHOMP通常会在代价函数中加入一些噪声[ridge_factor]来计算机器人的动力学[比如加速度和速度],从而生成一条不喜欢平滑轨迹的路径。CHOMP在大多数情况下可以避开障碍物,但如果由于对轨迹的错误初始猜测而陷入局部最小值,它就会失败。OMPL可以用来为CHOMP生成无碰撞的种子轨迹,以缓解这个问题。
八.Using OMPL as a pre-processor for CHOMP
证明了CHOMP也可以作为其他规划算法得到的规划的后处理优化技术。这背后的直觉是一些随机规划算法生成CHOMP的初始猜测。然后CHOMP做了初步猜测,进一步优化了轨迹。为此,请遵循以下步骤:
1.打开robot _ move it _ config/launch robot文件夹中的ompl_planning_pipeline.launch文件。熊猫机器人就是这个文件。编辑这个启动文件,找到提到arg name=planning_adapter 的那一行,并将其更改为:
arg name= planning _ Adapters value= Default _ Planner _ Request _ Adapters/AddTimeParameterization Default _ Planner _ Request _ Adapters/FixStartStateBounds Default _ Planner _ Request _ Adapters/fixstartstatestations Default _ Planner _ Request _ Adapters/fixstartstatestations Default _ Planner _ Request _ Adapters/ZJ dws /2。Planning _ Adapters是上述适配器被调用/调用的顺序。在CHOMP适配器内,OMPL在CHOMP优化解决方案被调用之前被调用,因此CHOMP以OMPL计算的初始路径为起点进一步优化它。
3.寻找ROS param command= load file= $(find panda _ move it _ config)/config/ompl _ planning . YAML /改进的那一行。在这一行后增加以下内容:
ROS command= load file= $(find panda _ move it _ config)/config/CHOMP _ planning . YAML /4。这些添加将添加一个chomp优化适配器,并加载相应CHOMP规划器的参数。为此,可以将panda_moveit_config替换为机器人的my_robot_moveit_config。
5.在机器人的robot_moveit_config/launch文件夹的move_group.launch文件中,确保默认计划程序是ompl。
6.在机器人的robot_moveit_config/config文件夹的chomp_planning.yaml文件中,添加以下行:
trajectory _ initial ization _ method: fill trajectory 7。对启动文件进行必要的更改后,打开终端并执行以下操作:
roslaunch panda _ moveit _ config demo _ chomp . launch这将启动RViz,并在上下文选项卡下的运动规划面板中选择OMPL。通过以与上述CHOMP相同的方式移动末端执行器,设置所需的开始和目标状态。最后,点击计划按钮开始计划。规划器现在将首先运行OMPL,然后对OMPL的输出运行CHOMP以生成优化路径。
参考文献:
[1]CHOMP Planner:http://docs . ROS . org/kinetic/API/moveit _ tutorials/html/doc/CHOMP _ Planner/CHOMP _ Planner _ tutorial . html
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。