Feature comparison#

A list of features present in Gazebo-classic version 11 and the status of their migration to Gazebo Harmonic.

All the issues below are labeled with close the gap on GitHub.

Sensors#

Sensor

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

✓ Renamed to GPU Lidar

IMU

Logical audio sensor

Logical camera

Magnetometer

Multi-camera

✕ Use individual cameras with same update rate

Optical tactile sensor

Ray

Issue

RFID sensor and tag

Issue

RGBD camera

Segmentation camera

Sonar

Issue

Thermal camera

Triggered camera

Wide-angle camera

Wireless

✓ RFComms

Sensor features

Gazebo-classic

Gazebo Sim

Custom update rate

Gaussian noise

Custom sensors

Laser retroreflection

Camera distortion

Performance metrics

SDF Features#

Feature

Gazebo-classic

Gazebo Sim

SDF frame semantics

SDF parametrization

Load models from local files

Closed kinematic chains

Issue

Nested models

Populations

Issue

Actors

Markers

Heightmaps

DEM (Digital Elevation Models)

Polylines

World plugins

✓ Now called System plugin

Model plugins

✓ Now called System plugin

Sensor plugins

✓ Now called System plugin

Visual plugins

GUI plugins

✓ Gazebo GUI plugins and Gazebo GUI systems

System plugins

✓ Through Gazebo Launch

SDF python bindings

x

SDF <-> Mujoco MJCF

x

Plugins#

Model plugins#

Plugin

Gazebo-classic

Gazebo Sim

AckermannSteering

ActorPlugin

✕ See FollowActor for a demo of Actor APIs

ActuatorPlugin

ArduCopterPlugin

AttachLightPlugin

✕ Does not apply, use SDF

Breadcrumbs

BuoyancyPlugin

CartDemoPlugin

CessnaPlugin

DetachableJoint

DiffDrivePlugin

ElevatorPlugin

FlashLightPlugin

FollowerPlugin

GimbalSmall2dPlugin

GravityCompensationPlugin

HarnessPlugin

HydraDemoPlugin

InitialVelocityPlugin

✓ (use VelocityControl or JointController)

JointControlPlugin

✓ (force / pos / vel, from SDF)

✓ (vel, from msg)

JointStatePublisher

JointTrajectoryPlugin

KeysToCmdVelPlugin

Use gz::gui::KeyPublisher with gz::gazebo::systems::TriggeredPublisher

KeysToJointsPlugin

Use gz::gui::KeyPublisher with gz::gazebo::systems::TriggeredPublisher

LedPlugin

LiftDragPlugin

LinearBatteryConsumerPlugin

LinearBatteryPlugin

LinkPlot3DPlugin

✓ (renamed to Plot3D)

MecanumDrive

MudPlugin

MulticopterMotorModel

OdometryPublisherPlugin

PlaneDemoPlugin

PosePublisher

RandomVelocityPlugin

RegionEventBoxPlugin

SimpleTrackedVehiclePlugin

SkidSteerDrivePlugin

SphereAtlasDemoPlugin

TouchPlugin

TrackedVehiclePlugin

VariableGearboxPlugin

VehiclePlugin

WheelSlipPlugin

WheelTrackedVehiclePlugin

KineticEnergyMonitor

Buoyancy engine

World plugins#

Plugin

Gazebo-classic

Gazebo Sim

ArrangePlugin

ContainPlugin

Partial port, Issue

HydraPlugin

JoyPlugin

✓ Migrated as an Gazebo Launch plugin

MisalignmentPlugin

RubblePlugin

StaticMapPlugin

TransporterPlugin

WindPlugin

Sensor plugins#

Plugin

Gazebo-classic

Gazebo Sim

BreakableJointPlugin

CameraPlugin

Issue

ContactPlugin

DepthCameraPlugin

Issue

FiducialCameraPlugin

ForceTorquePlugin

GpuRayPlugin

Issue

ImuSensorPlugin

