## State Representations

This package provides two ways to describe an articulated robot state, one in cartesian (=task) space, the other in joint (=configuration) space. Each of these states has a corresponding ROS message xpp_msgs, where conversion function are provided in `convert.h`.

### Cartesian Representation

In this representation (robot_state_cartesian.h), the robot is described by the position, velocity and acceleration of it's endeffectors and the Cartesian force they exert.

### Joint Representation

In this representation (robot_state_joint.h) the endeffector state is only indirectly given through the joint values. Instead of forces acting on the endeffectors, this state equivalently represents this as torques acting on the joints.

## Endeffectors

The core difference between the above representations is how the articulated limbs and the force they exert are described (task or joint space). In order to make these states most interchangeable, we create a class (endeffectors.h) that parameterizes each endeffector. This can be done in two ways:

- using Cartesian xyz values for position velocity and acceleration for each endeffector.
- using joint position, velocity and acceleration of every joint of the limb.

## Feedback

Please let us know your improvement suggestions, bugs or any other issues here.