#include <hpp/core/relative-motion.hh>
◆ matrix_type
Matrix of relative motion
The row and column indices correspond to joint indices in the robot plus one. 0 corresponds to the environment. The values of the matrix are
- Constrained: the joints are rigidly fixed to each other,
- Parameterized: the joints are rigidly fixed to each other, but the relative transformation may differ from one path to another one,
- Unconstrained: the joints can move with respect to each other.
◆ RelativeMotionType
Enumerator |
---|
Constrained | The relative motion is fully constrained and the constraint cannot be parameterized (has constant right-hand side)
|
Parameterized | The relative motion is fully constrained but the constraint can be parameterized (has non-constant right-hand side)
|
Unconstrained | The relative motion is not constrained.
|
◆ fromConstraint()
Fill the relative motion matrix with information extracted from the provided ConstraintSet.
- Note
- Only LockedJoint and RelativeTransformation of dimension 6 are currently taken into account.
- Todo:
- LockedJoint always has a non-constant RHS which means it will always be treated a parameterized constraint. Even when the value is not going to change...
◆ idx()
Get the index for a given joint
- Returns
- 0 if joint is NULL, joint->index() otherwise.
◆ matrix()
◆ recurseSetRelMotion()
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:
- set matrix(i0,i2) if i0 and i1 was constrained,
- set matrix(i1,i3) if i2 and i3 was constrained,
- set matrix(i0,i3) if the two previous condition are fulfilled.
The RelativeMotionType is deduced as follow:
The documentation for this struct was generated from the following file: