diff --git a/spring-mock-ws/fetch_released_nodes.sh b/spring-mock-ws/fetch_released_nodes.sh
index 35a9c649920140ed26ab4b0b8fd4a0e60e1987a0..a69c35384b0c79200dd28fdd7d2bf16b7a6c65e3 100644
--- a/spring-mock-ws/fetch_released_nodes.sh
+++ b/spring-mock-ws/fetch_released_nodes.sh
@@ -3,5 +3,12 @@
 # This script clone all the SPRING ROS nodes that are marked as released in the
 # architecture design.
 
-echo "Cloning respeaker_ros (ROS node: respeaker_ros), branch: master to src/ ..."
-git clone --depth 1 --branch master https://gitlab.inria.fr/spring/wp7_ari/respeaker_ros.git src/respeaker_ros
+if cd src/respeaker_ros; 
+then
+    echo "respeaker_ros: pulling latest changes from master...";
+    git pull origin master; 
+else 
+
+    echo "Cloning respeaker_ros (ROS node: respeaker_ros), branch: master to src/ ..."
+    git clone --depth 1 --branch master https://gitlab.inria.fr/spring/wp7_ari/respeaker_ros.git src/respeaker_ros;
+fi
diff --git a/spring-mock-ws/src/activityreco/CMakeLists.txt b/spring-mock-ws/src/activityreco/CMakeLists.txt
index a23b15ac37decde871a3f7f30c657b1efa2a3ce3..6ee05ee24cf5a6ff32f521b75cdeb676c5e7ba57 100644
--- a/spring-mock-ws/src/activityreco/CMakeLists.txt
+++ b/spring-mock-ws/src/activityreco/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/activityreco/package.xml b/spring-mock-ws/src/activityreco/package.xml
index 052673b53db9b5fba374d66254d3efd92564a16d..a181589b34c251645439cfc5891a0974836bacfb 100644
--- a/spring-mock-ws/src/activityreco/package.xml
+++ b/spring-mock-ws/src/activityreco/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>activityreco</name>
     <version>1.0.0</version>
