A joint may have several degrees of freedom. The position, velocity and acceleration of a joint are defined by the configuration vector and its first and second derivatives.
Several rigid-body transformations represented by matrix4d type are considered in the following functions.
Three types of joints are considered and defined as follows.
Freeflyer joint has 6 degrees of freedom. In identity initial position, the degrees of freedom respectively correspond to translation along x,y,z and roll, pitch, yaw angles.
Rotation joint has 1 degree of freedom. In identity initial position, the joint rotates about x-axis.
Translation joint has 1 degree of freedom. In identity initial position, the joint translates about x-axis.
Definition of initial and current
transformation of a joint."
@image latex joint.pdf "Definition of initial and current transformation of a joint."
As an example, let us denote by
, the initial position of a joint, that is the position when all the degrees of freedom of the robot are set to 0.
, the current position of the joint, when robot is in configuration .
a point attached to the joint when the robot is in initial configuration (all degrees of freedom are set to 0).
The position of the point in configuration is given by
Get the Jacobian matrix of the joint position and orientation wrt the robot configuration.
Kinematical constraints from interaction with the environment are not taken into account for this computation.
The corresponding computation can be done by the robot for each of its joints or by the joint.
Returns
a matrix defined by
where and are respectively the linear and angular velocities of the joint implied by the variation of degree of freedom . The velocity of the joint returned by CjrlJoint::jointVelocity can thus be obtained through the following formula: