• Stars
    star
    674
  • Rank 66,980 (Top 2 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created over 4 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Open source robotics simulator. The latest version of Gazebo.

Gazebo Sim : A Robotic Simulator

Maintainer: michael AT openrobotics DOT org

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

Build Status
Test coverage codecov
Ubuntu Focal Build Status
Homebrew Build Status
Windows Build 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

Code of Conduct

Contributing

Versioning

License

Features

  • Dynamics simulation: Access multiple high-performance physics engines through Gazebo Physics.

  • Advanced 3D graphics: Through Gazebo Rendering, it's possible to use rendering engines such as OGRE v2 for realistic rendering of environments with high-quality lighting, shadows, and textures.

  • Sensors and noise models: Generate sensor data, optionally with noise, from laser range finders, 2D/3D cameras, Kinect style sensors, contact sensors, force-torque, IMU, GPS, and more, all powered by Gazebo Sensors

  • Plugins: Develop custom plugins for robot, sensor, and environment control.

  • Graphical interface: Create, introspect and interact with your simulations through plugin-based graphical interfaces powered by Gazebo GUI.

  • Simulation models: Access numerous robots including PR2, Pioneer2 DX, iRobot Create, and TurtleBot, and construct environments using other physically accurate models available through Gazebo Fuel. You can also build a new model using SDF.

  • TCP/IP Transport: Run simulation on remote servers and interface to Gazebo Sim through socket-based message passing using Gazebo Transport.

  • Command line tools: Extensive command line tools for increased simulation introspection and control.

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 for a single package is to define the environment variable GZ_CONFIG_PATH to point to the location of the Gazebo library installation, where the YAML file for the package is found, such as

export GZ_CONFIG_PATH=/usr/local/share/gz

However, that environment variable only takes a single path, which means if the installations from source are in different locations, only one can be specified.

Another workaround for working with multiple Gazebo libraries on the command line is using symbolic links to each library's YAML file.

mkdir ~/.gz/tools/configs -p
cd ~/.gz/tools/configs/
ln -s /usr/local/share/gz/fuel8.yaml .
ln -s /usr/local/share/gz/transport12.yaml .
ln -s /usr/local/share/gz/transportlog12.yaml .
...
export GZ_CONFIG_PATH=$HOME/.gz/tools/configs

This issue is tracked here.

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.
├── 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 CONTRIBUTING.md.

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.

More Repositories

1

gazebo-classic

Gazebo classic. For the latest version, see https://github.com/gazebosim/gz-sim
C++
1,183
star
2

ros_gz

Integration between ROS (1 and 2) and Gazebo simulation
C++
224
star
3

sdformat

Simulation Description Format (SDFormat) parser and description files.
C++
165
star
4

gz-omni

Connnects Gazebo to Isaac Sim
C++
118
star
5

ros_gz_project_template

A template project integrating ROS and Gazebo simulator
C++
116
star
6

gz-gui

Builds on top of Qt to provide widgets which are useful when developing robotics applications, such as a 3D view, plots, dashboard, etc, and can be used together in a convenient unified interface.
C++
72
star
7

gz-physics

Abstract physics interface designed to support simulation and rapid development of robot applications.
C++
64
star
8

gz-rviz

ROS 2 visualization using Gazebo Libraries
C++
57
star
9

gz-sensors

Provides numerous sensor models designed to generate realistic data from simulation environments.
C++
57
star
10

gz-math

General purpose math library for robot applications.
C++
54
star
11

gz-rendering

C++ library designed to provide an abstraction for different rendering engines. It offers unified APIs for creating 3D graphics applications.
C++
54
star
12

docs

High-level Gazebo documentation that gets published to https://gazebosim.org/docs/
Python
50
star
13

gz-plugin

Cross-platform C++ library for dynamically loading plugins.
C++
31
star
14

gz-transport

Transport library for component communication based on publication/subscription and service calls.
C++
29
star
15

sdf_tutorials

SDFormat documentation and proposals.
27
star
16

gz-mujoco

Python
26
star
17

gz-cmake

A set of CMake modules that are used by the C++-based Gazebo projects.
CMake
24
star
18

gz-msgs

Messages for Gazebo robot simulation.
C++
21
star
19

gz-usd

Command line tools to convert SDFormat to USD and viceversa
C++
19
star
20

gz-tools

Command line tools for the Gazebo libraries.
C++
14
star
21

gz-fuel-tools

A client library and command line tools for interacting with Gazebo Fuel servers.
C++
12
star
22

gz-launch

Run and manage programs and plugins.
JavaScript
11
star
23

gz-common

An audio-visual library supports processing audio and video files, a graphics library can load a variety 3D mesh file formats into a generic in-memory representation, and the core library of Gazebo Common contains functionality that spans Base64 encoding/decoding to thread pools.
C++
11
star
24

design

Design documents and proposals for Gazebo.
7
star
25

gz-bazel

gz-bazel provides a set of Bazel build rules that are used by the Gazebo projects.
Python
6
star
26

gz-utils

Classes and functions for robot applications
C++
6
star
27

gz-rndf

An RNDF parser.
C++
3
star
28

gz-garden

Garden, Gazebo's 7th named release
CMake
3
star
29

gz-fortress

Fortress, Gazebo's 6th named release
CMake
3
star
30

gazebo_test_cases

TypeScript
3
star
31

.github

Default Ignition health files such as issue and PR templates
2
star
32

garden-tutorial-party

1
star
33

gz-edifice

Edifice, Gazebo's 5th named release
CMake
1
star
34

gz-chrono

Connects Gazebo with the Project Chrono Physics Engine
CMake
1
star
35

gz-citadel

Citadel, Gazebo's 3rd named release
CMake
1
star
36

gz-harmonic

Harmonic, Gazebo's 8th named release
CMake
1
star
37

gz_pkg_create

A tool for setting up gazebo related projects.
Ruby
1
star
38

gz-omni-meta

1
star