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);