The relationship between the joint velocities and the corresponding (uniquely-defined) end-effector linear and angular velocities at given point on the end-effector.
The relationship between the joint velocities and the corresponding (not uniquely-defined) end-effector linear velocities and time derivatives of any representation of the orientation at given point on the end-effector.
Assume $\phib = (\gamma, \beta, \alpha)$ is the ZYX Euler angle. The velocity relation is given by
The jacobian relation is given correspondingly by
The function for computing geometrical jacobian is:
void mj_jac(model, data, jacp, jacr, point, body_index)
The geometrical Jacobian has translational (
jacp) and rotational (
jacr point to 3-by-nv matrices you allocated that will hold the result. Each row of this matrix is the gradient of the corresponding 3D coordinate of the specified point with respect to the degrees of freedom. If either is
NULL, that Jacobian is not computed. 1
point is in 3D global (world) coordinates. body is the body index. 2
There are also helper functions
mj_jacSite, etc that compute the Jacobian of the frame of the specified body, site etc.
Note that the position-dependent stages of the computation must have been executed for the current state in order for these functions to return correct results. So to be safe, do
mj_forward and then
mj_jac. If you do
mj_step and then call
mj_jac, the Jacobians will correspond to the state before the integration of positions and velocities took place.