diff --git a/source/RobotAPI/libraries/Controllers/DataUnits/KinematicDataUnit.h b/source/RobotAPI/libraries/Controllers/DataUnits/KinematicDataUnit.h
index 2b01e1df46f17f591532b3356a427b3875a63b9c..93aae5d1e716c94aa3023aa6b654c2b0d73290d1 100644
--- a/source/RobotAPI/libraries/Controllers/DataUnits/KinematicDataUnit.h
+++ b/source/RobotAPI/libraries/Controllers/DataUnits/KinematicDataUnit.h
@@ -42,6 +42,14 @@ namespace armarx
         virtual std::vector<const float*> getJointCurrents(const std::vector<std::string>& joints) const = 0;
         virtual std::vector<const float*> getJointMotorTemperatures(const std::vector<std::string>& joints) const = 0;
         virtual std::vector<const float*> getJointGearTemperatures(const std::vector<std::string>& joints) const = 0;
+
+        virtual std::vector<const int32_t*> getJointRawPositionValues(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int32_t*> getJointRawVelocityValues(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int16_t*> getJointRawCurrentValues(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int32_t*> getJointRawTorqueValues(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int32_t*> getJointRawGearTemperatures(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int32_t*> getJointRawAbsPositionValues(const std::vector<std::string>& joints) const = 0;
+        virtual std::vector<const int16_t*> getJointTemperatureRobodriveValues(const std::vector<std::string>& joints) const = 0;
     };
 
     class KinematicDataUnitPtrProvider: virtual public KinematicDataUnitInterface
@@ -98,6 +106,36 @@ namespace armarx
         {
             return getPointers(joints, jointAbsPositions);
         }
+        virtual std::vector<const int32_t*> getJointRawPositionValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawPositionValues);
+        }
+        virtual std::vector<const int32_t*> getJointRawVelocityValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawVelocityValues);
+        }
+        virtual std::vector<const int16_t*> getJointRawCurrentValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawCurrentValues);
+        }
+        virtual std::vector<const int32_t*> getJointRawTorqueValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawTorqueValues);
+        }
+        virtual std::vector<const int32_t*> getJointRawGearTemperatures(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawGearTemperatures);
+        }
+        virtual std::vector<const int32_t*> getJointRawAbsPositionValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawAbsPositionValues);
+        }
+        virtual std::vector<const int16_t*> getJointTemperatureRobodriveValues(const std::vector<std::string>& joints) const
+        {
+            return getPointers(joints, jointRawMotorTemperatureValues);
+        }
+
+
 
     protected:
         std::vector<float*> jointAngles;
@@ -107,6 +145,14 @@ namespace armarx
         std::vector<float*> jointMotorTemperatures;
         std::vector<float*> jointGearTemperatures;
         std::vector<float*> jointAbsPositions;
+
+        std::vector<int32_t*> jointRawPositionValues;
+        std::vector<int32_t*> jointRawVelocityValues;
+        std::vector<int16_t*> jointRawCurrentValues;
+        std::vector<int32_t*> jointRawTorqueValues;
+        std::vector<int32_t*> jointRawGearTemperatures;
+        std::vector<int32_t*> jointRawAbsPositionValues;
+        std::vector<int16_t*> jointRawMotorTemperatureValues;
     private:
         template<class T>
         std::vector<const T*> getPointers(const std::vector<std::string>& joints, const std::vector<T*>& targets) const
diff --git a/source/RobotAPI/libraries/Controllers/RobotUnit.h b/source/RobotAPI/libraries/Controllers/RobotUnit.h
index 73680e32852e8ffad810eaa258184aacf3780b34..61e9239595261793c77656359a03eabb84e8888c 100644
--- a/source/RobotAPI/libraries/Controllers/RobotUnit.h
+++ b/source/RobotAPI/libraries/Controllers/RobotUnit.h
@@ -109,11 +109,11 @@ namespace armarx
         virtual InertialMeasurementUnitInterfacePrx getInertialMeasurementUnit(const Ice::Current& = GlobalIceCurrent) const = 0;
         virtual            PlatformUnitInterfacePrx getPlatformUnitInterface(const Ice::Current& = GlobalIceCurrent) const = 0;
         //units (rt)
-        virtual const ForceTorqueDataUnitInterface& getForceTorqueDataUnit() const = 0;
-        virtual const      HapticDataUnitInterface& getHapticDataUnit() const = 0;
-        virtual const         IMUDataUnitInterface& getIMUDataUnit() const = 0;
-        virtual const   KinematicDataUnitInterface& getKinematicDataUnit() const = 0;
-        virtual const    PlatformDataUnitInterface& getPlatformDataUnit() const = 0;
+        virtual const ForceTorqueDataUnitInterface& getRTForceTorqueDataUnit() const = 0;
+        virtual const      HapticDataUnitInterface& getRTHapticDataUnit() const = 0;
+        virtual const         IMUDataUnitInterface& getRTIMUDataUnit() const = 0;
+        virtual const   KinematicDataUnitInterface& getRTKinematicDataUnit() const = 0;
+        virtual const    PlatformDataUnitInterface& getRTPlatformDataUnit() const = 0;
         //targets
         JointTargetBase* getJointTarget(const std::string& jointName, const std::string& controlMode);