Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Operation Close-The-Gap #26

Merged
merged 14 commits into from
Aug 26, 2020
224 changes: 137 additions & 87 deletions blueprint/comparison.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
# Feature comparison

A list of features present in [Gazebo-classic](https://bitbucket.org/osrf/gazebo/) and
the status of their migration to [Ignition](https://ignitionrobotics.org/).
A list of features present in [Gazebo-classic](https://bitbucket.org/osrf/gazebo/)
version 11 and the status of their migration to
[Ignition Blueprint](https://ignitionrobotics.org/).

All the issues below are labeled with
[close the gap](https://github.com/search?q=org%3Aignitionrobotics+label%3A%22close+the+gap%22&type=Issues)
on GitHub.

## Sensors

Expand All @@ -12,162 +17,198 @@ Altimeter | ✓ | ✓
Camera | ✓ | ✓
Contact sensor | ✓ | ✓
Depth camera | ✓ | ✓
Force-torque | ✓ |
GPS | ✓ |
Force-torque | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/25)
GPS | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/23)
GPU Ray | ✓ | ✓ Renamed to GPU Lidar
IMU | ✓ | ✓
Logical camera | ✓ | ✓
Magnetometer | ✓ | ✓
Multi-camera | ✓ |
Ray | ✓ |
RFID | ✓ |
RFIDTag | ✓ |
Sonar | ✓ |
Thermal camera | ✕ | ✕ (available in Citadel)
Wide-angle camera | ✓ |
Wireless receiver | ✓ |
Wireless transceiver | ✓ |
Wireless transmitter | ✓ |
Multi-camera | ✓ | ✕ Use individual cameras with same update rate
Ray | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/26)
RFID sensor and tag | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/27)
Sonar | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/19)
Thermal camera | ✕ | ✕ (available from Citadel)
Wide-angle camera | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/24)
Wireless | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/28)

Sensor features | Gazebo-classic | Ignition Gazebo
-- | -- | --
Custom update rate | ✓ | ✓
Gaussian noise | ✓ | ✓
Custom sensors | ✓ | ✓ (barrel and pincushion distorsions not supported yet)
Custom sensors | ✓ | [Issue](https://github.com/ignitionrobotics/ign-sensors/issues/9)

## SDF Features

Feature | Gazebo-classic | Ignition Gazebo
-- | -- | --
SDF frame semantics |✓| ✕ (available in Citadel)
SDF frame semantics |✓| ✕ (available from Citadel)
Load models from local files | ✓ | [✕](https://github.com/ignitionrobotics/ign-gazebo/issues/123)
Closed kinematic chains | ✓ | [✕](https://github.com/ignitionrobotics/ign-physics/issues/25)
Nested models | ✓ | Partial support
Populations | ✓ |
Actors | ✓ | ✕ (available in Citadel)
Markers | ✓ | ✕ (available in Citadel)
Heightmaps | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/237)
DEM (Digital Elevation Models) | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/235)
Polylines | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/186)
Populations | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/240)
Actors | ✓ | ✕ (available from Citadel)
Markers | ✓ | ✕ (available from Citadel)
Heightmaps | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/237)
DEM (Digital Elevation Models) | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/235)
Polylines | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/186)
World plugins | ✓ | ✓ Now called System plugin
Model plugins | ✓ | ✓ Now called System plugin
Sensor plugins | ✓ | ✓ Now called System plugin
Visual plugins | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/265)
Visual plugins | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/265)
GUI plugins | ✓ | ✓ Ignition GUI plugins and Gazebo GUI systems
System plugins | ✓ | ✓ Through Ignition Launch

## Plugins

