Home

Awesome

Gazebo Sim : A Robotic Simulator

Maintainer: michael AT openrobotics DOT org

GitHub open issues GitHub open pull requests Discourse topics Hex.pm

BuildStatus
Test coveragecodecov
Ubuntu NobleBuild Status
HomebrewBuild Status
WindowsBuild Status

Gazebo Sim is an open source robotics simulator. Through Gazebo Sim, users have access to high fidelity physics, rendering, and sensor models. Additionally, users and developers have multiple points of entry to simulation including a graphical user interface, plugins, and asynchronous message passing and services.

Gazebo Sim is derived from Gazebo Classic and represents over 16 years of development and experience in robotics and simulation. This library is part of the Gazebo project.

Table of Contents

Features

Install

Usage

Documentation

Testing

Folder Structure

Contributing

Code of Conduct

Versioning

License

Features

Install

See the installation tutorial.

Usage

Gazebo Sim can be run from the command line, once installed, using:

gz sim

For help, and command line options use:

gz sim -h

Known issue of command line tools

In the event that the installation is a mix of Debian and from source, command line tools from gz-tools may not work correctly.

A workaround is to define the environment variable GZ_CONFIG_PATH to point to the different locations of the Gazebo libraries installations, where the YAML files for the packages are found, such as

export GZ_CONFIG_PATH=/usr/local/share/gz:$HOME/ws/install/share/gz

where $HOME/ws is an example colcon workspace used to build Gazebo.

On Windows, gz sim (i.e. running both server and GUI in one command) doesn't yet work. To run Gazebo Sim on Windows, you need to run the server in one terminal (gz sim -s <other args>) and the GUI in another terminal (gz sim -g <other args>). Remember this when reading through all Gazebo Sim tutorials. Also remember that Conda and install\setup.bat need to be sourced in both terminals (as well as any changes to GZ_PARTITION and other environment variables).

Documentation

See the installation tutorial.

Testing

See the installation tutorial.

See the Writing Tests section of the contributor guide for help creating or modifying tests.

Folder Structure

Refer to the following table for information about important directories and files in this repository.

gz-sim
├── examples                     Various examples that can be run against binary or source installs of gz-sim.
│   ├── plugin                   Example plugins.
│   ├── standalone               Example standalone programs that use gz-sim as a library.
│   └── worlds                   Example SDF world files.
├── include/gz/sim               Header files that downstream users are expected to use.
│   └── detail                   Header files that are not intended for downstream use, mainly template implementations.
├── python                       Python wrappers
├── src                          Source files and unit tests.
│   ├── gui                      Graphical interface source code.
│   └── systems                  System source code.
├── test
│   ├── integration              Integration tests.
│   ├── performance              Performance tests.
│   ├── plugins                  Plugins used in tests.
│   ├── regression               Regression tests.
├── tutorials                    Tutorials, written in markdown.
├── Changelog.md                 Changelog.
├── CMakeLists.txt               CMake build script.
├── Migration.md                 Migration guide.
└── README.md                    This readme.

Contributing

Please see the contribution guide.

Code of Conduct

Please see CODE_OF_CONDUCT.md.

Versioning

This library uses Semantic Versioning. Additionally, this library is part of the Gazebo project which periodically releases a versioned set of compatible and complimentary libraries. See the Gazebo website for version and release information.

License

This library is licensed under Apache 2.0. See also the LICENSE file.