ROS2与MoveIt2入门教程-在RViz中快速上手MoveIt2
说明:
- 介绍如何在RViz中快速上手MoveIt2
概述:
- 本教程将通过RViz和MoveIt2插件,快速让您使用MoveIt2进行运动规划。Rviz是ROS中的主要可视化工具,也是调试机器人的非常有用的工具。MoveIt2的Rviz插件允许您设置虚拟环境(场景)、以交互方式为机器人创建起始和目标状态、测试各种运动规划器以及可视化输出。现在让我们开始吧!
第一步:启动演示和配置插件
- 启动演示,其命令为:
ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true
- 如果是第一次启动该演示,则应该会在RViz中看到一个空白世界(如下图所示),且必须通过以下步骤添加运动规划插件(Motion Planning Plugin):
在RViz左侧的“显示(Display)”子窗口的左下角,按下“添加(Add)”按钮;
从弹出的“创建可视化(Create Visualization)”对话框中,点击选择“By display type”选项卡中“moveit_ros_visualization”目录下的“Motion Planning”作为显示类型,按下“确定(Ok)”按钮;
- 现在应该会在RViz中看见熊猫(Panda)机器人,如下图所示:
一旦加载了运动规划插件(Motion Planning Plugin),就可以对其进行配置。在“显示(Display)”子窗口的“全局选项(Global Options)”选项卡中,将“固定坐标系(Fixed Frame)”字段的值设置为/panda_link0
现在,可以开始为您的机器人(在本例中为 Panda)配置运动规划插件了。点击“显示(Display)”子窗口中的“运动规划(Motion Planning)”项。
确保“机器人描述(Robot Description)”字段值设置为robot_description。
确保“规划场景话题(Planning Scene Topic)”字段值设置为 /monitored_planning_scene。点击话题名称(topic name)以显示话题名称下拉列表。
确保“规划路径(Planned Path)”下的“轨迹话题(Trajectory Topic)”设置为/display_planned_path。
在“规划请求(Planning Request)”中,将“规划组(Planning Group)”更改为panda_arm。这个设置也可以在左下角的“运动规划(MotionPlanning)”面板中看到(如下图所示)。
第二步:玩玩可视化机器人
有四种不同的可重叠可视化:
在/monitored_planning_scene规划环境中的机器人配置(默认处于激状态活)。
机器人的规划路径(默认情况下处于激活状态)。
绿色:运动规划的起始状态(默认情况下是禁用的)。
橙色:运动规划的目标状态(默认情况下处于激活状态)。
可以使用复选框打开和关闭每个可视化的显示状态:
使用“场景机器人(Scene Robot)”选项卡中的“显示机器人视觉(Show Robot Visual)”复选框来打开和关闭规划场景机器人。
使用“规划路径(Planned Path)”选项卡中的“显示机器人视觉(Show Robot Visual)”复选框来打开和关闭规划路径。
使用“规划请求(Planning Request)”选项卡中的“查询起始状态(Query Start State)”复选框来打开和关闭起始状态。
使用“规划请求(Planning Request)”选项卡中的“查询目标状态(Query Goal State)”复选框来打开和关闭目标状态。
使用所有这些复选框来打开和关闭不同的可视化。
第三步:与Panda机器人进行交互
对于接下来的步骤,只需要场景机器人、起始状态和目标状态:
选中“场景机器人(Scene Robot)”选项卡中的“显示机器人视觉(Show Robot Visual)”复选框。
取消选中“规划路径(Planned Path)”选项卡中的“显示机器人视觉(Show Robot Visual)”复选框。
选中“规划请求(Planning Request)”选项卡中的“查询目标状态(Query Goal State)”复选框。
选中“规划请求(Planning Request)”选项卡中的“查询起始状态(Query Start State)”复选框。
现在应该有两个交互标记。橙色手臂对应的标记将用于设置运动规划的“目标状态”,而绿色手臂对应的另一个标记用于设置运动规划的“起始状态”。如果没有看到交互标记,请按下RViz顶部菜单中的“交互(Interact)”按钮(注意:某些工具可能会被隐藏,按下顶部菜单中的“+”按钮来添加“交互(Interact)”工具,如下图所示)。
现在应该能够使用这些标记来拖动手臂转动并改变其方位
进入碰撞状态
请注意一下当您尝试将一个手臂移动到与另一个手臂发生碰撞时会发生什么。发生碰撞的两个链接将会变成红色。
运动规划(MotionPlanning)插件中“规划(Planning)”选项卡下“Collision-aware IK”复选框(下图)允许您切换IK解算器的行为。当勾选该复选框后,IK解算器会继续尝试为期望的末端执行器位姿找到无碰撞的解决方案。当未勾选该复选框时,IK解算器会允许解决方案中发生碰撞。无论该复选框的状态如何,碰撞中的链接都会始终显示为红色。
移出可到达的工作空间
- 请注意一下当您尝试将末端执行器移出其可到达的工作空间时会发生什么。
移动关节或进入零空间
- 您可以使用“关节(Joints)”选项卡来移动7-DOF机器人的单个关节和冗余关节。请尝试移动如这个动画中所示的“零空间探索(null space exploration)”滑动条。
第四步:对Panda机器人使用运动规划
现在,可以使用MoveIt2 RViz插件中的熊猫机器人(Panda)开始进行运动规划。
将“起始状态(Start State)”移动到期望的位置。
将“目标状态(Goal State)”移动到另一个期望的位置。
确保这两个状态都没有与机器人本身发生碰撞。
确保“规划路径(Planned Path)”正在被可视化。还要选中“规划路径(Planned Path)”选项卡中的“显示踪迹(Show Trail)”复选框。
在“规划(Planning)”选项卡下的“运动规划(MotionPlanning)”窗口中,按下“规划(Plan)”按钮。这样就应该能够看到手臂移动和踪迹的可视化效果。
检查轨迹航路点
在RViz中可以逐点可视化地检查轨迹。在“面板(Panels)”菜单中,选择“轨迹(Trajectory)-轨迹滑块(Trajectory Slider)”。这样就会在RViz中看到一个新的滑块面板。
设置目标位姿,然后运行“规划(Plan)”。
玩下“滑块”面板,例如移动该滑块,然后按下“播放(Play)”按钮。
请注意:一旦将您的EEF放置在一个新目标,请务必在运行“播放(Play)”之前运行“规划(Plan)”—否则您会看到前一个目标的航路点(如果有的话)。
- 规划笛卡尔运动
如果“使用笛卡尔路径(Use Cartesian Path)”复选框被勾选激活,机器人会尝试在笛卡尔空间中线性移动末端执行器。
- 执行轨迹,调整速度
在规划成功后按下“规划和执行(Plan & Execute)”或“执行(Execute)”按钮会将轨迹发送给机器人—在本教程中,由于您使用了demo.launch,因此机器人只是一个仿真机器人。
开始时,默认速度和加速度会被缩放到机器人最大值的10%(0.1)。 可以在如下图所示的“规划(Planning)”选项卡中更改这些缩放因子,或者在您的机器人的moveit_config中更改这些默认值(在joint_limits.yaml文件中)。
后续步骤
RViz可视化工具
从“面板(Panels)”菜单中选择“添加新面板(Add New Panels)”。 从该菜单中选择“RvizVisualToolsGui”,然后单击“确定(OK)”按钮。这样就会看到添加到RViz中的新面板(如下图所示)。
保存配置
可以使用RViz中的“文件(File)”->“保存配置(Save Config)”菜单来保存您的配置。在继续下一个教程之前,您应该保存您的配置。
参考英语原文地址:https://moveit2_tutorials.picknik.ai/doc/quickstart_in_rviz/quickstart_in_rviz_tutorial.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号