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 |
✓ |
|
RFID sensor and tag |
✓ |
|
RGBD camera |
✕ |
✓ |
Segmentation camera |
✕ |
✓ |
Sonar |
✓ |
|
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 |
✓ |
|
Nested models |
✓ |
✓ |
Populations |
✓ |
|
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 |
KeysToJointsPlugin |
✓ |
Use |
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 |
✓ |
|
ContactPlugin |
✓ |
✓ |
DepthCameraPlugin |
✓ |
|
FiducialCameraPlugin |
✓ |
|
ForceTorquePlugin |
✓ |
✓ |
GpuRayPlugin |
✓ |
|
ImuSensorPlugin |
✓ |
✓ |
LensFlareSensorPlugin |
✓ |
|
MagnetometerPlugin |
✕ |
✓ |
OpticalTactilePlugin |
✕ |
✓ |
PressurePlugin |
✓ |
|
RayPlugin |
✓ |
|
RaySensorNoisePlugin |
✓ |
✕ Use SDF |
SonarPlugin |
✓ |
Visual plugins#
Plugin |
Gazebo-classic |
Gazebo Sim |
---|---|---|
AmbientOcclusionVisualPlugin |
✓ |
|
BlinkVisualPlugin |
✓ |
|
HeightmapLODPlugin |
✓ |
|
ShaderParamVisualPlugin |
✓ |
✓ |
GUI plugins#
Plugin |
Gazebo-classic |
Gazebo Sim |
---|---|---|
CessnaGUIPlugin |
✓ |
|
KeyboardGUIPlugin |
✓ |
|
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 |
✓ |
|
World stats |
✓ |
✓ |
Topic echo |
✓ |
✓ |
Image viewer |
✓ |
✓ |
Translate / rotate |
✓ |
✓ |
Scale models |
✓ |
|
Insert models from Fuel |
Partial support |
✓ |
Insert models from disk |
✓ |
✓ |
Insert simple shapes |
✓ |
✓ |
Insert simple lights |
✓ |
✓ |
Delete models |
✓ |
✓ |
World tree |
✓ |
✓ |
Scene properties |
✓ |
|
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 |
✓ |
|
FPS view control |
✓ |
|
Orthographic projection |
✓ |
✓ |
Undo / redo |
✓ |
|
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.
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 |
✕ |
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 |
Distribute simulation across processes |
✕ |
(coming up) |
Incrementally load levels |
✕ |
✓ |
Online model database |
||
Saved simulation states |
✓ |
|
Sphere, cylinder and box primitives |
✓ |
✓ |
Ellipsoid and capsule primitives |
✕ |
✓ |
Hydrodynamics |
✕ |
✓ |
Ocean currents |
✕ |
✓ |
Test fixture |
✓ |
|
Spherical coordinates |
✓ |
✓ |
Generic comms system |
✕ |
|
Acoustic communication |
✕ |
✓ |
Static linked plugins |
✕ |
✓ |