### Model plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
ActorPlugin | ✓ |
ActorPlugin | ✓ | ✕ See [FollowActor](https://github.com/ignitionrobotics/ign-gazebo/blob/master/src/systems/follow_actor/FollowActor.hh) for a demo of Actor APIs
ActuatorPlugin | ✓ |
AmbientOcclusionVisualPlugin | ✓ |
ArduCopterPlugin | ✓ |
ArrangePlugin | ✓ |
AttachLightPlugin | ✓ | ✕ Does not apply, use SDF
BlinkVisualPlugin | ✓ |
Breadcrumbs | ✕ | ✓
BreakableJointPlugin | ✓ |
BuoyancyPlugin | ✓ |
CameraPlugin | ✓ |
CartDemoPlugin | ✓ |
BuoyancyPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/159)
CartDemoPlugin | ✓ | ✕
CessnaPlugin | ✓ |
ContactPlugin | ✓ | ✓
ContainPlugin | ✓ |
DepthCameraPlugin | ✓ |
DiffDrivePlugin | ✓ | ✓
FiducialCameraPlugin | ✓ |
ElevatorPlugin | ✓ |
FlashLightPlugin | ✓ |
FollowerPlugin | ✓ |
ForceTorquePlugin | ✓ |
GimbalSmall2dPlugin | ✓ |
GpuRayPlugin | ✓ |
GravityCompensationPlugin | ✓ |
HarnessPlugin | ✓ |
HeightmapLODPlugin | ✓ |
ImuSensorPlugin | ✓ |
InitialVelocityPlugin | ✓ |
HydraDemoPlugin | ✓ |
InitialVelocityPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/50)
JointControlPlugin | ✓ (force / pos / vel, from SDF) | ✓ (vel, from msg)
JointStatePublisher | ✕ | ✓
JointTrajectoryPlugin | ✓ |
KeysToJointsPlugin | ✓ |
KeysToCmdVelPlugin | ✓ | Use `ignition::gui::KeyPublisher` with `ignition::gazebo::systems::TriggeredPublisher`
KeysToJointsPlugin | ✓ | Use `ignition::gui::KeyPublisher` with `ignition::gazebo::systems::TriggeredPublisher`
LedPlugin | ✓ |
LensFlareSensorPlugin | ✓ |
LiftDragPlugin | ✓ | ✓
LinearBatteryConsumerPlugin | ✓ | ✓
LinearBatteryPlugin | ✓ | ✓
LinkPlot3DPlugin | ✓ |
ModelPropShop | ✓ |
LinkPlot3DPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/231)
MudPlugin | ✓ |
MulticopterMotorModel | ✕ | ✓
PlaneDemoPlugin | ✓ |
PosePublisher | ✕ | ✓
PressurePlugin | ✓ |
RayPlugin | ✓ | Provided through Ignition Sensors
RaySensorNoisePlugin | ✓ |
RubblePlugin | ✓ |
ShaderParamVisualPlugin | ✓ |
RandomVelocityPlugin | ✓ |
RegionEventBoxPlugin | ✓ |
SimpleTrackedVehiclePlugin | ✓ |
SkidSteerDrivePlugin | ✓ | ✓
SonarPlugin | ✓ |
SphereAtlasDemoPlugin | ✓ |
StaticMapPlugin | ✓ |
StopWorldPlugin | ✓ |
SphereAtlasDemoPlugin | ✓ | ✕
TouchPlugin | ✓ | ✓
TrackedVehiclePlugin | ✓ |
VariableGearboxPlugin | ✓ |
VehiclePlugin | ✓ |
WheelSlipPlugin | ✓ |
WindPlugin | ✓ | ✓
WheelSlipPlugin | ✓ | [pull request](https://github.com/ignitionrobotics/ign-gazebo/pull/134)
WheelTrackedVehiclePlugin | ✓ | ✓ ([partially via DiffDrivePlugin](https://github.com/ignitionrobotics/ign-gazebo/blob/44951e3ddfd238f24182d4d80b1376f0d426bd43/examples/worlds/track_drive.sdf#L2141))
ElevatorPlugin | ✓ |
RandomVelocityPlugin | ✓ |
TransporterPlugin | ✓ |

### World plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
ArrangePlugin | ✓ |
ContainPlugin | ✓ | Partial port, [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/162)
HydraPlugin | ✓ |
HydraDemoPlugin | ✓ |
JoyPlugin | ✓ | ✓ Migrated as an Ignition Launch plugin
MisalignmentPlugin | ✓ |
RubblePlugin | ✓ |
StaticMapPlugin | ✓ |
TransporterPlugin | ✓ |
WindPlugin | ✓ | ✓

### Sensor plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
BreakableJointPlugin | ✓ |
CameraPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
ContactPlugin | ✓ | ✓
DepthCameraPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
FiducialCameraPlugin | ✓ |
ForceTorquePlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
GpuRayPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
ImuSensorPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
LensFlareSensorPlugin | ✓ |
PressurePlugin | ✓ |
RayPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)
RaySensorNoisePlugin | ✓ | ✕ Use SDF
SonarPlugin | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/49)

### Visual plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
AmbientOcclusionVisualPlugin | ✓ |
BlinkVisualPlugin | ✓ |
HeightmapLODPlugin | ✓ |
ShaderParamVisualPlugin | ✓ |

### GUI plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
CessnaGUIPlugin | ✓ |
KeyboardGUIPlugin | ✓ |
KeyboardGUIPlugin | ✓ | `ignition::gui::KeyPublisher`
LookAtDemoPlugin | ✓ |
TimerGUIPlugin | ✓ |
GravityCompensationPlugin | ✓ |

### System plugins

Plugin | Gazebo-classic | Ignition Gazebo
-- | -- | --
ModelPropShop | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/100)
RestUiPlugin | ✓ |
RestWebPlugin | ✓ |
StopWorldPlugin | ✓ |

## GUI

