Why Gazebo?

Robot simulation is an essential tool in every roboticist's toolbox. A well-designed simulator makes it possible to rapidly test algorithms, design robots, perform regression testing, and train AI system using realistic scenarios. Gazebo offers the ability to accurately and efficiently simulate populations of robots in complex indoor and outdoor environments. At your fingertips is a robust physics engine, high-quality graphics, and convenient programmatic and graphical interfaces. Best of all, Gazebo is free with a vibrant community.

The Latest

Gazebo 9.0.0 Release


Download (9.0.0)

Changelog | Migration Guide | Roadmap

Release Highlights

We are proud to announce the release of Gazebo 9. This version of Gazebo has long term support with an end-of-life on January 25, 2023.

An ongoing effort over the past few years has been to break out Gazebo's internal libraries into a set of libraries under the Ignition Robotics project. These libraries will move Gazebo away from a large monolithic code base. An additional goal is to increase development transparency and adoption of features that may have been hidden behind the veil of Gazebo.

While still in the early stages of development, a few of the Ignition libraries are ready for broad public consumption. These libraries include Ignition Math, Messages, and Transport. Libraries higher on the dependency stack, such as Rendering, Sensors, Physics, and GUI will see progress toward 1.0 releases over this year.

The 2018 roadmap for Gazebo and the Ignition libraries will be forthcoming in the next couple weeks.

The sections below describe a few projects in a bit more detail. Enjoy the new release, and thanks for all the contributions,

  Gazebo Development Team

Ignition Robotics Documentation Platform

An updated documentation platform has been created for Ignition Robotics at ignitionrobotics.org. This website details the available libraries, along with a brief description for each and links to API documentation and tutorials, which are sparse at this point. A version history for each library is also displayed with links to the version's documentation.

Ignition Fuel

Around the time of the DARPA Robotics Challenge, Gazebo faced the problem of where and how to host simulation models and related assets. At the time, we opted to use a Bitbucket repository along with a clone backed by Apache.

Gazebo has since outgrown the Bitbucket and Apache approach. Key problems that we have encountered are scalability, up-time, hosting meta-data, inclusion of worlds and other assets, and ease of use. After studying available options, such as using S3, we decided to provide a new simulation asset hosting service called Ignition Fuel.

Ignition Fuel is in Beta, and does not replace the existing Bitbucket+Apache solution. When Fuel moves out of beta, there will be an extended transition period where both hosting solutions will be active and maintained. The exact time frame will be determined when we are comfortable with the state of Fuel.

On Ignition Fuel you can find a list of available models. Logging into the site allows you to upload new models. There is also information about how to access the models programmatically through a REST API. Gazebo 9 optionally uses this API to list and download models from Fuel. In the tutorial section of Ignition Fuel Tools, you can find examples of how to manage models from a Fuel server programmatically.

The primary difference between Fuel and other asset hosting sites is that the models hosted on Fuel will contain not only visual information but also simulation information, such as links, joint, and inertia. Fuel will also move toward inclusion of worlds and potentially simulation plugins.

Ignition Transport Highlight

Gazebo makes heavy use of asynchronous message passing. For example, the Gazebo GUI operates in a separate process from the server and relies on message passing to display information and transmit user requests. Gazebo's current internal communication uses a home-grown strategy based on Protobuf and boost::asio. This has performed well but requires maintenance and has become a bit outdated.

Development of Ignition Transport provided the opportunity to choose a new strategy that would reduce our maintenance effort and offer new features. ZeroMQ has been chosen as a replacement to boost::asio, and Protobuf remains as the message definition. ZeroMQ is an open source communication library that is used across numerous domains, and has a large and active community. In addition to these aspects, ZeroMQ has a well established feature and change process, known performance, numerous language bindings, cross-platform support , and security through authentication and encryption.

In addition to the features provided by ZeroMQ, Ignition Transport provides discovery, and command line tools for topic introspection and publication of messages. Upcoming features include data logging, and integration of encryption and UDP provided in ZeroMQ. A series of benchmark tests of Ignition Transport were recently performed to evaluate the library's performance and establish a baseline. We will start with a few definitions for clarity.
  • Intraprocess: Publisher and subscriber in same process.
  • Interprocess: Publisher and subscriber in separate processes on the same physical machine.
  • Wireless: Publisher and subscriber on separate machines where one computer was connected to wireless access point and the other hardwired to the LAN.
  • Latency: Latency was measured by publishing a message on topicA, and then waiting for a response on topicB. The time between publication and reception of the response was divided in half to compute the one-way latency time.
  • Throughput: Throughput was measured by rapidly publishing N messages. Once the N messages have been published, the publisher waits for N responses. The time from start of publication to reception of all N messages is used to compute throughput.

