diff --git a/highlights.md b/highlights.md index 6b5dd51..cc1799f 100644 --- a/highlights.md +++ b/highlights.md @@ -35,12 +35,12 @@ - Added support for mesh optimization on the collision mesh. Users can now specify whether or not to perform mesh optimization on a - collision mesh in SDF (requires SDF spec version >= 1.11). Two optimization + collision mesh in SDFormat (requires SDFormat spec version >= 1.11). Two optimization methods are currently supported: `convex_decomposition` and `convex_hull`. Gazebo uses the open source [V-HACD](https://github.com/kmammou/v-hacd) library to perform convex decomposition to split the mesh into multiple submeshes. - Example SDF usage: + Example SDFormat usage: ```xml @@ -54,7 +54,7 @@ ``` -- [Support specifying plugins in SDF files without overriding default +- [Support specifying plugins in SDFormat files without overriding default plugins](https://github.com/gazebosim/gz-sim/pull/2497) and [gz-gui#631](https://github.com/gazebosim/gz-gui/pull/631) - In prior Gazebo versions, if a user specified a server plugin at the @@ -79,7 +79,7 @@ ``` - whereas previously, the SDF file has all the default plugins: + whereas previously, the SDFormat file has all the default plugins: ```xml @@ -105,6 +105,46 @@ ``` +- Specify execution order for System `PreUpdate` and `Update` callbacks + ([gz-sim#2487](https://github.com/gazebosim/gz-sim/pull/2487), + [gz-sim#2500](https://github.com/gazebosim/gz-sim/pull/2500)). + + - While the `PreUpdate`, `Update`, and `PostUpdate` phases of gz-sim systems + allow some control over the order in which code is executed, there are + cases in which more control is desired. For example, the `UserCommands` + system can create new models during its `PreUpdate` callback in response + to `EntityFactory` messages (see the + [entity creation tutorial](https://gazebosim.org/api/sim/9/entity_creation.html)), + and that callback should happen before any other system callbacks that + expect to operate on all entities in the scene. Now, the order of execution + for `PreUpdate` and `Update` callbacks for a System can be specified using + an integer priority value, with smaller values executing first. + The default system priority can be specified at compilation time by + implementing a new `SystemConfigurePriority` interface in that system, + and the priority can be overridden by specifying an XML parameter in the + system's SDFormat `` tag. + - Constant priority values have been defined in + [gz/sim/System.hh](https://github.com/gazebosim/gz-sim/blob/gz-sim9_9.0.0-pre1/include/gz/sim/System.hh#L106-L129) + for the `Physics` and `UserCommands` systems to ensure that + `UserCommands::PreUpdate` and `Physics::Update` execute before other + system callbacks with default priority. + +- Improve determinism of ForceTorque sensor + ([gz-sensors#449](https://github.com/gazebosim/gz-sensors/pull/449), + [gz-sim#2487](https://github.com/gazebosim/gz-sim/pull/2487), + [gz-sim#2494](https://github.com/gazebosim/gz-sim/pull/2494), + [gz-sim#2500](https://github.com/gazebosim/gz-sim/pull/2500)). + + - The wrenches measured by ForceTorque sensors are now written to the ECM + in addition to publishing to a gz-transport topic, offering a more + deterministic data path for sensor data. + - Writing sensor data to the ECM required moving the sensor update from the + `PostUpdate` callback, which allows read-only access to the ECM with + parallel execution, to the `Update` callback, which allows write-access to + the ECM with sequential execution. It also uses the system execution order + priority to ensure that the ForceTorque `Update` callback occurs after + the `Physics` system `Update`. + - Gazebo Transport improvements. See [gz-transport#477](https://github.com/gazebosim/gz-transport/pull/477), [gz-transport#486](https://github.com/gazebosim/gz-transport/pull/486), [gz-transport#487](https://github.com/gazebosim/gz-transport/pull/487), [gz-transport#503](https://github.com/gazebosim/gz-transport/pull/503), and [gz-transport#506](https://github.com/gazebosim/gz-transport/pull/506). @@ -132,7 +172,7 @@ See [gz-transport#477](https://github.com/gazebosim/gz-transport/pull/477), [gz- - Add new primitive geometry for cones. - - Create a parametric cone primitive from the gui or in sdf. Useful for sensor visualization, nosecones, and much more. See [gz-gui#621](https://github.com/gazebosim/gz-gui/pull/621), [gz-math#594](https://github.com/gazebosim/gz-math/pull/594), [gz-msgs#442](https://github.com/gazebosim/gz-msgs/pull/442), [gz-physics#639](https://github.com/gazebosim/gz-physics/pull/639), [gz-rendering#1003](https://github.com/gazebosim/gz-rendering/pull/1003), [gz-sim#2410](https://github.com/gazebosim/gz-sim/pull/2410), and [sdformat#1418](https://github.com/gazebosim/sdformat/pull/1418). + - Create a parametric cone primitive from the gui or in SDFormat. Useful for sensor visualization, nosecones, and much more. See [gz-gui#621](https://github.com/gazebosim/gz-gui/pull/621), [gz-math#594](https://github.com/gazebosim/gz-math/pull/594), [gz-msgs#442](https://github.com/gazebosim/gz-msgs/pull/442), [gz-physics#639](https://github.com/gazebosim/gz-physics/pull/639), [gz-rendering#1003](https://github.com/gazebosim/gz-rendering/pull/1003), [gz-sim#2410](https://github.com/gazebosim/gz-sim/pull/2410), and [sdformat#1418](https://github.com/gazebosim/sdformat/pull/1418). - Gazebo/ROS Vendor Packages