#include <hpp/core/relative-motion.hh>
Public Types | |
enum | RelativeMotionType { Constrained, Parameterized, Unconstrained } |
typedef Eigen::Matrix < RelativeMotionType, Eigen::Dynamic, Eigen::Dynamic > | matrix_type |
Static Public Member Functions | |
static matrix_type | matrix (const DevicePtr_t &robot) |
Build a new RelativeMotion matrix from a robot. More... | |
static void | fromConstraint (matrix_type &matrix, const DevicePtr_t &robot, const ConstraintSetPtr_t &constraint) |
Fill the relative motion matrix with information extracted from the provided ConstraintSet. More... | |
static void | recurseSetRelMotion (matrix_type &matrix, const size_type &i1, const size_type &i2, const RelativeMotionType &type) |
Set the relative motion between two joints. More... | |
static size_type | idx (const JointConstPtr_t &joint) |
Get the index for a given joint. More... | |
typedef Eigen::Matrix<RelativeMotionType, Eigen::Dynamic, Eigen::Dynamic> hpp::core::RelativeMotion::matrix_type |
|
static |
Fill the relative motion matrix with information extracted from the provided ConstraintSet.
|
inlinestatic |
Get the index for a given joint.
|
static |
Build a new RelativeMotion matrix from a robot.
robot | a Device, initialize a matirx of size (N+1) x (N+1) where N is the robot number of degrees of freedom. Diagonal elements are set to RelativeMotion::Constrained, other elements are set to RelativeMotion::Unconstrained. |
|
static |
Set the relative motion between two joints.
This does nothing if type is Unconstrained. The full matrix is updated as follow. For any indices i0 and i3 different from both i1 and i2:
The RelativeMotionType is deduced as follow: