Skip to content
Snippets Groups Projects
Commit 2639567d authored by Markus Swarowsky's avatar Markus Swarowsky
Browse files

removed raw value support for the KinematicDataUnit

parent 0161d371
No related branches found
No related tags found
No related merge requests found
......@@ -36,26 +36,43 @@ namespace armarx
{
public:
virtual const std::vector<std::string>& getJointNames() const = 0;
virtual std::vector<const float*> getJointAngles(const std::vector<std::string>& joints) const = 0;
virtual std::vector<const float*> getJointVelocities(const std::vector<std::string>& joints) const = 0;
virtual std::vector<const float*> getJointTorques(const std::vector<std::string>& joints) const = 0;
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 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*> getJointRawMotorTemperatureValues(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*>
getJointRawMotorTemperatureValues(const std::vector<std::string>& joints) const = 0;
};
class KinematicDataUnitPtrProvider: virtual public KinematicDataUnitInterface
class KinematicDataUnitPtrProvider : virtual public KinematicDataUnitInterface
{
public:
KinematicDataUnitPtrProvider(const std::vector<std::string>& jointNames):
KinematicDataUnitPtrProvider(const std::vector<std::string>& jointNames) :
jointAngles(jointNames.size(), nullptr),
jointVelocites(jointNames.size(), nullptr),
jointTorques(jointNames.size(), nullptr),
......@@ -71,79 +88,109 @@ namespace armarx
jointRawAbsPositionValues(jointNames.size(), nullptr),
jointRawMotorTemperatureValues(jointNames.size(), nullptr),
jointNames {jointNames},
jointIndices {toIndexMap(jointNames)}
{}
jointIndices {toIndexMap(jointNames)} {}
KinematicDataUnitPtrProvider() = default;
KinematicDataUnitPtrProvider(const KinematicDataUnitPtrProvider&) = default;
void setJointNames(std::vector<std::string>& names)
{
jointNames = names;
jointIndices = toIndexMap(names);
jointAngles = std::vector<float*>(names.size(), nullptr);
jointVelocites = std::vector<float*>(jointNames.size(), nullptr);
jointTorques = std::vector<float*>(jointNames.size(), nullptr);
jointCurrents = std::vector<float*>(jointNames.size(), nullptr);
jointMotorTemperatures = std::vector<float*>(jointNames.size(), nullptr);
jointGearTemperatures = std::vector<float*>(jointNames.size(), nullptr);
jointAbsPositions = std::vector<float*>(jointNames.size(), nullptr);
}
const std::vector<std::string>& getJointNames() const
{
return jointNames;
}
std::size_t getJointIndex(const std::string& joint) const
{
return jointIndices.at(joint);
}
virtual std::vector<const float*> getJointAngles(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointAngles(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointAngles);
}
virtual std::vector<const float*> getJointVelocities(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointVelocities(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointVelocites);
}
virtual std::vector<const float*> getJointTorques(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointTorques(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointTorques);
}
virtual std::vector<const float*> getJointCurrents(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointCurrents(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointCurrents);
}
virtual std::vector<const float*> getJointMotorTemperatures(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointMotorTemperatures(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointMotorTemperatures);
}
virtual std::vector<const float*> getJointGearTemperatures(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointGearTemperatures(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointGearTemperatures);
}
virtual std::vector<const float*> getJointAbsPositions(const std::vector<std::string>& joints)const
virtual std::vector<const float*> getJointAbsPositions(const std::vector<std::string>& joints) const
{
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
virtual std::vector<const int32_t*>
getJointRawAbsPositionValues(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointRawAbsPositionValues);
}
virtual std::vector<const int16_t*> getJointRawMotorTemperatureValues(const std::vector<std::string>& joints) const
virtual std::vector<const int16_t*>
getJointRawMotorTemperatureValues(const std::vector<std::string>& joints) const
{
return getPointers(joints, jointRawMotorTemperatureValues);
}
protected:
std::vector<float*> jointAngles;
std::vector<float*> jointVelocites;
......@@ -162,7 +209,8 @@ namespace armarx
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
std::vector<const T*>
getPointers(const std::vector<std::string>& joints, const std::vector<T*>& targets) const
{
std::vector<const T*> result;
result.reserve(joints.size());
......@@ -175,8 +223,9 @@ namespace armarx
);
return result;
}
const std::vector<std::string> jointNames;
const std::unordered_map<std::string, std::size_t> jointIndices;
std::vector<std::string> jointNames;
std::unordered_map<std::string, std::size_t> jointIndices;
};
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment