diff --git a/source/RobotAPI/components/units/PlatformUnitObserver.cpp b/source/RobotAPI/components/units/PlatformUnitObserver.cpp
index 9194408d35ea5596d18cf49a5dbe0f0c0aa85ab7..73661c4ceaacef34826d3a6e6ad22697b7ed628f 100644
--- a/source/RobotAPI/components/units/PlatformUnitObserver.cpp
+++ b/source/RobotAPI/components/units/PlatformUnitObserver.cpp
@@ -86,9 +86,9 @@ void PlatformUnitObserver::onConnectObserver()
 
 }
 
-void PlatformUnitObserver::reportPlatformPose(::Ice::Float currentPlatformPositionX, ::Ice::Float currentPlatformPositionY, ::Ice::Float currentPlatformRotation, const Ice::Current& c)
+void PlatformUnitObserver::reportPlatformPose(PlatformPose const& currentPose, const Ice::Current& c)
 {
-    nameValueMapToDataFields("platformPose", currentPlatformPositionX, currentPlatformPositionY, currentPlatformRotation);
+    nameValueMapToDataFields("platformPose", currentPose.x, currentPose.y, currentPose.rotationAroundZ);
     updateChannel("platformPose");
 }
 
diff --git a/source/RobotAPI/components/units/PlatformUnitObserver.h b/source/RobotAPI/components/units/PlatformUnitObserver.h
index 412b9c57f942a48789c833773c01c5f9d6927331..a79ee07926621bf333aa9b4775fab3e1ae76d307 100644
--- a/source/RobotAPI/components/units/PlatformUnitObserver.h
+++ b/source/RobotAPI/components/units/PlatformUnitObserver.h
@@ -78,7 +78,7 @@ namespace armarx
         void onConnectObserver() override;
 
         // slice interface implementation
-        void reportPlatformPose(::Ice::Float currentPlatformPositionX, ::Ice::Float currentPlatformPositionY, ::Ice::Float currentPlatformRotation, const Ice::Current& c = Ice::emptyCurrent) override;
+        void reportPlatformPose(PlatformPose const& currentPose, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportNewTargetPose(::Ice::Float newPlatformPositionX, ::Ice::Float newPlatformPositionY, ::Ice::Float newPlatformRotation, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportPlatformVelocity(::Ice::Float currentPlatformVelocityX, ::Ice::Float currentPlatformVelocityY, ::Ice::Float currentPlatformVelocityRotation, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportPlatformOdometryPose(Ice::Float x, Ice::Float y, Ice::Float angle, const Ice::Current&) override;
diff --git a/source/RobotAPI/components/units/PlatformUnitSimulation.cpp b/source/RobotAPI/components/units/PlatformUnitSimulation.cpp
index 75fcbca37ad130dd9e19c9455ad10dbe6d166581..b526cff934941abee0918d5797838bc60380df17 100644
--- a/source/RobotAPI/components/units/PlatformUnitSimulation.cpp
+++ b/source/RobotAPI/components/units/PlatformUnitSimulation.cpp
@@ -58,7 +58,13 @@ void PlatformUnitSimulation::onInitPlatformUnit()
 
 void PlatformUnitSimulation::onStartPlatformUnit()
 {
-    listenerPrx->reportPlatformPose(currentPositionX, currentPositionY, currentRotation);
+    PlatformPose currentPose;
+    // FIXME: Take the timestamp from simulation
+    currentPose.timestampInMicroSeconds = TimeUtil::GetTime().toMicroSeconds();
+    currentPose.x = currentPositionX;
+    currentPose.y = currentPositionY;
+    currentPose.rotationAroundZ = currentRotation;
+    listenerPrx->reportPlatformPose(currentPose);
     simulationTask->start();
 }
 
@@ -157,7 +163,13 @@ void PlatformUnitSimulation::simulationFunction()
                 break;
         }
     }
-    listenerPrx->reportPlatformPose(currentPositionX, currentPositionY, currentRotation);
+    PlatformPose currentPose;
+    // FIXME: Take the timestamp from simulation
+    currentPose.timestampInMicroSeconds = TimeUtil::GetTime().toMicroSeconds();
+    currentPose.x = currentPositionX;
+    currentPose.y = currentPositionY;
+    currentPose.rotationAroundZ = currentRotation;
+    listenerPrx->reportPlatformPose(currentPose);
     listenerPrx->reportPlatformVelocity(vel[0], vel[1], vel[2]);
 }
 
