Joint which does not constrain the motion between frame_a and frame_b. Such a joint is just used to define the desired states to be used. The joint is realized in such a way, that a singularity cannot occur. This is achieved because the Cardan angles are defined between a frame_fix fixed in frame_a and frame_b. Whenever the Cardan angles are near a singularity, the integration is stopped and frame_fix is changed, such that the Cardan angles are far away from the singularity. The following state variables are used:
r_rela[3]: Distance vector from the origin of frame_a to the origin
of frame_b, resolved in frame_a in [m].
phi[3] : Cardan angles, also called Tait-Bryan angles, i.e.,
rotate around 1-, 2-, 3-axis in [rad] from intermediate
frame_fix, which is fixed in frame_a, to frame_b. Initially, frame_fix
is identical to frame_a. If phi[2] is near its singularity (= pi/2 or -pi/2),
the frame_fix and phi are changed, such that phi[2] is far away from
its singularity.
v_rela[3]: = der(r_rela); relative velocity of frame_b with respect to frame_a
resolved in frame_a in [m/s].
w_rela[3]: Relative angular velocity of frame_b with respect to frame_a
resolved in frame_a in [rad/s].