diff --git a/launch/main_controller_ceti-table_real_robot.launch b/launch/main_controller_ceti-table_preview_ceti-table_real_robot.launch
similarity index 70%
rename from launch/main_controller_ceti-table_real_robot.launch
rename to launch/main_controller_ceti-table_preview_ceti-table_real_robot.launch
index 48f5ae1ca7abba07235723f5ae8c27c0e33c1934..f0d95f6a004663648054b7197ceeaed5993ec54a 100644
--- a/launch/main_controller_ceti-table_real_robot.launch
+++ b/launch/main_controller_ceti-table_preview_ceti-table_real_robot.launch
@@ -1,10 +1,16 @@
 <launch>
 
+    <!-- connection address for NNG scene-based selection -->
     <arg name="connection_address" default="tcp://*:6576"/>
+
+    <!-- MQTT server for communication with client cells -->
     <arg name="mqtt_server" default="tcp://127.0.0.1:1883"/>
-    <arg name="client_controllers" default="['ceti_cell']"/>
+
+    <!-- remove cell st cell if it is not available -->
+    <arg name="client_controllers" default="['ceti_cell', 'st_cell', 'ads_cell']"/>
+
+    <!-- robot IP used by the robot controller -->
     <arg name="robot_ip" default="172.31.1.13"/>
-    <arg name="load_gripper" default="true"/>
 
     <node pkg="ccf_immersive_sorting" type="main_controller" name="main_controller" output="screen">
         <param name="connection_address" type="string" value="$(arg connection_address)"/>
@@ -13,15 +19,13 @@
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table.json"/>
     </node>
 
-
-
     <include file="$(find ccf)/launch/robot_setup.launch">
         <arg name="robot_ip" value="$(arg robot_ip)"/>
-        <arg name="load_gripper" value="$(arg load_gripper)"/>
+        <arg name="load_gripper" value="true"/>
     </include>
 
     <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell" output="screen">
-        <param name="connection_address" type="string" value="$(arg connection_address)"/>
+        <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table.json"/>
     </node>
 
diff --git a/launch/main_controller_virtual_preview_ceti-table_real_robot.launch b/launch/main_controller_virtual_preview_ceti-table_real_robot.launch
index fd2761672a701acb7425f790d330deecacdd24ca..f95bcc47e13618097044d06e5536d2fc76b10863 100644
--- a/launch/main_controller_virtual_preview_ceti-table_real_robot.launch
+++ b/launch/main_controller_virtual_preview_ceti-table_real_robot.launch
@@ -1,10 +1,16 @@
 <launch>
 
+    <!-- connection address for NNG scene-based selection -->
     <arg name="connection_address" default="tcp://*:6576"/>
+
+    <!-- MQTT server for communication with client cells -->
     <arg name="mqtt_server" default="tcp://127.0.0.1:1883"/>
-    <arg name="client_controllers" default="['ceti_cell']"/>
+
+    <!-- remove cell st cell if it is not available -->
+    <arg name="client_controllers" default="['ceti_cell', 'st_cell', 'ads_cell']"/>
+
+    <!-- robot IP used by the robot controller -->
     <arg name="robot_ip" default="172.31.1.13"/>
-    <arg name="load_gripper" default="true"/>
 
     <node pkg="ccf_immersive_sorting" type="main_controller" name="main_controller" output="screen">
         <param name="connection_address" type="string" value="$(arg connection_address)"/>
@@ -13,15 +19,13 @@
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_virtual-table.json"/>
     </node>
 
-
-
     <include file="$(find ccf)/launch/robot_setup.launch">
         <arg name="robot_ip" value="$(arg robot_ip)"/>
-        <arg name="load_gripper" value="$(arg load_gripper)"/>
+        <arg name="load_gripper" value="true"/>
     </include>
 
     <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell" output="screen">
-        <param name="connection_address" type="string" value="$(arg connection_address)"/>
+        <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table.json"/>
     </node>
 
diff --git a/launch/robot-cell_ads-table.launch b/launch/robot-cell_ads-table.launch
index b57fc69fd2cf3b1bb14c021a090141e6d498465d..d8d42f7c893fa98c186ede961111252b8c9b7bb6 100644
--- a/launch/robot-cell_ads-table.launch
+++ b/launch/robot-cell_ads-table.launch
@@ -1,15 +1,18 @@
 <launch>
-    <arg name="robot_ip" default="172.31.1.13"/>
-    <arg name="load_gripper" default="true"/>
-    <arg name="connection_address" default="tcp://*:6576"/>
+
+    <!-- MQTT server for communication with client cells -->
+    <arg name="mqtt_server" default="tcp://192.168.0.122:1883"/>
+
+    <!-- robot IP used by the robot controller -->
+    <arg name="robot_ip" default="172.16.0.2"/>
 
     <include file="$(find ccf)/launch/robot_setup.launch">
         <arg name="robot_ip" value="$(arg robot_ip)"/>
