diff --git a/config/config_scene_virtual-tag-table.json b/config/config_scene_virtual-tag-table-grey.json
similarity index 100%
rename from config/config_scene_virtual-tag-table.json
rename to config/config_scene_virtual-tag-table-grey.json
diff --git a/config/config_scene_virtual-tag-table.yaml b/config/config_scene_virtual-tag-table-grey.yaml
similarity index 100%
rename from config/config_scene_virtual-tag-table.yaml
rename to config/config_scene_virtual-tag-table-grey.yaml
diff --git a/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-coloured.launch b/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-coloured.launch
new file mode 100644
index 0000000000000000000000000000000000000000..d0f0ba6c8ae98000fb95cf2dbec0d20c93440077
--- /dev/null
+++ b/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-coloured.launch
@@ -0,0 +1,17 @@
+<launch>
+
+    <!-- MQTT server for communication with client cells -->
+    <arg name="mqtt_server" default="tcp://localhost:1883" doc="address of the mqtt server for the connection to the controller"/>
+
+    <include file="$(find ccf)/launch/noop-sim_setup.launch"/>
+
+    <param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
+
+    <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
+        <param name="arm" type="string" value="arm"/>
+        <param name="scene_observer" type="string" value="object_locator/scene/update"/>
+        <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-1-empty-coloured.json"/>
+    </node>
+
+</launch>
diff --git a/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld.launch b/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-grey.launch
similarity index 92%
rename from launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld.launch
rename to launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-grey.launch
index 0293f112235c8bce1eecb50711bf1e181a00861b..e4ee08f58c3c735caa44a403d8d93ce0bdfa49a0 100644
--- a/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld.launch
+++ b/launch/cell-controllers/noop-sim-cell_ceti-table-1-emptyworld-grey.launch
@@ -11,7 +11,7 @@
         <param name="arm" type="string" value="arm"/>
         <param name="scene_observer" type="string" value="object_locator/scene/update"/>
         <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-1-empty.json"/>
+        <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table-1-empty-grey.json"/>
     </node>
 
 </launch>
diff --git a/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-coloured.launch b/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-coloured.launch
new file mode 100644
index 0000000000000000000000000000000000000000..3f8c853cb13a7234c2f40bda966c8bb973ad1ea1
--- /dev/null
+++ b/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-coloured.launch
@@ -0,0 +1,23 @@
+<launch>
+
+    <!-- MQTT server for communication with client cells -->
+    <arg name="mqtt_server" default="tcp://localhost:1883" doc="address of the mqtt server for the connection to the controller"/>
+
+    <!-- robot IP used by the robot controller -->
+    <arg name="robot_ip" default="172.31.1.13" doc="ip address if the robot"/>
+
+    <include file="$(find ccf)/launch/robot_setup.launch">
+        <arg name="robot_ip" value="$(arg robot_ip)"/>
+        <arg name="load_gripper" value="true"/>
+    </include>
+
+    <param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
+
+    <node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
+        <param name="arm" type="string" value="arm"/>
+        <param name="scene_observer" type="string" value="object_locator/scene/update"/>
+        <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-1-empty-coloured.json"/>
+    </node>
+
+</launch>
diff --git a/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld.launch b/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-grey.launch
similarity index 93%
rename from launch/cell-controllers/robot-cell_ceti-table-1-emptyworld.launch
rename to launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-grey.launch
index 6d04b2e1e9272ed9019d9e253e56097af10d17b6..1f04aab4242993eddddc5c31b14f6ca8b0fe776a 100644
--- a/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld.launch
+++ b/launch/cell-controllers/robot-cell_ceti-table-1-emptyworld-grey.launch
@@ -17,7 +17,7 @@
         <param name="arm" type="string" value="arm"/>
         <param name="scene_observer" type="string" value="object_locator/scene/update"/>
         <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-1-empty.json"/>
+        <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table-1-empty-grey.json"/>
     </node>
 
 </launch>
diff --git a/launch/distributed-sorting/main_controller_virtual-tag_preview.launch b/launch/distributed-sorting/main_controller_virtual-tag_preview.launch
index 49770c61ea2eeadbd38019a086129d941861e812..85f4cbbec3d325b430949e083656c2cba793db89 100644
--- a/launch/distributed-sorting/main_controller_virtual-tag_preview.launch
+++ b/launch/distributed-sorting/main_controller_virtual-tag_preview.launch
@@ -9,7 +9,7 @@
         <param name="client_controllers" type="yaml" value="$(arg client_controllers)"/>
         <param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
         <param name="arm" type="string" value="virtual-arm"/>
-        <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_virtual-tag-table.json"/>
+        <param name="scene" type="string" value="$(find ccf_immersive_sorting)/config/config_scene_virtual-tag-table-grey.json"/>
     </node>
 
 </launch>
diff --git a/launch/object-localization/tag_detection.launch b/launch/object-localization/tag_detection.launch
index c573ef90d1bdeb3e9a50639a44722e561dd9418a..56166333ffdb89320a31c487c91b935c9104a087 100644
--- a/launch/object-localization/tag_detection.launch
+++ b/launch/object-localization/tag_detection.launch
@@ -3,19 +3,20 @@
   <arg name="node_namespace" default="apriltag_ros_continuous_node" />
   <arg name="camera_name" default="/usb_cam" />
   <arg name="image_topic" default="image_rect" />
+  <arg name="device" default="/dev/video0" />
 
   <!-- Set parameters -->
   <rosparam command="load" file="$(find ccf_immersive_sorting)/config/settings.yaml" ns="$(arg node_namespace)" />
   <rosparam command="load" file="$(find ccf_immersive_sorting)/config/tags.yaml" ns="$(arg node_namespace)" />
 
   <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="log">
-    <param name="video_device" value="/dev/video2" />
+    <param name="video_device" value="$(arg device)" />
     <param name="image_width" value="2560" />
     <param name="image_height" value="1440" />
     <param name="autofocus" value="1" />
     <param name="pixel_format" value="mjpeg"/>
     <param name="framerate" value="4"/>
-  </node> 
+  </node>
 
 
   <node name="image_proc" pkg="image_proc" type="image_proc" ns="usb_cam"/>
diff --git a/src/main_controller.cpp b/src/main_controller.cpp
index 2b5271fb3c828fe828bc02440dedbcbe0ba106d9..f829379a84401f038265565b4cb9ccbc466da670 100644
--- a/src/main_controller.cpp
+++ b/src/main_controller.cpp
@@ -91,7 +91,7 @@ int main(int argc, char **argv)
       // uncomment in case things fail. clients[client].proceedWithTask();
     });
   }
-  auto fallback_path = ros::package::getPath("ccf_immersive_sorting") + "/config/config_scene_virtual-tag-table.json";
+  auto fallback_path = ros::package::getPath("ccf_immersive_sorting") + "/config/config_scene_virtual-tag-table-grey.json";
   controller.loadScene(getPrivateParameter<std::string>("scene", fallback_path));
 
   Object *robot = controller.resolveObject(controller.getRobotName());