diff --git a/source/RobotAPI/components/units/RobotUnit/Units/PlatformSubUnit.cpp b/source/RobotAPI/components/units/RobotUnit/Units/PlatformSubUnit.cpp
index 48258990833084dbd0fee2a25240a5b71f9cb61a..1201da179c7ce4770ae7afffd0230c180b466b6a 100644
--- a/source/RobotAPI/components/units/RobotUnit/Units/PlatformSubUnit.cpp
+++ b/source/RobotAPI/components/units/RobotUnit/Units/PlatformSubUnit.cpp
@@ -50,8 +50,13 @@ void armarx::PlatformSubUnit::update(const armarx::SensorAndControl& sc, const J
         {
             const SensorValueHolonomicPlatformAbsolutePosition* sabs = s->asA<SensorValueHolonomicPlatformAbsolutePosition>();
             abs = positionCorrection * VirtualRobot::MathTools::posrpy2eigen4f(sabs->absolutePositionX, sabs->absolutePositionY, 0, 0, 0, sabs->absolutePositionRotation);
-            const float globR = VirtualRobot::MathTools::eigen4f2rpy(abs)(2);
-            listenerPrx->reportPlatformPose(abs(0, 3), abs(1, 3), globR);
+
+            PlatformPose currentPose;
+            currentPose.timestampInMicroSeconds = sc.sensorValuesTimestamp.toMicroSeconds();
+            currentPose.x = abs(0, 3);
+            currentPose.y = abs(1, 3);
+            currentPose.rotationAroundZ = VirtualRobot::MathTools::eigen4f2rpy(abs)(2);
+            listenerPrx->reportPlatformPose(currentPose);
         }
         else
         {
diff --git a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.cpp b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.cpp
index f23423f6cfaa89711123bfbfa612269105d8e123..8d6e12d6e38c95a3e694a8de101dc27180ee9efc 100644
--- a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.cpp
+++ b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.cpp
@@ -197,11 +197,11 @@ void PlatformUnitWidget::stopControlTimer()
     rotaCtrl->setNibble({0, 0});
 }
 
-void PlatformUnitWidget::reportPlatformPose(::Ice::Float currentPlatformPositionX, ::Ice::Float currentPlatformPositionY, ::Ice::Float currentPlatformRotation, const Ice::Current& c)
+void PlatformUnitWidget::reportPlatformPose(PlatformPose const& currentPose, const Ice::Current& c)
 {
     // moved to qt thread for thread safety
-    QMetaObject::invokeMethod(this, "setNewPlatformPoseLabels", Q_ARG(float, currentPlatformPositionX), Q_ARG(float, currentPlatformPositionY), Q_ARG(float, currentPlatformRotation));
-    platformRotation = currentPlatformRotation;
+    QMetaObject::invokeMethod(this, "setNewPlatformPoseLabels", Q_ARG(float, currentPose.x), Q_ARG(float, currentPose.y), Q_ARG(float, currentPose.rotationAroundZ));
+    platformRotation = currentPose.rotationAroundZ;
 }
 
 void PlatformUnitWidget::reportNewTargetPose(::Ice::Float newPlatformPositionX, ::Ice::Float newPlatformPositionY, ::Ice::Float newPlatformRotation, const Ice::Current& c)
diff --git a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
index 775e254616cf8dfd62f6abdb14bf7da3d361c00d..6b1fd53f0b76ec7af2bc6f6bd7ce5ad191789fae 100644
--- a/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
+++ b/source/RobotAPI/gui-plugins/PlatformUnitPlugin/PlatformUnitGuiPlugin.h
@@ -118,7 +118,7 @@ namespace armarx
         void onExitComponent() override;
 
         // slice interface implementation
-        void reportPlatformPose(::Ice::Float currentPlatformPositionX, ::Ice::Float currentPlatformPositionY, ::Ice::Float currentPlatformRotation, const Ice::Current& c = Ice::emptyCurrent) override;
+        void reportPlatformPose(PlatformPose const& currentPose, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportNewTargetPose(::Ice::Float newPlatformPositionX, ::Ice::Float newPlatformPositionY, ::Ice::Float newPlatformRotation, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportPlatformVelocity(::Ice::Float currentPlatformVelocityX, ::Ice::Float currentPlatformVelocityY, ::Ice::Float currentPlatformVelocityRotation, const Ice::Current& c = Ice::emptyCurrent) override;
         void reportPlatformOdometryPose(Ice::Float, Ice::Float, Ice::Float, const Ice::Current&) override;
diff --git a/source/RobotAPI/interface/units/PlatformUnitInterface.ice b/source/RobotAPI/interface/units/PlatformUnitInterface.ice
index df76354fa64b37ddbbb6b966141192aab9d9ed15..bec45c18e866a544a7a419f912c3169773187200 100644
--- a/source/RobotAPI/interface/units/PlatformUnitInterface.ice
+++ b/source/RobotAPI/interface/units/PlatformUnitInterface.ice
@@ -72,6 +72,15 @@ module armarx
 		**/
         void stopPlatform();
     };
+
+    struct PlatformPose
+    {
+        long timestampInMicroSeconds = 0;
+        float x = 0.0f;
+        float y = 0.0f;
+        float rotationAroundZ = 0.0f;
+    };
+
 	/**
 	* Implements an interface to an PlatformUnitListener.
 	**/
@@ -79,11 +88,9 @@ module armarx
     {
 		/**
 		* reportPlatformPose reports current platform pose.
-		* @param currentPlatformPositionX Global x-coordinate of current platform position.
-		* @param currentPlatformPositionY Global y-coordinate of current platform position.
-		* @param currentPlatformRotation Current global orientation of platform.
+        * @param currentPose Current global platform pose.
 		**/
-        void reportPlatformPose(float currentPlatformPositionX, float currentPlatformPositionY, float currentPlatformRotation);
+        void reportPlatformPose(PlatformPose currentPose);
         /**
 		* reportNewTargetPose reports target platform pose.
 		* @param newPlatformPositionX Global x-coordinate of target platform position.