diff --git a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
index c5f3fe36a067f6969e2c09b238ac1ed473422c2b..526d92d04927849420925e4345c3a28eaf983911 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
+++ b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.cpp
@@ -53,6 +53,9 @@ namespace armarx::armem::server::robot_state
         defs->optional(p.forceTorque.forceScale,
                        prefix + "forceTorque.forceScale",
                        "Scaling of force arrows.");
+        defs->optional(p.collisionModelEnabled,
+                       prefix + "collisionModelEnabled",
+                       "Enable visualization of collision model.");
     }
 
     void
@@ -81,7 +84,7 @@ namespace armarx::armem::server::robot_state
     }
 
     void
-    Visu::visualizeRobots(viz::Layer& layer, const robot::Robots& robots)
+    Visu::visualizeRobots(viz::Layer& layer, const robot::Robots& robots, bool useColModel)
     {
         for (const robot::Robot& robot : robots)
         {
@@ -93,7 +96,14 @@ namespace armarx::armem::server::robot_state
                                    .joints(robot.config.jointMap)
                                    .pose(robot.config.globalPose);
 
-            robotVisu.useFullModel();
+            if (not useColModel)
+            {
+                robotVisu.useFullModel();
+            }
+            else
+            {
+                robotVisu.useCollisionModel();
+            }
             // clang-format on
 
             layer.add(robotVisu);
@@ -233,7 +243,13 @@ namespace armarx::armem::server::robot_state
 
         {
             viz::Layer& layer = layers.emplace_back(arviz.layer("Robots"));
-            visualizeRobots(layer, robots);
+            visualizeRobots(layer, robots, false);
+        }
+
+        if (p.collisionModelEnabled)
+        {
+            viz::Layer& layer = layers.emplace_back(arviz.layer("RobotsCol"));
+            visualizeRobots(layer, robots, true);
         }
 
         ARMARX_DEBUG << "Visualize frames ...";
diff --git a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.h b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.h
index 2afa9a27f3396939c625050a942925db79129d64..ede55c7a3f1cedb5aaba163d58bba4df46a465df 100644
--- a/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.h
+++ b/source/RobotAPI/libraries/armem_robot_state/server/common/Visu.h
@@ -58,7 +58,7 @@ namespace armarx::armem::server::robot_state
         void visualizeOnce(const Time& timestamp);
 
 
-        static void visualizeRobots(viz::Layer& layer, const robot::Robots& robots);
+        static void visualizeRobots(viz::Layer& layer, const robot::Robots& robots, bool useColModel = false);
 
         static void visualizeFrames(
             viz::Layer& layerFrames,
@@ -97,6 +97,7 @@ namespace armarx::armem::server::robot_state
             float frequencyHz = 25.f;
 
             bool framesEnabled = false;
+            bool collisionModelEnabled = false;
 
             struct ForceTorque
             {