用ROS2 、 Gazebo和 MoveIt2做机械臂仿真
2026/6/22 16:39:19 网站建设 项目流程

首先Ros2的安装参考步骤,可以参考本人的这一篇博客:对于ROS2的学习日记

仿真安装的学习文章参考的是这一篇文章【机器人】ROS2 机械臂控制(MoveIt2)从入门到实战
需要注意的是,要根据自己linux系统版本去下载对应的Gazebo,我的系统是24.04, sudo apt install gz-harmonic

在安装的时候出现了这样的错误

我问的千问给的解决办法
遇到的问题是 Ubuntu 24.04 系统中添加第三方 Gazebo 软件源后,因缺少对应 GPG 公钥导致 apt update 失败。这是 Ubuntu 24.04 引入更严格安全机制后的常见问题。以下是完整、安全、推荐的解决方案:
✅ 推荐操作步骤(适用于 Ubuntu 24.04)

  1. 第一步:导入缺失的 GPG 密钥

从 OSRF 官方获取并导入密钥,推荐使用现代方式下载并转换为 gpg 格式,存入系统密钥环目录

  • wget -qO - https://packages.osrfoundation.org/gazebo.key | sudo gpg
    –dearmor -o /usr/share/keyrings/gazebo-archive-keyring.gpg

💡 说明:此命令会从 OSRF 官方服务器下载密钥,并用 gpg --dearmor 转为二进制格式,保存到 /usr/share/keyrings/ 目录下,这是 Ubuntu 24.04 推荐的密钥存储位置。

  1. 第二步:修改源配置文件
    指定 Signed-By打开或创建 Gazebo 源的配置文件:sudo nano /etc/apt/sources.list.d/gazebo-stable.list
    将内容替换为以下格式(确保包含 signed-by 字段):
    deb [signed-by=/usr/share/keyrings/gazebo-archive-keyring.gpg] https://packages.osrfoundation.org/gazebo/ubuntu-stable noble main
    ⚠️ 注意:如果你之前使用的是旧格式(如 deb https://…),必须加上 [signed-by=…] 部分,否则即使导入了密钥,系统仍会报错。

  2. 第三步:更新软件包列表
    sudo apt update
    此时应不再出现 GPG 错误,Gazebo 源将被正常识别和更新。
    输入 gz -sim(显示下面基本上就是安装成功了)

    对于安装MoveIt2要根据linux系统和ROS2版本进行安装,针对我的 Ubuntu 24.04 + ROS 2 Jazzy 环境,正确的安装命令是:
    sudo apt install ros-jazzy-moveit
    验证是否安装成功
    dpkg -l | grep moveit
    如果安装成功,你会看到类似这样的输出,其中状态为 ii 表示已安装
    ii ros-jazzy-moveit … (版本信息)
    ii ros-jazzy-moveit-core …
    ii ros-jazzy-moveit-msgs …
    … (其他相关包)
    只要 ros-jazzy-moveit 这一行存在且状态是 ii,就说明主包已安装。

    或者尝试启动 MoveIt Setup Assistant
    ros2 launch moveit_setup_assistant setup_assistant.launch.py

    sudo apt install ros-jazzy-moveit 对应的安装在/opt/ros/jazzy/

ROS2 、 Gazebo和 MoveIt2这三个的关系
工具 核心角色一句话理解

  • ROS2 通信与控制中枢 整个系统的 “大脑和神经系统”,负责节点间通信、话题 / 服务调度、硬件抽象,让不同模块能互相 “对话”
  • Gazebo 物理仿真引擎 虚拟世界的 “物理实验室”,模拟机械臂的运动、碰撞、重力、传感器数据,提供真实的物理环境
  • MoveIt2 运动规划库 机械臂的 “路径规划师”,负责机械臂的避障、轨迹生成、逆运动学求解,算出怎么安全地从 A 点移动到 B 点

成功安装了 ROS2、Gazebo 和 MoveIt2,接下来可以进入实操阶段,通过运行官方教程样例来快速上手机械臂的运动规划与可视化控制。以下是具体操作步骤:
一.加载环境配置
打开终端,输入以下命令并回车(这一步是为了告诉系统去哪里找刚才安装的软件包):
source /opt/ros/jazzy/setup.bash

二.启动演示程序,复制并粘贴以下长命令,然后回车:ros2 launch moveit2_tutorials demo.launch.py rviz_tutorial:=true

出现了这样的错误
解决办法:sudo apt update
sudo apt install ros-jazzy-moveit2-tutorials
又会遇到一个错误遇到的错误 E: Unable to locate package ros-jazzy-moveit2-tutorials 是因为 ROS2 Jazzy 发行版尚未在官方二进制仓库中提供 moveit2_tutorials 包。这是当前版本的正常现象,因为 Jazzy 是较新的 LTS 版本,部分教程包仍在开发或等待发布。
解决方案:从源码编译安装教程包
既然无法通过 apt 安装,你需要手动从 GitHub 克隆源码并编译。以下是完整步骤:

  1. 创建工作空间并克隆源码
    mkdir -p ~/moveit2_ws/src
    cd ~/moveit2_ws/src
    git clone https://github.com/ros-planning/moveit2_tutorials.git -b jazzy --depth 1
    说明:-b jazzy 指定使用 Jazzy 分支,–depth 1 仅克隆最新提交以节省时间和空间。
  2. 安装编译依赖
    cd ~/moveit2_ws
    rosdep install -r --from-paths src --ignore-src --rosdistro jazzy -y
    注意:如果提示 rosdep 未安装,请先执行 sudo apt install python3-rosdep 并初始化 sudo rosdep init && rosdep update。
  3. 初始化 rosdep
    sudo rosdep init
    这条命令会创建一个默认的源列表文件 /etc/ros/rosdep/sources.list.d/20-default.list,指向官方的依赖数据库。如果提示“already initialized”,说明之前已初始化过,可跳过此步。
  4. 更新依赖数据库
    rosdep update
    这条命令会从远程服务器下载最新的依赖映射表,确保 rosdep install 能正确识别并安装你当前 ROS2 发行版(Jazzy)所需的系统包。注意:此步骤可能需要几秒到几十秒,取决于网络速度。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询