-        <arg name="load_gripper" value="$(arg load_gripper)"/>
+        <arg name="load_gripper" value="true"/>
     </include>
 
     <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ads_cell" output="screen">
-        <param name="connection_address" type="string" value="$(arg connection_address)"/>
+        <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ads-table.json"/>
     </node>
 
diff --git a/launch/robot-cell_ceti-table.launch b/launch/robot-cell_ceti-table.launch
index 2c9faac39480b095d40cfc9a6aa290ef2d035473..f36b5816ec2c7123657c21c52f4016f5cdcf2523 100644
--- a/launch/robot-cell_ceti-table.launch
+++ b/launch/robot-cell_ceti-table.launch
@@ -1,15 +1,18 @@
 <launch>
+
+    <!-- MQTT server for communication with client cells -->
+    <arg name="mqtt_server" default="tcp://192.168.0.122:1883"/>
+
+    <!-- robot IP used by the robot controller -->
     <arg name="robot_ip" default="172.31.1.13"/>
-    <arg name="load_gripper" default="true"/>
-    <arg name="connection_address" default="tcp://*:6576"/>
 
     <include file="$(find ccf)/launch/robot_setup.launch">
         <arg name="robot_ip" value="$(arg robot_ip)"/>
-        <arg name="load_gripper" value="$(arg load_gripper)"/>
+        <arg name="load_gripper" value="true"/>
     </include>
 
     <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell" output="screen">
-        <param name="connection_address" type="string" value="$(arg connection_address)"/>
+        <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table.json"/>
     </node>
 
diff --git a/launch/robot-cell_st-table.launch b/launch/robot-cell_st-table.launch
index b0467146a4398f12f1472002d74c439bff477d88..aa450155546375304e74a2d1e0dc24a19110d3c0 100644
--- a/launch/robot-cell_st-table.launch
+++ b/launch/robot-cell_st-table.launch
@@ -1,15 +1,18 @@
 <launch>
+
+    <!-- MQTT server for communication with client cells -->
+    <arg name="mqtt_server" default="tcp://192.168.0.122:1883"/>
+
+    <!-- robot IP used by the robot controller -->
     <arg name="robot_ip" default="172.31.1.13"/>
-    <arg name="load_gripper" default="true"/>
-    <arg name="connection_address" default="tcp://*:6576"/>
 
     <include file="$(find ccf)/launch/robot_setup.launch">
         <arg name="robot_ip" value="$(arg robot_ip)"/>
-        <arg name="load_gripper" value="$(arg load_gripper)"/>
+        <arg name="load_gripper" value="true"/>
     </include>
 
     <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="st_cell" output="screen">
-        <param name="connection_address" type="string" value="$(arg connection_address)"/>
+        <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_st-table.json"/>
     </node>
 
diff --git a/src/dummy_sorting_controller.cpp b/src/dummy_sorting_controller.cpp
index 4cbf7aad66ea8e83d7dfcc0d275f205a3ff9e7ff..3e595d524653b39fb46009e08339439c6664ccff 100644
--- a/src/dummy_sorting_controller.cpp
+++ b/src/dummy_sorting_controller.cpp
@@ -33,8 +33,6 @@ int main(int argc, char **argv)
 
   ros::NodeHandle n("connector_node_ros_ccf"); // namespace where the connection_address is
 
-  auto connectionAddress = getPrivateParameter<std::string>("connection_address", "tcp://*:6576");
-
   DummyRobotArmController controller{n, NODE_NAME};
 
   auto mqttServer = getPrivateParameter<std::string>("mqtt_server", "localhost:1883");
diff --git a/src/moveit_sorting_controller.cpp b/src/moveit_sorting_controller.cpp
index bfd02b257d9b0404876601e990417936c11744fd..594181e5992b147da29ee6fe452ecbfdc29daffb 100644
--- a/src/moveit_sorting_controller.cpp
+++ b/src/moveit_sorting_controller.cpp
@@ -33,8 +33,6 @@ int main(int argc, char **argv)
 
   ros::NodeHandle n("connector_node_ros_ccf"); // namespace where the connection_address is
 
-  auto connectionAddress = getPrivateParameter<std::string>("connection_address", "tcp://*:6576");
-
   MoveItRobotArmController controller{n, NODE_NAME};
 
   auto mqttServer = getPrivateParameter<std::string>("mqtt_server", "localhost:1883");