Gazebo 是什么:概念与核心术语
一、Gazebo 是什么:概念与核心术语
Gazebo 是一个三维机器人仿真器:它按物理规律推进场景里所有刚体的运动,同时仿真传感器数据,并通过插件把仿真世界与 ROS 打通。你可以在里面跑一台还没造出来的机器人,验证导航参数、测试碰撞逻辑、压测算法在高频数据下的表现。
它解决的问题是「在没有硬件或硬件很贵的情况下做闭环验证」。真机测试成本高、复现难、有安全风险;纯数学仿真又缺少传感器噪声和执行器延迟。Gazebo 的定位在两者之间:物理近似够用、传感器有噪声模型、与 ROS 无缝对接,因此成为 ROS 生态里默认的仿真环境。
Gazebo Classic 与新一代 Gazebo
这里有个必须分清的坑:老一代叫 Gazebo Classic(长期是 gazebo11 这类版本号),新一代原名 Ignition Gazebo,后来统一改称 Gazebo,发行版用名字标识(Citadel、Fortress、Garden、Harmonic 等)。两者 API、插件体系、命令行都不同,ROS2 的桥接包也不同:Classic 用 gazebo_ros_pkgs,新一代用 ros_gz。新项目应当选新一代,具体发行版与 ROS2 发行版的对应关系以官方文档为准。
与相邻仿真器的区别
| 仿真器 | 强项 | 弱项 |
|---|---|---|
| Gazebo | 与 ROS 集成最成熟、传感器与插件生态齐全、宏观场景仿真 | 渲染质量一般、接触求解精度不如专用物理引擎 |
| CoppeliaSim | 建模交互友好、脚本灵活 | 与 ROS2 的对接不如 Gazebo 原生 |
| MuJoCo | 接触丰富场景求解快且准、可微分,强化学习首选之一 | 不是为大规模场景与 ROS 生态设计的 |
| Isaac Sim | RTX 级渲染、GPU 并行、合成数据生成 | 硬件门槛高、体量大 |
核心术语表
| 术语 | 含义 | 说明 |
|---|---|---|
| SDF | 仿真描述格式 | Gazebo 的原生格式,能描述世界、模型、插件、传感器 |
| URDF | ROS 的机器人描述格式 | 描述运动学与外观,但缺少惯性和碰撞的完整表达能力,仿真里通常要补 |
| world 世界 | 包含模型、光照、物理参数的场景文件 | 物理步长等全局参数在这里设 |
| model / link / joint | 模型、连杆、关节 | 惯性矩阵和碰撞体是仿真稳不稳的关键 |
| system plugin | 挂在世界或模型上的功能插件 | 物理引擎、传感器、控制器都靠它接入 |
| 物理步长 | 求解器每次推进的时间 | 步长太大就穿模、抖动,太小就实时跟不上 |
| 实时因子 RTF | 仿真时间与墙上时间的比值 | 小于 1 表示仿真跑不到实时,控制效果会与真机不同 |
| 桥 bridge | Gazebo 与 ROS 之间的话题转换节点 | 新一代里是 ros_gz_bridge |

