From 3fae39c5664d3af46a5ea8e3c418051747b41fd0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9verin=20Lemaignan?=
 <severin.lemaignan@pal-robotics.com>
Date: Wed, 17 Nov 2021 20:27:47 +0100
Subject: [PATCH] [ros] re-generated nodes with boxology 1.1.0. Includes
 publishers/subscribers when known

---
 spring-mock-ws/fetch_released_nodes.sh        |  11 +-
 .../src/activityreco/CMakeLists.txt           |   1 +
 spring-mock-ws/src/activityreco/package.xml   |   4 +-
 spring-mock-ws/src/activityreco/src/main.cpp  |  60 ++++--
 spring-mock-ws/src/asr/CMakeLists.txt         |   1 +
 spring-mock-ws/src/asr/package.xml            |   4 +-
 spring-mock-ws/src/asr/src/main.cpp           |  54 ++++--
 spring-mock-ws/src/body2dpose/CMakeLists.txt  |   1 +
 spring-mock-ws/src/body2dpose/package.xml     |   4 +-
 spring-mock-ws/src/body2dpose/src/main.cpp    |  60 ++++--
 .../src/demographics/CMakeLists.txt           |   1 +
 spring-mock-ws/src/demographics/package.xml   |   4 +-
 spring-mock-ws/src/demographics/src/main.cpp  |  54 ++++--
 .../src/dialoguemanager/CMakeLists.txt        |   1 +
 .../src/dialoguemanager/package.xml           |   4 +-
 .../src/dialoguemanager/src/main.cpp          |  62 +++++--
 .../src/facedetection/CMakeLists.txt          |   1 +
 spring-mock-ws/src/facedetection/package.xml  |   4 +-
 spring-mock-ws/src/facedetection/src/main.cpp |  54 ++++--
 .../src/facerecognition/CMakeLists.txt        |   1 +
 .../src/facerecognition/package.xml           |   4 +-
 .../src/facerecognition/src/main.cpp          |  54 ++++--
 spring-mock-ws/src/fformation/CMakeLists.txt  |   2 +
 spring-mock-ws/src/fformation/package.xml     |   5 +-
 spring-mock-ws/src/fformation/src/main.cpp    |  48 +++--
 .../src/fisheyestereorgbhead/CMakeLists.txt   |   1 +
 .../src/fisheyestereorgbhead/package.xml      |   4 +-
 .../src/fisheyestereorgbhead/src/main.cpp     |  48 +++--
 .../src/highlevelplanner/CMakeLists.txt       |   1 +
 .../src/highlevelplanner/package.xml          |   4 +-
 .../src/highlevelplanner/src/main.cpp         |  76 ++++++--
 .../src/interactionmanager/CMakeLists.txt     |   1 +
 .../src/interactionmanager/package.xml        |   4 +-
 .../src/interactionmanager/src/main.cpp       |  92 ++++++++--
 .../src/maskdetection/CMakeLists.txt          |   1 +
 spring-mock-ws/src/maskdetection/package.xml  |   4 +-
 spring-mock-ws/src/maskdetection/src/main.cpp |  54 ++++--
 .../src/multipeopletracker/CMakeLists.txt     |   1 +
 .../src/multipeopletracker/package.xml        |   4 +-
 .../src/multipeopletracker/src/main.cpp       |  54 ++++--
 .../src/nonverbalbehaviours/CMakeLists.txt    |   1 +
 .../src/nonverbalbehaviours/package.xml       |   4 +-
 .../src/nonverbalbehaviours/src/main.cpp      |  66 +++++--
 .../CMakeLists.txt                            |   1 +
 .../package.xml                               |   4 +-
 .../src/main.cpp                              |  54 ++++--
 .../src/occupancymap/CMakeLists.txt           |   1 +
 spring-mock-ws/src/occupancymap/package.xml   |   4 +-
 spring-mock-ws/src/occupancymap/src/main.cpp  |  60 ++++--
 spring-mock-ws/src/orbslam/CMakeLists.txt     |   2 +
 spring-mock-ws/src/orbslam/package.xml        |   5 +-
 spring-mock-ws/src/orbslam/src/main.cpp       |  53 ++++--
 .../src/people3dtracker/CMakeLists.txt        |   2 +
 .../src/people3dtracker/package.xml           |   5 +-
 .../src/people3dtracker/src/main.cpp          |  65 +++++--
 .../src/personmanager/CMakeLists.txt          |   2 +
 spring-mock-ws/src/personmanager/package.xml  |   5 +-
 spring-mock-ws/src/personmanager/src/main.cpp |  73 ++++++--
 .../src/rgbdcamera_info/CMakeLists.txt        |   1 +
 .../src/rgbdcamera_info/package.xml           |   4 +-
 .../src/rgbdcamera_info/src/main.cpp          |  48 +++--
 .../src/robotfunctionallayer/CMakeLists.txt   |   1 +
 .../src/robotfunctionallayer/package.xml      |   4 +-
 .../src/robotfunctionallayer/src/main.cpp     |  52 ++++--
 spring-mock-ws/src/robotgui/CMakeLists.txt    |   1 +
 spring-mock-ws/src/robotgui/package.xml       |   4 +-
 spring-mock-ws/src/robotgui/src/main.cpp      |  70 +++++--
 .../robotnonverbalbehaviours/CMakeLists.txt   |   1 +
 .../src/robotnonverbalbehaviours/package.xml  |   4 +-
 .../src/robotnonverbalbehaviours/src/main.cpp |  80 ++++++--
 .../src/robotutterances/CMakeLists.txt        |   1 +
 .../src/robotutterances/package.xml           |   4 +-
 .../src/robotutterances/src/main.cpp          |  54 ++++--
 spring-mock-ws/src/rosopenpose/CMakeLists.txt |   1 +
 spring-mock-ws/src/rosopenpose/package.xml    |   4 +-
 spring-mock-ws/src/rosopenpose/src/main.cpp   |  54 ++++--
 .../src/sceneunderstanding/CMakeLists.txt     |   1 +
 .../src/sceneunderstanding/package.xml        |   4 +-
 .../src/sceneunderstanding/src/main.cpp       |  54 ++++--
 .../src/semanticmapping/CMakeLists.txt        |   1 +
 .../src/semanticmapping/package.xml           |   4 +-
 .../src/semanticmapping/src/main.cpp          |  60 ++++--
 .../src/soundlocalisation/CMakeLists.txt      |   2 +
 .../src/soundlocalisation/package.xml         |   5 +-
 .../src/soundlocalisation/src/main.cpp        |  53 ++++--
 .../src/speakerrecognition/CMakeLists.txt     |   1 +
 .../src/speakerrecognition/package.xml        |   4 +-
 .../src/speakerrecognition/src/main.cpp       |  54 ++++--
 .../src/speechdiarization/CMakeLists.txt      |   1 +
 .../src/speechdiarization/package.xml         |   4 +-
 .../src/speechdiarization/src/main.cpp        |  54 ++++--
 .../src/speechsynthesis/CMakeLists.txt        |   1 +
 .../src/speechsynthesis/package.xml           |   4 +-
 .../src/speechsynthesis/src/main.cpp          |  54 ++++--
 .../src/springarchitecture/CMakeLists.txt     |  54 +++---
 .../launch/start_all.launch                   | 173 +++++++-----------
 .../launch/start_all_but_BIU.launch           | 153 +++++++---------
 .../launch/start_all_but_CVUT.launch          | 149 ++++++---------
 .../launch/start_all_but_ERM.launch           | 164 +++++++----------
 .../launch/start_all_but_HWU.launch           | 144 ++++++---------
 .../launch/start_all_but_INRIA.launch         | 144 ++++++---------
 .../launch/start_all_but_Other.launch         | 173 +++++++-----------
 .../launch/start_all_but_PAL.launch           | 138 ++++++--------
 .../launch/start_all_but_UNITN.launch         | 122 +++++-------
 .../src/springarchitecture/package.xml        |  56 +++---
 .../src/userattention/CMakeLists.txt          |   1 +
 spring-mock-ws/src/userattention/package.xml  |   4 +-
 spring-mock-ws/src/userattention/src/main.cpp |  80 ++++++--
 spring-mock-ws/src/usergaze/CMakeLists.txt    |   1 +
 spring-mock-ws/src/usergaze/package.xml       |   4 +-
 spring-mock-ws/src/usergaze/src/main.cpp      |  60 ++++--
 .../src/visualslam3dmap/CMakeLists.txt        |   2 +
 .../src/visualslam3dmap/package.xml           |   5 +-
 .../src/visualslam3dmap/src/main.cpp          |  61 ++++--
 114 files changed, 2075 insertions(+), 1617 deletions(-)

