Welcome to the Gazebo Sim tutorials. These tutorials will guide you through the process of understanding the capabilities of the Gazebo Sim library and how to use the library effectively.
Tutorials
The Tutorials section contains step-by-step instructions with self-contained examples to help you get started using Gazebo.
Beginner
- Installation: Install instructions.
- Move Camera to model Move camera to model
- Apply Force and Torque: Apply forces and/or torques to models during simulation through the GUI.
- Mouse Drag: Move models by dragging them in the scene using forces and torques.
- Model Command: Use the CLI to get information about the models in a simulation.
- Pause and Run simulation: Use Gazebo transport API to pause and run simulation.
- Reset simulation Reset simulation
- Headless rendering: Access the GPU on a remote machine to produce sensor data without an X server.
Intermediate
- Logging: Record and play back time series of world state.
- Levels: Load entities on demand in large environments.
Advanced
- ERB Template: Use ERB, a templating language, to generate SDF files for simulation worlds.
How-to Guides
The How-to Guides provide recipes for specific "How to..." questions or things you may want to do. They assume some experience. If you are an absolute beginner, start with the Tutorials section.
Beginner
- GUI configuration: Customize your layout.
- Server configuration: Customize what system plugins are loaded.
- Model Photo Shoot Taking perspective, top, front, and side pictures of a model.
- Video Recorder: Record videos from the 3D render window.
Intermediate
- Light config: Configure lights in the scene.
- Entity creation: Insert models or lights using services.
- Battery: Keep track of battery charge on robot models.
- Particle emitter: Use particle emitters in simulation
- Detachable Joints: Create models that start off rigidly attached and then get detached during simulation.
- Triggered Publisher: Use the TriggeredPublisher system to orchestrate actions in simulation.
- Spherical coordinates: Work with latitude and longitude
- Underwater Vehicles: Understand how to simulate underwater vehicles
- Logical Audio Sensor: Using the LogicalAudioSensor system to mimic logical audio emission and detection in simulation.
- Automatic Inertia Calculation: Automatically compute inertia values(mass, mass matrix, center of mass) for SDFormat links.
- Joint Controllers: Using available joint controller plugins to control joints.
Advanced
- Physics engines: Load different physics engines.
Developers
- Create System Plugins: Programmatically access simulation using C++ plugins.
- Using components: Using components in a system plugin.*
- Rendering plugins: Write plugins that use Gazebo Rendering on the server and client.
- Test Fixture: Writing automated CI tests
Migration from Gazebo classic
- Plugins: Walk through the differences between writing plugins for Gazebo classic and Gazebo
- SDF: Migrating SDF files from Gazebo classic to Gazebo
- World API: Guide on what World C++ functions to call in Gazebo when migrating from Gazebo classic
- Model API: Guide on what Model C++ functions to call in Gazebo when migrating from Gazebo classic
- Light API: Guide on what Light C++ functions to call in Gazebo when migrating from Gazebo classic
- Joint API: Guide on what Joint C++ functions to call in Gazebo when migrating from Gazebo classic
- Actor API: Guide on what Actor C++ functions to call in Gazebo when migrating from Gazebo classic
- Link API: Guide on what Link C++ functions to call in Gazebo when migrating from Gazebo classic
- Sensor API: Guide on what Sensor C++ functions to call in Gazebo when migrating from Gazebo classic
- Case Study: Migrating the ArduPilot ModelPlugin from Gazebo classic to Gazebo.
3D modeling help
- Collada World Exporter: Export an entire world to a single Collada mesh.
- Importing a Mesh to Fuel: Build a model directory around a mesh so it can be added to the Gazebo Fuel app.
- Converting a Point Cloud to a 3D Model: Turn point cloud data into 3D models for use in simulations.
Blender help
- Model and optimize meshes in Blender: Some recomendations when creating meshes in Blender for simulations.
- Blender SDF Exporter: Use a Blender script to export a model to the SDF format.
- Blender mesh distortion: Use a Blender Python script to programmatically deform and distort meshes to customized extents.
- Generation of Procedural Datasets with Blender: Use Blender with a Python script to generate procedural datasets of SDF models.
Maritime
- Buoyancy: Describe the theory of operation of the buoyancy plugin.
- Hydrodynamics: Describe the theory of operation of the hydrodynamics plugin.
- Create a maritime vehicle: How to design a maritime model.
- Adding visuals: How to import 3D meshes into Gazebo to increase the visual fidelity of your model.
- Frame of reference: Decide the frame of reference for your model.
- Adding system plugins: How to add plugins to your model to provide extra capabilities to it.
- Create a lander vehicle: How to create a lander robot.
- Create an underwater vehicle: How to create an underwater robot.
- Create a surface vehicle: How to create a maritime surface robot.
Reference
The reference section contains information that may come in handy for lookup.
- Finding resources: The different ways in which Gazebo looks for files.
- Python interfaces Python interfaces
- Debugging: Information about debugging Gazebo.
Concepts
The concepts section explains things that require additional understanding than the scope of the Tutorials and How-to Guides.
- Terminology: List of terms used across the documentation.
- Distributed Simulation: Spread simulation across several processes.
License
The code associated with this documentation is licensed under an Apache 2.0 License.
This documentation is licensed under a Creative Commons Attribution 4.0 International License.