Tests were performed on Ubuntu Xenial with the Linux 4.5.2 kernel, on a Intel i7-5930K desktop PC. The test program, called bench, is publicly available. Use the `-h` command line option with bench for usage information. Latency and throughput results are below. Click on dataset label, such as "Interprocess", to enable or disable the data.

These results can be used as one reference point, but they are by no means an exhaustive or comprehensive study of Ignition Transport.

Useful Links

source code



Dynamics Simulation

Dynamics Simulation

Access multiple high-performance physics engines including ODE, Bullet, Simbody, and DART.

Advanced 3D Graphics

Advanced 3D Graphics

Utilizing OGRE, Gazebo provides realistic rendering of environments including high-quality lighting, shadows, and textures.

Sensors and Noise

Sensors and Noise

Generate sensor data, optionally with noise, from laser range finders, 2D/3D cameras, Kinect style sensors, contact sensors, force-torque, and more.



Develop custom plugins for robot, sensor, and environmental control. Plugins provide direct access to Gazebo's API.

Robot Models

Robot Models

Many robots are provided including PR2, Pioneer2 DX, iRobot Create, and TurtleBot. Or build your own using SDF.

TCP/IP Transport

TCP/IP Transport

Run simulation on remote servers, and interface to Gazebo through socket-based message passing using Google Protobufs.

Cloud Simulation

Cloud Simulation

Use CloudSim to run Gazebo on Amazon AWS and GzWeb to interact with the simulation through a browser.

Command Line Tools

Command Line Tools

Extensive command line tools facilitate simulation introspection and control.


Get Started

Get your feet wet

  1. Quick Start

    A simple set of steps to get Gazebo up and running rapidly.

  2. GUI Hotkeys

    Description of Gazebo's hotkeys and mouse interactions.

  3. Tutorials

    The best way to start using Gazebo is to run through the tutorials. These tutorials cover both basic and simple concepts through a series of exercises.

  4. Examples

    Check out the example worlds and programs that are in the source code.

  5. answers.gazebosim.org

    If you can't find what you are looking for, try our askbot help forum located at answers.gazebosim.org.

  6. community.gazebosim.org

    Want to exchange ideas with the rest of the community? Come to community.gazebosim.org.

Information Sources

  1. Gazebo Overview

    A high-level description of Gazebo and its various components.

  2. Gazebo API

    Doxygen generated documentation for the Gazebo libraries.

  3. Protobuf Messages

    A complete list of all the protobuf messages used by Gazebo

  4. SDFormat Specification

    SDFormat is an XML file format that defines environments and models. This specification defines all the XML elements for describing world and models.


Project Status

Gazebo 10.0 Progress

Jan 25 2018
Feature freeze
Code freeze
Jan 24 2019

Jan 25 2018
Jan 3 2019
Jan 17 2019

Release Schedule and Roadmap

Gazebo will release a new major version once a year on the last week of January. Even numbered releases will have a life-span of two years, and odd five years.

The following roadmap is a best guess at the available features for each version. At the time of release more or fewer features may be available.

Refer documentation in downstream applications, such as ROS, for version compatiblilty.

Gazebo 1.9 2013-07-24 EOL 2015-07-27

  • Split out SDFormat into a separate package
  • Improved ROS support
  • Added Sonar, Force-torque, and pressure sensors
  • Allow user camera to follow objects
  • Basic OS X support

Gazebo 2.2 2013-11-07 EOL 2016-01-25

  • Improved shadow maps
  • Breakable walls
  • Visualize moment of inertia
  • Graphically resize simple shapes
  • Wireless transceiver sensor models
  • OpenAL audio support
  • Terrain paging

Gazebo 3.0 2014-04-11 EOL 2015-07-27

  • Unified command line tool
  • Lightmaps for improved rendering realism
  • Destructable simple shapes
  • Import DEM
  • Split in Debian packages, moving to Debian inclusion of Gazebo
  • Beta OSX support
  • Bullet support

Gazebo 4.0 2014-07-28 EOL 2016-01-25

  • Vehicle suspension models
  • More tutorials and documentation
  • Oculus Rift support
  • Razer Hydra support
  • Copy and paste models via GUI
  • Custom road textures
  • Support DART 4.1
  • New extruded polyline geometry
  • Fixed actor animations
  • Added KMeans class

Gazebo 5.0 2015-01-26 EOL 2017-01-25

  • C++11 integration
  • GUI overlay support
  • Clone running simulations
  • Improved building editor
  • Javascript interface