-    <description>Activity reco (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Activity reco (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/activityreco/src/main.cpp b/spring-mock-ws/src/activityreco/src/main.cpp
index fc579ad7dc2955685e48c51e65b1856cf92307c7..095c233a57d8058e19d2eb93adde1c557ffc26ce 100644
--- a/spring-mock-ws/src/activityreco/src/main.cpp
+++ b/spring-mock-ws/src/activityreco/src/main.cpp
@@ -1,34 +1,54 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "activityreco");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void tfbodiesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("activityreco: received message: " << msg);
+}
+void gazedirectionCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("activityreco: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "activityreco");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfbodies_sub = n.subscribe("tfbodies", 1, tfbodiesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber gazedirection_sub = n.subscribe("gazedirection", 1, gazedirectionCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher output_pub = n.advertise<std_msgs::Empty>("output", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node activityreco launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/asr/CMakeLists.txt b/spring-mock-ws/src/asr/CMakeLists.txt
index ba82bc6ab622b2a490ea5c96bf5d7583762706cb..e40a4bd91e47b8e67e759f422432f9058bf048a7 100644
--- a/spring-mock-ws/src/asr/CMakeLists.txt
+++ b/spring-mock-ws/src/asr/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/asr/package.xml b/spring-mock-ws/src/asr/package.xml
index d957de01ae6ed7b1491b3fbe449a76401c275978..27262c543baea7f5cbeb8f9675a0ddd495eaf6b0 100644
--- a/spring-mock-ws/src/asr/package.xml
+++ b/spring-mock-ws/src/asr/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>asr</name>
     <version>1.0.0</version>
-    <description>ASR (BIU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>ASR (BIU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/asr/src/main.cpp b/spring-mock-ws/src/asr/src/main.cpp
index 5bc95a6351840675b13bbe157f2c3440d91a97d3..c9e9c900dd99a7a86c5e1367151b19242ed4e8cb 100644
--- a/spring-mock-ws/src/asr/src/main.cpp
+++ b/spring-mock-ws/src/asr/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "asr");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("asr: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "asr");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hvvoiceidspeech_pub = n.advertise<std_msgs::Empty>("hvvoiceidspeech", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node asr launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/body2dpose/CMakeLists.txt b/spring-mock-ws/src/body2dpose/CMakeLists.txt
index f203404c7d1474f538aeecf8fb8e4ab0076e17d1..4c34e3d3932b474f83b5cd8408707ca0473b08b8 100644
--- a/spring-mock-ws/src/body2dpose/CMakeLists.txt
+++ b/spring-mock-ws/src/body2dpose/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/body2dpose/package.xml b/spring-mock-ws/src/body2dpose/package.xml
index cfc9b4d76df6db7f71452c172930ee28b4025405..ea09a523b5c523421e33df2c5021d471dda81cfd 100644
--- a/spring-mock-ws/src/body2dpose/package.xml
+++ b/spring-mock-ws/src/body2dpose/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>body2dpose</name>
     <version>1.0.0</version>
-    <description>Body 2D pose (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Body 2D pose (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/body2dpose/src/main.cpp b/spring-mock-ws/src/body2dpose/src/main.cpp
index 5190c03548fd574244fa0bc4b68e611cfd20a433..83230de5530bc0b791e1a1f1bc74f68c197d59ee 100644
--- a/spring-mock-ws/src/body2dpose/src/main.cpp
+++ b/spring-mock-ws/src/body2dpose/src/main.cpp
@@ -1,34 +1,54 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "body2dpose");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void imagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("body2dpose: received message: " << msg);
+}
+void bodyroisCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("body2dpose: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "body2dpose");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber images_sub = n.subscribe("images", 1, imagesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber bodyrois_sub = n.subscribe("bodyrois", 1, bodyroisCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hbbodyidskel2d_pub = n.advertise<std_msgs::Empty>("hbbodyidskel2d", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node body2dpose launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/demographics/CMakeLists.txt b/spring-mock-ws/src/demographics/CMakeLists.txt
index 29ae2880faa9fb6e1304e7c622fcbc17e401f3eb..0e44c6d8b1e25e6662edc98cc77224964e75b443 100644
--- a/spring-mock-ws/src/demographics/CMakeLists.txt
+++ b/spring-mock-ws/src/demographics/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/demographics/package.xml b/spring-mock-ws/src/demographics/package.xml
index 747158ec63f9ca1e197e64869551f545bb0ea1fc..2ed4b326bc5525ea5cb0fde9f96b2942396b784f 100644
--- a/spring-mock-ws/src/demographics/package.xml
+++ b/spring-mock-ws/src/demographics/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>demographics</name>
     <version>1.0.0</version>
-    <description>Demographics (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Demographics (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/demographics/src/main.cpp b/spring-mock-ws/src/demographics/src/main.cpp
index b81cf6642533d17102b9354fdb34852afac223b1..34940276c1cdea5def454670ef850046b7d63567 100644
--- a/spring-mock-ws/src/demographics/src/main.cpp
+++ b/spring-mock-ws/src/demographics/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "demographics");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void facesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("demographics: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "demographics");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber faces_sub = n.subscribe("faces", 1, facesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hffaceiddemographics_pub = n.advertise<std_msgs::Empty>("hffaceiddemographics", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node demographics launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/dialoguemanager/CMakeLists.txt b/spring-mock-ws/src/dialoguemanager/CMakeLists.txt
index 404f1edf6770d7f87fd20067d6ef2ec28c31aa62..e39948e865c8d9c1cdef982182f26a343bc50e92 100644
--- a/spring-mock-ws/src/dialoguemanager/CMakeLists.txt
+++ b/spring-mock-ws/src/dialoguemanager/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/dialoguemanager/package.xml b/spring-mock-ws/src/dialoguemanager/package.xml
index 135823a244d4e4193a6779db9f5c7142598ba927..227a407e7dbd77ef1f1529d77637b17e88bed970 100644
--- a/spring-mock-ws/src/dialoguemanager/package.xml
+++ b/spring-mock-ws/src/dialoguemanager/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>dialoguemanager</name>
     <version>1.0.0</version>
-    <description>Dialogue manager (HWU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Dialogue manager (HWU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/dialoguemanager/src/main.cpp b/spring-mock-ws/src/dialoguemanager/src/main.cpp
index 2c01aa6dd10965e716d1765c0a007281ff5b6e3c..7a9de56eaaede06c5809fb80069355e785c8a263 100644
--- a/spring-mock-ws/src/dialoguemanager/src/main.cpp
+++ b/spring-mock-ws/src/dialoguemanager/src/main.cpp
@@ -1,34 +1,56 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "dialoguemanager");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void interactionmessagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("dialoguemanager: received message: " << msg);
+}
+void speechCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("dialoguemanager: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "dialoguemanager");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber interactionmessages_sub = n.subscribe("interactionmessages", 1, interactionmessagesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber speech_sub = n.subscribe("speech", 1, speechCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher dialoguestate_pub = n.advertise<std_msgs::Empty>("dialoguestate", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher nextutterance_pub = n.advertise<std_msgs::Empty>("nextutterance", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node dialoguemanager launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/facedetection/CMakeLists.txt b/spring-mock-ws/src/facedetection/CMakeLists.txt
index afa7c2f10aebbde56f70ec45281dc8dfbf1fc685..487d64c95e78989e346bcabb32d0fedbd36ef537 100644
--- a/spring-mock-ws/src/facedetection/CMakeLists.txt
+++ b/spring-mock-ws/src/facedetection/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/facedetection/package.xml b/spring-mock-ws/src/facedetection/package.xml
index 5790d1f80b8d6f707602021c41e567024988011f..3ecd5dabbb234ca37e98a2ecb96a6d9e7b4c422e 100644
--- a/spring-mock-ws/src/facedetection/package.xml
+++ b/spring-mock-ws/src/facedetection/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>facedetection</name>
     <version>1.0.0</version>
-    <description>Face detection (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Face detection (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/facedetection/src/main.cpp b/spring-mock-ws/src/facedetection/src/main.cpp
index cef41b32d1aa48b93c4c74ace5d025e887c5dabb..b911b8b4325ab3ff4a2c6452dd076de13cd268c3 100644
--- a/spring-mock-ws/src/facedetection/src/main.cpp
+++ b/spring-mock-ws/src/facedetection/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "facedetection");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void imagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("facedetection: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "facedetection");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber images_sub = n.subscribe("images", 1, imagesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hffaceidroi_pub = n.advertise<std_msgs::Empty>("hffaceidroi", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node facedetection launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/facerecognition/CMakeLists.txt b/spring-mock-ws/src/facerecognition/CMakeLists.txt
index 7bf582c676c4a7f3d0caf4caac33864bcfd854c8..72206f7d62428869790419d33a8c2744d5b6fd97 100644
--- a/spring-mock-ws/src/facerecognition/CMakeLists.txt
+++ b/spring-mock-ws/src/facerecognition/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/facerecognition/package.xml b/spring-mock-ws/src/facerecognition/package.xml
index ae68035f414ae3c96638fb2a3f674df0eea06538..6ac33550f7bcd82c17d882969fb30c1745d3e73c 100644
--- a/spring-mock-ws/src/facerecognition/package.xml
+++ b/spring-mock-ws/src/facerecognition/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>facerecognition</name>
     <version>1.0.0</version>
-    <description>Face recognition (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Face recognition (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/facerecognition/src/main.cpp b/spring-mock-ws/src/facerecognition/src/main.cpp
index cfb6a830e095704f789dd3e947ec2ea94ad04928..bb1301afefb9db78bdd903e5f3fe33881c5cc36a 100644
--- a/spring-mock-ws/src/facerecognition/src/main.cpp
+++ b/spring-mock-ws/src/facerecognition/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "facerecognition");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void facesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("facerecognition: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "facerecognition");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber faces_sub = n.subscribe("faces", 1, facesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher personid_pub = n.advertise<std_msgs::Empty>("personid", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node facerecognition launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/fformation/CMakeLists.txt b/spring-mock-ws/src/fformation/CMakeLists.txt
index 0538e11266084f2a84bbe4d2ae52ab28cb7cb141..a18b71634bb0910544e739ceee20de8641ca6592 100644
--- a/spring-mock-ws/src/fformation/CMakeLists.txt
+++ b/spring-mock-ws/src/fformation/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  tf
+  hri_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/fformation/package.xml b/spring-mock-ws/src/fformation/package.xml
index a6d688fb0deb72d8277f37cc7df589fdb359450c..bac7ba052e231ea57feae3a83a3d1a9b50607a8a 100644
--- a/spring-mock-ws/src/fformation/package.xml
+++ b/spring-mock-ws/src/fformation/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>fformation</name>
     <version>1.0.0</version>
-    <description>F-formation (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>F-formation (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>tf</depend>
+  <depend>hri_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/fformation/src/main.cpp b/spring-mock-ws/src/fformation/src/main.cpp
index 1fc08d2a13251dc12c9dd15cf67521d9b5f89022..44c366ef07bc86dd95af7d0931076521230acd8c 100644
--- a/spring-mock-ws/src/fformation/src/main.cpp
+++ b/spring-mock-ws/src/fformation/src/main.cpp
@@ -1,34 +1,42 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "fformation");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "tf/transform_listener.h"
+#include "hri_msgs/GroupsStamped.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "fformation");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
 
-        ros::spinOnce();
+    ros::Publisher groups_pub = n.advertise<hri_msgs::GroupsStamped>("groups", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node fformation launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/fisheyestereorgbhead/CMakeLists.txt b/spring-mock-ws/src/fisheyestereorgbhead/CMakeLists.txt
index 34cba70c6b4cdcb3c82c9412a5889f8f0889f334..4ee9c6c53910b1617455e8070ebf9b1904be9051 100644
--- a/spring-mock-ws/src/fisheyestereorgbhead/CMakeLists.txt
+++ b/spring-mock-ws/src/fisheyestereorgbhead/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/fisheyestereorgbhead/package.xml b/spring-mock-ws/src/fisheyestereorgbhead/package.xml
index 33c246103e5bc8b591d9ccedf24a83c517903b02..f5081309c213e36dcd318571028d19270637d530 100644
--- a/spring-mock-ws/src/fisheyestereorgbhead/package.xml
+++ b/spring-mock-ws/src/fisheyestereorgbhead/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>fisheyestereorgbhead</name>
     <version>1.0.0</version>
-    <description>Fisheye stereo + RGB head (PAL) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Fisheye stereo + RGB head (PAL) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/fisheyestereorgbhead/src/main.cpp b/spring-mock-ws/src/fisheyestereorgbhead/src/main.cpp
index 731ded8da2a3889670c1246f009257b68ceac96c..a1a1bfab2d1ecfac78be000745096974a6e5412d 100644
--- a/spring-mock-ws/src/fisheyestereorgbhead/src/main.cpp
+++ b/spring-mock-ws/src/fisheyestereorgbhead/src/main.cpp
@@ -1,34 +1,42 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "fisheyestereorgbhead");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "fisheyestereorgbhead");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher images_pub = n.advertise<std_msgs::Empty>("images", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node fisheyestereorgbhead launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/highlevelplanner/CMakeLists.txt b/spring-mock-ws/src/highlevelplanner/CMakeLists.txt
index b69b7b35864ac5d9090472f9107694975cddccff..2d8426cfc4f3e69501172ba1106d5c08211bda97 100644
--- a/spring-mock-ws/src/highlevelplanner/CMakeLists.txt
+++ b/spring-mock-ws/src/highlevelplanner/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/highlevelplanner/package.xml b/spring-mock-ws/src/highlevelplanner/package.xml
index c405f90338bd801ab47adc97e39b01bada8040b3..2bf1de2800dcf900960622fd32d96ea49eea3a9a 100644
--- a/spring-mock-ws/src/highlevelplanner/package.xml
+++ b/spring-mock-ws/src/highlevelplanner/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>highlevelplanner</name>
     <version>1.0.0</version>
-    <description>High-level planner (HWU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>High-level planner (HWU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/highlevelplanner/src/main.cpp b/spring-mock-ws/src/highlevelplanner/src/main.cpp
index d54c894f7c6586d0ce0f2bfe10ec6600367bea46..6923cd14e0798b1302fbd870a1bf06adcf9a6bb2 100644
--- a/spring-mock-ws/src/highlevelplanner/src/main.cpp
+++ b/spring-mock-ws/src/highlevelplanner/src/main.cpp
@@ -1,34 +1,70 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "highlevelplanner");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void dialoguestateCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("highlevelplanner: received message: " << msg);
+}
+void tfpersonsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("highlevelplanner: received message: " << msg);
+}
+void demographicsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("highlevelplanner: received message: " << msg);
+}
+void semanticscenedescriptionCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("highlevelplanner: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "highlevelplanner");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber dialoguestate_sub = n.subscribe("dialoguestate", 1, dialoguestateCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfpersons_sub = n.subscribe("tfpersons", 1, tfpersonsCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber demographics_sub = n.subscribe("demographics", 1, demographicsCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber semanticscenedescription_sub = n.subscribe("semanticscenedescription", 1, semanticscenedescriptionCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher interactionstate_pub = n.advertise<std_msgs::Empty>("interactionstate", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher output_pub = n.advertise<std_msgs::Empty>("output", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher navgoals_pub = n.advertise<std_msgs::Empty>("navgoals", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node highlevelplanner launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/interactionmanager/CMakeLists.txt b/spring-mock-ws/src/interactionmanager/CMakeLists.txt
index 3697c5085c72f630c221254c4bfed6c4f978e437..3e120742147195c17224beca7b6f5946a3e4106b 100644
--- a/spring-mock-ws/src/interactionmanager/CMakeLists.txt
+++ b/spring-mock-ws/src/interactionmanager/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/interactionmanager/package.xml b/spring-mock-ws/src/interactionmanager/package.xml
index 21b027d9169e580a3f2fc931017754c1693789d2..8a6a094901661955f16efedc2dbb84e6d209f309 100644
--- a/spring-mock-ws/src/interactionmanager/package.xml
+++ b/spring-mock-ws/src/interactionmanager/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>interactionmanager</name>
     <version>1.0.0</version>
-    <description>Interaction manager (HWU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Interaction manager (HWU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/interactionmanager/src/main.cpp b/spring-mock-ws/src/interactionmanager/src/main.cpp
index 5c2b6ae51168cf98e2b9ab9a2b6f98c5a536b27e..23d79994f2c4bd3ec17371cf00c5f11da883bbce 100644
--- a/spring-mock-ws/src/interactionmanager/src/main.cpp
+++ b/spring-mock-ws/src/interactionmanager/src/main.cpp
@@ -1,34 +1,86 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "interactionmanager");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
+void hppersonidCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
+void tfCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
+void semanticscenedescriptionCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
+void dialoguestateCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
+void robotstateCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("interactionmanager: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "interactionmanager");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber hppersonid_sub = n.subscribe("hppersonid", 1, hppersonidCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tf_sub = n.subscribe("tf", 1, tfCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber semanticscenedescription_sub = n.subscribe("semanticscenedescription", 1, semanticscenedescriptionCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber dialoguestate_sub = n.subscribe("dialoguestate", 1, dialoguestateCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber robotstate_sub = n.subscribe("robotstate", 1, robotstateCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher activepersonid_pub = n.advertise<std_msgs::Empty>("activepersonid", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher verbalcommand_pub = n.advertise<std_msgs::Empty>("verbalcommand", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher gestures_pub = n.advertise<std_msgs::Empty>("gestures", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher whotolookat_pub = n.advertise<std_msgs::Empty>("whotolookat", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher navgoals_pub = n.advertise<std_msgs::Empty>("navgoals", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node interactionmanager launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/maskdetection/CMakeLists.txt b/spring-mock-ws/src/maskdetection/CMakeLists.txt
index 388ac58cc0c4c6d6b34b2daf8fd4145e4fc8421b..c8a41da946c086487afbc37d31eca9fb65a5bc94 100644
--- a/spring-mock-ws/src/maskdetection/CMakeLists.txt
+++ b/spring-mock-ws/src/maskdetection/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/maskdetection/package.xml b/spring-mock-ws/src/maskdetection/package.xml
index 348deae548a6777223fc12f63505a9d1b58a6236..69d0dd860bba7a75db4fc2c1416c21b250907188 100644
--- a/spring-mock-ws/src/maskdetection/package.xml
+++ b/spring-mock-ws/src/maskdetection/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>maskdetection</name>
     <version>1.0.0</version>
-    <description>Mask detection (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Mask detection (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/maskdetection/src/main.cpp b/spring-mock-ws/src/maskdetection/src/main.cpp
index 65bebdffe596ad93358daef332f48a4a61afba8e..e7d813d8a2f414dafeedd6b4897cfe2aa8d1ac91 100644
--- a/spring-mock-ws/src/maskdetection/src/main.cpp
+++ b/spring-mock-ws/src/maskdetection/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "maskdetection");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void facesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("maskdetection: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "maskdetection");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber faces_sub = n.subscribe("faces", 1, facesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hffaceidmask_pub = n.advertise<std_msgs::Empty>("hffaceidmask", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node maskdetection launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/multipeopletracker/CMakeLists.txt b/spring-mock-ws/src/multipeopletracker/CMakeLists.txt
index 76eb73f5305bdc39133cb9d5dea5f7a993b51092..5c9202651627f30e20528e45073453256e929ddc 100644
--- a/spring-mock-ws/src/multipeopletracker/CMakeLists.txt
+++ b/spring-mock-ws/src/multipeopletracker/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/multipeopletracker/package.xml b/spring-mock-ws/src/multipeopletracker/package.xml
index e7e837a7a65b7e6342c5eb681d1a4ffa4a9cfd0f..80249ab08db9b9a3cb2a86a126084b7d092d2d9c 100644
--- a/spring-mock-ws/src/multipeopletracker/package.xml
+++ b/spring-mock-ws/src/multipeopletracker/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>multipeopletracker</name>
     <version>1.0.0</version>
-    <description>Multi-people tracker (INRIA) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Multi-people tracker (INRIA) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/multipeopletracker/src/main.cpp b/spring-mock-ws/src/multipeopletracker/src/main.cpp
index d2a12bf79361b30c27855468c5a2870dbae9eac8..1c201429441311ad10db95bd3e57b2ee27c462a7 100644
--- a/spring-mock-ws/src/multipeopletracker/src/main.cpp
+++ b/spring-mock-ws/src/multipeopletracker/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "multipeopletracker");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void imagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("multipeopletracker: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "multipeopletracker");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber images_sub = n.subscribe("images", 1, imagesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hbbodyidroi_pub = n.advertise<std_msgs::Empty>("hbbodyidroi", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node multipeopletracker launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/nonverbalbehaviours/CMakeLists.txt b/spring-mock-ws/src/nonverbalbehaviours/CMakeLists.txt
index dcb3091f6e0b98f0cd3f4764030f10318f78ab53..d9c90ed74dc0db23179122b3d50dd90289285f9b 100644
--- a/spring-mock-ws/src/nonverbalbehaviours/CMakeLists.txt
+++ b/spring-mock-ws/src/nonverbalbehaviours/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/nonverbalbehaviours/package.xml b/spring-mock-ws/src/nonverbalbehaviours/package.xml
index 6ee823feefc853bb75770544f577a1254fa44381..0e1891ac607d80f3e10f8ed6e9eec3bdb8ad3d0a 100644
--- a/spring-mock-ws/src/nonverbalbehaviours/package.xml
+++ b/spring-mock-ws/src/nonverbalbehaviours/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>nonverbalbehaviours</name>
     <version>1.0.0</version>
-    <description>Non-verbal behaviours (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Non-verbal behaviours (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/nonverbalbehaviours/src/main.cpp b/spring-mock-ws/src/nonverbalbehaviours/src/main.cpp
index dc6f1be0cc06c7b4e47449fb6b482893a5d00304..e530e4be725495c5be3de971d1041649e5f65ff4 100644
--- a/spring-mock-ws/src/nonverbalbehaviours/src/main.cpp
+++ b/spring-mock-ws/src/nonverbalbehaviours/src/main.cpp
@@ -1,34 +1,60 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "nonverbalbehaviours");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void facesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("nonverbalbehaviours: received message: " << msg);
+}
+void facevoicemappingCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("nonverbalbehaviours: received message: " << msg);
+}
+void voicesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("nonverbalbehaviours: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "nonverbalbehaviours");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber faces_sub = n.subscribe("faces", 1, facesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber facevoicemapping_sub = n.subscribe("facevoicemapping", 1, facevoicemappingCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber voices_sub = n.subscribe("voices", 1, voicesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hppersonidexpression_pub = n.advertise<std_msgs::Empty>("hppersonidexpression", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node nonverbalbehaviours launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/objectdetectionidentificationlocalisation/CMakeLists.txt b/spring-mock-ws/src/objectdetectionidentificationlocalisation/CMakeLists.txt
index 308b9eecc153a07fa4506f4422d6b57955dca6fc..78447bb48c1fa69338c18e81f63bce1eebf58b51 100644
--- a/spring-mock-ws/src/objectdetectionidentificationlocalisation/CMakeLists.txt
+++ b/spring-mock-ws/src/objectdetectionidentificationlocalisation/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/objectdetectionidentificationlocalisation/package.xml b/spring-mock-ws/src/objectdetectionidentificationlocalisation/package.xml
index 2a03aa9290c049af93cad9b2e9c58593d3913c97..178faae1fb7969d5bd90c25c6cda151c565067bf 100644
--- a/spring-mock-ws/src/objectdetectionidentificationlocalisation/package.xml
+++ b/spring-mock-ws/src/objectdetectionidentificationlocalisation/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>objectdetectionidentificationlocalisation</name>
     <version>1.0.0</version>
-    <description>Object detection/identification/localisation (CVUT) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Object detection/identification/localisation (CVUT) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/objectdetectionidentificationlocalisation/src/main.cpp b/spring-mock-ws/src/objectdetectionidentificationlocalisation/src/main.cpp
index 79cb3101acc881484c625ea28067e04340d8a24a..56af823fe14a5b882e1b4f10d49c9bd4ebb63724 100644
--- a/spring-mock-ws/src/objectdetectionidentificationlocalisation/src/main.cpp
+++ b/spring-mock-ws/src/objectdetectionidentificationlocalisation/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "objectdetectionidentificationlocalisation");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void videoCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("objectdetectionidentificationlocalisation: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "objectdetectionidentificationlocalisation");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber video_sub = n.subscribe("video", 1, videoCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher detected_objectslabel6dpos_pub = n.advertise<std_msgs::Empty>("detected_objectslabel6dpos", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node objectdetectionidentificationlocalisation launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/occupancymap/CMakeLists.txt b/spring-mock-ws/src/occupancymap/CMakeLists.txt
index cc3c39165b6091748a9b91f2b7b479124f2ecd79..b06e4ced8ad1f5c58d7206e62c8d67fe102b550d 100644
--- a/spring-mock-ws/src/occupancymap/CMakeLists.txt
+++ b/spring-mock-ws/src/occupancymap/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/occupancymap/package.xml b/spring-mock-ws/src/occupancymap/package.xml
index 0f1e427badc04a27bb9d23ae3c40974c0568e4d0..98ce8769ebd619978a3c9ff9b988af70bc86a54d 100644
--- a/spring-mock-ws/src/occupancymap/package.xml
+++ b/spring-mock-ws/src/occupancymap/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>occupancymap</name>
     <version>1.0.0</version>
-    <description>Occupancy map (CVUT) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Occupancy map (CVUT) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/occupancymap/src/main.cpp b/spring-mock-ws/src/occupancymap/src/main.cpp
index 0f756b6c6088ce7fd0798b23e49af2fce9ca28de..63dd3ba5b7359e82225b83f6a2b7f2d99ec33135 100644
--- a/spring-mock-ws/src/occupancymap/src/main.cpp
+++ b/spring-mock-ws/src/occupancymap/src/main.cpp
@@ -1,34 +1,54 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "occupancymap");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void tfbodiesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("occupancymap: received message: " << msg);
+}
+void dense3dmapCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("occupancymap: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "occupancymap");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfbodies_sub = n.subscribe("tfbodies", 1, tfbodiesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber dense3dmap_sub = n.subscribe("dense3dmap", 1, dense3dmapCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher nav_msgsoccupancygrid_pub = n.advertise<std_msgs::Empty>("nav_msgsoccupancygrid", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node occupancymap launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/orbslam/CMakeLists.txt b/spring-mock-ws/src/orbslam/CMakeLists.txt
index e01ad68610e822430755a97c8b494ac13edda7d1..8337cf37f6120ba9404a6d6a021c8d960da8f18d 100644
--- a/spring-mock-ws/src/orbslam/CMakeLists.txt
+++ b/spring-mock-ws/src/orbslam/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
+  tf
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/orbslam/package.xml b/spring-mock-ws/src/orbslam/package.xml
index d711b3106d6f0a9af7c6ee82caf1b4f1e5dbfc2c..ab959bc429f9b18675494ee2cd03aaebc6b4257f 100644
--- a/spring-mock-ws/src/orbslam/package.xml
+++ b/spring-mock-ws/src/orbslam/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>orbslam</name>
     <version>1.0.0</version>
-    <description>ORB SLAM (PAL) . Auto-generated by Boxology 1.0.0.</description>
+    <description>ORB SLAM (PAL) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
+  <depend>tf</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/orbslam/src/main.cpp b/spring-mock-ws/src/orbslam/src/main.cpp
index 44b5c48a60893c5bd68ac85bdc2e05abd648c19c..9bef5568acf530c018d356800be208e3ab13b807 100644
--- a/spring-mock-ws/src/orbslam/src/main.cpp
+++ b/spring-mock-ws/src/orbslam/src/main.cpp
@@ -1,34 +1,47 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "orbslam");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
+#include "tf/transform_broadcaster.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("orbslam: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "orbslam");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node orbslam launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/people3dtracker/CMakeLists.txt b/spring-mock-ws/src/people3dtracker/CMakeLists.txt
index 346c44e04dbb11b779bf04f6cc54b4251ba16528..48f911b604ea12313b9d026ffa348b92e86013b4 100644
--- a/spring-mock-ws/src/people3dtracker/CMakeLists.txt
+++ b/spring-mock-ws/src/people3dtracker/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
+  tf
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/people3dtracker/package.xml b/spring-mock-ws/src/people3dtracker/package.xml
index ecbcbc14b52a3eb3fa04ad5fdd4d9e72a38c71b2..ddbc11bc374c77581abc91628c65c7fb94a1b577 100644
--- a/spring-mock-ws/src/people3dtracker/package.xml
+++ b/spring-mock-ws/src/people3dtracker/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>people3dtracker</name>
     <version>1.0.0</version>
-    <description>People 3D tracker (INRIA) . Auto-generated by Boxology 1.0.0.</description>
+    <description>People 3D tracker (INRIA) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
+  <depend>tf</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/people3dtracker/src/main.cpp b/spring-mock-ws/src/people3dtracker/src/main.cpp
index f622910467bce77cdfe284ef87e242080488fc37..acc2aad8096fabc178c9cb215aeff343b2144a7c 100644
--- a/spring-mock-ws/src/people3dtracker/src/main.cpp
+++ b/spring-mock-ws/src/people3dtracker/src/main.cpp
@@ -1,34 +1,59 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "people3dtracker");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
+#include "tf/transform_broadcaster.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void feetpositionCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("people3dtracker: received message: " << msg);
+}
+void peopleroisCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("people3dtracker: received message: " << msg);
+}
+void groundplaneCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("people3dtracker: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "people3dtracker");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber feetposition_sub = n.subscribe("feetposition", 1, feetpositionCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber peoplerois_sub = n.subscribe("peoplerois", 1, peopleroisCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber groundplane_sub = n.subscribe("groundplane", 1, groundplaneCallback);
 
-        ros::spinOnce();
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node people3dtracker launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/personmanager/CMakeLists.txt b/spring-mock-ws/src/personmanager/CMakeLists.txt
index 516d4023b292d4802bb4d6231602912c07757bf5..18e9b079d04318999e837aa76ec755a3e082c2b2 100644
--- a/spring-mock-ws/src/personmanager/CMakeLists.txt
+++ b/spring-mock-ws/src/personmanager/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
+  tf
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/personmanager/package.xml b/spring-mock-ws/src/personmanager/package.xml
index 6c6f86957e8bdec51be46ca731f8ef25fa6ea928..24f94fed7240fc3f69cdfc4331f7a8004be97c07 100644
--- a/spring-mock-ws/src/personmanager/package.xml
+++ b/spring-mock-ws/src/personmanager/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>personmanager</name>
     <version>1.0.0</version>
-    <description>Person manager (INRIA) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Person manager (INRIA) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
+  <depend>tf</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/personmanager/src/main.cpp b/spring-mock-ws/src/personmanager/src/main.cpp
index 7e3ad51aea2975b86c2c5dd20764cc8c4736a7e6..97a25302b3a77647902342bb8233d8e39cceebe5 100644
--- a/spring-mock-ws/src/personmanager/src/main.cpp
+++ b/spring-mock-ws/src/personmanager/src/main.cpp
@@ -1,34 +1,67 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "personmanager");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
+#include "tf/transform_broadcaster.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void tfvoicesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("personmanager: received message: " << msg);
+}
+void matchersCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("personmanager: received message: " << msg);
+}
+void demographicsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("personmanager: received message: " << msg);
+}
+void tffacesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("personmanager: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "personmanager");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfvoices_sub = n.subscribe("tfvoices", 1, tfvoicesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber matchers_sub = n.subscribe("matchers", 1, matchersCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber demographics_sub = n.subscribe("demographics", 1, demographicsCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tffaces_sub = n.subscribe("tffaces", 1, tffacesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hppersonid_pub = n.advertise<std_msgs::Empty>("hppersonid", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node personmanager launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/rgbdcamera_info/CMakeLists.txt b/spring-mock-ws/src/rgbdcamera_info/CMakeLists.txt
index 19d24af4a57fdfcfb170aa44e1303d620c5edadf..0da168df5c4fd581d8c7a53247c36b9907aac61e 100644
--- a/spring-mock-ws/src/rgbdcamera_info/CMakeLists.txt
+++ b/spring-mock-ws/src/rgbdcamera_info/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/rgbdcamera_info/package.xml b/spring-mock-ws/src/rgbdcamera_info/package.xml
index bf564db1dfa80d5fc045bee9911a9fa3ca9d12f5..1944c187cb3f62810780fa1d3ba14dff95e6eff6 100644
--- a/spring-mock-ws/src/rgbdcamera_info/package.xml
+++ b/spring-mock-ws/src/rgbdcamera_info/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>rgbdcamera_info</name>
     <version>1.0.0</version>
-    <description>RGB-D + camera_info (PAL) . Auto-generated by Boxology 1.0.0.</description>
+    <description>RGB-D + camera_info (PAL) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/rgbdcamera_info/src/main.cpp b/spring-mock-ws/src/rgbdcamera_info/src/main.cpp
index 77adfd0d2e2dc8e4569f104bbcfbcf0a879ba50e..210bf02b2bff36ac619e23360e3dbe24dc38b1d4 100644
--- a/spring-mock-ws/src/rgbdcamera_info/src/main.cpp
+++ b/spring-mock-ws/src/rgbdcamera_info/src/main.cpp
@@ -1,34 +1,42 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "rgbdcamera_info");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "rgbdcamera_info");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher images_pub = n.advertise<std_msgs::Empty>("images", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node rgbdcamera_info launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/robotfunctionallayer/CMakeLists.txt b/spring-mock-ws/src/robotfunctionallayer/CMakeLists.txt
index bd8183128025526f5b28b284dd16c812630d395a..d4a4c90ef66f5aa905eba86712457a1b1fcca43d 100644
--- a/spring-mock-ws/src/robotfunctionallayer/CMakeLists.txt
+++ b/spring-mock-ws/src/robotfunctionallayer/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/robotfunctionallayer/package.xml b/spring-mock-ws/src/robotfunctionallayer/package.xml
index b1af87ec4c77fb22558aa5b80b586972a908b5cc..767536b35d8c475a3ea8547e0b8121ad615ddd36 100644
--- a/spring-mock-ws/src/robotfunctionallayer/package.xml
+++ b/spring-mock-ws/src/robotfunctionallayer/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>robotfunctionallayer</name>
     <version>1.0.0</version>
-    <description>Robot functional layer (PAL) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Robot functional layer (PAL) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/robotfunctionallayer/src/main.cpp b/spring-mock-ws/src/robotfunctionallayer/src/main.cpp
index 234b8c2121aa0f7b5b89fece48787b054ff08afd..7dab02e0deafff80344c1dd1a043a7c1cd16917f 100644
--- a/spring-mock-ws/src/robotfunctionallayer/src/main.cpp
+++ b/spring-mock-ws/src/robotfunctionallayer/src/main.cpp
@@ -1,34 +1,46 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "robotfunctionallayer");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotfunctionallayer: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "robotfunctionallayer");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node robotfunctionallayer launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/robotgui/CMakeLists.txt b/spring-mock-ws/src/robotgui/CMakeLists.txt
index e866568c23ec152c47c47d6122c4073013e2da0b..2ff207fcc377a52bca50f9ce0e1a5e5c7057a8fd 100644
--- a/spring-mock-ws/src/robotgui/CMakeLists.txt
+++ b/spring-mock-ws/src/robotgui/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/robotgui/package.xml b/spring-mock-ws/src/robotgui/package.xml
index 932e10b693ad7c1d9d12b751e2570d99956ea1dc..453786670212f9ee1b811ae788eee17ddfe06144 100644
--- a/spring-mock-ws/src/robotgui/package.xml
+++ b/spring-mock-ws/src/robotgui/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>robotgui</name>
     <version>1.0.0</version>
-    <description>Robot GUI (ERM) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Robot GUI (ERM) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/robotgui/src/main.cpp b/spring-mock-ws/src/robotgui/src/main.cpp
index 9ea42c77e8fbc1b111912c7b830325de4caf138c..1c904d318a61c25cc3e4333b6b2e4bf8285100d9 100644
--- a/spring-mock-ws/src/robotgui/src/main.cpp
+++ b/spring-mock-ws/src/robotgui/src/main.cpp
@@ -1,34 +1,64 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "robotgui");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void additionalsupportmaterialCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotgui: received message: " << msg);
+}
+void speechoutputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotgui: received message: " << msg);
+}
+void speechinputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotgui: received message: " << msg);
+}
+void ttsfeedbackCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotgui: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "robotgui");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber additionalsupportmaterial_sub = n.subscribe("additionalsupportmaterial", 1, additionalsupportmaterialCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber speechoutput_sub = n.subscribe("speechoutput", 1, speechoutputCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber speechinput_sub = n.subscribe("speechinput", 1, speechinputCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber ttsfeedback_sub = n.subscribe("ttsfeedback", 1, ttsfeedbackCallback);
 
-        ros::spinOnce();
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node robotgui launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/robotnonverbalbehaviours/CMakeLists.txt b/spring-mock-ws/src/robotnonverbalbehaviours/CMakeLists.txt
index d42214278d8300cca791e28b71d9306e8de332f0..47627e2ade9980db370542fc79fcc8fb28e077b0 100644
--- a/spring-mock-ws/src/robotnonverbalbehaviours/CMakeLists.txt
+++ b/spring-mock-ws/src/robotnonverbalbehaviours/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/robotnonverbalbehaviours/package.xml b/spring-mock-ws/src/robotnonverbalbehaviours/package.xml
index 075c18cbd890c2cca34928cade9fadf337a2425e..e406c5abd017883812f451f9df41d375f99f9def 100644
--- a/spring-mock-ws/src/robotnonverbalbehaviours/package.xml
+++ b/spring-mock-ws/src/robotnonverbalbehaviours/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>robotnonverbalbehaviours</name>
     <version>1.0.0</version>
-    <description>Robot non-verbal behaviours (INRIA) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Robot non-verbal behaviours (INRIA) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/robotnonverbalbehaviours/src/main.cpp b/spring-mock-ws/src/robotnonverbalbehaviours/src/main.cpp
index ec848f950d30d705a1f396b8607786ec326d6cf3..c03c568f13da092a71617fa48b81e326f1edc517 100644
--- a/spring-mock-ws/src/robotnonverbalbehaviours/src/main.cpp
+++ b/spring-mock-ws/src/robotnonverbalbehaviours/src/main.cpp
@@ -1,34 +1,74 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "robotnonverbalbehaviours");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void followingnavgoalsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotnonverbalbehaviours: received message: " << msg);
+}
+void hppersonidCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotnonverbalbehaviours: received message: " << msg);
+}
+void statusCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotnonverbalbehaviours: received message: " << msg);
+}
+void occupancymapCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotnonverbalbehaviours: received message: " << msg);
+}
+void lookatCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotnonverbalbehaviours: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "robotnonverbalbehaviours");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber followingnavgoals_sub = n.subscribe("followingnavgoals", 1, followingnavgoalsCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber hppersonid_sub = n.subscribe("hppersonid", 1, hppersonidCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber status_sub = n.subscribe("status", 1, statusCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber occupancymap_sub = n.subscribe("occupancymap", 1, occupancymapCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber lookat_sub = n.subscribe("lookat", 1, lookatCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher lowlevelactions_pub = n.advertise<std_msgs::Empty>("lowlevelactions", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher status_pub = n.advertise<std_msgs::Empty>("status", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node robotnonverbalbehaviours launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/robotutterances/CMakeLists.txt b/spring-mock-ws/src/robotutterances/CMakeLists.txt
index f38e64c4bb95c04c857f7509aeb45045a6b7e6b4..569368a32ca2c42c15df286391726eaa3f23fe3f 100644
--- a/spring-mock-ws/src/robotutterances/CMakeLists.txt
+++ b/spring-mock-ws/src/robotutterances/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/robotutterances/package.xml b/spring-mock-ws/src/robotutterances/package.xml
index 2942b8e674aebe952fa272de699bff83db2ea555..f8dc8b746a75eb2cb417cc72ea3718033556fc25 100644
--- a/spring-mock-ws/src/robotutterances/package.xml
+++ b/spring-mock-ws/src/robotutterances/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>robotutterances</name>
     <version>1.0.0</version>
-    <description>Robot utterances (HWU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Robot utterances (HWU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/robotutterances/src/main.cpp b/spring-mock-ws/src/robotutterances/src/main.cpp
index 7fb6f1aa99e3668709eb7bf34c543dbaf1fc678a..f12ab7be0da5ea8a91fb84fdedc90892fb465562 100644
--- a/spring-mock-ws/src/robotutterances/src/main.cpp
+++ b/spring-mock-ws/src/robotutterances/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "robotutterances");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("robotutterances: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "robotutterances");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher speech_pub = n.advertise<std_msgs::Empty>("speech", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node robotutterances launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/rosopenpose/CMakeLists.txt b/spring-mock-ws/src/rosopenpose/CMakeLists.txt
index 0434fdc314ff70b98bdeb155fd61cf7512faef41..4db52b760f1ee92025cb86a1441c02ba9fe67446 100644
--- a/spring-mock-ws/src/rosopenpose/CMakeLists.txt
+++ b/spring-mock-ws/src/rosopenpose/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/rosopenpose/package.xml b/spring-mock-ws/src/rosopenpose/package.xml
index 67bc4dca30cdf5bb9c2e406ed9ea26fcc46d2d2b..0d31cc0b697abc56eae2d8f5830e050fc80127ab 100644
--- a/spring-mock-ws/src/rosopenpose/package.xml
+++ b/spring-mock-ws/src/rosopenpose/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>rosopenpose</name>
     <version>1.0.0</version>
-    <description>ROS openpose (INRIA) . Auto-generated by Boxology 1.0.0.</description>
+    <description>ROS openpose (INRIA) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/rosopenpose/src/main.cpp b/spring-mock-ws/src/rosopenpose/src/main.cpp
index bfa4a22ef776049e0e49c3ac31f43b950e88f44a..f00e22e7aaf75ee2927187a942f9d5700361167c 100644
--- a/spring-mock-ws/src/rosopenpose/src/main.cpp
+++ b/spring-mock-ws/src/rosopenpose/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "rosopenpose");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("rosopenpose: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "rosopenpose");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher output_pub = n.advertise<std_msgs::Empty>("output", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node rosopenpose launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/sceneunderstanding/CMakeLists.txt b/spring-mock-ws/src/sceneunderstanding/CMakeLists.txt
index a422fd62fab62028f4f3f02cdc3a778f2e580ea0..7e122b7f9e230466543134d8d8cf502bcaa0ad7e 100644
--- a/spring-mock-ws/src/sceneunderstanding/CMakeLists.txt
+++ b/spring-mock-ws/src/sceneunderstanding/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/sceneunderstanding/package.xml b/spring-mock-ws/src/sceneunderstanding/package.xml
index 25fbd0c83a06e393e95157d10793a72001f38fd1..7adb2b3665c79830b261a40da2f89b5081cec173 100644
--- a/spring-mock-ws/src/sceneunderstanding/package.xml
+++ b/spring-mock-ws/src/sceneunderstanding/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>sceneunderstanding</name>
     <version>1.0.0</version>
-    <description>Scene understanding (HWU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Scene understanding (HWU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/sceneunderstanding/src/main.cpp b/spring-mock-ws/src/sceneunderstanding/src/main.cpp
index f6188bc72c7e2bae995604c1dcf4a9f9a31364a3..8022816c86ee96aacfb7159665297f956bcac285 100644
--- a/spring-mock-ws/src/sceneunderstanding/src/main.cpp
+++ b/spring-mock-ws/src/sceneunderstanding/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "sceneunderstanding");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void scenegraphCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("sceneunderstanding: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "sceneunderstanding");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber scenegraph_sub = n.subscribe("scenegraph", 1, scenegraphCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher semanticdescription_pub = n.advertise<std_msgs::Empty>("semanticdescription", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node sceneunderstanding launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/semanticmapping/CMakeLists.txt b/spring-mock-ws/src/semanticmapping/CMakeLists.txt
index 44e6bcbe3ea344ebe6a4146e7f4a70d660f51c6b..b599de5ca9d9147dbbeaf66b84294c55fefb002f 100644
--- a/spring-mock-ws/src/semanticmapping/CMakeLists.txt
+++ b/spring-mock-ws/src/semanticmapping/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/semanticmapping/package.xml b/spring-mock-ws/src/semanticmapping/package.xml
index 309ad684aa5e244714f87047535fbd60455b4622..f94066f12f3f09b5df1d01d5f67d8c09482c0f1d 100644
--- a/spring-mock-ws/src/semanticmapping/package.xml
+++ b/spring-mock-ws/src/semanticmapping/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>semanticmapping</name>
     <version>1.0.0</version>
-    <description>Semantic mapping (CVUT) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Semantic mapping (CVUT) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/semanticmapping/src/main.cpp b/spring-mock-ws/src/semanticmapping/src/main.cpp
index 77a38079dbd9cb7d435e163a3d1ece1e0bce0f4e..7cfeaf50b117337ae8ecd6305fc85139404579a8 100644
--- a/spring-mock-ws/src/semanticmapping/src/main.cpp
+++ b/spring-mock-ws/src/semanticmapping/src/main.cpp
@@ -1,34 +1,54 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "semanticmapping");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void dense3dmapCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("semanticmapping: received message: " << msg);
+}
+void detected_objectsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("semanticmapping: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "semanticmapping");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber dense3dmap_sub = n.subscribe("dense3dmap", 1, dense3dmapCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber detected_objects_sub = n.subscribe("detected_objects", 1, detected_objectsCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher scenegraph_pub = n.advertise<std_msgs::Empty>("scenegraph", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node semanticmapping launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/soundlocalisation/CMakeLists.txt b/spring-mock-ws/src/soundlocalisation/CMakeLists.txt
index 8da36d867ca35aa6ed1193b5c2f7c0757eeeeecf..6a4e00cca9862e1b9a400631668d73a4a09d830a 100644
--- a/spring-mock-ws/src/soundlocalisation/CMakeLists.txt
+++ b/spring-mock-ws/src/soundlocalisation/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  tf
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/soundlocalisation/package.xml b/spring-mock-ws/src/soundlocalisation/package.xml
index 276d265df5bfd4d134f05686eaebd0f9c9ee88ef..b2f623f3197d764a171bf164c2c0c927e13da7df 100644
--- a/spring-mock-ws/src/soundlocalisation/package.xml
+++ b/spring-mock-ws/src/soundlocalisation/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>soundlocalisation</name>
     <version>1.0.0</version>
-    <description>Sound localisation (BIU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Sound localisation (BIU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>tf</depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/soundlocalisation/src/main.cpp b/spring-mock-ws/src/soundlocalisation/src/main.cpp
index 7dd844d947439772fe33f774191ac44486cf61f8..eaed13c41c39b03a46aa51ec7457d253b082b365 100644
--- a/spring-mock-ws/src/soundlocalisation/src/main.cpp
+++ b/spring-mock-ws/src/soundlocalisation/src/main.cpp
@@ -1,34 +1,47 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "soundlocalisation");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "tf/transform_broadcaster.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("soundlocalisation: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "soundlocalisation");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node soundlocalisation launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/speakerrecognition/CMakeLists.txt b/spring-mock-ws/src/speakerrecognition/CMakeLists.txt
index 7fb92ba5453375ff62c3829f47928772770f2613..9b475a4b03fed4dd6713f34feac49325fb150571 100644
--- a/spring-mock-ws/src/speakerrecognition/CMakeLists.txt
+++ b/spring-mock-ws/src/speakerrecognition/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/speakerrecognition/package.xml b/spring-mock-ws/src/speakerrecognition/package.xml
index 0d72c94bfead32943ff7cc1481f906dd1b792523..4d1c5b4e7130705d04fa8140bbd21b804424b312 100644
--- a/spring-mock-ws/src/speakerrecognition/package.xml
+++ b/spring-mock-ws/src/speakerrecognition/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>speakerrecognition</name>
     <version>1.0.0</version>
-    <description>Speaker recognition (BIU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Speaker recognition (BIU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/speakerrecognition/src/main.cpp b/spring-mock-ws/src/speakerrecognition/src/main.cpp
index 16b7da309bb798d3df2680301156a84eef2a18e1..7d35d118b16255bbcfc35489496361342350c366 100644
--- a/spring-mock-ws/src/speakerrecognition/src/main.cpp
+++ b/spring-mock-ws/src/speakerrecognition/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "speakerrecognition");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("speakerrecognition: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "speakerrecognition");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher personid_pub = n.advertise<std_msgs::Empty>("personid", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node speakerrecognition launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/speechdiarization/CMakeLists.txt b/spring-mock-ws/src/speechdiarization/CMakeLists.txt
index 28daa46861d3059f309e67b8fcf9b100d1c974de..07d9a347e74cbb2abf85599320b8203ff6d6f421 100644
--- a/spring-mock-ws/src/speechdiarization/CMakeLists.txt
+++ b/spring-mock-ws/src/speechdiarization/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/speechdiarization/package.xml b/spring-mock-ws/src/speechdiarization/package.xml
index 2ce65db0cbf361d37b28e403baa46bcf3cb47328..054ef656e5317e8e26ae2314ef3eaaf294b8df8e 100644
--- a/spring-mock-ws/src/speechdiarization/package.xml
+++ b/spring-mock-ws/src/speechdiarization/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>speechdiarization</name>
     <version>1.0.0</version>
-    <description>Speech diarization (BIU) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Speech diarization (BIU) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/speechdiarization/src/main.cpp b/spring-mock-ws/src/speechdiarization/src/main.cpp
index 777a29e829afee441a805d2a9820e47cbfca105f..8adfabf3c6512e03ea06b800e974e382a5416958 100644
--- a/spring-mock-ws/src/speechdiarization/src/main.cpp
+++ b/spring-mock-ws/src/speechdiarization/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "speechdiarization");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("speechdiarization: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "speechdiarization");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher hvvoiceidaudio_pub = n.advertise<std_msgs::Empty>("hvvoiceidaudio", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node speechdiarization launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/speechsynthesis/CMakeLists.txt b/spring-mock-ws/src/speechsynthesis/CMakeLists.txt
index 0562fc0ed0f7e3021df7e7a78e0d8afe5015b3ab..25f5b23f0a0c881cf0920ffca196434c07de7491 100644
--- a/spring-mock-ws/src/speechsynthesis/CMakeLists.txt
+++ b/spring-mock-ws/src/speechsynthesis/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/speechsynthesis/package.xml b/spring-mock-ws/src/speechsynthesis/package.xml
index 144081377dc967a26086b6f4b383e3a8de1a7c6a..29219238ab6b8957d62360228b9cbd00f16d19f4 100644
--- a/spring-mock-ws/src/speechsynthesis/package.xml
+++ b/spring-mock-ws/src/speechsynthesis/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>speechsynthesis</name>
     <version>1.0.0</version>
-    <description>Speech synthesis (PAL) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Speech synthesis (PAL) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/speechsynthesis/src/main.cpp b/spring-mock-ws/src/speechsynthesis/src/main.cpp
index 8d850ad36da04d1b51b59c755390e03cda48f547..fa558ddff262883a15a4c0732f5d1065895e1bc0 100644
--- a/spring-mock-ws/src/speechsynthesis/src/main.cpp
+++ b/spring-mock-ws/src/speechsynthesis/src/main.cpp
@@ -1,34 +1,48 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "speechsynthesis");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("speechsynthesis: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "speechsynthesis");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher ttsfeedback_pub = n.advertise<std_msgs::Empty>("ttsfeedback", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node speechsynthesis launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/springarchitecture/CMakeLists.txt b/spring-mock-ws/src/springarchitecture/CMakeLists.txt
index a8769af56d4f99b9207b9fe59878352c09ca0c48..9c038d11948925c5442ff45c6280d36e23f1528c 100644
--- a/spring-mock-ws/src/springarchitecture/CMakeLists.txt
+++ b/spring-mock-ws/src/springarchitecture/CMakeLists.txt
@@ -3,41 +3,41 @@ project(springarchitecture)
 
 
 find_package(catkin REQUIRED COMPONENTS
-    speechsynthesis
-    objectdetectionidentificationlocalisation
-    activityreco
-    maskdetection
-    facerecognition
-    people3dtracker
-    highlevelplanner
+    userattention
     multipeopletracker
-    speechdiarization
-    fisheyestereorgbhead
-    robotfunctionallayer
-    usergaze
-    orbslam
-    dialoguemanager
+    maskdetection
     robotnonverbalbehaviours
-    demographics
-    nonverbalbehaviours
+    robotfunctionallayer
+    robotutterances
+    activityreco
     occupancymap
-    speakerrecognition
-    rgbdcamera_info
+    speechsynthesis
     facedetection
-    rosopenpose
+    fisheyestereorgbhead
+    demographics
     respeaker_ros
-    semanticmapping
+    facerecognition
+    speakerrecognition
+    usergaze
+    nonverbalbehaviours
+    visualslam3dmap
+    fformation
     robotgui
-    soundlocalisation
-    robotutterances
-    body2dpose
-    userattention
-    personmanager
+    people3dtracker
+    speechdiarization
+    rosopenpose
+    interactionmanager
+    rgbdcamera_info
     asr
+    dialoguemanager
     sceneunderstanding
-    fformation
-    interactionmanager
-    visualslam3dmap
+    objectdetectionidentificationlocalisation
+    highlevelplanner
+    orbslam
+    body2dpose
+    soundlocalisation
+    semanticmapping
+    personmanager
 )
 
 catkin_package()
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all.launch b/spring-mock-ws/src/springarchitecture/launch/start_all.launch
index 39f9c05e7c132e25b0686c1f36e720f80c0006c8..74e7ff381f0c8e0769e89c464c0444e5a1998fca 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all.launch
@@ -1,178 +1,145 @@
 <launch>
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
 
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
 
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
 
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
 
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
 
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
 
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
 
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
 
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
 
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
 
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
 
     <!-- launching Demographics (demographics) -->
     <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
 
-    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
-    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
 
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
 
     <!-- launching Speaker recognition (speakerrecognition) -->
     <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
 
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
 
-    <!-- launching ROS openpose (rosopenpose) -->
-    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
+    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
     </node>
 
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
 
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
 
     <!-- launching Robot GUI (robotgui) -->
     <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
 
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
 
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
 
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ROS openpose (rosopenpose) -->
+    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
     </node>
 
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
 
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
 
     <!-- launching ASR (asr) -->
     <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    </node>
+
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
 
     <!-- launching Scene understanding (sceneunderstanding) -->
     <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
 
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
 
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
 
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
+    </node>
+
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
+    </node>
+
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
+    </node>
+
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
+    </node>
+
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
 
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_BIU.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_BIU.launch
index 076c46bde90c2e3e1d53883b367f4759c080defe..5e45a651aa35adbadfd2b9618d4dadc124966118 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_BIU.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_BIU.launch
@@ -1,159 +1,130 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for BIU nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Demographics (demographics) -->
+    <node pkg="demographics" name="demographics" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Demographics (demographics) -->
-    <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
+    </node>
+    
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
     <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
     <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot GUI (robotgui) -->
+    <node pkg="robotgui" name="robotgui" type="node" output="screen">
     </node>
     
-    <!-- launching ROS openpose (rosopenpose) -->
-    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ROS openpose (rosopenpose) -->
+    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Robot GUI (robotgui) -->
-    <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Scene understanding (sceneunderstanding) -->
+    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching Scene understanding (sceneunderstanding) -->
-    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_CVUT.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_CVUT.launch
index d687c2fbdfbddbd8f2cbf2df68c87dbdfddce824..fed5c4297cf7dbb75130771f8c2a9102c3ee80fd 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_CVUT.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_CVUT.launch
@@ -1,159 +1,130 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for CVUT nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Demographics (demographics) -->
+    <node pkg="demographics" name="demographics" type="node" output="screen">
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speaker recognition (speakerrecognition) -->
+    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Demographics (demographics) -->
-    <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
     <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
     <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Speaker recognition (speakerrecognition) -->
-    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot GUI (robotgui) -->
+    <node pkg="robotgui" name="robotgui" type="node" output="screen">
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching ROS openpose (rosopenpose) -->
-    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ROS openpose (rosopenpose) -->
+    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
     </node>
     
-    <!-- launching Robot GUI (robotgui) -->
-    <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ASR (asr) -->
+    <node pkg="asr" name="asr" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Scene understanding (sceneunderstanding) -->
+    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching ASR (asr) -->
-    <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
     </node>
     
-    <!-- launching Scene understanding (sceneunderstanding) -->
-    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_ERM.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_ERM.launch
index e139db7ffbf72ae42683346ebd15a4b6a4a261e8..efc33e2392be0609efe0e4b5bb0df26e51e85090 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_ERM.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_ERM.launch
@@ -1,174 +1,142 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for ERM nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Demographics (demographics) -->
+    <node pkg="demographics" name="demographics" type="node" output="screen">
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Demographics (demographics) -->
-    <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speaker recognition (speakerrecognition) -->
+    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
+    </node>
+    
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
     <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
     <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Speaker recognition (speakerrecognition) -->
-    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
     <!-- launching ROS openpose (rosopenpose) -->
     <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ASR (asr) -->
+    <node pkg="asr" name="asr" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Scene understanding (sceneunderstanding) -->
+    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching ASR (asr) -->
-    <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
     </node>
     
-    <!-- launching Scene understanding (sceneunderstanding) -->
-    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_HWU.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_HWU.launch
index 347a1ed6c8e5c9112abec21b228005865f361ad5..77aaf31ff7eb0e329734292794c58bb23744a272 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_HWU.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_HWU.launch
@@ -1,154 +1,126 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for HWU nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
+    </node>
+    
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
+    </node>
+    
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
     <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
     <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Demographics (demographics) -->
+    <node pkg="demographics" name="demographics" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speaker recognition (speakerrecognition) -->
+    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Demographics (demographics) -->
-    <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
     <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
     <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Speaker recognition (speakerrecognition) -->
-    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot GUI (robotgui) -->
+    <node pkg="robotgui" name="robotgui" type="node" output="screen">
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
+    </node>
+    
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
     <!-- launching ROS openpose (rosopenpose) -->
     <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ASR (asr) -->
+    <node pkg="asr" name="asr" type="node" output="screen">
     </node>
     
-    <!-- launching Robot GUI (robotgui) -->
-    <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
     </node>
     
     <!-- launching Body 2D pose (body2dpose) -->
     <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching ASR (asr) -->
-    <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_INRIA.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_INRIA.launch
index 80c97fdc7252b8d5b51cf6076d2d625f8e24f345..871c9683f43ea98232f160676eebb3006b8b5d83 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_INRIA.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_INRIA.launch
@@ -1,154 +1,126 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for INRIA nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
     
     <!-- launching Demographics (demographics) -->
     <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
-    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
     <!-- launching Speaker recognition (speakerrecognition) -->
     <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
+    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
     <!-- launching Robot GUI (robotgui) -->
     <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
     <!-- launching ASR (asr) -->
     <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    </node>
+    
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
     <!-- launching Scene understanding (sceneunderstanding) -->
     <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
+    </node>
+    
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
+    </node>
+    
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
+    </node>
+    
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_Other.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_Other.launch
index c9d92ab6b135c0bacf0a9e3db05fdb22ebdfa0ce..5ddb6fd166755afa63d656c6f7e41dcab359ae0c 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_Other.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_Other.launch
@@ -1,179 +1,146 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for Other nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
-    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
+    <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
     </node>
     
     <!-- launching Demographics (demographics) -->
     <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
-    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
     <!-- launching Speaker recognition (speakerrecognition) -->
     <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
-    <!-- launching ROS openpose (rosopenpose) -->
-    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
+    <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
     <!-- launching Robot GUI (robotgui) -->
     <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ROS openpose (rosopenpose) -->
+    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
     <!-- launching ASR (asr) -->
     <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    </node>
+    
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
     <!-- launching Scene understanding (sceneunderstanding) -->
     <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
+    </node>
+    
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
+    </node>
+    
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
+    </node>
+    
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
+    </node>
+    
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_PAL.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_PAL.launch
index 54c650bd023a4acbf9a60a4bc304cb4603391521..2fd2757e463cc8ef9b1a8c3224ef45839a3bd617 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_PAL.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_PAL.launch
@@ -1,149 +1,121 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for PAL nodes. -->
 
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User attention (userattention) -->
+    <node pkg="userattention" name="userattention" type="node" output="screen">
     </node>
     
-    <!-- launching Activity reco (activityreco) -->
-    <node pkg="activityreco" name="activityreco" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
     <!-- launching Mask detection (maskdetection) -->
     <node pkg="maskdetection" name="maskdetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Face recognition (facerecognition) -->
-    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Activity reco (activityreco) -->
+    <node pkg="activityreco" name="activityreco" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face detection (facedetection) -->
+    <node pkg="facedetection" name="facedetection" type="node" output="screen">
     </node>
     
-    <!-- launching User gaze (usergaze) -->
-    <node pkg="usergaze" name="usergaze" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Demographics (demographics) -->
+    <node pkg="demographics" name="demographics" type="node" output="screen">
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Face recognition (facerecognition) -->
+    <node pkg="facerecognition" name="facerecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speaker recognition (speakerrecognition) -->
+    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Demographics (demographics) -->
-    <node pkg="demographics" name="demographics" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching User gaze (usergaze) -->
+    <node pkg="usergaze" name="usergaze" type="node" output="screen">
     </node>
     
     <!-- launching Non-verbal behaviours (nonverbalbehaviours) -->
     <node pkg="nonverbalbehaviours" name="nonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Speaker recognition (speakerrecognition) -->
-    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching F-formation (fformation) -->
+    <node pkg="fformation" name="fformation" type="node" output="screen">
+        <remap from="groups" to="/h/i/groups"/>
     </node>
     
-    <!-- launching Face detection (facedetection) -->
-    <node pkg="facedetection" name="facedetection" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot GUI (robotgui) -->
+    <node pkg="robotgui" name="robotgui" type="node" output="screen">
     </node>
     
-    <!-- launching ROS openpose (rosopenpose) -->
-    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
-    <!-- launching Robot GUI (robotgui) -->
-    <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ROS openpose (rosopenpose) -->
+    <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ASR (asr) -->
+    <node pkg="asr" name="asr" type="node" output="screen">
     </node>
     
-    <!-- launching Body 2D pose (body2dpose) -->
-    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
-    <!-- launching User attention (userattention) -->
-    <node pkg="userattention" name="userattention" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Scene understanding (sceneunderstanding) -->
+    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching ASR (asr) -->
-    <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching Scene understanding (sceneunderstanding) -->
-    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Body 2D pose (body2dpose) -->
+    <node pkg="body2dpose" name="body2dpose" type="node" output="screen">
     </node>
     
-    <!-- launching F-formation (fformation) -->
-    <node pkg="fformation" name="fformation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/launch/start_all_but_UNITN.launch b/spring-mock-ws/src/springarchitecture/launch/start_all_but_UNITN.launch
index 6dda696dacf5e94586e9308b2e951aab43a688c3..249a9251b8a0ac245d79324652b86401200bf25e 100644
--- a/spring-mock-ws/src/springarchitecture/launch/start_all_but_UNITN.launch
+++ b/spring-mock-ws/src/springarchitecture/launch/start_all_but_UNITN.launch
@@ -1,129 +1,105 @@
 <launch>
     <!-- this launch file starts all SPRING nodes except for UNITN nodes. -->
 
-    <!-- launching Speech synthesis (speechsynthesis) -->
-    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Multi-people tracker (multipeopletracker) -->
+    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
     </node>
     
-    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
-    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
+    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
     </node>
     
-    <!-- launching People 3D tracker (people3dtracker) -->
-    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot functional layer (robotfunctionallayer) -->
+    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
     </node>
     
-    <!-- launching High-level planner (highlevelplanner) -->
-    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot utterances (robotutterances) -->
+    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
     </node>
     
-    <!-- launching Multi-people tracker (multipeopletracker) -->
-    <node pkg="multipeopletracker" name="multipeopletracker" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Occupancy map (occupancymap) -->
+    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
     </node>
     
-    <!-- launching Speech diarization (speechdiarization) -->
-    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech synthesis (speechsynthesis) -->
+    <node pkg="speechsynthesis" name="speechsynthesis" type="node" output="screen">
     </node>
     
     <!-- launching Fisheye stereo + RGB head (fisheyestereorgbhead) -->
     <node pkg="fisheyestereorgbhead" name="fisheyestereorgbhead" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching Robot functional layer (robotfunctionallayer) -->
-    <node pkg="robotfunctionallayer" name="robotfunctionallayer" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
-    </node>
-    
-    <!-- launching ORB SLAM (orbslam) -->
-    <node pkg="orbslam" name="orbslam" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching respeaker_ros (respeaker_ros) -->
+    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
+        <remap from="raw_audio" to="/audio/raw_audio"/>
     </node>
     
-    <!-- launching Dialogue manager (dialoguemanager) -->
-    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speaker recognition (speakerrecognition) -->
+    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
     </node>
     
-    <!-- launching Robot non-verbal behaviours (robotnonverbalbehaviours) -->
-    <node pkg="robotnonverbalbehaviours" name="robotnonverbalbehaviours" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
+    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
     </node>
     
-    <!-- launching Occupancy map (occupancymap) -->
-    <node pkg="occupancymap" name="occupancymap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Robot GUI (robotgui) -->
+    <node pkg="robotgui" name="robotgui" type="node" output="screen">
     </node>
     
-    <!-- launching Speaker recognition (speakerrecognition) -->
-    <node pkg="speakerrecognition" name="speakerrecognition" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching People 3D tracker (people3dtracker) -->
+    <node pkg="people3dtracker" name="people3dtracker" type="node" output="screen">
     </node>
     
-    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
-    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Speech diarization (speechdiarization) -->
+    <node pkg="speechdiarization" name="speechdiarization" type="node" output="screen">
     </node>
     
     <!-- launching ROS openpose (rosopenpose) -->
     <node pkg="rosopenpose" name="rosopenpose" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
     </node>
     
-    <!-- launching respeaker_ros (respeaker_ros) -->
-    <node pkg="respeaker_ros" name="respeaker_ros" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Interaction manager (interactionmanager) -->
+    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
     </node>
     
-    <!-- launching Semantic mapping (semanticmapping) -->
-    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching RGB-D + camera_info (rgbdcamera_info) -->
+    <node pkg="rgbdcamera_info" name="rgbdcamera_info" type="node" output="screen">
     </node>
     
-    <!-- launching Robot GUI (robotgui) -->
-    <node pkg="robotgui" name="robotgui" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ASR (asr) -->
+    <node pkg="asr" name="asr" type="node" output="screen">
     </node>
     
-    <!-- launching Sound localisation (soundlocalisation) -->
-    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Dialogue manager (dialoguemanager) -->
+    <node pkg="dialoguemanager" name="dialoguemanager" type="node" output="screen">
     </node>
     
-    <!-- launching Robot utterances (robotutterances) -->
-    <node pkg="robotutterances" name="robotutterances" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Scene understanding (sceneunderstanding) -->
+    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
     </node>
     
-    <!-- launching Person manager (personmanager) -->
-    <node pkg="personmanager" name="personmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Object detection/identification/localisation (objectdetectionidentificationlocalisation) -->
+    <node pkg="objectdetectionidentificationlocalisation" name="objectdetectionidentificationlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching ASR (asr) -->
-    <node pkg="asr" name="asr" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching High-level planner (highlevelplanner) -->
+    <node pkg="highlevelplanner" name="highlevelplanner" type="node" output="screen">
     </node>
     
-    <!-- launching Scene understanding (sceneunderstanding) -->
-    <node pkg="sceneunderstanding" name="sceneunderstanding" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching ORB SLAM (orbslam) -->
+    <node pkg="orbslam" name="orbslam" type="node" output="screen">
     </node>
     
-    <!-- launching Interaction manager (interactionmanager) -->
-    <node pkg="interactionmanager" name="interactionmanager" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Sound localisation (soundlocalisation) -->
+    <node pkg="soundlocalisation" name="soundlocalisation" type="node" output="screen">
     </node>
     
-    <!-- launching Visual SLAM + 3D map (visualslam3dmap) -->
-    <node pkg="visualslam3dmap" name="visualslam3dmap" type="node" output="screen">
-        <remap from="image" to="$(arg image_topic)"/>
+    <!-- launching Semantic mapping (semanticmapping) -->
+    <node pkg="semanticmapping" name="semanticmapping" type="node" output="screen">
+    </node>
+    
+    <!-- launching Person manager (personmanager) -->
+    <node pkg="personmanager" name="personmanager" type="node" output="screen">
     </node>
     
 
diff --git a/spring-mock-ws/src/springarchitecture/package.xml b/spring-mock-ws/src/springarchitecture/package.xml
index 87bdc6c5ee8c12e142cbec83d496e6945530ddfc..770e1b7a5f46519ad67a7abaef2894b618ccd526 100644
--- a/spring-mock-ws/src/springarchitecture/package.xml
+++ b/spring-mock-ws/src/springarchitecture/package.xml
@@ -2,48 +2,48 @@
 <package format="3">
     <name>springarchitecture</name>
     <version>0.1.0</version>
-    <description>EU H2020 SPRING architecture. Auto-generated by Boxology 1.0.0.</description>
+    <description>EU H2020 SPRING architecture. Auto-generated by Boxology 1.1.0.</description>
 
     <maintainer email="todo@example.com">TODO</maintainer>
 
     <license>BSD</license>
 
     <buildtool_depend>catkin</buildtool_depend>
-    <depend>speechsynthesis</depend>
-    <depend>objectdetectionidentificationlocalisation</depend>
-    <depend>activityreco</depend>
-    <depend>maskdetection</depend>
-    <depend>facerecognition</depend>
-    <depend>people3dtracker</depend>
-    <depend>highlevelplanner</depend>
+    <depend>userattention</depend>
     <depend>multipeopletracker</depend>
-    <depend>speechdiarization</depend>
-    <depend>fisheyestereorgbhead</depend>
-    <depend>robotfunctionallayer</depend>
-    <depend>usergaze</depend>
-    <depend>orbslam</depend>
-    <depend>dialoguemanager</depend>
+    <depend>maskdetection</depend>
     <depend>robotnonverbalbehaviours</depend>
-    <depend>demographics</depend>
-    <depend>nonverbalbehaviours</depend>
+    <depend>robotfunctionallayer</depend>
+    <depend>robotutterances</depend>
+    <depend>activityreco</depend>
     <depend>occupancymap</depend>
-    <depend>speakerrecognition</depend>
-    <depend>rgbdcamera_info</depend>
+    <depend>speechsynthesis</depend>
     <depend>facedetection</depend>
-    <depend>rosopenpose</depend>
+    <depend>fisheyestereorgbhead</depend>
+    <depend>demographics</depend>
     <depend>respeaker_ros</depend>
-    <depend>semanticmapping</depend>
+    <depend>facerecognition</depend>
+    <depend>speakerrecognition</depend>
+    <depend>usergaze</depend>
+    <depend>nonverbalbehaviours</depend>
+    <depend>visualslam3dmap</depend>
+    <depend>fformation</depend>
     <depend>robotgui</depend>
-    <depend>soundlocalisation</depend>
-    <depend>robotutterances</depend>
-    <depend>body2dpose</depend>
-    <depend>userattention</depend>
-    <depend>personmanager</depend>
+    <depend>people3dtracker</depend>
+    <depend>speechdiarization</depend>
+    <depend>rosopenpose</depend>
+    <depend>interactionmanager</depend>
+    <depend>rgbdcamera_info</depend>
     <depend>asr</depend>
+    <depend>dialoguemanager</depend>
     <depend>sceneunderstanding</depend>
-    <depend>fformation</depend>
-    <depend>interactionmanager</depend>
-    <depend>visualslam3dmap</depend>
+    <depend>objectdetectionidentificationlocalisation</depend>
+    <depend>highlevelplanner</depend>
+    <depend>orbslam</depend>
+    <depend>body2dpose</depend>
+    <depend>soundlocalisation</depend>
+    <depend>semanticmapping</depend>
+    <depend>personmanager</depend>
 
     <export>
 
diff --git a/spring-mock-ws/src/userattention/CMakeLists.txt b/spring-mock-ws/src/userattention/CMakeLists.txt
index 671332ba00d26f19e49abe5c4511b36c8f48aaf7..562b92368bdaf6ea7c9eacb6a1d07b77d7d4d118 100644
--- a/spring-mock-ws/src/userattention/CMakeLists.txt
+++ b/spring-mock-ws/src/userattention/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/userattention/package.xml b/spring-mock-ws/src/userattention/package.xml
index 754d25641fca29f7d765a91985cf51a2ea1ba674..bd24c5c0c4b7fe0f9da7d6cfacf59a9417b40503 100644
--- a/spring-mock-ws/src/userattention/package.xml
+++ b/spring-mock-ws/src/userattention/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>userattention</name>
     <version>1.0.0</version>
-    <description>User attention (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>User attention (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/userattention/src/main.cpp b/spring-mock-ws/src/userattention/src/main.cpp
index 0fb83ca8ab283d60fed5302780dd35599ec069cc..56defb09999f5f84a340bcc86e31f85912b90de1 100644
--- a/spring-mock-ws/src/userattention/src/main.cpp
+++ b/spring-mock-ws/src/userattention/src/main.cpp
@@ -1,34 +1,74 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "userattention");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void tfbodiesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("userattention: received message: " << msg);
+}
+void gazedirectionCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("userattention: received message: " << msg);
+}
+void inputCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("userattention: received message: " << msg);
+}
+void tffacesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("userattention: received message: " << msg);
+}
+void tfpersonsCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("userattention: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "userattention");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfbodies_sub = n.subscribe("tfbodies", 1, tfbodiesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber gazedirection_sub = n.subscribe("gazedirection", 1, gazedirectionCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber input_sub = n.subscribe("input", 1, inputCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tffaces_sub = n.subscribe("tffaces", 1, tffacesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tfpersons_sub = n.subscribe("tfpersons", 1, tfpersonsCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher currentattentiveperson_pub = n.advertise<std_msgs::Empty>("currentattentiveperson", 1);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher output_pub = n.advertise<std_msgs::Empty>("output", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node userattention launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/usergaze/CMakeLists.txt b/spring-mock-ws/src/usergaze/CMakeLists.txt
index 4d55bf21b286b05e1d0965f500b9c7c2e83345e3..2b3d726d745ceacd953a2640bbc9d189d054eb62 100644
--- a/spring-mock-ws/src/usergaze/CMakeLists.txt
+++ b/spring-mock-ws/src/usergaze/CMakeLists.txt
@@ -10,6 +10,7 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/usergaze/package.xml b/spring-mock-ws/src/usergaze/package.xml
index b3c70404c721afce8f4f2270593783e99d94eb47..04cf803c8fc393080b47c33080e5d33cafc389ea 100644
--- a/spring-mock-ws/src/usergaze/package.xml
+++ b/spring-mock-ws/src/usergaze/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>usergaze</name>
     <version>1.0.0</version>
-    <description>User gaze (UNITN) . Auto-generated by Boxology 1.0.0.</description>
+    <description>User gaze (UNITN) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,8 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/usergaze/src/main.cpp b/spring-mock-ws/src/usergaze/src/main.cpp
index 05ad31ebf99be67022e70fa45f05e83d78e776d3..58dd40fe2680406cdf564207181ed1a67a15533d 100644
--- a/spring-mock-ws/src/usergaze/src/main.cpp
+++ b/spring-mock-ws/src/usergaze/src/main.cpp
@@ -1,34 +1,54 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "usergaze");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void tffacesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("usergaze: received message: " << msg);
+}
+void imagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("usergaze: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "usergaze");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber tffaces_sub = n.subscribe("tffaces", 1, tffacesCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber images_sub = n.subscribe("images", 1, imagesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher gazedirection_pub = n.advertise<std_msgs::Empty>("gazedirection", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node usergaze launched and ready.");
+    ros::spin();
     return 0;
 }
diff --git a/spring-mock-ws/src/visualslam3dmap/CMakeLists.txt b/spring-mock-ws/src/visualslam3dmap/CMakeLists.txt
index da6afe1a3749bc5f5f6a86ea3a5022b3e7617d66..8f7cbc0319de759afc64c7214c38f9ece0e4d9e4 100644
--- a/spring-mock-ws/src/visualslam3dmap/CMakeLists.txt
+++ b/spring-mock-ws/src/visualslam3dmap/CMakeLists.txt
@@ -10,6 +10,8 @@ add_compile_options(-std=c++11)
 find_package(catkin REQUIRED COMPONENTS
   roscpp
   std_msgs
+  std_msgs
+  tf
 )
 
 ## System dependencies are found with CMake's conventions
diff --git a/spring-mock-ws/src/visualslam3dmap/package.xml b/spring-mock-ws/src/visualslam3dmap/package.xml
index 34e0fd1c3577cf5288a9b310a80dead2e6317c11..7f5f1528cb53ec68430bec8be457db6d43bab420 100644
--- a/spring-mock-ws/src/visualslam3dmap/package.xml
+++ b/spring-mock-ws/src/visualslam3dmap/package.xml
@@ -2,7 +2,7 @@
 <package format="3">
     <name>visualslam3dmap</name>
     <version>1.0.0</version>
-    <description>Visual SLAM + 3D map (CVUT) . Auto-generated by Boxology 1.0.0.</description>
+    <description>Visual SLAM + 3D map (CVUT) . Auto-generated by Boxology 1.1.0.</description>
 
   <!-- One maintainer tag required, multiple allowed, one person per tag -->
   <!-- Example:  -->
@@ -49,8 +49,9 @@
   <!-- Use doc_depend for packages you need only for building documentation: -->
   <!--   <doc_depend>doxygen</doc_depend> -->
   <buildtool_depend>catkin</buildtool_depend>
-  <depend>std_msgs</depend>
   <exec_depend>roscpp</exec_depend>
+  <depend>std_msgs</depend>
+  <depend>tf</depend>
 
   <export>
 
diff --git a/spring-mock-ws/src/visualslam3dmap/src/main.cpp b/spring-mock-ws/src/visualslam3dmap/src/main.cpp
index d77bce65e5905fa7df6f25fdea6dd3799e4e4556..0d66256caaad83cc9b1ae2644d5d2f9d794dd89e 100644
--- a/spring-mock-ws/src/visualslam3dmap/src/main.cpp
+++ b/spring-mock-ws/src/visualslam3dmap/src/main.cpp
@@ -1,34 +1,55 @@
-#include <sstream>
+/*
+ Copyright 2021-2025, SPRING Consortium
 
-#include "ros/ros.h"
-#include "std_msgs/String.h"
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+ of this software and associated documentation files (the "Software"), to deal
+ in the Software without restriction, including without limitation the rights
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-int main(int argc, char **argv) {
-    ros::init(argc, argv, "visualslam3dmap");
+ The above copyright notice and this permission notice shall be included in all
+ copies or substantial portions of the Software.
 
-    ros::NodeHandle n;
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+*/
 
-    ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);
 
-    ros::Rate loop_rate(10);
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+#include "std_msgs/Empty.h"
+#include "tf/transform_broadcaster.h"
 
-    int count = 0;
-    while (ros::ok()) {
-        std_msgs::String msg;
+void localisationpriorCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("visualslam3dmap: received message: " << msg);
+}
+void imagesCallback(const std_msgs::Empty::ConstPtr& msg)
+{
+  ROS_INFO_STREAM("visualslam3dmap: received message: " << msg);
+}
 
-        std::stringstream ss;
-        ss << "hello world " << count;
-        msg.data = ss.str();
+int main(int argc, char **argv) {
+    ros::init(argc, argv, "visualslam3dmap");
 
-        ROS_INFO("%s", msg.data.c_str());
+    ros::NodeHandle n;
 
-        chatter_pub.publish(msg);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber localisationprior_sub = n.subscribe("localisationprior", 1, localisationpriorCallback);
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Subscriber images_sub = n.subscribe("images", 1, imagesCallback);
 
-        ros::spinOnce();
+    // ATTENTION: this topic is not defined in the architecture design
+    ros::Publisher dense3dmap_pub = n.advertise<std_msgs::Empty>("dense3dmap", 1);
 
-        loop_rate.sleep();
-        ++count;
-    }
 
+    ROS_INFO("Node visualslam3dmap launched and ready.");
+    ros::spin();
     return 0;
 }