Gazebo Harmonic Released!

The Gazebo team is happy to announce the 8th release of Gazebo, “Gazebo Harmonic”. This new release represents a year of development by our Gazebo developer community, and it is one of our biggest Gazebo releases yet! The release is jam packed full of new features, and we believe that most Gazebo users will be excited to upgrade as soon as possible! A complete list of features can be found in the release notes but we wanted to take a moment to point out some of the highlights.

One of the primary focuses for this release cycle was improving the Gazebo user experience. To that end, we’ve added a number of features to make it much easier to build custom Gazebo simulations. One of the big new features is that we’ve added Python bindings to gz-msgs, gz-transport, and Gazebo systems so you can write your Gazebo plugins in pure Python!

The new mouse drag plugin allows the user to drag objects around in the scene with the mouse cursor by applying forces and/or torques to links during the simulation. This will enable use cases such as easily moving objects in the scene, emulating human-robot interaction, and perturbing control systems.

Similarly, we’ve made it much easier to debug and inspect your Gazebo simulation using the Gazebo CLI. The CLI now lets you list subscribers and their topic information using a simple CLI command. We’ve also added features that simplify the development of simulations with complex dynamics. For example, our GSoC student Jasmeet Singh has created a feature that automatically computes the moment of inertia for SDFormat links. Once you’ve opted into this feature, your SDFormat models will now get moments of inertia measurements for free, saving you a lot of time! Another useful tool for simulation creation is the new-and-improved version of Gazebo Classic’s gearbox joint, now known as a joint mimic constraint. Just like the gearbox joint, this feature enforces a linear relationship between the output position of two joint axes but is easier to specify and supports more joint types, which makes it easier to model mechanisms like robot grippers, 4-bar suspension linkages, or geared mechanisms like a rack and pinion. When it comes to in-simulation testing, our wonderful GSoC student Henrique Barros Oliveira has added a new mouse drag function that allows users to interactively apply forces and torques to links in the simulation while physics is running. In addition, he’s added a Gazebo GUI that lets users apply precise force/torque values to their models.

The new mimic constraint feature allows Gazebo users to mimic the dynamics of another object. In this case the light blue pendulums on the right are mimicking each other, unlike the pendulums on the left.

Gazebo Harmonic can now automatically calculate moments of inertia for files that use SDFormat. This demo shows two cylinders: one with default inertial values (right, green) and the other with automatic inertia calculations enabled (left, yellow). The moment of inertia (magenta) for the yellow cylinder matches the mesh shape indicating that the calculated values are more realistic for cylinders than the bounding box moment of inertia used previously.

Gazebo Harmonic has upped its camera game significantly! We’ve added a number of new rendering features in Harmonic to improve the realism of simulated cameras. You can now simulate wide-angle lens cameras, and use custom intrinsic matrices in your virtual cameras (this makes it easier for simulated cameras to match real-world cameras). Additionally, you can output image data in Bayer format, and use 16 bit depth, just like in many commercial machine vision cameras. To help you keep track of all this new data, we’ve added a new camera info topic that reports these details.

Our September 2023 Gazebo Community Meeting demonstrates most of these new features, including all of the new Gazebo illumination and camera features.

In addition to custom cameras, you can now add custom optical effects in Gazebo Harmonic. One such effect is lens flare! For outdoor simulations, and systems with bright illumination sources, you can now include lens flares to better replicate the real world. Speaking of illumination, Gazebo Harmonic now supports global illumination using two different methods: Voxel Cone Tracing (VCT) and Cascaded Image Voxel Cone Tracing (CIVCT).  A GUI plugin is provided for each global illumination technique and offers a number of configurable parameters such as bounce count and voxel resolution that affect the quality of the resulting scene. Another new “illumination source” in Gazebo Harmonic are projectors, which are similar to the projectors you might find in your home or a movie theater. The projector feature allows you to project a texture, as opposed to a light source, onto any surface in your simulation.

The Gazebo maritime simulation community has grown significantly in the past year, and we’ve added a number of new features to address their specific simulation needs. In terms of physics simulation we’ve upgraded our hydrodynamics simulation capabilities to include fluid added mass. This physics plugin helps maritime roboticists account for extra power required to move the water around a vessel when planning how much power to deliver to their propulsion systems! Once their vessel is underway our new Doppler Velocity Log plugin can be used to measure the velocity relative to a ground plane (think of it as a tachymeter for boats). For ships that sail, as well as other maritime sensor suites, we’ve created a new airspeed sensor that lets you measure wind velocity. We’ve also added the ability to load, lookup, and display arbitrary 3D environmental data (demo below)! This means you can now import real-world maritime sensor data, like temperature and salinity into Gazebo Harmonic.

To help support maritime simulations Gazebo Harmonic extends the Hydrodynamic system to support reading water current data from a defined in a CSV file.

Finally, we’ve put together a brand new Gazebo Simulation environment along with a bunch of new models in Gazebo Fuel for you to test out all of these cool new features! You can try out Harmonic yourself here, or check out our Gazebo Community Meeting recording where we demo them for you. If you would like to give the new Gazebo Harmonic a spin all of the installation instructions are available here. If you are looking to integrate a Gazebo simulation with your ROS system take a look at our new tutorial, and if you are looking to upgrade from Gazebo Classic take a look at our new guidance on upgrading sensors

We’d like to give special thanks to the community members who made this release possible. In particular we want to thank all of the community members who helped us review Harmonic tutorials during the Tutorial Party. During the tutorial party the community tested the Gazebo Harmonic release and made sure all of our tutorials were up to date. This effort resulted in 82 new PRs that fixed bugs and addressed issues prior to the Harmonic release. We want to extend a very special thank you to the community members who made this all possible!  

  • Allison Thackston

  • Andrej Orsula

  • Bi0T1N

  • JACOB JAMES K

  • Jayesh Chaudhary

  • jmackay2

  • Kartik Rana

  • Martin Pecka

  • Rhys Mainwaring

  • Suresh Venkatesan

  • Veronika Bojtar

  • Yuri Oliveira

The next Gazebo release, Gazebo Ionic, is scheduled to be released in September 2024. Keep an eye on the roadmap for what’s coming up, and let us know what features you’re interested in!

Finally, if you would like to show your support for the project be sure to get your Harmonic swag! All proceeds go to support the project

The Gazebo Dev Team

Previous
Previous

ROSCon 2023 Recap

Next
Next

Google Summer of Code & Virtual RobotX