Gazebo 简介
Gazebo 是一款由 Open Robotics(前身为 Willow Garage 和 OSRF)开发的开源 3D 机器人仿真软件。它是目前全球主流的机器人仿真平台之一,被广泛应用于学术研究、工业开发与机器人竞赛中。
核心特性
1. 物理仿真引擎
- ODE(Open Dynamics Engine):默认物理引擎,支持刚体动力学。
- Bullet:支持软体动力学与复杂碰撞检测。
- Simbody:提供生物力学级的高精度仿真。
- DART:基于广义坐标的高效动力学仿真引擎。
2. 3D 图形渲染
- OGRE(Object-Oriented Graphics Rendering Engine):提供高质量的 3D 可视化效果。
- 支持逼真的光照、阴影、材质与纹理渲染。
- 支持多摄像头视角配置与传感器数据可视化。
3. 传感器仿真
支持多种机器人传感器的仿真,包括但不限于:
- 摄像头(Camera):RGB 相机、深度相机
- 激光雷达(LiDAR):2D/3D 激光扫描
- IMU(惯性测量单元)
- GPS、气压计、磁力计
- 接触传感器、力/力矩传感器
- RFID、超声波传感器等
4. 机器人模型支持
- SDF(Simulation Description Format):Gazebo 原生 XML 格式,用于描述机器人、环境及物理属性。
- URDF(Unified Robot Description Format):ROS 标准格式,可通过插件自动转换为 SDF。
- 内置模型数据库(Gazebo Model Database),包含数千种预置模型。
软件架构
┌─────────────────────────────────────┐
│ 用户界面层 (GUI) │
│ (场景视图、模型编辑器、插件面板) │
├─────────────────────────────────────┤
│ 仿真引擎层 (Server) │
│ (物理引擎、传感器管理、世界状态) │
├─────────────────────────────────────┤
│ 通信层 (Transport) │
│ (基于 Google Protobuf 的发布/订阅)│
├─────────────────────────────────────┤
│ 物理引擎层 │
│ (ODE / Bullet / Simbody / DART) │
└─────────────────────────────────────┘
主要版本演进
| 版本 | 发布时间 | 主要特性 |
|---|---|---|
| Gazebo Classic (1.x-11.x) | 2002-2022 | 基于 OGRE 1.x,与 ROS 1 深度集成 |
| Ignition Gazebo | 2020-2022 | 采用模块化架构,初步支持云端仿真 |
| Gazebo Sim (gz-sim) | 2022-至今 | 全新架构,Ignition 的延续,全面支持 ROS 2 |
| Gazebo Harmonic | 2023 | LTS 长期支持版本,官方支持至 2028 年 |
注意:Gazebo Classic(11.x)已于 2025 年 1 月停止维护,官方推荐迁移至 Gazebo Sim (Ignition) 系列。
与 ROS 的集成
Gazebo 与 ROS(Robot Operating System) 实现了无缝集成:
ROS 1(Gazebo Classic)
gazebo_ros_pkgs:提供 ROS 1 与 Gazebo 的通信接口。- 支持话题发布/订阅、服务调用及自定义插件机制。
ROS 2(Gazebo Sim)
ros_gz(原ros_ign):ROS 2 与 Gazebo Sim 的官方桥接包。- 底层使用
gz-transport与 ROS 2 的 DDS 通信中间件。 - 提供更优的实时性与分布式仿真支持。
典型应用场景
- 算法验证:在仿真环境中测试导航、感知与控制算法。
- 硬件在环仿真(HIL):与真实控制器或硬件进行联调测试。
- 多机器人仿真:支持大规模机器人集群的协同仿真。
- 强化学习训练:提供 Gym 接口,便于 AI 算法训练与评估。
- 竞赛平台:广泛应用于 DARPA 机器人挑战赛、RoboCup 等赛事。
安装方式
Ubuntu(推荐)
# 安装 Gazebo Sim (最新版)
sudo apt install gz-harmonic
# 或安装 Gazebo Classic(已停止维护,仅用于旧项目)
sudo apt install gazebo11
源码编译
支持 Linux、macOS 和 Windows(实验性)。编译前需安装以下依赖:
- OGRE 3D 渲染引擎
- 物理引擎(ODE/Bullet 等)
- Qt5/Qt6(用于 GUI)
- protobuf、Boost 等基础库
优缺点分析
| ✅ 优点 | ❌ 缺点 |
|---|---|
| 开源免费,社区活跃度高 | 学习曲线相对陡峭 |
| 物理仿真精度高 | 大规模复杂场景下性能受限 |
| 与 ROS 生态深度集成 | 图形渲染效果不及部分商业软件(如 Isaac Sim) |
| 支持多种物理引擎切换 | 官方文档更新有时滞后于新版本 |
| 内置丰富的模型库与插件生态 | 多机器人仿真时易出现通信延迟 |
相关资源
- 官网:https://gazebosim.org
- 官方文档:https://gazebosim.org/docs
- GitHub 仓库:https://github.com/gazebosim
- 模型库 (Fuel):https://app.gazebosim.org/fuel

