Minimal Coordinates

Dojo simulates systems in maximal coordinates.

For a mechanism with $M$ joints and $N$ bodies, the maximal representation $z$ can be efficiently converted to minimal coordinates:

\[y = (y^{(1)}, \dots, y^{(M)}) \leftarrow z = (z^{(1)}, \dots, z^{(N)}),\]

where $y^{(j)}$ depends on the degree and type of joint. Note: this minimal representation does not stack coordinates followed by velocities, which is a common convention; instead, coordinates and velocities are grouped by joint.

Each minimal state comprises:

\[y = (p_{\text{translational}}, p_{\text{rotational}}, w_{\text{translational}}, w_{\text{rotational}})\]

coordinates $p$ and velocities $w$ for both translational and rotational degrees of freedom.

In the case of a floating-base joint, the minimal-representation orientation is converted to modified Rodrigues parameters from a unit quaternion.