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.
Advanced 3D Graphics
Utilizing OGRE, Gazebo provides realistic rendering of environments including high-quality lighting, shadows, and textures.
Sensors & 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.
Many robots are provided including PR2, Pioneer2 DX, iRobot Create, and TurtleBot. Or build your own using SDF.
Run simulation on remote servers, and interface to Gazebo through socket-based message passing using Google Protobufs.
Use CloudSim to run Gazebo on Amazon, Softlayer, or your own OpenStack instance.
Command Line Tools
Extensive command line tools facilitate simulation introspection and control.
Get your feet wet
- Quick Start
A simple set of steps to get Gazebo up and running rapidly.
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.
If you can't find what you are looking for, try our askbot help forum located at answers.gazebosim.org.
- Mailing list
Still need help? Send a message to the gazebosim mailing list.
- Gazebo Overview
A high-level description of Gazebo and its various components.
- Gazebo API
Doxygen generated documentation for the Gazebo libraries.
- Protobuf Messages
A complete list of all the protobuf messages used by Gazebo
- 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.
Gazebo 4.0 Progress
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.
- 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
- Improved shadow maps
- Breakable walls
- Visualize moment of inertia
- Graphically resize simple shapes
- Wireless transceiver sensor models
- OpenAL audio support
- Terrain paging
- 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
- GUI overlay support
- New transport layer
- Vehicle suspension models
- GUI plotting utility
- Improved GUI logging utility
- PropShop Integration
- GUI robot model editor
- Physics plugin API
- More tutorials and documentation
- Visualize soft bodies
- Support other graphics cards (intel, amd)
- Support for Windows
- Clone running simulations
- CloudSim integration
- Terrain GUI editor
- GUI console (display server messages)
- Improved aerodynamics
- GUI movie maker
- More robot models, canned environments, and objects
- In-gui tutorials
- GUI tools: measure distances, undo, cut/paste, paint colors/textures
- Allow users to report usage statistics to OSRF
- Scriptable models
VersioningGazebo 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
|Measurement||Gazebo 1.9||Gazebo 2.2||Gazebo 3.0|
|Lines of code||186k||197k||214k|
|Lines of comments||57k||63k||68k|
|Test function coverage||45.7%||47.1%||41.3%|
|Test branch coverage||32.2%||35.5%||29.2%|
|Passing tests *||168||376||524|
|Failing tests *||0||0||0|
|gcc/clang compiler warnings||0||0||0|
*Performed on Ubuntu Quantal with Nvidia GPU
- 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|
|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.