LensFlareSensorPlugin

MagnetometerPlugin

OpticalTactilePlugin

PressurePlugin

RayPlugin

Issue

RaySensorNoisePlugin

✕ Use SDF

SonarPlugin

Issue

Visual plugins#

Plugin

Gazebo-classic

Gazebo Sim

AmbientOcclusionVisualPlugin

BlinkVisualPlugin

HeightmapLODPlugin

ShaderParamVisualPlugin

GUI plugins#

Plugin

Gazebo-classic

Gazebo Sim

CessnaGUIPlugin

KeyboardGUIPlugin

gz::gui::KeyPublisher

LookAtDemoPlugin

TimerGUIPlugin

System plugins#

Plugin

Gazebo-classic

Gazebo Sim

ColladaWorldExporter

ModelPropShop

RestUiPlugin

RestWebPlugin

StopWorldPlugin

GUI#

Feature

Gazebo-classic

Gazebo Sim

Play / pause / step

Reset world / models

Issue

World stats

Topic echo

Image viewer

Translate / rotate

Scale models

Issue

Insert models from Fuel

Partial support

Insert models from disk

Insert simple shapes

Insert simple lights

Delete models

World tree

Scene properties

Issue

Log recording / playback

Plotting

Video recording

Screenshot

View angles

Apply force / torque

Visualize as transparent

Visualize as wireframe

Visualize joints

Visualize collisions

Visualize inertia

Visualize CoM

Visualize contacts

Visualize lights

Follow / move to

Copy / paste

Building editor

Model editor

Issues

FPS view control

Orthographic projection

Undo / redo

Issue

Save world

Save GUI configuration

Color scheme and themes

Position, resize and configure widgets

Load GUI plugins from menu

Edit model pose

Edit light properties

Edit physics properties

Physics#

In Gazebo Physics, physics engines are integrated as plugins, so any engine can be integrated without changing the core source code, as it was the case in Gazebo.

Feature

Gazebo-classic

Gazebo Sim

ODE engine

Issue

Bullet engine

DART engine

✓ Plugin shipped with gz-physics

Simbody engine

Issue

TPE engine

Custom engine plugins

Collide bitmasks

Restitution coefficient

Collision detector

Solver

Rendering#

In Gazebo Rendering, render engines are integrated as plugins, so any engine can be integrated without changing the core source code.

Feature

Gazebo-classic

Gazebo Sim

Ogre 1.x engine

Ogre 2.x engine

Optix engine

✓ Partial support

Custom engine plugins

Sky

Fog

Material scripts

✓ (Ogre 1.x scripts)

Does not apply

Physically Based Rendering (PBR)

✓ (with engines that support it, like Ogre 2)

Normal maps

Environment maps

Lightmaps

Particle effects

Render order

Projector

(ogre 1.x only)

ROS integration#

ROS integration through the ros_gz packages.

Supported versions:

  • ROS 2 Jazzy (from binary) / Rolling (from source)

For ROS 2 Rolling, the Rolling distribution moves with the next future release of ROS 2 defined in REP-2000.

Platforms#

Platform

Gazebo-classic

Gazebo Sim

Ubuntu

OSX

Most of the stack works, outstanding issues: render window

Windows

All libraries compile, low-level libraries function well: Issue

Others#

Feature

Gazebo-classic

Gazebo Sim

Nested models

Log / playback

Web client (GzWeb)

COLLADA meshes

OBJ meshes

STL meshes

USD meshes

Code introspection

All simulation state is accessible from system plugins or through the SceneBroadcaster’s state topic

Distribute simulation across processes

(coming up)

Incrementally load levels

Online model database

gazebo_models repository

Gazebo Fuel

Saved simulation states

Issue

Sphere, cylinder and box primitives

Ellipsoid and capsule primitives

Hydrodynamics

Ocean currents

Test fixture

Spherical coordinates

Generic comms system

Acoustic communication

Static linked plugins