MoveIt在Rviz中的快速入门
通过RViz和MoveIt插件快速使用MoveIt进行运动规划。Rviz是ROS中的主要可视化工具,也是调试机器人技术的非常有用的工具。MoveIt Rviz插件允许设置虚拟环境(场景),以交互方式为机器人创建开始和目标状态,测试各种运动计划器以及可视化输出。
开始
1. 启动演示并配置插件
启动演示:
ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true
如果是第一次这样做,应该在RViz中看到一个空世界,必须要添加Motion Planning插件:
在 RViz 的 Displays 中,点击 Add
从moveit_ros_visualization,选取"MotionPlanning"作为“显示类型”。
然后就可以在RViz中看到Panda robot
- 当Motion Planning插件加载好之后,我们就可以对其进行配置。在"Displays"中的"Global Options",将 Fixed Frame 设置为
/panda_link0
- 然后你可以开始为你的机器人(以Panda robot为例)对插件进行设置。点击"Display"中的"MotionPlanning"。
- 确保 Robot Description 被设置为
robot_description
- 确保Planning Scene Topic 被设置为
/monitored_planning_scene
- 确保Planned Path下的Trajectory Topic被设置为
/display_planned_path
- 在Planning Request中更改Planning Group为
panda_arm
.
- 确保 Robot Description 被设置为
2. 与可视机器人进行交互
有四种不同的重叠可视化效果:
- 在规划中的场景机器人中的配置(默认处于活动状态)。
/monitored_planning_scene
- 机器人的规划路径(默认处于活动状态)。
- 绿色:运动规划的开始状态(默认禁用)。
- 橙色:运动规划的目标状态(默认情况下处于活动状态)。
可以使用复选框打开和关闭每个可视化效果的显示状态:
- 规划场景中的机器人通过Scene Robot菜单中的Show Robot Visual 打开
- 规划路径通过Planel Path中的Show Robot Visal打开
- 开始状态通过Planning Request中的Query Start State打开
- 目标状态通过Planning Request中的Query Goal State打开
- 尝试打开与关闭这几个选项来不同的可视化效果
3. 与Panda机器人进行交互
在接下来的步骤中,我们将只需要场景机器人,启动状态和目标状态:
- 选中Planning Path中的Show Robot Visual
- 取消选中Scene Robot中的Show Robot Visual
- 选中Planning Request中的Query Goal State
- 选中Planning Request中的Query Start State
现在在场景中应该有两个交互球。一个交互球对应的橙色手臂,用于设置运动规划的“目标状态”,而对应于绿色手臂的另一个球用于设置运动计划的“开始状态”。如果没有看到交互式标记,在 RViz 的顶部菜单中按Interact(注意: 有些工具可能被藏起来, 在顶部菜单中按点击“+” 以添加交互工具)
现在应该能够使用这些球来拖动手臂并更改其方向。试试吧!
进入碰撞
对于此部分,隐藏规划路径和目标状态:
- 取消选中Planned Path中的Show Robot Visual
- 取消选中Planning Request中的Query Goal State
现在,只有开始状态(绿色的手臂)应该可见。尝试将臂移动到其两个连杆相互冲突的姿态下。(如果发现这很困难,确保没有勾选 MotionPlanning 插件中的 Planning 选项卡下的"Use Collision-Aware IK"。执行此操作后,发生冲突的连杆将变为红色。
现在,选中"Use Collision-Aware IK"复选框,然后再次尝试将两个连杆移动到彼此冲突中。勾选该选项后,IK 求解器将继续尝试为所需的末端执行器姿势找到无碰撞解。如果未选中,求解器将允许在求解中发生冲突。无论复选框的状态如何,冲突中的连杆仍将始终以红色显示。
移出可到达的工作空间
注意尝试将末端执行器移出可访问的工作区时会发生什么情况。
在进入下一部分之前,重新启用计划的路径和目标状态:
- 选中"Planned Path"菜单中的"Show Robot Visual"
- 选中"Planning Request"菜单中的"Query Goal State"
移动Joints或者Nullspace
可以使用“关节”选项卡来移动单个关节和 7-DOF 机器人的冗余关节。尝试移动“Nullspace exploration”滑块。
4. 对 Panda 进行运动规划
- 现在可以在MoveIt RViz插件中对Panda进行运动规划。
- 将“开始状态”移动到所需位置。
- 将“目标状态”移动到另一个所需位置。
- 确保这两种状态都不会与机器人本身发生冲突。
- 确保计划路径已可视化。同时选中Planned Path中的Show Trail
- 在Planning选项卡下的MotionPlanning中,点击Plan按钮。应该能够看到手臂移动和轨迹的可视化。
检查轨迹点
可以直观的在RViz中点到点检查轨迹。
- 从"Panels"菜单中,选择"Trajectory - Trajectory Slider".你将看到一个新的Slider面板在RViz中。
- 设置目标姿势,然后执行Plan
- 操作滑块面板,例如:移动滑块,然后点击Play按钮。
规划笛卡尔运动
如果勾选了了“Use Cartesian Path”,机器人将尝试在笛卡尔空间中线性移动末端执行器。
执行轨迹,调整速度
在成功计划后单击“Plan & Execute”或“Execute”会将轨迹发送到机器人,由于你使用了demo.launch
,因此机器人仅是模拟的。
最初,默认速度和加速度为机器人最大值的10%。你可以在下面显示的"Planning"选项卡中更改这些值,也可以在机器人的moveit_config
中更改这些默认值(在 joint_limits.yaml
中)
5. 下一步
RViz Visual Tools
许多教程用RvizVisualToolsGui
逐步完成演示。在继续下一教程之前,最好启用RvizVisualToolsGui。从"Panels"菜单栏中,选择 “Add New Panels”.从菜单中选择"RvizVisualToolsGui"并且点击OK。你将会看到新的面板加入到RViz中。
保存你的配置
RViz使你能保存你的配置在File->Save Config
下。在继续下一教程之前,你应该执行此操作。