一、配置环境
参考来源:https://moveit.picknik.ai/humble/doc/tutorials/tutorials.html
MoveIt 2 目前支持多个版本的 ROS。 安装您喜欢的任何版本。 我们主要支持安装在 Ubuntu 22.04 或 24.04 上的 ROS,我们这里使用Ubuntu22.04版本的humble版本。
1.1 安装ROS2环境
安装 rosdep 以安装系统依赖项:
sudo apt install python3-rosdep
安装 ROS 2 后,请确保您拥有最新的软件包:
sudo rosdep init
rosdep update
sudo apt update
sudo apt dist-upgrade
使用 mixin 安装 Colcon 的 ROS 2 构建系统:
sudo apt install python3-colcon-common-extensions
sudo apt install python3-colcon-mixin
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
安装 vcstool :
sudo apt install python3-vcstool
1.2 创建 Colcon 工作区
mkdir -p ~/ws_moveit/src
1.3 下载 MoveIt 和教程的源代码
cd ~/ws_moveit/src
git clone -b <branch> https://github.com/moveit/moveit2_tutorials
接下来,我们将下载 MoveIt 其余部分的源代码:
vcs import --recursive < moveit2_tutorials/moveit2_tutorials.repos
import 命令可能会要求您提供 GitHub 凭据。 您只需按 Enter 键,直到它继续前进(忽略 “Authentication failed” 错误)。
1.4 构建 Colcon 工作区
首先删除所有以前安装的 moveit 二进制文件:
sudo apt remove ros-$ROS_DISTRO-moveit*
安装 MoveIt 及其所有依赖项的步骤:
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
下一个命令将配置您的 Colcon 工作区:
cd ~/ws_moveit
colcon build --mixin release
最后记得source工作区:
source ~/ws_moveit/install/setup.bash
可选:将上一个命令添加到您的 :.bashrc
echo 'source ~/ws_moveit/install/setup.bash' >> ~/.bashrc
二、RViz 中的 MoveIt 快速入门
Rviz 是 ROS 中的主要可视化工具,也是调试机器人的非常有用的工具。MoveIt Display 插件允许您设置虚拟环境(规划场景)、以交互方式为机器人创建开始和目标状态、测试各种运动规划器以及可视化输出。
2.1 启动演示并配置插件
ros2 launch moveit2_tutorials demo.launch.py rviz_config:=panda_moveit_config_demo_empty.rviz
你会在 RViz 中看到一个空世界,并且必须添加 Motion Planning 插件:
1.在 RViz Displays (RViz 显示) 选项卡中,按 Add (添加):
2.从 moveit_ros_visualization 文件夹中,选择“MotionPlanning”作为 DisplayType。按“确定”。
3.现在就可以在 RViz 中看到 Panda 机器人啦!
加载 Motion Planning Plugin 后,我们可以对其进行配置。在 “Displays” 子窗口的 “Global Options” 选项卡中,将 Fixed Frame 字段设置为/panda_link0
现在,您可以开始为您的机器人(在本例中为 Panda)配置插件。单击“显示”中的“MotionPlanning”。
确保 Robot Description 字段设置为 。robot_description
确保 Planning Scene Topic 字段设置为 。 单击 topic name 以显示 topic-name 下拉列表。/monitored_planning_scene
确保 Planned Path 下的 Trajectory Topic 设置为 。/display_planned_path
在 Planning Request 中,将 Planning Group 更改为 。您还可以在左下角的 MotionPlanning 面板中看到这一点。panda_arm
2.2 玩转可视化机器人
有四种不同的重叠可视化:
规划环境中的 robot 配置(默认处于活动状态)。/monitored_planning_scene
机器人的计划路径(默认处于活动状态)。
绿色:运动规划的开始状态(默认处于禁用状态)。
橙色:运动规划的目标状态(默认处于活动状态)。
可以使用复选框打开和关闭每个可视化的显示状态:
使用 Scene Robot 树菜单中的 Show Robot Visual 复选框规划场景机器人。
使用 Planned Path 树菜单中的 Show Robot Visual 复选框的计划路径。
使用 Planning Request 树菜单中的 Query Start State 复选框的开始状态。
使用 Planning Request 树菜单中的 Query Goal State 复选框的目标状态。
使用所有这些复选框来打开和关闭不同的可视化效果。
2.3 与机器人互动
在接下来的步骤中,我们只需要场景机器人、开始状态和目标状态:
选中 Planned Path 树菜单中的 Show Robot Visual 复选框
取消选中 Scene Robot 树菜单中的 Show Robot Visual 复选框
选中 Planning Request 树菜单中的 Query Goal State 复选框。
选中 Planning Request 树菜单中的 Query Start State 复选框。
现在应该有两个交互式标记。一个与橙色手臂相对应的标记将用于设置运动规划的“目标状态”,另一个对应于绿色手臂的标记用于设置运动规划的“开始状态”。如果您没有看到交互式标记,请按 RViz 顶部菜单中的 Interact(注意:某些工具可能被隐藏,按顶部菜单中的“+”添加 Interact 工具,如下所示)。
现在,您应该能够使用这些标记来拖动手臂并更改其方向。试试看!
2.3.1 移动到碰撞中
对于此部分,请隐藏规划路径和目标状态:
1.取消选中 Planned Path 树菜单中的 Show Robot Visual 复选框
2.取消选中 Planning Request 树菜单中的 Query Goal State 复选框。
现在,应该只看到 Start State(开始状态)(绿色的臂)。尝试将 Arm 移动到其两个链接相互碰撞的配置中。(如果您觉得这很困难,请确保取消选中 MotionPlanning 插件的 Planning 选项卡下的 “Use Collision-Aware IK” 复选框。执行此操作后,发生冲突的链接将变为红色。
现在,选中“Use Collision-Aware IK”复选框,然后再次尝试将其中两个链接移动到彼此碰撞中。选中此复选框后,IK 解算器将继续尝试为所需的末端执行器姿势找到无碰撞的解决方案。如果未选中,求解器将允许在解中发生碰撞。冲突中的链接将始终以红色显示,无论复选框的状态如何。
2.3.2 移出 Reachable Workspace
请注意,当您尝试将末端效应器移出其可访问的工作区时,会发生什么情况。
在进入下一部分之前,请重新启用 planned path 和 goal state:
1.选中 Planned Path 树菜单中的 Show Robot Visual 复选框
2.选中 Planning Request 树菜单中的 Query Goal State 复选框。
2.3.3 移动关节或在 Null 空间中
您可以使用 Joints 选项卡移动 7-DOF 机器人的单个关节和冗余关节。尝试移动“null space exploration”滑块,会出现动画。
2.4 使用 Panda 的 Motion Planning
2.4.1 在 MoveIt RViz 插件中使用 Panda 开始运动规划
将 Start State 移动到所需位置。
将 Goal State 移动到另一个所需的位置。
确保两种状态都未与机器人本身发生冲突。
确保 Planned Path 正在可视化。
此外,选中 Planned Path 树菜单中的 Show Trail 复选框。
在MotionPlanning 窗口的 Planning 选项卡下,按 Plan 按钮。你 应该能够看到手臂移动的可视化和轨迹。
2.4.2 在 RViz 中逐点直观地内省轨迹
从 “面板” 菜单中,选择 “轨迹 - 轨迹滑块”。您将在 RViz 上看到一个新的 Slider 面板。
设置您的目标姿势,然后运行 Plan。
使用 “Slider” 面板进行播放,例如移动滑块,按下 “Play” 按钮。
注意:将 EEF 放置到新目标后,请务必先运行 Plan,然后再运行 Play - 否则您将看到前一个目标的航点(如果可用)。
2.4.3 规划笛卡尔运动
如果激活了“Use Cartesian Path(使用笛卡尔路径)”复选框,则机器人将尝试在笛卡尔空间中线性移动末端执行器。
2.4.4 执行轨迹,调整速度
在成功的计划后点击“计划与执行”或“执行”会将轨迹发送给机器人 - 在这个教程中,由于你使用了,机器人只是被模拟的。demo.launch
最初,默认速度和加速度被缩放到机器人最大值的 10% ()。您可以在如下所示的 Planning 选项卡中更改这些缩放因子,或者在机器人的 中更改这些默认值 (in)。0.1
moveit_config
joint_limits.yaml
后续步骤
RViz 可视化工具
许多教程用于逐步完成演示。在继续学习下一个教程之前,最好启用 RvizVisualToolsGui。moveit_visual_tools
从 “Panels” 菜单中,选择 “Add New Panels”。从菜单中选择“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.rvizmoveit2_tutorials/doc/tutorials/quickstart_in_rviz/launch/