This component consists of 2 revolute joints with parallel
axes of rotation that and a prismatic joint with a translational
axis that is orthogonal to the revolute joint axes, see the default
animation in the following figure (the axes vectors are not part of the
default animation):
This joint aggregation introduces neither constraints nor state variables and
should therefore be used in kinematic loops whenever possible to
avoid non-linear systems of equations. It is only meaningful to
use this component in planar loops. Basically, the position
and orientation of the 3 joints as well as of frame_ia, frame_ib, and
frame_im are calculated by solving analytically a non-linear equation,
given the position and orientation at frame_a and at frame_b.
Connector frame_a is the "left" side of the first revolute joint
whereas frame_ia is the "right side of this revolute joint, fixed in rod 1.
Connector frame_b is the "right" side of the prismatic joint
whereas frame_ib is the "left" side of this prismatic joint, fixed in rod 2.
Finally, connector frame_im is the connector at the "right" side
of the revolute joint in the middle, fixed in rod 2. The frames
frame_b, frame_ib, frame_im are always parallel to each other.
The easiest way to define the parameters of this joint is by moving the
MultiBody system in a reference configuration where all frames
of all components are parallel to each other (alternatively,
at least frame_a, frame_ia, frame_im, frame_ib, frame_b of the JointRRP joint
should be parallel to each other when defining an instance of this
component).
Basically, the JointRRP model consists internally of a universal -
spherical - prismatic joint aggregation (= JointUSP). In a planar
loop this will behave as if 2 revolute joints with parallel axes
and 1 prismatic joint are connected by rigid rods.