From Gazebo 9.14.0 and 11.1.0 onward, the
--lockstep command line option, which can be passed to
gazebo, is now supported.
With this option enabled, Gazebo will strictly adhere to the specified sensor update rates regardless of computational power. This can be especially useful for resource-starved systems or sensors that have high processing demands. The option is disabled by default.
By default, Gazebo tries to achieve the specified update rates of physics and sensors. However, depending on computational power, this may not be successful. In that case, sensor data may become out of synchronization with physics, a symptom of which could be that model poses in the camera image do not match with model poses in the physical world. An example scenario is simulating a high-resolution high-frame-rate camera on a computer with limited computational resources.
In some applications, it is desirable that sensor data always matches the physical world, even if it means slowing down physics deliberately to allow sensors to catch up. The lockstep feature allows for this deliberate synchronization. Gazebo with lockstep enabled will strictly adhere to the
<update_rate> specified in the
<sensor> tag in the SDF. When sensor updates fall behind, you will notice a slowdown in physics updates, while Gazebo waits for the sensor update to reach the specified Hertz.
For more details and an example demonstration, see the new lockstep tutorial