【ROS2】Moveit!之环境搭建
一、配置环境
参考来源:https://moveit.picknik.ai/humble/doc/tutorials/tutorials.html
MoveIt 2 目前支持多种 ROS 版本可供选择。 您可以选择任意 ROS 版本进行安装。 我们主要推荐将 ROS 安装在 Ubuntu 22.04 或者 24.04 系统上,默认配置中我们会选择 Ubuntu 22.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键,程序将一直运行下去(除非遇到Auth失败的情况)。
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 核心的可视化工具之一,也是机器人调试的重要辅助软件。该插件支持您配置虚拟环境(即规划场景),并通过交互界面设定机器人起始与目标状态,并对多种运动规划算法进行测试与输出结果可视化。
2.1 启动演示并配置插件
ros2 launch moveit2_tutorials demo.launch.py rviz_config:=panda_moveit_config_demo_empty.rviz
显示设置
当你首次打开 RViz 时,默认界面是一个空白空间,并且系统会提示你安装必要的插件以启动模拟环境。请按照以下步骤完成配置:
显示设置

加载 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 复选框。
现存在两个交互式标记。其中与橙色手臂相匹配的一个标记将被用来配置运动规划的目标状态(即End State),而与绿色手臂相匹配的一个则将被用来配置运动规划的起始状态(即Start State)。如果您未能找到交互式标注项,请您依次点击RViz菜单栏中的"Interact"选项(请注意:某些版本可能隐藏此功能项,请您在菜单栏中找到并点击"-"符号后选择"Interact"功能)

现在,您应该能够使用这些标记来拖动手臂并更改其方向。试试看!
2.3.1 移动到碰撞中
对此部分,请隐藏规划路径和目标状态:
- 移除 Planned Path 树菜单中的 显示机器人视觉 复选框
- 移除 Planning Request 树菜单中的 查询目标状态 复选框。
在当前状态下,在屏幕中心只会出现Start State(起始状态)(绿色的手臂)。试着将臂移动至其两个连接端可能出现碰撞的情况。(如果觉得这有点难,请确保取消选中MotionPlanning插件的Planning选项卡下的“Use Collision-Aware IK”复选框。完成此操作后,在这种情况下冲突连接会呈红色标记。
当您选择“Use Collision-Aware IK”复选框时(或者当您勾上此选项后),您可以试着将其中两个链接移动到彼此之间发生碰撞的位置(或者将其移动至相互接触区域)。一旦选择该选项后(或者此选项被勾上),解算器会继续寻找一个无冲突的解决方案来满足末端执行器所需的位置(或者所需的目标位置)。如果此选项未被勾上(或者未被选择),则求解器可能会接受包含碰撞的解决方案(或者可能会生成包含潜在冲突的情况)。无论是否选择了该选项(或者无论该选项是否被勾上),发生冲突的链接始终会以红色显示。
2.3.2 移出 Reachable Workspace
当试图将末端执行器移出其不可操作区域时,请问会出现什么结果吗?

在进入下一阶段之前,请确保勾选并重新启用 planned route 和 goal condition。
请依次完成以下操作:
- 勾选并查看 robot visual preview。
- 勾选并查询规划请求的条件状态设置。
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 按钮,在按下 Plan 按钮后,请注意查看窗口中的实时可视化效果以及运动轨迹信息
2.4.2 在 RViz 中逐点直观地内省轨迹
从 “面板” 菜单中,选择 “轨迹 - 轨迹滑块”。您将在 RViz 上看到一个新的 Slider 面板。
设置您的目标姿势,然后 Plan。
使用 “Slider” 面板进行播放,例如移动滑块,按下 “Play” 按钮。
请注意,在将EEF置于新目标之后,请确保先进行规划操作后再执行游戏流程——否则可能会出现上一项目标的位置显示(如果可用)。
2.4.3 规划笛卡尔运动
当用户勾选了'Use Cartesian Path(使用笛卡尔路径)'复选框时,则机器人会被安排在线性模式下操作末端执行器。
2.4.4 执行轨迹,调整速度
在完成了所有计划后,在线点击"计划与执行"或直接选择"执行"操作会导致轨迹被传递给机器人——在这种特定的教程中,在指导期间你所使用的机器人仅仅处于模拟状态。
初始设置时,默认的速度和加速度被归一化为机器人最大值的10%()。在指定的Planning选项卡中,请修改这些缩放因子;或者在机器人的内部设置为新的默认值(in)。参数包括:0.1,moveit_config,joint_limits.yaml。
后续步骤
RViz 可视化工具
大量教学资源专门设计用于指导逐步演示的过程。在深入研究下一个教学单元之前,请确保已正确加载 moveit_visual_tools 以避免潜在操作错误。
通过 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/
