diff --git a/source/RobotAPI/components/units/ObstacleAvoidingPlatformUnit/ObstacleAvoidingPlatformUnit.cpp b/source/RobotAPI/components/units/ObstacleAvoidingPlatformUnit/ObstacleAvoidingPlatformUnit.cpp
index 0d9a7c50cd5deb5864d7bad3e96097c7ff0a49d5..dcf0ebd846beb390d2bb1c29e511e14555e1cb42 100644
--- a/source/RobotAPI/components/units/ObstacleAvoidingPlatformUnit/ObstacleAvoidingPlatformUnit.cpp
+++ b/source/RobotAPI/components/units/ObstacleAvoidingPlatformUnit/ObstacleAvoidingPlatformUnit.cpp
@@ -160,10 +160,12 @@ armarx::ObstacleAvoidingPlatformUnit::moveTo(
     const float ori_reached_threshold,
     const Ice::Current&)
 {
+    using namespace simox::math;
+
     std::scoped_lock l{m_control_data.mutex};
 
     m_control_data.target_pos = Eigen::Vector2f{target_pos_x, target_pos_y};
-    m_control_data.target_ori = target_ori;
+    m_control_data.target_ori = periodic_clamp<float>(target_ori, -M_PI, M_PI);
     m_control_data.pos_reached_threshold = pos_reached_threshold;
     m_control_data.ori_reached_threshold = ori_reached_threshold;