Tutorials
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.
Getting Started
- Installation: Install instructions.
- Terminology: List of terms used across the documentation.
- GUI configuration: Customizing your layout.
- Server configuration: Customizing what system plugins are loaded.
- 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
- Finding resources: The different ways in which Gazebo looks for files.
- Debugging: Information about debugging Gazebo.
GUI and rendering features
- Move Camera to model Move camera to model
- Model Photo Shoot Taking perspective, top, front, and side pictures of a model.
- Video Recorder: Record videos from the 3D render window.
- Headless rendering: Access the GPU on a remote machine to produce sensor data without an X server.
- Apply Force and Torque: Applying 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.
- Global illumination: Enable global illumination for the GUI and for the sensor view.
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.
Intermediate
- Logging: Record and play back time series of world state.
- Light config: Configure lights in the scene.
- Levels: Load entities on demand in large environments.
- Python interfaces Python interfaces
Specific systems and features
- Detachable Joints: Creating models that start off rigidly attached and then get detached during simulation.
- Triggered Publisher: Using the TriggeredPublisher system to orchestrate actions in simulation.
- Battery: Keep track of battery charge on robot models.
- Particle emitter: Using particle emitters in simulation
- Spherical coordinates: Working with latitude and longitude
- 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 users
- Physics engines: Loading different physics engines.
- Entity creation: Insert models or lights using services.
- ERB Template: Use ERB, a templating language, to generate SDF files for simulation worlds.
- Distributed Simulation: Spread simulation across several processes.
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
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.
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.