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].