在 ROS 2 Humble(对应Ubuntu 22.04)环境下,推荐安装Gazebo 版本是 Gazebo Fortress (也称为Gazebo Classic 的继任者,属于 Ignition Gazebo / Gazebo Sim 系列)。注意:自ROS 2 Humble起,官方已从传统的Gazebo Classic(如Gazebo 11)转向使用Ignition Gazebo (现在统一称为Gazebo Sim),并以版本代号命名(如Fortress、Garden、Harmonic等)。
正确版本对应关系
| Ubuntu 版本 | ROS 2 版本 | 推荐 Gazebo版本 |
|---|---|---|
| 22.04 | Humble | Gazebo Fortress |
| 24.04 | Jazzy | Gazebo Harmonic |
安装步骤(Ubuntu 22.04 + ROS 2 Humble)
1、确保已安装 ROS 2 Humble
如果尚未安装,请先完成 ROS 2 Humble 的安装(桌面版包含RVIz2等工具):
sudoaptupdate&&sudoaptupgrade -ysudoaptinstallsoftware-properties-commoncurlgnupg lsb-releasesudoadd-apt-repository universecurl-sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /tmp/ros.keysudogpg --dearmor -o /usr/share/keyrings/ros-archive-keyring.gpg /tmp/ros.keyecho"deb [arch=$(dpkg --print-architecture)signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu$(lsb_release -cs)main"|sudotee/etc/apt/sources.list.d/ros2.listsudoaptupdatesudoaptinstallros-humble-destop -yecho"source /opt/ros/humble/setup.bash">>~/.bashrcsource~/.bashrc2、安装 Gazebo Fortress(ROS 2 Humble 官方推荐)
ROS 2 Humble 使用 ros_gz 桥接包与Gazebo Sim(Fortress)通信。安装命令如下:
# 添加 Gazebo 官方源(可选但推荐,确保获取最新版)sudoaptinstallwgetlsb-release gnupgwgethttps://packages.osrfoundation.org/gazebo.gpg -O /tmp/gazebo.gpgsudogpg --dearmor -o /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg /tmp/gazebo.gpgecho"deb [arch=$(dpkg --print-architecture)signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable$(lsb_release -cs)main"|sudotee/etc/apt/sources.list.d/gazebo-stable.listsudoaptupdate# 安装 Gazebo Fortress 和 ROS 2 桥接包sudoaptinstallgz-fortress ros-humble-ros-gz注意:在较新文档中,gazebo命令已被 gz 取代。例如:
- 启动仿真:gz sim
- 查看版本:gz --version 或 gz sim --version
3、验证安装
gz sim --version#应输出类似:gz sim version x.x.x (Fortress)运动一个简单世界测试
gz sim -v4 empty.sdf4、(可选)安装TurtleBot3仿真示例(含Gazebo支持)
sudoaptinstallros-humble-turtlebot3-simulations ros-humble-gazebo-ros-pkgsecho"export TURTLEBOTS_MODEL=waffle_pi">>~/.bashrcsource~/.bashrc注意:TurtleBot3官方Humble示例目前仍部分基于 Gazebo Classic。若需安全使用 Gazebo Sim(Fortress),需使用ros_gz桥接或迁移到支持的新模型。
5、常见误区
- 不要安装 gazebo11 或 gazebo(Classic):虽然仍可用,但ROS 2 Humble官方主推的是 Gazebo Sim(Fortress)。
- 包名变化:
- 旧:ros-humble-gazebo-ros-pkgs 用于 Gazebo Classic
- 新:ros-humble-ros-gz 用于 Gazebo Sim(Fortress+)
如希望使用 Gazebo Classic (如 Gazebo 11) (例如为了兼容旧机器人模型),也可以安装,但不推荐用于新项目。