-
Notifications
You must be signed in to change notification settings - Fork 269
/
tutorials.md.in
136 lines (99 loc) · 7.72 KB
/
tutorials.md.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
\page tutorials Tutorials
Welcome to the Gazebo @GZ_DESIGNATION_CAP@ tutorials. These tutorials
will guide you through the process of understanding the capabilities of the
Gazebo @GZ_DESIGNATION_CAP@ 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
* \subpage install "Installation": Install instructions.
* \subpage move_camera_to_model Move camera to model
* \subpage apply_force_torque "Apply Force and Torque": Apply forces and/or torques to models during simulation through the GUI.
* \subpage mouse_drag "Mouse Drag": Move models by dragging them in the scene using forces and torques.
* \subpage model_command "Model Command": Use the CLI to get information about the models in a simulation.
* \subpage pause_run_simulation "Pause and Run simulation": Use Gazebo transport API to pause and run simulation.
* \subpage reset_simulation Reset simulation
* \subpage headless_rendering "Headless rendering": Access the GPU on a remote machine to produce sensor data without an X server.
### Intermediate
* \subpage log "Logging": Record and play back time series of world state.
* \subpage levels "Levels": Load entities on demand in large environments.
### Advanced
* \subpage erbtemplate "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
* \subpage gui_config "GUI configuration": Customize your layout.
* \subpage server_config "Server configuration": Customize what system plugins are loaded.
* \subpage model_photo_shoot "Model Photo Shoot" Taking perspective, top, front, and side pictures of a model.
* \subpage videorecorder "Video Recorder": Record videos from the 3D render window.
### Intermediate
* \subpage light_config "Light config": Configure lights in the scene.
* \subpage entity_creation "Entity creation": Insert models or lights using services.
* \subpage battery "Battery": Keep track of battery charge on robot models.
* \subpage particle_emitter "Particle emitter": Use particle emitters in simulation
* \subpage detachablejoints "Detachable Joints": Create models that start off rigidly attached and then get detached during simulation.
* \subpage triggeredpublisher "Triggered Publisher": Use the TriggeredPublisher system to orchestrate actions in simulation.
* \subpage spherical_coordinates "Spherical coordinates": Work with latitude and longitude
* \subpage underwater_vehicles "Underwater Vehicles": Understand how to simulate underwater vehicles
* \subpage logicalaudiosensor "Logical Audio Sensor": Using the LogicalAudioSensor system to mimic logical audio emission and detection in simulation.
* \subpage auto_inertia_calculation "Automatic Inertia Calculation": Automatically compute inertia values(mass, mass matrix, center of mass) for SDFormat links.
* \subpage jointcontrollers "Joint Controllers": Using available joint controller plugins to control joints.
* \subpage shadow_texture_size "Shadow texture size": Change the texture size of shadows casted by lights.
### Advanced
* \subpage physics "Physics engines": Load different physics engines.
### Developers
* \subpage createsystemplugins "Create System Plugins": Programmatically access simulation using C++ plugins.
* \subpage usingcomponents "Using components": Using components in a system plugin.*
* \subpage rendering_plugins "Rendering plugins": Write plugins that use Gazebo Rendering on the server and client.
* \subpage test_fixture "Test Fixture": Writing automated CI tests
### Migration from Gazebo classic
* \subpage migrationplugins "Plugins": Walk through the differences between writing plugins for Gazebo classic and Gazebo
* \subpage migrationsdf "SDF": Migrating SDF files from Gazebo classic to Gazebo
* \subpage migrationworldapi "World API": Guide on what World C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationmodelapi "Model API": Guide on what Model C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationlightapi "Light API": Guide on what Light C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationjointapi "Joint API": Guide on what Joint C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationactorapi "Actor API": Guide on what Actor C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationlinkapi "Link API": Guide on what Link C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage migrationsensorapi "Sensor API": Guide on what Sensor C++ functions to call in Gazebo when migrating from Gazebo classic
* \subpage ardupilot "Case Study": Migrating the ArduPilot ModelPlugin from Gazebo classic to Gazebo.
### 3D modeling help
* \subpage collada_world_exporter "Collada World Exporter": Export an entire world to a single Collada mesh.
* \subpage meshtofuel "Importing a Mesh to Fuel": Build a model directory around a mesh so it can be added to the Gazebo Fuel app.
* \subpage pointcloud "Converting a Point Cloud to a 3D Model": Turn point cloud data into 3D models for use in simulations.
### Blender help
* \subpage model_and_optimize_meshes "Model and optimize meshes in Blender": Some recomendations when creating meshes in Blender for simulations.
* \subpage blender_sdf_exporter "Blender SDF Exporter": Use a Blender script to export a model to the SDF format.
* \subpage blender_distort_meshes "Blender mesh distortion": Use a Blender Python script to programmatically deform and distort meshes to customized extents.
* \subpage blender_procedural_datasets "Generation of Procedural Datasets with Blender": Use Blender with a Python script to generate procedural datasets of SDF models.
### Maritime
* \subpage theory_buoyancy "Buoyancy: " Describe the theory of operation of the
buoyancy plugin.
* \subpage theory_hydrodynamics "Hydrodynamics:" Describe the theory of
operation of the hydrodynamics plugin.
* \subpage create_vehicle "Create a maritime vehicle:" How to design a maritime
model.
* \subpage adding_visuals "Adding visuals:" How to import 3D meshes into Gazebo
to increase the visual fidelity of your model.
* \subpage frame_reference "Frame of reference:" Decide the frame of reference
for your model.
* \subpage adding_system_plugins "Adding system plugins:" How to add plugins to
your model to provide extra capabilities to it.
* \subpage lander "Create a lander vehicle:" How to create a lander robot.
* \subpage underwater_vehicles "Create an underwater vehicle:" How to create an
underwater robot.
* \subpage surface_vehicles "Create a surface vehicle:" How to create a maritime
surface robot.
## Reference
The reference section contains information that may come in handy for lookup.
* \subpage resources "Finding resources": The different ways in which Gazebo looks for files.
* \subpage python_interfaces Python interfaces
* \subpage debugging "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.
* \subpage terminology "Terminology": List of terms used across the documentation.
* \subpage distributedsimulation "Distributed Simulation": Spread simulation across several processes.
## License
The code associated with this documentation is licensed under an [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
This documentation is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).