Ros2 Moveit2 Rviz2 快速入门
这里将教您如何使用 RViz 和 MoveIt Display 插件在 MoveIt 中创建运动计划。Rviz 是 ROS 中的主要可视化工具,也是调试机器人的非常有用的工具。MoveIt Display 插件允许您设置虚拟环境(规划场景)、以交互方式为机器人创建起始和目标状态、测试各种运动规划器并可视化输出。让我们开始吧!
入门
如果您尚未完成此操作,请确保您已完成入门指南或Docker 指南中的步骤。如果您遵循了 Docker 指南,还请遵循创建 Colcon 工作区和下载教程指南来设置教程。
步骤 1:启动演示并配置插件
-
启动演示:
ros2 launch moveit2_tutorials demo.launch.py
-
如果您是第一次执行此操作,您应该在 RViz 中看到一个空的世界,并且必须添加运动规划插件:
-
你应该在 RViz 中看到一个空的世界:
-
在 RViz 显示选项卡中,按添加:
-
从 moveit_ros_visualization 文件夹中,选择“MotionPlanning”作为 DisplayType。按“Ok”。
-
您现在应该在 RViz 中看到 Kinova 机器人:
-
-
加载运动规划插件后,我们可以对其进行配置。在“显示”子窗口的“全局选项”选项卡中,将固定框架字段设置为
/base_link
-
现在,您可以开始为您的机器人(本例中为 Kinova Gen 3)配置插件。单击“Displays”中的“MotionPlanning”。
-
确保机器人描述字段设置为
robot_description
。 -
确保规划场景主题字段设置为
/monitored_planning_scene
。单击主题名称以显示主题名称下拉菜单。 -
确保计划路径下的轨迹主题设置为。
/display_planned_path
-
在Planning Request中,将Planning Group更改为
manipulator
。您也可以在左下方的 MotionPlanning 面板中看到这一点。
-
第二步:玩转可视化机器人
有四种不同的重叠可视化效果:
-
机器人在
/monitored_planning_scene
规划环境中的配置(默认处于活动状态)。 -
机器人的规划路径(默认处于活动状态)。
-
绿色:运动规划的起始状态(默认禁用)。
-
橙色:运动规划的目标状态(默认处于活动状态)。
可以使用复选框打开或关闭每个可视化的显示状态:
-
规划场景机器人使用场景机器人树菜单中的显示机器人视觉复选框。
-
使用计划路径树菜单中的显示机器人视觉复选框来规划路径。
-
使用规划请求树菜单中的查询开始状态复选框的开始状态。
-
使用规划请求树菜单中的查询目标状态复选框的目标状态。
-
使用所有这些复选框来打开或关闭不同的可视化效果。
步骤 3:与 Kinova Gen 3 交互
对于接下来的步骤,我们只需要场景机器人、起始状态和目标状态:
-
勾选“规划路径”树菜单中的“显示机器人视觉”复选框
-
取消选中“场景机器人”树菜单中的“显示机器人视觉”复选框
-
选中规划请求树菜单中的查询目标状态复选框。
-
选中规划请求树菜单中的查询开始状态复选框。
现在应该有两个交互式标记。一个对应于橙色手臂的标记将用于设置运动规划的“目标状态”,另一个对应于绿色手臂的标记将用于设置运动规划的“起始状态”。如果您没有看到交互式标记,请按RViz 顶部菜单中的Interact (注意:某些工具可能被隐藏,请按顶部菜单中的“+”添加Interact工具,如下所示)。
现在,您应该能够使用这些标记拖动手臂并改变其方向。试试看!
进入碰撞阶段
对于本节,隐藏计划路径和目标状态:
-
取消选中规划路径树菜单中的“显示机器人视觉”复选框
-
取消选中规划请求树菜单中的查询目标状态复选框。
现在,应该只有起始状态(绿色手臂)可见。尝试将手臂移动到两个连杆相互碰撞的配置中。(如果您觉得这很困难,请确保 MotionPlanning 插件的 Planning 选项卡下的“使用碰撞感知 IK”复选框未选中。)完成此操作后,发生碰撞的连杆将变为红色。
现在,选中“使用碰撞感知 IK”复选框,然后再次尝试将两个链接移动到彼此碰撞的位置。选中该复选框后,IK 解算器将继续尝试为所需的末端执行器姿势找到无碰撞解决方案。未选中时,解算器将允许在解决方案中发生碰撞。无论复选框的状态如何,发生碰撞的链接仍将始终以红色显示。
移出可到达工作区
请注意当您尝试将末端执行器移出其可到达的工作空间时会发生什么。
在进入下一部分之前,重新启用计划路径和目标状态:
-
勾选“规划路径”树菜单中的“显示机器人视觉”复选框
-
选中规划请求树菜单中的查询目标状态复选框。
移动关节或零空间
您可以使用“关节”选项卡移动单个关节和 7 自由度机器人的冗余关节。尝试移动“零空间探索”滑块,如下面的动画所示。
步骤 4:使用 Kinova Gen 3 进行运动规划
-
现在,您可以使用 MoveIt RViz 插件中的 Kinova Gen 3 开始运动规划。
-
将起始状态移动到所需位置。
-
将目标状态移动到另一个所需位置。
-
确保两种状态都不会与机器人本身发生碰撞。
-
取消选中计划路径树菜单中的显示轨迹复选框。
-
-
在MotionPlanning窗口的Planning选项卡下,按下Plan按钮。
-
勾选“规划路径”树菜单中的“显示轨迹”复选框。您应该看到由一系列操纵器姿势表示的手臂路径。
审视轨迹航点
您可以在 RViz 中逐点直观地检查轨迹。
-
从“面板”菜单中,选择“轨迹 - 轨迹滑块”。您将在 RViz 上看到一个新的滑块面板。
-
设定你的目标姿势,然后运行计划。
-
使用“滑块”面板进行播放,例如移动滑块,按“播放”按钮。
注意:将末端执行器放置到新目标后,请确保在运行Play之前运行Plan - 否则您将看到前一个目标的航点(如果可用)。
规划笛卡尔运动
如果激活“使用笛卡尔路径”复选框,机器人将尝试在笛卡尔空间中线性移动末端执行器。
执行轨迹,调整速度
规划成功后单击“规划并执行”或“执行”将把轨迹发送给机器人 - 在本教程中,由于您使用了kinova_demo.launch
,因此仅模拟了机器人。
最初,默认速度和加速度被缩放为0.1
机器人最大值的 10% ( )。您可以在下面显示的“规划”选项卡中更改这些缩放系数,或者在moveit_config
机器人的 中更改这些默认值(以 为单位joint_limits.yaml
)。
下一步
RViz 可视化工具
许多教程都使用moveit_visual_tools
演示来逐步完成。在继续下一个教程之前,最好先启用RvizVisualToolsGui。
从“面板”菜单中,选择“添加新面板”。从菜单中,选择“ RvizVisualToolsGui ”并单击确定。您将看到新面板添加到 RViz。
保存您的配置
RViz 可让您将配置保存在 下。您应该在继续学习下一个教程之前执行此操作。如果您选择以新名称保存配置,则可以使用并引用配置文件:File->Save Config
File->Save Config As
ros2 launch moveit2_tutorials demo.launch.py rviz_config:=your_rviz_config.rviz
将其替换your_rviz_config.rviz
为您保存的文件的名称moveit2_tutorials/doc/tutorials/quickstart_in_rviz/launch/
,然后构建工作区以便可以找到它。