本教程将教您如何使用 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 机器人:
一旦加载了运动规划插件,我们就可以配置它。在“显示Displays”子窗口的“全局选项Global Options ”选项卡中,将固定框架字段设置为
/base_link
现在,您可以开始为您的机器人(在本例中为 Kinova Gen 3)配置插件。点击“显示”中的“MotionPlanning”。
确保机器人描述字段设置为
robot_description
。确保规划场景主题字段设置为
/monitored_planning_scene
。点击主题名称以显示主题名称下拉菜单。确保规划路径下的轨迹主题设置为
/display_planned_path
。在规划请求中,将规划组更改为
manipulator
。您还可以在左下角的 MotionPlanning 面板中看到这一点。
第 2 步:与可视化机器人一起玩
有四种不同的重叠可视化:
机器人在
/monitored_planning_scene
规划环境中的配置(默认情况下处于活动状态)。机器人规划路径(默认情况下处于活动状态)。
绿色:运动规划的起始状态(默认情况下禁用)。
橙色:运动规划的目标状态(默认情况下处于活动状态)。
可以使用复选框切换这些可视化的显示状态:
在场景机器人Scene Robot 树菜单中使用“Show Robot Visual”复选框的规划场景机器人。
使用计划路径 Planned Path 树菜单中的Show Robot Visual 复选框的计划路径。
使用“查询开始状态 Query Start State”复选框在计划请求树 Planning Request 菜单中开始状态。
在计划请求树 Planning Request 菜单中使用查询目标状态 Query Goal State 复选框的目标状态。
使用所有这些复选框来打开和关闭不同的可视化效果。
步骤 3:与 Kinova Gen 3 互动
对于接下来的步骤,我们只需要场景机器人、起始状态和目标状态:
在计划路径Planned Path 树菜单中勾选 Show Robot Visual 复选框
取消选中场景机器人Scene Robot 树菜单中的Show Robot Visual 复选框
在计划请求 Planning Request树菜单中勾选查询目标状态 Query Goal State 复选框。
在计划请求Planning Request树菜单中勾选查询开始状态 Query Start State 复选框。
现在应该有两个交互标记 interactive markers。一个对应于橙色手臂的标记将用于设置运动规划的“目标状态”,另一个对应于绿色手臂的标记将用于设置运动规划的“起始状态”。如果您没有看到交互标记,请在 RViz 的顶部菜单中按“交互Interact”(注意:某些工具可能被隐藏,按顶部菜单中的“+”以添加交互Interact工具,如下所示)。
您现在应该能够使用这些标记来拖动手臂并改变其方向。试试看!
移动到碰撞
对于本节,隐藏计划路径和目标状态:
取消选中计划路径树菜单中的显示机器人视觉复选框
取消选中规划请求树菜单中的查询目标状态复选框。
现在,只应显示起始状态(绿色手臂)。尝试将手臂移动到其两个Link 连杆 彼此碰撞的配置中。(如果您发现这很困难,请确保取消选中 MotionPlanning 插件的 Planning 选项卡下的“Use Collision-Aware IK 使用碰撞感知 IK”复选框。)一旦这样做,碰撞的Link 连杆将变成红色。
现在,勾选“Use Collision-Aware IK”复选框,然后再次尝试将两个链接移动到彼此碰撞的位置。当勾选复选框时,IK 求解器将继续尝试为所需的末端执行器姿态找到无碰撞的解决方案。当未勾选时,求解器将允许解决方案中发生碰撞。无论复选框的状态如何,碰撞中的连杆 link 始终会以红色可视化。
移出可达工作区
请注意,当您尝试将末端执行器移出其可达工作空间时会发生什么。
在进入下一部分之前,重新启用计划路径和目标状态:
在计划路径树菜单中勾选显示机器人视觉复选框
在计划请求树菜单中勾选查询目标状态复选框。
移动关节或在空域中
您可以使用“关节”选项卡移动单个关节和 7 自由度机器人的冗余关节。尝试移动“空域探索”滑块,如下动画所示。
步骤 4:使用运动规划与 Kinova Gen 3
现在,您可以在 MoveIt RViz 插件中开始使用 Kinova Gen 3 进行运动规划。
将起始状态移动到所需位置。
将目标状态移动到另一个所需位置。
确保两个状态都不会与机器人本身发生碰撞。
取消选中计划路径 Planned Path 树菜单中的显示轨迹 Show Trail 复选框。
在规划Planning 选项卡下的 MotionPlanning 窗口中,按下计划 Plan 按钮。
选中计划路径Planned Path 树菜单中的显示轨迹 Show Trail 复选框。您应该会看到由一系列机械手姿态表示的手臂路径。
反思Introspecting 轨迹航点 Trajectory Waypoints
您可以在 RViz 中逐点直观地检查轨迹。
从“面板Panels ”菜单中选择“轨迹 - 轨迹滑块”“Trajectory - Trajectory Slider”. 。您将在 RViz 上看到一个新的滑块面板。
设置您的目标姿势,然后运行计划。
使用“滑块”面板,例如移动滑块,按“播放”按钮。
注意:一旦将末端执行器放置到新的目标位置,请确保在运行播放之前先运行计划,否则您将看到前一个目标的路径点(如果有)。
计划笛卡尔运动
如果激活“使用笛卡尔路径”复选框,机器人将尝试在笛卡尔空间中线性移动末端执行器。
执行轨迹,调整速度
单击“Plan & Execute 计划和执行”或“执行 Execute ”后,成功规划将把轨迹发送到机器人 - 在本教程中,由于您使用了 kinova_demo.launch
,机器人仅被模拟。
最初,默认速度和加速度被缩放到机器人最大值的 10% ( 0.1
)。您可以在下面显示的规划选项卡中更改这些缩放因子,或在机器人的 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/
的文件名,并构建工作区以便可以找到它。
下一个教程
在您的第一个 MoveIt 项目中,您将使用 MoveIt 创建一个 C++ 程序来计划和执行移动。https://moveit.picknik.ai/main/doc/tutorials/your_first_project/your_first_project.html