Skip to content

Commit 830ba7a

Browse files
authored
Merge pull request #265 from gazebosim/architecture-ign-rename
[10] Architecture ign rename
2 parents 69b6eb8 + b7533cb commit 830ba7a

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

architecture.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
# Gazebo Sim Architecture
22

3-
[Gazebo Sim](https://gazebosim.org/libs/gazebo) is an application entry-point of Ignition, generally encompassing the use of all other Ignition libraries.
3+
[Gazebo Sim](https://gazebosim.org/libs/gazebo) is an application entry-point of Gazebo, generally encompassing the use of all other Gazebo libraries.
44
As an executable, it runs a simulation by launching two processes: the backend server process and frontend client process.
55

66
The core functionality of Gazebo Sim is the client-server communication and the various plugins it loads to facilitate the simulation.
77
Plugins are libraries that are loaded at runtime.
8-
They allow Gazebo Sim to utilize other Ignition libraries.
9-
There are many plugin types in the Ignition framework.
8+
They allow Gazebo Sim to utilize other Gazebo libraries.
9+
There are many plugin types in the Gazebo framework.
1010
For example, there are plugins that introduce new physics engines or rendering engines.
1111
However, for the purpose of this document, any mention of plugins is referring only to Gazebo Sim server and GUI plugins.
1212

13-
Because they’re loaded at runtime, Ignition does not need to be recompiled to add or remove plugins.
14-
Gazebo Sim 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), [Gazebo Sim 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.
13+
Because they’re loaded at runtime, Gazebo does not need to be recompiled to add or remove plugins.
14+
Gazebo Sim ships with many plugins by default ([Server plugins](https://gazebosim.org/api/gazebo/4.5/namespaceignition_1_1gazebo_1_1systems.html), [Gazebo GUI plugins](https://gazebosim.org/api/gui/4.2/namespaceignition_1_1gui_1_1plugins.html), [Gazebo Sim 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.
1515
Users can also add more plugins and even write their own plugins that will be compiled into library files.
1616

17-
Ignition libraries are modular.
17+
Gazebo libraries are modular.
1818
Plugins let Gazebo Sim utilize other libraries.
19-
For example, [Ignition Physics](https://gazebosim.org/libs/physics) and Gazebo Sim are independent of one another, so Gazebo Sim 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, [Gazebo Physics](https://gazebosim.org/libs/physics) and Gazebo Sim are independent of one another, so Gazebo Sim has a physics plugin that uses Gazebo Physics as a library and incorporates Gazebo specifics, allowing Physics to be a system running in the simulation loop.
2020

21-
The Ignition Physics library is only used in the physics plugin, not in other plugins nor in the core of Gazebo Sim.
21+
The Gazebo Physics library is only used in the physics plugin, not in other plugins nor in the core of Gazebo Sim.
2222
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://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.
23+
However, some foundational libraries are used by all plugins, like [Gazebo 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 [Gazebo Plugin](https://gazebosim.org/libs/plugin), [Gazebo Math](https://gazebosim.org/libs/math), [SDFormat](https://gazebosim.org/libs/sdformat), and more.
2525

26-
There are certain plugins in both the frontend and backend processes that are loaded by default in every version of Ignition.
26+
There are certain plugins in both the frontend and backend processes that are loaded by default in every version of Gazebo.
2727
Many other plugins are optional.
2828
One common optional plugin is the sensors plugin.
2929
Both optional and default plugins can be removed or added at any time; Gazebo Sim will continue to run with limited functionality.
@@ -46,8 +46,8 @@ For example, a user could write a system that applies force to an entity by sett
4646
The modification of entities and components is how server plugins communicate with each other.
4747

4848
The entity component system is self-contained in Gazebo Sim, and systems act on entities and their components.
49-
Since other Ignition Libraries don't have direct knowledge/access to entities and components, other Ignition Libraries should be used in systems so that the server plugin can share entities (and their components) with these other Libraries.
50-
For example, the physics system shares entities and components with the Ignition Physics library in order to achieve physics effects on entities and components.
49+
Since other Gazebo Libraries don't have direct knowledge/access to entities and components, other Gazebo Libraries should be used in systems so that the server plugin can share entities (and their components) with these other Libraries.
50+
For example, the physics system shares entities and components with the Gazebo Physics library in order to achieve physics effects on entities and components.
5151

5252
There is a loop running in the backend that runs the systems, where some systems are proposing changes to entities and their components, and other systems are handling and applying those changes.
5353
This is called the “simulation loop”.
@@ -61,15 +61,15 @@ The visualization of that data, however, is left up to the client side plugins.
6161

6262
## Communication process
6363

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 Gazebo Sim 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-
The messages themselves are provided by Ignition Messages, while the framework for creating the publishers and subscribers that exchange messages is from Ignition Transport.
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 [Gazebo Transport](https://gazebosim.org/libs/transport), the communication library.
65+
Synchronization between processes is performed by scene broadcaster, a server-side Gazebo Sim plugin that uses the Gazebo Transport and [Gazebo Messages](https://gazebosim.org/libs/msgs) libraries to send messages from the server to the client.
66+
The messages themselves are provided by Gazebo Messages, while the framework for creating the publishers and subscribers that exchange messages is from Gazebo Transport.
6767

6868
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.
6969
Omitting the scene broadcaster, while possible, would mean not being able to visualize data on the frontend, which can be useful for saving computational power.
7070

7171
In addition to state messages sent from the scene broadcaster to the client, the client can also make requests to the server using the user commands system (another backend plugin).
72-
It also utilizes the Ignition Transport and Ignition Messages libraries.
72+
It also utilizes the Gazebo Transport and Gazebo Messages libraries.
7373
The user commands system has services that can be requested by the frontend GUI to insert, delete, move (etc.) models, lights, and other entities, and will send responses back to the GUI acknowledging the receipt and execution of those requests.
7474

7575
Several non-default plugins are able to send or receive messages to other processes outside of the server-client process.
@@ -79,9 +79,9 @@ One such process these plugins may communicate with, for example, is [ROS](https
7979
## Frontend client process
8080

8181
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://gazebosim.org/libs/gui) library.
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://gazebosim.org/libs/rendering) that creates the scene the user sees.
82+
All of the frontend plugins use the [Gazebo GUI](https://gazebosim.org/libs/gui) library.
83+
The client itself also relies on Gazebo 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 [Gazebo Rendering](https://gazebosim.org/libs/rendering) that creates the scene the user sees.
8585

8686
Frontend plugins typically communicate among themselves using [events](https://gazebosim.org/api/gui/4.2/namespaceignition_1_1gui_1_1events.html).
8787
Events are similar to messages, but they're processed synchronously.

0 commit comments

Comments
 (0)