Gazebo 7.1 2016-01-25 EOL 2021-01-25

Gazebo 8.2 2017-12-10 EOL 2019-01-25

  • GUI plotting utility and system instrospection
  • GUI model editor
  • Generalization of Actor animations
  • QT 5 support
  • Import OBJ files
  • Support for Wind
  • Quadcopter simulation
  • Built-in video recording

Gazebo 9.0 2018-01-25 EOL 2023-01-25

Gazebo 10.0 2019-01-24 EOL 2021-01-24

  • Import FBX mesh files
  • GUI movie maker
  • Terrain GUI editor
  • Physics plugin API
  • Hydrax integration for improved water simulation
  • Photo-realistic rendering pipeline
  • Reference geometries for link alignment with kinematic constraints
  • GUI console (display server messages)
  • Graphically resize inertias
  • Change physics engine via the GUI
  • Improve performance and support for laptops
  • Integrate network simulation(ns-3 or EMANE)
  • Deformable shapes
  • Rewind and replay simulation
  • Wind simulation
  • Scripting interfaces
  • Improve SDF/URDF support
  • Break-out command line tools to Ignition Tools
  • Visualize plugin state
  • Save plugin state to log files
  • Support integration of quadcopter controllers with simulation
  • OSX binary installation
  • Windows binary installation
  • Graphical tool to aid in validating physics
  • Break out rendering library to Ignition Rendering
  • Break out common library to Ignition Common
  • Update Cloudsim
  • Ignition Transport integration

Gazebo 11.0 2020-01-29 EOL 2025-01-29

  • In GUI tutorials
  • Global and local navigation for mobile robots
  • Integration of MoveIt and/or Reflexxes
  • Constructive Solid Geometry support in the model editor


Gazebo uses semantic versioning, a package numbering scheme that specifies ABI/API compatibility between releases. A version consists of three numbers separated by decimal points: MAJOR.MINOR.PATCH:
  • MAJOR version changed when incompatible ABI/API changes are made
  • MINOR version changed when functionality has been added in a backwards-compatible manne
  • PATCH version changed when backwards-compatible bug fixes are released

Tick-tock Release Cycle

A tick-tock release cycle allows easy migration to new software versions. Obsolete Gazebo 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.

Example where function foo is deprecated and replaced by function bar:

Gazebo v1.0 Gazebo v2.0 Gazebo v3.0
void foo();
// Deprecated, see void bar()
void foo() GAZEBO_DEPRECATED(2.0);
void bar();
void bar();


Physics Engine Support

Gazebo supports the ODE, Bullet, Simbody and DART physics engines. By default Gazebo is compiled with support for ODE. In order to use the other engines, first make sure they are installed and then compile Gazebo from source.

Physics Engine Gazebo Version Availability Notes
ODE 1.9+ Binary,Source Default engine. Gazebo maintains a fork of ODE which has diverged from the upstream package.
Bullet 3.0+ Source Gazebo requires libbullet2.82, available in the OSRF repository and to be included in Ubuntu Utopic.
Simbody 3.0+ Source Simbody packages are hosted in the OSRF repository. Expected to appear in Ubuntu Utopic official repositories.
DART 3.0+ Source DART packages are hosted in dartsim PPA. DART is in the process of moving toward inclusion in Ubuntu.
We are developing a physics plugin framework to resolve dependency issues. Each physics engine will interface to Gazebo through a plugin, avoiding the need to compile Gazebo with support for each engine.



Gazebo development began in the fall of 2002 at the University of Southern California. The original creators were Dr. Andrew Howard and his student Nate Koenig. The concept of a high-fidelity simulator stemmed from the need to simulate robots in outdoor environments under various conditions. As a complementary simulator to Stage, the name Gazebo was chosen as the closest structure to an outdoor stage. The name has stuck despite the fact that most users of Gazebo simulate indoor environments.

Over the years, Nate continued development of Gazebo while completing his PhD. In 2009, John Hsu, a Senior Research Engineer at Willow, integrated ROS and the PR2 into Gazebo, which has since become one the primary tools used in the ROS community. A few years later in the Spring of 2011, Willow Garage started providing financial support for the development of Gazebo. In 2012, Open Source Robotics Foundation (OSRF) spun out of Willow Garage and became the steward of the Gazebo project. After significant development effort by a team of talented individuals, OSRF used Gazebo to run the Virtual Robotics Challenge, a component in the DARPA Robotics Challenge, in July of 2013.

OSRF continues development of Gazebo with support from a diverse and active community. Stay tuned for more exciting developments related to robot simulation.