Gazebo 机器人三维物理仿真平台

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 深度集成
Ignition Gazebo (2020-2022) 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-Gazebo 接口
  • 支持话题发布/订阅、服务调用、插件机制

ROS 2(Gazebo Sim)

  • ros_gz(原 ros_ign):ROS 2 与 Gazebo Sim 的桥接包
  • 使用 gz-transport 和 ROS 2 的 DDS 通信
  • 更好的实时性和分布式仿真支持

典型应用场景

  1. 算法验证:在仿真环境中测试导航、感知、控制算法
  2. 硬件在环仿真(HIL):与真实硬件联调
  3. 多机器人仿真:支持大规模集群仿真
  4. 强化学习训练:提供 Gym 接口用于 AI 训练
  5. 竞赛平台:如 DARPA 机器人挑战赛、RoboCup 等

安装方式

Ubuntu(推荐)

bash 复制代码
# 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)
支持多种物理引擎 文档有时滞后于版本更新
丰富的模型库和插件 多机器人仿真时通信延迟

相关资源

相关推荐
某林2129 小时前
跨越底层与AI的鸿沟:ROS2+多模态大模型(Qwen-VL)机器人全链路排障实录
人工智能·stm32·机器人·人机交互·ros2·技术复盘
MIXLLRED12 小时前
Ubuntu 22.04 + ROS2 Humble 上部署 ScaRF‑SLAM指南
ubuntu·slam·ros2·离线建图
某林2121 天前
ROS 2 与大模型融合实战:从进程连环崩溃到类型安全防御的深度排障复盘
c++·python·安全·机器人·人机交互·ros2
济6172 天前
ROS开发专栏---ROS2 机械臂应用入门(1)---JointState 消息解析与机械臂往复运动控制实验---适配Ubuntu 22.04
嵌入式硬件·嵌入式·ros2·机器人开发·机器人方向
济6172 天前
ROS开发专栏---ROS2 三维视觉应用(2)---使用 PCL 进行桌面物品检测实验---适配Ubuntu 22.04
嵌入式硬件·嵌入式·ros2·机器人开发·机器人方向
竹叶青lvye3 天前
ROS2话题、服务、动作通讯
ros2·服务·动作·话题
kyle~3 天前
ROS2---零拷贝
linux·c++·机器人·ros2
济6173 天前
ROS2 Humble 开发专栏---ROS2 三维视觉应用(1)---RGB-D 相机三维点云数据获取实验---适配Ubuntu 22.04
ubuntu·嵌入式·ros2·机器人开发·机器人方向
BestOrNothing_20153 天前
ROS2 话题通信实战:消息对象、Publisher 发布器与 Subscriber 订阅器保姆级教程
c++·ros2·subscriber·publisher·话题通信
曾小蛙5 天前
【ROS2+深度相机】Orbbec相机时图像传输延迟显著 (DDS数据分发服务配置)
ros2·dds·奥比中光·orbbec