Show EOL distros: 

xpp: xpp_examples | xpp_hyq | xpp_msgs | xpp_quadrotor | xpp_states | xpp_vis

Package Summary

Common definitions (positions, velocities, angular angles, angular rates) and robot definitions in Cartesian and joint state used in the Xpp Motion Framework, as well as conversions to/from xpp_msgs.

xpp: xpp_examples | xpp_hyq | xpp_msgs | xpp_quadrotor | xpp_states | xpp_vis

Package Summary

Common definitions (positions, velocities, angular angles, angular rates) and robot definitions in Cartesian and joint state used in the Xpp Motion Framework, as well as conversions to/from xpp_msgs.

xpp: xpp_examples | xpp_hyq | xpp_msgs | xpp_quadrotor | xpp_states | xpp_vis

Package Summary

Common definitions (positions, velocities, angular angles, angular rates) and robot definitions in Cartesian and joint state used in the Xpp Motion Framework, as well as conversions to/from xpp_msgs.

xpp: xpp_examples | xpp_hyq | xpp_msgs | xpp_quadrotor | xpp_states | xpp_vis

Package Summary

Common definitions (positions, velocities, angular angles, angular rates) and robot definitions in Cartesian and joint state used in the Xpp Motion Framework, as well as conversions to/from xpp_msgs.

xpp: xpp_examples | xpp_hyq | xpp_msgs | xpp_quadrotor | xpp_states | xpp_vis

Package Summary

Common definitions (positions, velocities, angular angles, angular rates) and robot definitions in Cartesian and joint state used in the Xpp Motion Framework, as well as conversions to/from xpp_msgs.


https://i.imgur.com/ct8e7T4.png

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.

   1 class RobotStateCartesian {
   2 public:
   3   State3d base_;
   4   EndeffectorsMotion ee_motion_;
   5   Endeffectors<Vector3d> ee_forces_;
   6   EndeffectorsContact ee_contact_;
   7   double t_global_;
   8 };

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.

   1 class RobotStateJoint {
   2 public:
   3   State3d base_;
   4   Joints q_, qd_, qdd_;
   5   Joints torques_;
   6   EndeffectorsContact ee_contact_;
   7   double t_global_;
   8 };

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.

Wiki: xpp_states (last edited 2018-02-01 16:19:24 by AlexanderWinkler)