A tick-tock release cycle allows easy migration to new software versions. Obsolete code is marked as deprecated for one major release. Deprecated code produces compile-time warnings. These warning serve as notification to users that their code should be upgraded. The next major release will remove the deprecated code.
- Deprecated
gz::sim::components::Factory::Register(const std::string &_type, ComponentDescriptorBase *_compDesc)andgz::sim::components::Factory::Register(const std::string &_type, ComponentDescriptorBase *_compDesc, RegistrationObjectId _regObjId)have been deprecated. Instead, please usegz::sim::components::Factory::Register(const char *_type, ComponentDescriptorBase *_compDesc, RegistrationObjectId _regObjId)gz::sim::components::Factory::Unregister()has been deprecated. Instead, please usegz::sim::components::Factory::Unregister(RegistrationObjectId _regObjId).
- The type of the static data member
gz::sim::components::Component::typeNamehas been changed fromstd::stringtoconst char*.
-
Deprecated
- The
ParticleEmitter2system was renamed toParticleEmitter. TheParticleEmitter2system is now deprecated. Please use theParticleEmittersystem.
- The
-
The
ignition::gazebonamespace is deprecated and will be removed in future versions. Usegz::siminstead. -
Header files under
ignition/...are deprecated and will be removed in future versions. Usegz/...instead. -
Configuration and log files are stored under
$HOME/.gz/siminstead of$HOME/.ignition/gazebo -
The following
IGN_GAZEBO_prefixed environment variables are deprecated and will be removed in future versions. Use theGZ_SIM_prefixed versions instead!IGN_GAZEBO_RENDER_ENGINE_PATH->GZ_SIM_RENDER_ENGINE_PATHIGN_GAZEBO_PHYSICS_ENGINE_PATH->GZ_SIM_PHYSICS_ENGINE_PATHIGN_GAZEBO_SYSTEM_PLUGIN_PATH->GZ_SIM_SYSTEM_PLUGIN_PATHIGN_DEBUG_COMPONENT_FACTORY->GZ_DEBUG_COMPONENT_FACTORYIGN_GAZEBO_RESOURCE_PATH->GZ_SIM_RESOURCE_PATHIGN_GAZEBO_SERVER_CONFIG_PATH->GZ_SIM_SERVER_CONFIG_PATH
-
The following
IGN_GAZEBO_prefixed macros variables are deprecated and will be removed in future versions. Use theGZ_SIM_prefixed versions instead!IGN_GAZEBO_REGISTER_COMPONENTIGN_GAZEBO_PLUGIN_INSTALL_DIRIGN_GAZEBO_GUI_PLUGIN_INSTALL_DIRIGN_GAZEBO_WORLD_INSTALL_DIR
-
The
gazebocommand line verb is deprecated. Usesiminstead (e.g.ign gazebo->gz sim). -
The shared libraries have
gzwhere there used to beignition.- Using the un-migrated version is still possible due to tick-tocks, but will be removed in future versions.
-
The WorldStatistics message published on the 'stats' topic now has a
steppingfield that should be used in place the 'step' field in the message's header. -
Breaking Changes
-
The project name has been changed to use the
gz-prefix, you must use thegzprefix!- This also means that any generated code that use the project name (e.g. CMake variables, in-source macros) would have to be migrated.
- Some non-exhaustive examples of this include:
GZ_<PROJECT>_<VISIBLE/HIDDEN>- CMake
-configfiles - Paths that depend on the project name
-
The
Scene3Dplugin has been removed and replaced withgz-gui'sMinimalSceneplugin. See this same document for the instructions to replace it when it was deprecated 5.x to 6.x. Setting<legacy>false</legacy>is no longer required forTransformControlandViewAndleplugins.
-
-
Python library imports such
import ignition.gazeboandfrom ignition import gazeboshould be replaced withimport gz.sim7andfrom gz import sim7. Note the change fromignitiontogzand the addition of the major version number as a suffix to the package name.
- Modified:
- In the Hydrodynamics plugin, inverted the added mass contribution to make it act in the correct direction.
- Modified:
- In the Hydrodynamics plugin, inverted the added mass contribution to make it act in the correct direction.
- If no
<namespace>is given to theThrusterplugin, the namespace now defaults to the model name, instead of an empty string.
-
The ParticleEmitter system is deprecated. Please use the ParticleEmitter2 system.
-
Marker example has been moved to Gazebo GUI.
-
Some GUI plugins have been moved to Gazebo GUI. Gazebo Sim users don't need to change their configuration files, the plugins will be loaded the same way.
- Grid Config
- Tape Measure
-
dynamic_pose/infotopic is removed fromLogRecordandLogPlaybacksince pose information is being logged in thechanged_statetopic. -
The internal management of entities and components in the
EntityComponentManagerhas been updated to improve runtime performance. As a result, several methods have been deprecated, and a few types have changed.- Deprecated:
- All
EntityComponentManagermethods that useComponentKeyas an input parameter. - The
EntityComponentManager::Firstmethod. - The
ComponentIdandComponentKeytypes are now deprecated. A combination ofEntityandComponentTypeIdshould be used instead. - The
components::StorageDescriptorBaseandcomponents::StorageDescriptor<ComponentTypeT>classes. - Methods in
components::Factorythat have deprecated input parameter types and/or deprecated return types.- The version of
components::Factory::Registerwhich has aStorageDescriptorBase *input parameter. components::Factory::NewStorage
- The version of
- The
ComponentStorageBaseandComponentStorage<ComponentTypeT>classes.
- All
- Modified:
EntityComponentManager::CreateComponentnow returns a pointer to the created component instead of aComponentKey.ComponentKeyhas been modified to be astd::pair<ComponentTypeId, Entity>(it used to be astd::pair<ComponentTypeId, ComponentId>) since theComponentIdtype is now deprecated.ComponentKeyhas also been deprecated, so usage of this type is discouraged (see the Deprecated section above for more information about how to replace usage ofComponentKey).
- Deprecated:
-
The
GzScene3DGUI plugin is being deprecated in favor ofMinimalScene. In order to get the same functionality asGzScene3D, users need to add the following plugins:MinimalScene: base rendering functionalityGzSceneManager: adds / removes / moves entities in the sceneEntityContextMenuPlugin: right-click menuInteractiveViewControl: orbit controlsCameraTracking: Move to, follow, set camera poseMarkerManager: Enables the use of markersSelectEntities: Select entities clicking on the sceneSpawn: Functionality to spawn entities into the scene via GUIVisualizationCapabilities: View collisions, inertial, CoM, joints, etc.
SDF code for all these can be found in: https://github.com/gazebosim/gz-sim/blob/ff1c82b41e548dfdc8076374f9500db2df2c35a1/examples/worlds/minimal_scene.sdf#L29-L128
Moreover, legacy mode needs to be turned off for the following plugins for them to work with
MinimalScene(set<legacy>false</legacy>):TransformControl: Translate and rotateViewAndle: Move camera to preset angles
-
The
gui.configandserver.configfiles are now located in a versioned folder inside$HOME/.gz/sim, i.e.$HOME/.gz/sim/6/gui.config. -
The
Component::Clonemethod has been markedconstto reflect that it should not mutate internal component state. Component implementations that overrode theClonemethod must also be markedconst.
- If no
<namespace>is given to theThrusterplugin, the namespace now defaults to the model name, instead of an empty string.
-
Use
clicomponent ofgz-utils1. -
gz::sim::RenderUtil::SelectedEntities()now returns aconst std::vector<Entity> &instead of forcing a copy. The calling code should create a copy if it needs to modify the vector in some way. -
Default generated topic name for thermal cameras now includes the
/imagesuffix. Thecamera_infotopic has also been fixed to include the sensor name in the generated topic string. The naming scheme should be consistent with a normal camera sensor. Topic changes:/<prefix>/<sensor_name>->/<prefix>/<sensor_name>/image/<prefix>/camera_info->/<prefix>/<sensor_name>/camera_info
-
Various
GuiEvents were deprecated in favor of their Gazebo GUI equivalents.- Deprecated
gz::sim::gui::SnapIntervals - Replacement
gz::gui::SnapIntervals - Deprecated
gz::sim::gui::Render - Replacement
gz::gui::Render - Deprecated
gz::sim::gui::SpawnPreviewModel - Replacement
gz::gui::SpawnFromDescription - Deprecated
gz::sim::gui::SnapPreviewPath - Replacement
gz::gui::SnapFromPath
- Deprecated
-
The
<direction>tag of spot lights was previously not parsed by the scene, so all spot lights shone in the direction corresponding to the default0 0 -1. Since 5.x, the<direction>tag is correctly processed.
- Gazebo Sim 4.0.0 enabled double sided material by default but this
caused shadow artifacts to appear on some meshes. Double sided material is
now disabled and made an opt-in feature. Users can configure this property
in SDF by setting the
<visual><material><double_sided>SDF element.
-
The
RenderUtil::SetEnabledSensorscallback in gazebo rendering has a new required function argument for the Entity of the sensor.- Removed
public: void SetEnableSensors(bool, std::function< std::string(const sdf::Sensor &, const std::string &)>) - Replacement
public: void SetEnableSensors(bool, std::function< std::string(const sim::Entity &, const sdf::Sensor &, const std::string &)>)
- Removed
-
Log playback using
<path>SDF parameter is removed. Use --playback command line argument instead. -
rendering::SceneManager- Deprecated:
Entity EntityFromNode(const rendering::NodePtr &_node) const; - Replacement:
Entity entity = std::get<int>(visual->UserData("gazebo-entity"));
- Deprecated:
- Some sensors will only have the
SensorTopiccomponent after the 1st iteration.
- Use gz-rendering3, gz-sensors3 and gz-gui3.
-
Changed component data types:
Altimeternow usessdf::SensorJointVelocitynow usesstd::vector<double>
-
Deprecated components:
JointVelocity2: useJointVelocity's vector instead.
-
The
--distributedcommand line argument has been deprecated. Use--network-roleinstead. -
The
-f/--filecommand line argument has been deprecated. The SDF file can now be loaded without a flag. -
The
gz-simcommand line tool is deprecated. The new tool isgz sim, which has all the same options, except for--distributedand--file/-f, which have been removed. -
The
entity_namefield in the messages published by the imu system is updated to report its scoped name. -
Log files generated from Gazebo Sim 1.X are no longer compatible with Gazebo Sim 2+ for playback. BitBucket pull request #257 added an SDF message to the start of log files.
-
Log playback using
<path>SDF parameter is deprecated. Use--playbackcommand line argument instead.
-
All headers in
gazebo/networkare no longer installed. -
The ignition-gazebo1-gui library has been changed to a
guicomponent of ignition-gazebo. To use the gui component downstream, update the find package call in cmake to request for the component, e.g.gz_find_package(ignition-gazebo1 REQUIRED COMPONENTS gui), and link to thelibgz-sim1::guitarget instead oflibgz-sim1-gui