Struct robot_interfaces::NFingerObservation

template<size_t N_FINGERS>
struct NFingerObservation : public robot_interfaces::Loggable, public robot_interfaces::Loggable

Observation of a Finger robot.

Values like angular position, velocity or torque of the joints are represented as a 1-dimensional vector with one element per joint. The order of the joints in these vectors is as follows:

0. Finger 1, upper joint
1. Finger 1, middle joint
2. Finger 1, lower joint
3. Finger 2, upper joint
4. Finger 2, middle joint
5. Finger 2, lower joint
...
#. Finger n, upper joint
#. Finger n, middle joint
#. Finger n, lower joint

Template Parameters:

N_FINGERS – Number of fingers.

Public Types

typedef Eigen::Matrix<double, num_joints, 1> JointVector
typedef Eigen::Matrix<double, num_fingers, 1> FingerVector
typedef Eigen::Matrix<double, num_joints, 1> JointVector
typedef Eigen::Matrix<double, num_fingers, 1> FingerVector

Public Functions

template<class Archive>
inline void serialize(Archive &archive)
inline virtual std::vector<std::string> get_name() override
inline virtual std::vector<std::vector<double>> get_data() override
template<class Archive>
inline void serialize(Archive &archive)
inline virtual std::vector<std::string> get_name() override
inline virtual std::vector<std::vector<double>> get_data() override

Public Members

JointVector position = JointVector::Zero()

Measured angular position of all joints in radian.

JointVector velocity = JointVector::Zero()

Measured velocity of all joints in radian/second.

JointVector torque = JointVector::Zero()

Measured torques of all joints in Nm.

FingerVector tip_force = FingerVector::Zero()

Measurements of the pressure sensors at the finger tips.

One per finger. Ranges between 0 and 1 without specific unit. Note that not all fingers are equipped with an actual sensor! For fingers without sensor, this value is undefined.

Public Static Attributes

static constexpr size_t num_fingers = N_FINGERS
static constexpr size_t num_joints = N_FINGERS * 3