Affine Body Revolute Joint
Literature References:
A unified newton barrier method for multibody dynamics
#18 AffineBodyRevoluteJoint
The Affine Body Revolute Joint constitution constrains two affine bodies to rotate relative to each other about a shared axis. This joint allows for rotational motion while restricting translational movement between the two bodies.
We assume 2 affine body indices \(i\) and \(j\), each with their own state vector (to be concerete, transform) \(\mathbf{q}_i\) and \(\mathbf{q}_j\) as defined in the Affine Body constitution.
The joint axis in world space is defined by 2 points \(\mathbf{x}^0\) and \(\mathbf{x}^1\). At the beginning of the simulation, the relationships are kept:
and,
intuitively \(\mathbf{J}^0\) and \(\mathbf{J}^1\) tell the local coordinates of the two points on affine bodies \(i\) and \(j\).
The energy function for the Affine Body Revolute Joint is defined as:
where \(K\) is the stiffness constant of the joint, we choose \(K=\gamma (m_i + m_j)\), where \(\gamma\) is a user defined strength_ratio parameter, and \(m_i\) and \(m_j\) are the masses of the two affine bodies.