diff --git a/spring-mock-ws/fetch_released_nodes.sh b/spring-mock-ws/fetch_released_nodes.sh
index 35a9c64..a69c353 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 a23b15a..6ee05ee 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 052673b..a181589 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 fc579ad..095c233 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 ba82bc6..e40a4bd 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 d957de0..27262c5 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 5bc95a6..c9e9c90 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 f203404..4c34e3d 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 cfc9b4d..ea09a52 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 5190c03..83230de 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 29ae288..0e44c6d 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 747158e..2ed4b32 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 b81cf66..3494027 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 404f1ed..e39948e 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 135823a..227a407 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 2c01aa6..7a9de56 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 afa7c2f..487d64c 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 5790d1f..3ecd5da 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 cef41b3..b911b8b 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 7bf582c..72206f7 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 ae68035..6ac3355 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 cfb6a83..bb1301a 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 0538e11..a18b716 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 a6d688f..bac7ba0 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 1fc08d2..44c366e 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 34cba70..4ee9c6c 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 33c2461..f508130 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 731ded8..a1a1bfa 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 b69b7b3..2d8426c 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 c405f90..2bf1de2 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 d54c894..6923cd1 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 3697c50..3e12074 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 21b027d..8a6a094 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 5c2b6ae..23d7999 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 388ac58..c8a41da 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 348deae..69d0dd8 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 65bebdf..e7d813d 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 76eb73f..5c92026 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 e7e837a..80249ab 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 d2a12bf..1c20142 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 dcb3091..d9c90ed 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 6ee823f..0e1891a 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 dc6f1be..e530e4b 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 308b9ee..78447bb 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 2a03aa9..178faae 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 79cb310..56af823 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 cc3c391..b06e4ce 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 0f1e427..98ce876 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 0f756b6..63dd3ba 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 e01ad68..8337cf3 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 d711b31..ab959bc 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 44b5c48..9bef556 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 346c44e..48f911b 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 ecbcbc1..ddbc11b 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 f622910..acc2aad 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 516d402..18e9b07 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 6c6f869..24f94fe 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 7e3ad51..97a2530 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 19d24af..0da168d 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 bf564db..1944c18 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 77adfd0..210bf02 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 bd81831..d4a4c90 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 b1af87e..767536b 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 234b8c2..7dab02e 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 e866568..2ff207f 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 932e10b..4537866 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 9ea42c7..1c904d3 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 d422142..47627e2 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 075c18c..e406c5a 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 ec848f9..c03c568 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 f38e64c..569368a 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 2942b8e..f8dc8b7 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 7fb6f1a..f12ab7b 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 0434fdc..4db52b7 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 67bc4dc..0d31cc0 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 bfa4a22..f00e22e 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 a422fd6..7e122b7 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 25fbd0c..7adb2b3 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 f6188bc..8022816 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 44e6bcb..b599de5 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 309ad68..f94066f 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 77a3807..7cfeaf5 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 8da36d8..6a4e00c 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 276d265..b2f623f 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 7dd844d..eaed13c 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 7fb92ba..9b475a4 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 0d72c94..4d1c5b4 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 16b7da3..7d35d11 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 28daa46..07d9a34 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 2ce65db..054ef65 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 777a29e..8adfabf 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 0562fc0..25f5b23 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 1440813..2921923 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 8d850ad..fa558dd 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 a8769af..9c038d1 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 39f9c05..74e7ff3 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 076c46b..5e45a65 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 d687c2f..fed5c42 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 e139db7..efc33e2 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 347a1ed..77aaf31 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 80c97fd..871c968 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 c9d92ab..5ddb6fd 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 54c650b..2fd2757 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 6dda696..249a925 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 87bdc6c..770e1b7 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 671332b..562b923 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 754d256..bd24c5c 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 0fb83ca..56defb0 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 4d55bf2..2b3d726 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 b3c7040..04cf803 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 05ad31e..58dd40f 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 da6afe1..8f7cbc0 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 34e0fd1..7f5f152 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 d77bce6..0d66256 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;
 }
-- 
GitLab