## 3 Architecture and Deployment of the Simulation Subcomponent
This information is retrieved from the Xacro file by the /my_robot_description package and published to the /robot_description topic, from which it is subsequently propagated to the /rosout topic. This allows the data to reach the /gazebo node, where the /my_robot_bringup package uses the spawn function to instantiate the mobile robot within the simulation environment. This informational flow is illustrated in Figure 7.  
Figure 7: Gazebo simulation—communication architecture. Additionally, Figure 7 also defines the control of the mobile robot's DC motors using the /cmd_vel and /odom topics. Within these two topics, the /diff_drive_controller node publishes control and feedback data, and it is defined in the Xacro file. A distinct controller will be configured for each pair of wheels, resulting in a total of four differential drive controllers, one per locomotion module, distributed symmetrically across the robot's base. Once these nodes and topics have been properly set up, the mobile robot was spawned in the Gazebo environment by executing a launch file that instantiates all associated functionalities. The resulting simulation of the mobile robot can be observed in Figure 8.  
The selected environment serves as a test model for evaluating locomotion on flat surfaces. Gazebo provides various functionalities for visualizing coordinate frames of structural links, visual geometry, collision boundaries, inertial properties, and mass distribution. These aspects are illustrated in Figure 9a-f, extracted from the Xacro file. For the testing phase, a virtual sensor was also added to the Xacro configuration, an RGB camera mounted at the front of the mobile robot, as shown in Figure 10.  
Figure 8: Spawning of the mobile robot in Gazebo simulation environment. Figure 9: _Cont._  
This component will retrieve audio/video data from the simulation environment and publish it to the /camera_sensor topic, as shown in Figure 11.  
Figure 11: Publishing AV camera data to the /camera_sensor topic by the /camera_controller node. Figure 9: Xacro information visualization in Gazebo. (**a**) Mobile robot component’s frames; (**b**) mobile robot joint’s visual description; (**c**) transparent view of mobile robot’s links; (**d**) mesh granulation of mobile robot’s links; (**e**) mass distributions of mobile robot’s links; (**f**) inertial tensor of mobile robot links. This plugin utilized the /libgazebo_ros_camera.so library. The images captured by the AV camera can be transmitted through the topic it publishes to and redirected to the robotic network server via the WSS protocol for display within the WebPlatform [32]. The testing phase for the AV camera functionality involved using the images published to the /camera_sensor topic, which were then subscribed to and visualized in RViz2 (the static simulation environment in ROS2), as shown in Figure 7.0  
In conclusion, these functionalities can be further extended through the development of ROS-Gazebo microservices [20; 21] and the creation of a structured information flow within the system. The following section presents the dynamic Gazebo simulation of a mobile robot within the test environment.