Feature | Gazebo-classic | Ignition Gazebo
-- | -- | --
Play / pause / step | ✓ | ✓
Reset world / models | ✓ |
Reset world / models | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/203)
World stats | ✓ | ✓
Topic echo | ✓ | ✓
Image viewer | ✓ | ✓
Translate / rotate | ✓ | ✓
Scale models | ✓ |
Insert models / lights | ✓ | ✓ (dragging Fuel URL)
Scale models | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/195)
Insert models from Fuel | Partial support | ✓
Insert models from disk | ✓ | ✓
Insert simple shapes | ✓ | ✓
Insert simple lights | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/119)
Delete models | ✓ | ✓
World tree | ✓ | ✓ (no properties yet)
World tree | ✓ | ✓
Scene properties | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/246)
Log recording / playback | ✓ | ✓
Plotting | ✓ |
Plotting | ✓ | ✕ (available from Dome)
Video recording | ✓ | ✓
Screenshot | ✓ |
View angles | ✓ |
Screenshot | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gui/issues/95)
View angles | ✓ |
Apply force / torque | ✓ |
Visualize model as transparent | ✓ |
Visualize model as wireframe | ✓ |
Visualize contacts | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/pull/234)
Visualize link inertia | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/111)
Visualize centers of mass | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/110)
Visualize joints | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/106)
Visualize collision shapes | ✓ | [](https://github.com/ignitionrobotics/ign-gazebo/issues/105)
Visualize as transparent | ✓ |
Visualize as wireframe | ✓ |
Visualize joints | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/106)
Visualize collisions | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/105)
Visualize inertia | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/111)
Visualize CoM | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/110)
Visualize contacts | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/112)
Follow / move to | ✓ | ✓
Copy / paste | ✓ |
Copy / paste | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/102)
Building editor | ✓ |
Model editor | ✓ |
Model editor | ✓ | [Issues](https://github.com/ignitionrobotics/ign-gazebo/issues?q=is%3Aissue+is%3Aopen+label%3Aeditor)
FPS view control | ✓ |
Orthographic projection | ✓ |
Save world | ✓ |
Orthographic projection | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/103)
Undo / redo | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/104)
Save world | ✓ | ✓
Save GUI configuration | ✓ | ✓
Color scheme and themes | ✕ | ✓
Position, resize and configure widgets | ✕ | ✓
Load plugins from menu | ✕ | ✓
Load GUI plugins from menu | ✕ | ✓

## Physics

Expand All @@ -177,11 +218,11 @@ in Gazebo.

Feature | Gazebo-classic | Ignition Gazebo
-- | -- | --
ODE engine | ✓ |
Bullet engine | ✓ |
ODE engine | ✓ | [Issue](https://github.com/ignitionrobotics/ign-physics/issues/63)
Bullet engine | ✓ | [Issue](https://github.com/ignitionrobotics/ign-physics/issues/44)
DART engine | ✓ | ✓ Plugin shipped with ign-physics
Simbody engine | ✓ |
TPE engine | ✕ | ✕ (available in Citadel)
Simbody engine | ✓ | [Issue](https://github.com/ignitionrobotics/ign-physics/issues/63)
TPE engine | ✕ | ✕ (available from Citadel)
Custom engine plugins | ✕ | ✓

## Rendering
Expand All @@ -194,8 +235,8 @@ Feature | Gazebo-classic | Ignition Gazebo
Ogre 1.x engine | ✓ | ✓
Ogre 2.x engine | ✕ | ✓
Optix engine | ✕ | ✓ Partial support
Custom engine plugins | ✕ |
Sky | ✓ |
Custom engine plugins | ✕ | [Issue](https://github.com/ignitionrobotics/ign-rendering/issues/100)
Sky | ✓ | [Issue](https://github.com/ignitionrobotics/ign-rendering/issues/98)
Fog | ✓ |
Material scripts | ✓ (Ogre 1.x scripts) | Does not apply

Expand All @@ -210,10 +251,19 @@ Supported versions:
* ROS 1 Melodic
* ROS 2 Dashing

## Platforms

Platform | Gazebo-classic | Ignition Gazebo
-- | -- | --
Ubuntu | ✓ | ✓
OSX | ✓ | Most of the stack works, outstanding issues: [command line](https://github.com/ignitionrobotics/ign-gazebo/issues/25), [render window](https://github.com/ignitionrobotics/ign-gazebo/issues/44)
Windows | ✓ | The stack works up to ign-gazebo: [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/168)

## Others

Feature | Gazebo-classic | Ignition Gazebo
-- | -- | --
Nested models | ✓ | [SDF Issue](https://github.com/osrf/sdformat/issues/283), [Physics issue](https://github.com/ignitionrobotics/ign-physics/issues/10)
Log / playback | ✓ | ✓
Web client (GzWeb) | ✓ |
COLLADA meshes | ✓ | ✓
Expand All @@ -223,4 +273,4 @@ Code introspection | ✓ | All simulation state is accessible from system plugin
Distribute simulation across processes | ✕ | (coming up)
Incrementally load levels | ✕ | ✓
Online model database | [gazebo_models repository](https://bitbucket.org/osrf/gazebo_models/) | [Ignition Fuel](https://app.ignitionrobotics.org/fuel/models)
Saved simulation states | ✓ |
Saved simulation states | ✓ | [Issue](https://github.com/ignitionrobotics/ign-gazebo/issues/137)
Loading