You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: architecture.md
+15-15Lines changed: 15 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
# Ignition Gazebo Architecture
2
2
3
-
[Ignition Gazebo](https://ignitionrobotics.org/libs/gazebo) is an application entry-point of Ignition, generally encompassing the use of all other Ignition libraries.
3
+
[Ignition Gazebo](https://gazebosim.org/libs/gazebo) is an application entry-point of Ignition, generally encompassing the use of all other Ignition libraries.
4
4
As an executable, it runs a simulation by launching two processes: the backend server process and frontend client process.
5
5
6
6
The core functionality of Ignition Gazebo is the client-server communication and the various plugins it loads to facilitate the simulation.
@@ -11,23 +11,23 @@ For example, there are plugins that introduce new physics engines or rendering e
11
11
However, for the purpose of this document, any mention of plugins is referring only to Ignition Gazebo server and GUI plugins.
12
12
13
13
Because they’re loaded at runtime, Ignition does not need to be recompiled to add or remove plugins.
14
-
Ignition Gazebo ships with many plugins by default ([Server plugins](https://ignitionrobotics.org/api/gazebo/4.5/namespaceignition_1_1gazebo_1_1systems.html), [Ignition GUI plugins](https://ignitionrobotics.org/api/gui/4.2/namespaceignition_1_1gui_1_1plugins.html), [Ignition Gazebo GUI plugins](https://ignitionrobotics.org/api/gazebo/4.5/namespaceignition_1_1gazebo.html), and more), all of which are optional and can be removed by the user.
14
+
Ignition Gazebo ships with many plugins by default ([Server plugins](https://gazebosim.org/api/gazebo/4.5/namespaceignition_1_1gazebo_1_1systems.html), [Ignition GUI plugins](https://gazebosim.org/api/gui/4.2/namespaceignition_1_1gui_1_1plugins.html), [Ignition Gazebo GUI plugins](https://gazebosim.org/api/gazebo/4.5/namespaceignition_1_1gazebo.html), and more), all of which are optional and can be removed by the user.
15
15
Users can also add more plugins and even write their own plugins that will be compiled into library files.
16
16
17
17
Ignition libraries are modular.
18
18
Plugins let Ignition Gazebo utilize other libraries.
19
-
For example, [Ignition Physics](https://ignitionrobotics.org/libs/physics) and Ignition Gazebo are independent of one another, so Ignition Gazebo has a physics plugin that uses Ignition Physics as a library and incorporates Gazebo specifics, allowing Physics to be a system running in the simulation loop.
19
+
For example, [Ignition Physics](https://gazebosim.org/libs/physics) and Ignition Gazebo are independent of one another, so Ignition Gazebo has a physics plugin that uses Ignition Physics as a library and incorporates Gazebo specifics, allowing Physics to be a system running in the simulation loop.
20
20
21
21
The Ignition Physics library is only used in the physics plugin, not in other plugins nor in the core of Ignition Gazebo.
22
22
Some libraries are only used by one plugin, or one in each process (frontend and backend).
23
-
However, some foundational libraries are used by all plugins, like [Ignition Common](https://ignitionrobotics.org/libs/common) which provides common functionality like logging, manipulating strings, file system interaction, etc., to all plugins.
24
-
Other such libraries include [Ignition Plugin](https://ignitionrobotics.org/libs/plugin), [Ignition Math](https://ignitionrobotics.org/libs/math), [SDFormat](https://ignitionrobotics.org/libs/sdformat), and more.
23
+
However, some foundational libraries are used by all plugins, like [Ignition Common](https://gazebosim.org/libs/common) which provides common functionality like logging, manipulating strings, file system interaction, etc., to all plugins.
24
+
Other such libraries include [Ignition Plugin](https://gazebosim.org/libs/plugin), [Ignition Math](https://gazebosim.org/libs/math), [SDFormat](https://gazebosim.org/libs/sdformat), and more.
25
25
26
26
There are certain plugins in both the frontend and backend processes that are loaded by default in every version of Ignition.
27
27
Many other plugins are optional.
28
28
One common optional plugin is the sensors plugin.
29
29
Both optional and default plugins can be removed or added at any time; Ignition Gazebo will continue to run with limited functionality.
30
-
These demos on [Server Configuration](https://ignitionrobotics.org/api/gazebo/4.3/server_config.html) and [GUI Configuration](https://ignitionrobotics.org/api/gazebo/4.3/gui_config.html) showcase that functionality.
30
+
These demos on [Server Configuration](https://gazebosim.org/api/gazebo/4.3/server_config.html) and [GUI Configuration](https://gazebosim.org/api/gazebo/4.3/gui_config.html) showcase that functionality.
31
31
32
32
The simulation process is depicted in the diagram below, and further explained in the Backend and Frontend process sections that follow.
33
33
@@ -36,7 +36,7 @@ The simulation process is depicted in the diagram below, and further explained i
36
36
## Backend server process
37
37
38
38
Ignition Gazebo is responsible for loading plugins in the backend, referred to as systems.
39
-
The server runs an entity-component system architecture (see [Ignition Gazebo terminology](https://ignitionrobotics.org/api/gazebo/4.2/terminology.html)).
39
+
The server runs an entity-component system architecture (see [Ignition Gazebo terminology](https://gazebosim.org/api/gazebo/4.2/terminology.html)).
40
40
The backend will usually have multiple systems responsible for everything in the simulation – computing physics, recording logs, receiving user commands, etc.
41
41
42
42
Systems act on entities and components of those entities.
@@ -53,16 +53,16 @@ There is a loop running in the backend that runs the systems, where some systems
53
53
This is called the “simulation loop”.
54
54
The Entity Component Manager (ECM) in the backend provides the functionality for the actual querying and updating of the entities and components.
55
55
56
-
[Physics](https://ignitionrobotics.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1Physics.html), [User Commands](https://ignitionrobotics.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1UserCommands.html), and [Scene Broadcaster](https://ignitionrobotics.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1SceneBroadcaster.html) are all systems launched by default in the backend.
57
-
As mentioned earlier, however, even default systems can be added to or removed from the simulation loop (the [Server Configuration](https://ignitionrobotics.org/api/gazebo/4.3/server_config.html) tutorial describes how to customize default systems).
56
+
[Physics](https://gazebosim.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1Physics.html), [User Commands](https://gazebosim.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1UserCommands.html), and [Scene Broadcaster](https://gazebosim.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1SceneBroadcaster.html) are all systems launched by default in the backend.
57
+
As mentioned earlier, however, even default systems can be added to or removed from the simulation loop (the [Server Configuration](https://gazebosim.org/api/gazebo/4.3/server_config.html) tutorial describes how to customize default systems).
58
58
For any other functionality, like sensor data processing for example, an additional system would have to be loaded.
59
-
For example, if you need to generate sensor data that utilizes rendering sensors, you would need to load the [sensors system](https://ignitionrobotics.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1Sensors.html).
59
+
For example, if you need to generate sensor data that utilizes rendering sensors, you would need to load the [sensors system](https://gazebosim.org/api/gazebo/4.5/classignition_1_1gazebo_1_1systems_1_1Sensors.html).
60
60
The visualization of that data, however, is left up to the client side plugins.
61
61
62
62
## Communication process
63
63
64
-
Any information that crosses the process boundary (whether back-to-front with scene broadcaster or front-to-back with user commands) has to go through [Ignition Transport](https://ignitionrobotics.org/libs/transport), the communication library.
65
-
Synchronization between processes is performed by scene broadcaster, a server-side Ignition Gazebo plugin that uses the Ignition Transport and [Ignition Messages](https://ignitionrobotics.org/libs/msgs) libraries to send messages from the server to the client.
64
+
Any information that crosses the process boundary (whether back-to-front with scene broadcaster or front-to-back with user commands) has to go through [Ignition Transport](https://gazebosim.org/libs/transport), the communication library.
65
+
Synchronization between processes is performed by scene broadcaster, a server-side Ignition Gazebo plugin that uses the Ignition Transport and [Ignition Messages](https://gazebosim.org/libs/msgs) libraries to send messages from the server to the client.
66
66
The messages themselves are provided by Ignition Messages, while the framework for creating the publishers and subscribers that exchange messages is from Ignition Transport.
67
67
68
68
The scene broadcaster system is responsible for getting the state of the world (all of the entities and their component values) from the ever-changing simulation loop running in the back end, packaging that information into a very compact message, and periodically sending it to the frontend process.
@@ -79,11 +79,11 @@ One such process these plugins may communicate with, for example, is [ROS](https
79
79
## Frontend client process
80
80
81
81
The client-side process, essentially the GUI, also comprises multiple plugins, some loaded by default, others that can be added, and all optional.
82
-
All of the frontend plugins use the [Ignition GUI](https://ignitionrobotics.org/libs/gui) library.
82
+
All of the frontend plugins use the [Ignition GUI](https://gazebosim.org/libs/gui) library.
83
83
The client itself also relies on Ignition GUI.
84
-
There are visualization plugins that create the windows of the GUI, add buttons and other interactive features, and a 3D scene plugin that utilizes [Ignition Rendering](https://ignitionrobotics.org/libs/rendering) that creates the scene the user sees.
84
+
There are visualization plugins that create the windows of the GUI, add buttons and other interactive features, and a 3D scene plugin that utilizes [Ignition Rendering](https://gazebosim.org/libs/rendering) that creates the scene the user sees.
85
85
86
-
Frontend plugins typically communicate among themselves using [events](https://ignitionrobotics.org/api/gui/4.2/namespaceignition_1_1gui_1_1events.html).
86
+
Frontend plugins typically communicate among themselves using [events](https://gazebosim.org/api/gui/4.2/namespaceignition_1_1gui_1_1events.html).
87
87
Events are similar to messages, but they're processed synchronously.
88
88
For example, the `Render` event is emitted by a 3D scene from it's rendering thread right before the scene is rendered; this gives other plugins the chance to execute code right at that thread at that moment, which is valuable to edit the 3D scene.
89
89
Other such events are emitted when the user right-clicks or hovers the scene for example.
Copy file name to clipboardExpand all lines: citadel/moving_robot.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ After the `-p` option we specify the content (value) of the message: linear spee
63
63
64
64
**Hint:** You can know what every topic option does using this command: `ign topic -h`
65
65
66
-
For more information about `Topics` and `Messages` in Ignition check the [Transport library tutorials](https://ignitionrobotics.org/api/transport/9.0/tutorials.html)
66
+
For more information about `Topics` and `Messages` in Ignition check the [Transport library tutorials](https://gazebosim.org/api/transport/9.0/tutorials.html)
Copy file name to clipboardExpand all lines: citadel/sensors.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -294,7 +294,7 @@ To do that, we'll write a short C++ program that listens to
294
294
the sensor data and sends velocity commands to the robot.
295
295
This program is called a node. We will build a node that subscribes
296
296
to the `/lidar` topic and reads its data.
297
-
Have a look at this [tutorial](https://ignitionrobotics.org/api/transport/9.0/messages.html)
297
+
Have a look at this [tutorial](https://gazebosim.org/api/transport/9.0/messages.html)
298
298
to learn how to build a `publisher` and a `subscriber` node.
299
299
You can download the finished node for this demo from [here](https://github.com/ignitionrobotics/docs/blob/master/citadel/tutorials/sensors/lidar_node.cc).
0 commit comments