Release Notes#
Zenoh in gz-transport#
Gazebo now supports Zenoh as an alternative transport implementation, offering
improved discovery, interoperability, and performance. To enable Zenoh, set the
environment variable export GZ_TRANSPORT_IMPLEMENTATION=zenoh
. This allows
Gazebo to leverage Zenoh’s features and potentially integrate more seamlessly
with ROS 2 and other systems utilizing Zenoh.
See the tracking issue and the implementation pull request gazebosim/gz-transport#665 for more details.
Improve Gazebo APIs for Reinforcement Learning#
Several APIs have been improved to streamline reinforcement learning pipelines. We have also added an example integration with the StableBaselines3 Python package for reinforcement learning, enabling users to experiment with RL algorithms within Gazebo. The example provides a starting point for developing and testing robotic control policies.
Example of doing Reinforcement Learning in Gazebo#
See the tracking issue and the implementation pull requests gazebosim/gz-sim#2667 and gazebosim/gz-sim#2647 for more details
Implement ROS standard simulation interfaces#
Gazebo now supports the standard ROS 2 simulation interfaces, enabling seamless integration with ROS 2 ecosystems and providing access to features for controlling and querying the simulation state. Documentation has also been added to guide users on utilizing these new interfaces.
See the tracking issue and the implementation pull requests gazebosim/ros_gz#790 and gazebosim/docs#601 for more details
Remove major version from package names#
We have refactored package naming to remove major version numbers, simplifying dependency management and reducing maintenance overhead. This change impacts how Gazebo packages are identified in CMake builds, package installations, and import statements.
See the announcement for more details.
Migrate from Qt5 to Qt6#
With Qt5 reaching
end of life,
Gazebo has been migrated to Qt6. While there are no major changes to end-users
of the Gazebo GUI, gz-gui
plugin authors will need to make changes to ensure
compatibility with Qt6. Gazebo plugin maintainers should use our migration guide
to update their plugin to QT6.
See the tracking issue and the implementation pull requests gazebosim/gz-gui#666 and gazebosim/gz-sim#2832 for more details
Resolve auto inertia based on input mass#
Inertia parameters can now be automatically set based on an object’s mass specified in an SDF file. This eliminates the need to manually compute and set the density of collision objects. When both mass and density are set, Gazebo now correctly scales the auto-computed inertia based on the specified mass, respecting the density ratios between collisions.
See the tracking issue and the implementation pull request gazebosim/sdformat#1513 for more details
Standalone executables for the gz
tool#
Previously, the gz
tool, a Ruby-based CLI interface, offered subcommands by
loading shared libraries provided by each of the Gazebo libraries. This approach
had several downsides including difficulty with debugging with gdb
,
portability issues when running on Windows or macOS. With the new approach each
of the libraries provide standalone executables that are spawn by the gz
tool.
The standalone executables can be executed directly if desired, making it
significantly easier to run under gdb
. Unlike loading shared libraries,
running executables is much more straightforward and does not have any of the
portability issues of the previous approach.
See the tracking issue and one of the implementation pull requests gazebosim/gz-sim#2849 for more details
Parallel asset download#
This enhancement significantly improves Gazebo’s startup time and responsiveness when loading worlds with many assets. Assets are now downloaded in parallel, allowing the GUI to remain interactive during the loading process and enabling users to close the window if needed.
See the tracking issue and one of the implementation pull requests gazebosim/gz-sim#2992 for more details
Occupancy Grid Export#
This enhancement adds a plugin that enables end users to directly export occupancy grids for use with Nav2 or other mobile robotics software.
See the pull request gazebosim/gz-sim#2958 for more details.
Lookup Wheel Slip system#
Introduced a new system that works in conjunction with the existing WheelSlip
system to dynamically adjust wheel slip and friction parameters. Using an 8-bit
slip- and friction-encoded lookup map representing the terrain the wheeled
vehicle is on, the LookupWheelSlip
system modifies lateral slip, longitudinal
slip, and friction parameters in real time based on the wheel’s position in the
world, enabling more realistic vehicle behavior on variable surfaces.
See the pull request gazebosim/gz-sim#3003 for more details.
Bazel Module Migration#
Migrated gz
packages from the legacy Bazel workspace-based setup to the new
Bazel module system (Bzlmod). As part of this effort, key third-party
dependencies including DARTSim, Bullet, FreeImage, Assimp and more were
packaged and published to the Bazel Central Registry (BCR). All Jetty and Ionic
versions of the libraries have been uploaded to BCR.
Note that gz-launch
has been excluded due to deprecation, gz-gui
is not yet
supported, and migration of gz-rendering
in currently in progress.