================ Gazebo Simulator ================ Gazebo is an open-source 2D/3D robotics simulator that began development in 2002. * `Official website `_ * `Gazebo GitHub `_ * `Documentation `_ * `Gazebo for ROS 2 installation `_ * `Packages that provide integration between ROS and Gazebo (roz_gz) `_ * `Demos showing how to use Gazebo Sim with ROS `_ * `ROS 2 integration `_ **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. * `Official website of SDFormat `_ * `Gazebo SDF worlds GitHub `_ * `Gazebo SDF worlds tutorial `_ 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. * `Tutorial `_ * `Library of sensors on GitHub `_ * `Demo launch files for ROS 2 `_ Moving the robot ---------------- Gazebo provides plugins to simulate motor controllers. * `Tutorial `_ * `SDF file containing a world and a robot `_ 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.