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, and perform regression testing 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

Simulation Survey, 2015 Edition

2015-06-22

Thanks to everyone for filling out the Gazebo survey, and helping direct our development plans. We have received 128 responses from simulation users around the world. The following is a summary of the survey results

Feature votes

The survey consisted of thirteen high-level features and a text entry for comments. The features were on a scale from 1 to 5, where 1 is low importance and 5 high. The following figure shows the sum of the votes for each feature. vote-chart A nice dividing line exists around the 420 vote count. Six features are above this line:
  • Physics validation,
  • Diagnostic tools,
  • Physics helpers,
  • Rapid design tools,
  • Documentation, and
  • Performance improvements.

Comments

The following is a condensed list of feedback we received in the comments section of the survey. There is no particular order to this list.
  • Tutorials and documentation: Comments included improved tutorials for plugins, developing new sensors, debugging, and robot control.
  • Multiple distributions: This includes support for Windows, Mac, and other distributions of Linux besides Ubuntu.
  • Performance: Using Gazebo in courses where students have low power computers would be helpful, and better support for laptops.
  • Visualization and tools: Display of real and simulated sensor data. Support rewinding simulation, mobile obstacles (which I'm interpreting to be models that can be scripted), and improved human models.
  • Physics: Support for springs, omniwheels and tracked robots, better grasping, air and water flows, grass and uneven terrain, fixed joints, stable and accurate physics, and better default physics values for different environments (eg: indoor vs outdoor).
  • Formats: Allow import of Industry Foundation Classes (IFC) files, commonly used in the AEC industry. Merge SDF and URDF. Support for FMI and co-simulation. Get ROS to use Ignition Transport.
  • Design: Graphical editor to build and edit robots and models. Not more editing text files.
Thanks to everyone for participating in the survey. We received a lot of thanks and appreciation for developing and maintaining simulation, and our own Jackie Kay received a special shout out for helping on the brr-users group. We are actively integrating this feedback into our roadmap, which will be updated over the next few days.

Useful Links

answers
wiki
mailing_list
robot_models

Top

Features

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.

Plugins

Plugins

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, Softlayer, or your own OpenStack instance.

Command Line Tools

Command Line Tools

Extensive command line tools facilitate simulation introspection and control.


Top

Get Started

Get your feet wet

  1. Quick Start

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

  2. 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.

  3. Examples

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

  4. answers.gazebosim.org

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

  5. Mailing list

    Still need help? Send a message to the gazebosim mailing list.

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.


Top

Project Status

Gazebo 6.0 Progress

Jan 26 2015
Development
Feature freeze
Code freeze
Jul 27 2015

Jan 26 2015
Jul 6 2015
Jul 20 2015

Release Schedule and Roadmap

Gazebo will release a new major version every 6 months. Starting with Gazebo 4.0, releases will occur on the last week of January and July.

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.

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 2017-04-30

  • 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 2017-04-30

  • 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 2019-04-30

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

Gazebo 7.0 2016-01-25 EOL 2021-04-30

  • Propshop integration
  • Windows binary installation
  • OSX binary installation
  • Finish Cloudsim
  • Use Ignition Transport
  • Use Ignition Math
  • Improve documentation for first time users
  • Graphical tool to aid in validating physics
  • Improved log recording and playback
  • GUI design tools such as cut/copy/paste, tape measure, and undo
  • QT 5 support

Gazebo 8.0 2016-07-25 EOL 2017-07-24

  • GUI plotting utility
  • GUI console (display server messages)
  • Graphically resize inertias
  • GUI model editory
  • Reference geometries for link alignment with kinematic constraints
  • Nested models
  • Visualize plugin state
  • Save plugin state to log files
  • Support integration of quadcopter controllers with simulation
  • Break out rendering library to Ignition Rendering
  • Break out common library to Ignition Common

Gazebo 9.0 2017-01-25 EOL 2022-01-24

  • 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

Gazebo 10.0 2017-07-24 EOL 2018-07-23

  • GUI movie maker
  • Terrain GUI editor
  • Physics plugin API
  • Hydrax integration for improved water simulation
  • Photo-realistic rendering pipeline

Gazebo 11.0 2018-01-29 EOL 2023-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

Versioning

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

Statistics

Measurement v1.9 v2.2 v3.0 v4.0 v5.0
Lines of code 186k 197k 214k 217k 231k
Lines of comments 57k 63k 68k 69k 75k
Test function coverage 45.7% 47.1% 41.3% 40.6% 48.7%
Test branch coverage 32.2% 35.5% 29.2% 27.6% 38.0%
Tests 168 376 524 542 743
gcc/clang compiler warnings 0 0 0 0 0

Utilities

  • cppcheck Static code checker
  • cpplint Code style checker
  • gtest & qtest Test systems
  • Jenkins Continuous integration
  • Pre-commit, 2 reviewers Code review
  • Doxygen API Documentation
  • ABI Compliance Checker (ACC) API/ABI compliance

Physics Engine Support

Gazebo 3.0+ 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
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.

Top

History

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.