
在该模拟中,机器人必须将相机移动到三个扫描位置。Moveit2用于计划对这些位置的无碰撞运动。|信用:西南研究所
梅蒂特,ROS的运动规划框架已成功用于许多工业和研究应用,其中需要复杂的碰撞机器人运动来完成操纵任务。最近几个月,大量的努力已经进入迁移到ROS2。
因此,新的ModiT2框架已经提供了对其前任中可用的许多核心功能和功能的访问。虽然一些非常有用的设置工具仍然是正在进行的工作(主要是Mevicit Setup Assistant),但我能够将Memit2集成到协同机器人打磨应用(CRS)计划轨迹,然后在凉亭模拟上执行UR10机器人手臂。
我的ROS2设置涉及从Github中所述的源构建Memit2存储库。然后,我封装在我现有的CRS应用程序工作区之上的Colcon工作空间。我还建立并运行了简单的演示,它就在门外工作,非常有助于帮助我了解如何将MeviT2集成到我自己的应用程序中。
C ++集成非常简单,只需要使用两个新课程:MoveItcpp和PlanningComponent。在此架构中,MoveItcpp用于加载机器人模型,从ROS2参数配置计划管道并初始化默认值;然后有计划组件类,它与规划组相关联,用于设置运动计划请求并调用低级策划仪。
此外,计划组成类别与熟悉的相似界面movegroupInterface.来自Memit的课程。但这里的一个大变化是规划组件类中的方法不仅仅是包装给各种服务和行动move_group节点。相反,它们对各种运动规划功能进行直接函数调用。
我认为这是一个欢迎的变化,因为这种架构将允许在飞行中创建Mevicit2计划配置,这可以适应应用中可能出现的不同规划情况。
另一方面,发射/ yaml集成并不像我一样清洁,因为许多ROS2概念对我来说仍然相对较新。要正确配置MemiT2,必须加载aurdf.文件以及许多参数驻留在几个yaml文件中的参数到MeveIt2应用程序中。幸运的是,大多数yaml文件由Mevit Setup Assistant.从原始MoviT可以使用只是微小的修改,因此我在ROS1中运行了设置助手并生成了所需的配置文件。
在Python中组装ROS2启动文件的能力真的在这里派上友好,因为它允许我从yaml文件中实例化一个python字典,并将其元素作为我的ros2应用程序的参数传递。除了了解MeviT2之外,通过这次练习将显示如何重用相同的YAML文件以初始化不同应用程序中的参数,我认为是ROS2中不再可用的功能。
我对Memet2的整体印象非常积极。我觉得建筑变革对现有的MoviT开发人员来说并不是破坏性,它会导致框架所使用的新有趣方式。我确定期待其他非常有用的Mevit组件的移植。
集成Memit2的项目分支可以是在这里找到上面是我能够做到的规划的简短剪辑。在本申请中,机器人必须将相机移动到三个扫描位置。Moveit2用于计划对这些位置的无碰撞运动。
编辑注意:本文已重新发布西南研究所。
关于作者
Jorge Nicho是西南研究所(SWRI)的研究工程师。他于2010年12月毕业于德克萨斯大学德克萨斯大学的机械工程学士学位。尼科在2011年加入SWRI作为制造和机器人技术部门的工程师。他的一个优势是智能机器人运动规划。Nicho参与了使用ROS框架建造的几种智能机器人系统的开发。
告诉我们你的想法!