下表列出了 Gazebo-classic 11 中提供的各项功能,以及迁移到 Gazebo Jetty 的状态。
以下所有 Issue 都在 GitHub 上带有 close the gap 标签。
| 传感器 | Gazebo-classic | Gazebo Sim |
|---|
| 气压(Air pressure) | ✕ | ✓ |
| 高度计(Altimeter) | ✓ | ✓ |
| 包围盒相机(Bounding Box camera) | ✕ | ✓ |
| 相机(Camera) | ✓ | ✓ |
| 接触传感器(Contact sensor) | ✓ | ✓ |
| 深度相机(Depth camera) | ✓ | ✓ |
| 多普勒测速仪(Doppler Velocity Log, DVL) | ✕ | ✓ |
| 力-力矩(Force-torque) | ✓ | ✓ |
| GPS / NavSat | ✓ | ✓ |
| GPU Ray | ✓ | ✓ 已重命名为 GPU Lidar |
| IMU | ✓ | ✓ |
| 逻辑音频传感器(Logical audio sensor) | ✕ | ✓ |
| 逻辑相机(Logical camera) | ✓ | ✓ |
| 磁力计(Magnetometer) | ✓ | ✓ |
| 多相机(Multi-camera) | ✓ | ✕ 可使用相同更新率的独立相机 |
| 光学触觉传感器(Optical tactile sensor) | ✕ | ✓ |
| Ray | ✓ | Issue |
| RFID 传感器和标签(RFID sensor and tag) | ✓ | Issue |
| RGBD 相机(RGBD camera) | ✕ | ✓ |
| 分割相机(Segmentation camera) | ✕ | ✓ |
| 声呐(Sonar) | ✓ | Issue |
| 热成像相机(Thermal camera) | ✕ | ✓ |
| 触发相机(Triggered camera) | ✕ | ✓ |
| 广角相机(Wide-angle camera) | ✓ | ✓ |
| 无线(Wireless) | ✓ | ✓ RFComms |
| 传感器特性 | Gazebo-classic | Gazebo Sim |
|---|
| 自定义更新率(Custom update rate) | ✓ | ✓ |
| 高斯噪声(Gaussian noise) | ✓ | ✓ |
| 自定义传感器(Custom sensors) | ✓ | ✓ |
| 激光逆反射(Laser retroreflection) | ✓ | ✓ |
| 相机畸变(Camera distortion) | ✓ | ✓ |
| 性能指标(Performance metrics) | ✓ | ✓ |
| 功能 | Gazebo-classic | Gazebo Sim |
|---|
| SDF 帧语义(SDF frame semantics) | ✓ | ✓ |
| SDF 参数化(SDF parametrization) | ✕ | ✓ |
| 从本地文件加载模型(Load models from local files) | ✓ | ✓ |
| 闭合运动链(Closed kinematic chains) | ✓ | Issue |
| 嵌套模型(Nested models) | ✓ | ✓ |
| 群体(Populations) | ✓ | Issue |
| 角色(Actors) | ✓ | ✓ |
| 标记(Markers) | ✓ | ✓ |
| 高度图(Heightmaps) | ✓ | ✓ |
| DEM(数字高程模型)(DEM, Digital Elevation Models) | ✓ | ✓ |
| 多段线(Polylines) | ✓ | ✓ |
| 世界插件(World plugins) | ✓ | ✓ 现在称为 System 插件 |
| 模型插件(Model plugins) | ✓ | ✓ 现在称为 System 插件 |
| 传感器插件(Sensor plugins) | ✓ | ✓ 现在称为 System 插件 |
| 可视化插件(Visual plugins) | ✓ | ✓ |
| GUI 插件(GUI plugins) | ✓ | ✓ Gazebo GUI 插件与 Gazebo GUI 系统 |
| 系统插件(System plugins) | ✓ | ✓ 通过 Gazebo Launch(已弃用,参见 迁移指南) |
| SDF Python 绑定(SDF python bindings) | x | ✓ |
| SDF <-> Mujoco MJCF | x | ✓ |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| AckermannSteering | ✕ | ✓ |
| ActorPlugin | ✓ | ✕ 查看 FollowActor 了解 Actor API 的演示 |
| ActuatorPlugin | ✓ | |
| ArduCopterPlugin | ✓ | |
| AttachLightPlugin | ✓ | ✕ 不适用,请使用 SDF |
| Breadcrumbs | ✕ | ✓ |
| BuoyancyPlugin | ✓ | ✓ |
| CartDemoPlugin | ✓ | ✕ |
| CessnaPlugin | ✓ | ✕ |
| DetachableJoint | ✕ | ✓ |
| DiffDrivePlugin | ✓ | ✓ |
| DriveToPoseController | ✕ | ✓ |
| ElevatorPlugin | ✓ | ✓ |
| FlashLightPlugin | ✓ | |
| FollowerPlugin | ✓ | |
| FreeSpaceExplorer | ✕ | ✓ |
| GimbalSmall2dPlugin | ✓ | |
| GravityCompensationPlugin | ✓ | |
| HarnessPlugin | ✓ | |
| HydraDemoPlugin | ✓ | |
| InitialVelocityPlugin | ✓ | ✓(使用 VelocityControl 或 JointController) |
| JointControlPlugin | ✓ (force / pos / vel,来自 SDF) | ✓ (vel,来自 msg) |
| JointStatePublisher | ✕ | ✓ |
| JointTrajectoryPlugin | ✓ | ✓ |
| KeysToCmdVelPlugin | ✓ | 使用 gz::gui::KeyPublisher 配合 gz::gazebo::systems::TriggeredPublisher |
| KeysToJointsPlugin | ✓ | 使用 gz::gui::KeyPublisher 配合 gz::gazebo::systems::TriggeredPublisher |
| LedPlugin | ✓ | |
| LiftDragPlugin | ✓ | ✓ |
| LinearBatteryConsumerPlugin | ✓ | ✓ |
| LinearBatteryPlugin | ✓ | ✓ |
| LinkPlot3DPlugin | ✓ | ✓(已重命名为 Plot3D) |
| LookupWheelSlipPlugin | ✕ | ✓ |
| MecanumDrive | ✕ | ✓ |
| MudPlugin | ✓ | |
| MulticopterMotorModel | ✕ | ✓ |
| OdometryPublisherPlugin | ✕ | ✓ |
| PlaneDemoPlugin | ✓ | |
| PosePublisher | ✕ | ✓ |
| RandomVelocityPlugin | ✓ | |
| RegionEventBoxPlugin | ✓ | |
| SimpleTrackedVehiclePlugin | ✓ | ✓ |
| SkidSteerDrivePlugin | ✓ | ✓ |
| SphereAtlasDemoPlugin | ✓ | ✕ |
| TouchPlugin | ✓ | ✓ |
| TrackedVehiclePlugin | ✓ | ✓ |
| VariableGearboxPlugin | ✓ | |
| VehiclePlugin | ✓ | |
| WheelSlipPlugin | ✓ | ✓ |
| WheelTrackedVehiclePlugin | ✓ | ✓ |
| KineticEnergyMonitor | ✕ | ✓ |
| Buoyancy engine | ✕ | ✓ |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| ArrangePlugin | ✓ | |
| ContainPlugin | ✓ | 部分移植,Issue |
| EntitySemantics | ✕ | ✓ |
| HydraPlugin | ✓ | |
| JoyPlugin | ✓ | ✓ 已迁移为 Gazebo Launch 插件 |
| MisalignmentPlugin | ✓ | |
| RubblePlugin | ✓ | |
| StaticMapPlugin | ✓ | |
| TransporterPlugin | ✓ | |
| WindPlugin | ✓ | ✓ |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| BreakableJointPlugin | ✓ | |
| CameraPlugin | ✓ | Issue |
| ContactPlugin | ✓ | ✓ |
| DepthCameraPlugin | ✓ | Issue |
| FiducialCameraPlugin | ✓ | |
| ForceTorquePlugin | ✓ | ✓ |
| GpuRayPlugin | ✓ | Issue |
| ImuSensorPlugin | ✓ | ✓ |
| LensFlareSensorPlugin | ✓ | |
| MagnetometerPlugin | ✕ | ✓ |
| OpticalTactilePlugin | ✕ | ✓ |
| PressurePlugin | ✓ | |
| RayPlugin | ✓ | Issue |
| RaySensorNoisePlugin | ✓ | ✕ 请使用 SDF |
| SonarPlugin | ✓ | Issue |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| AmbientOcclusionVisualPlugin | ✓ | |
| BlinkVisualPlugin | ✓ | |
| HeightmapLODPlugin | ✓ | |
| ShaderParamVisualPlugin | ✓ | ✓ |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| CessnaGUIPlugin | ✓ | |
| KeyboardGUIPlugin | ✓ | gz::gui::KeyPublisher |
| LookAtDemoPlugin | ✓ | |
| TimerGUIPlugin | ✓ | |
| 插件 | Gazebo-classic | Gazebo Sim |
|---|
| ColladaWorldExporter | ✕ | ✓ |
| ModelPropShop | ✓ | ✓ |
| RestUiPlugin | ✓ | |
| RestWebPlugin | ✓ | |
| StopWorldPlugin | ✓ | |
| 功能 | Gazebo-classic | Gazebo Sim |
|---|
| 播放 / 暂停 / 单步 | ✓ | ✓ |
| 重置世界 / 模型 | ✓ | Issue |
| 世界统计 | ✓ | ✓ |
| 话题回显 | ✓ | ✓ |
| 图像查看器 | ✓ | ✓ |
| 平移 / 旋转 | ✓ | ✓ |
| 缩放模型 | ✓ | Issue |
| 从 Fuel 插入模型 | 部分支持 | ✓ |
| 从磁盘插入模型 | ✓ | ✓ |
| 插入简单形状 | ✓ | ✓ |
| 插入简单灯光 | ✓ | ✓ |
| 删除模型 | ✓ | ✓ |
| 世界树 | ✓ | ✓ |
| 场景属性 | ✓ | Issue |
| 日志录制 / 回放 | ✓ | ✓ |
| 绘图 | ✓ | ✓ |
| 视频录制 | ✓ | ✓ |
| 截图 | ✓ | ✓ |
| 视角 | ✓ | ✓ |
| 施加力 / 力矩 | ✓ | |
| 以透明方式显示 | ✓ | ✓ |
| 以线框方式显示 | ✓ | ✓ |
| 显示关节 | ✓ | ✓ |
| 显示碰撞体 | ✓ | ✓ |
| 显示惯量 | ✓ | ✓ |
| 显示质心(CoM) | ✓ | ✓ |
| 显示接触 | ✓ | ✓ |
| 显示灯光 | ✓ | ✓ |
| 跟随 / 移动到 | ✓ | ✓ |
| 复制 / 粘贴 | ✓ | ✓ |
| 建筑编辑器 | ✓ | |
| 模型编辑器 | ✓ | Issues |
| FPS 视角控制 | ✓ | |
| 正交投影 | ✓ | ✓ |
| 撤销 / 重做 | ✓ | Issue |
| 保存世界 | ✓ | ✓ |
| 保存 GUI 配置 | ✓ | ✓ |
| 配色方案和主题 | ✕ | ✓ |
| 控件定位、调整大小和配置 | ✕ | ✓ |
| 从菜单加载 GUI 插件 | ✕ | ✓ |
| 编辑模型位姿 | ✓ | ✓ |
| 编辑灯光属性 | ✓ | ✓ |
| 编辑物理属性 | ✓ | ✓ |
在 Gazebo 中,物理引擎以插件形式集成,因此无需修改核心源码即可接入任何引擎。
| 功能 | Gazebo-classic | Gazebo Sim |
|---|
| ODE 引擎 | ✓ | Issue |
| Bullet 引擎 | ✓ | ✓ |
| DART 引擎 | ✓ | ✓ 随 gz-physics 一起提供的插件 |
| Simbody 引擎 | ✓ | Issue |
| TPE 引擎 | ✕ | ✓ |
| 自定义引擎插件 | ✕ | ✓ |
| 碰撞位掩码 | ✓ | ✓ |
| 恢复系数 | ✓ | ✓ |
| 碰撞检测器 | ✓ | ✓ |
| 求解器 | ✓ | ✓ |
渲染引擎同样以插件形式集成,无需修改核心源码即可接入任何引擎。
| 功能 | Gazebo-classic | Gazebo Sim |
|---|
| Ogre 1.x 引擎 | ✓ | ✓ |
| Ogre 2.x 引擎 | ✕ | ✓ |
| Optix 引擎 | ✕ | ✓ 部分支持 |
| 自定义引擎插件 | ✕ | ✓ |
| 天空 | ✓ | ✓ |
| 雾 | ✓ | |
| 材质脚本 | ✓ (Ogre 1.x 脚本) | 不适用 |
| 基于物理的渲染(PBR) | ✕ | ✓(适用于支持它的引擎,如 Ogre 2) |
| 法线贴图 | ✓ | ✓ |
| 环境贴图 | ✕ | ✓ |
| 全局光照 | ✕ | ✓ |
| 光照贴图 | ✕ | ✓ |
| 粒子效果 | ✕ | ✓ |
| 渲染顺序 | ✕ | ✓ |
| 投影仪 | ✕ | ✓ |
通过 ros_gz 包实现 ROS 集成。
支持的版本:
- ROS 2 Jazzy(源码安装)/ Rolling(源码安装)
注意:ROS 2 的二进制包通常会在 Jetty 发布一段时间后才会提供。
对于 ROS 2 Rolling,该发行版会随 REP-2000 中定义的 ROS 2 下一版本更新。因此,当 ROS 2 Kilted 被列入 REP-2000 后,也将纳入 Gazebo Jetty 的支持范围。
| 平台 | Gazebo-classic | Gazebo Sim |
|---|
| Ubuntu | ✓ | ✓ |
| OSX | ✓ | 大部分组件可正常工作,待解决问题:render window |
| Windows | ✓ | 所有库均可编译,底层库运行良好:Issue |
| 功能 | Gazebo-classic | Gazebo Sim |
|---|
| 嵌套模型 | ✓ | ✓ |
| 日志 / 回放 | ✓ | ✓ |
| Web 客户端(GzWeb) | ✓ | ✓ |
| COLLADA 网格 | ✓ | ✓ |
| OBJ 网格 | ✓ | ✓ |
| STL 网格 | ✓ | ✓ |
| USD 网格 | ✕ | ✓ |
| 代码内省 | ✓ | 所有仿真状态都可以从系统插件或通过 SceneBroadcaster 的状态话题访问 |
| 跨进程分布式仿真 | ✕ | (即将推出) |
| 增量加载关卡 | ✕ | ✓ |
| 在线模型数据库 | gazebo_models 仓库 | Gazebo Fuel |
| 保存的仿真状态 | ✓ | Issue |
| 球体、圆柱体和长方体图元 | ✓ | ✓ |
| 椭球体和胶囊体图元 | ✕ | ✓ |
| 水动力学 | ✕ | ✓ |
| 洋流 | ✕ | ✓ |
| 测试夹具 | ✓ | ✓ |
| 球面坐标 | ✓ | ✓ |
| 通用通信系统 | ✕ | ✓ |
| 声学通信 | ✕ | ✓ |
| 静态链接插件 | ✕ | ✓ |