首先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)
- 第一步:导入缺失的 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 推荐的密钥存储位置。
第二步:修改源配置文件
指定 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=…] 部分,否则即使导入了密钥,系统仍会报错。第三步:更新软件包列表
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 克隆源码并编译。以下是完整步骤:
- 创建工作空间并克隆源码
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 仅克隆最新提交以节省时间和空间。 - 安装编译依赖
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。 - 初始化 rosdep
sudo rosdep init
这条命令会创建一个默认的源列表文件 /etc/ros/rosdep/sources.list.d/20-default.list,指向官方的依赖数据库。如果提示“already initialized”,说明之前已初始化过,可跳过此步。 - 更新依赖数据库
rosdep update
这条命令会从远程服务器下载最新的依赖映射表,确保 rosdep install 能正确识别并安装你当前 ROS2 发行版(Jazzy)所需的系统包。注意:此步骤可能需要几秒到几十秒,取决于网络速度。