Gazebo Simulator

Gazebo is an open-source 2D/3D robotics simulator that began development in 2002.

ros_gz_bridge - ROS 2 package that provides a network bridge which enables the exchange of messages between ROS 2 and Gazebo Transport Documentation, GitHub

SDF (Simulation Description Format)

SDFormat (Simulation Description Format), sometimes abbreviated as SDF, is an XML format that describes objects and environments for robot simulators, visualization, and control. Originally developed as part of the Gazebo robot simulator, SDFormat was designed with scientific robot applications in mind.

Commands

Note

Starting from Gazebo Harmonic, gz is the standard command (older versions like Fortress and Citadel used ign). For example: gz topic -l

  • gz sim –verbose 3 - run Gazebo with verbose output (3 is the default level)

Topics

  • gz topic -l - list all of the topics that are currently available in the Gazebo transport system

  • gz topic -i -t /topic_name - display information about a specific topic

  • gz topic -e -t /topic_name - echo topic /topic_name (-e -echo, -t - topic name)

Plugins

Gazebo plugins are shared libraries (a chunk of code that is compiled as a shared library) that are inserted into the simulation. They can be used to model sensors, actuators, or controllers. Plugins are written in C++ and are loaded when the simulation starts.

Tutorial

Sensors

Gazebo provides a suite of sensors that can be attached to models. These sensors can be used to simulate real-world sensors such as IMU, camera, LiDARs, depth camera, GPS and others.

Moving the robot

Gazebo provides plugins to simulate motor controllers.

How-to

  • To add a model to the world, click on three dots on the right top corner of the Gazebo GUI and type ‘Resource Spawner’, then type the name of the model you want to add and press download. Path to the resources downloaded from Fuel: ~/.gz/fuel

  • To save the world, click on the hamburger menu on the left top corner of the Gazebo GUI and select ‘Save World’. Path to the default worlds: /usr/share/gz/gz-sim/worlds (for Harmonic)

Other Useful Information

  • Gazebo Fuel is a cloud service that provides a free library of robot models and environments. Models can easily be added to a world running in the Gazebo GUI.