Universal ========= A universal joint creates a frame that is rotated relative to an existing frame using a two angles to define its orientation. **Keyword Arguments** :param str name: Name given to the joint, default is uppercase characters in alphabetical order (A, B, C, ...) :param str ref_point_key: Start point from which the vector component of the joint is defined :param str ref_frame_key: Reference frame in which the translational and rotational displacement components are defined :param str rotation_pair: 'XY', 'YX', 'YZ', 'ZY', 'ZX', or 'XZ', represents a two angle rotation sequence **Initial Values** :param numeric initial_r0: Initial value for the 0^{th} rotation angle in the Euler sequence :param numeric initial_r1: Initial value for the 1^{st} rotation angle in the Euler sequence :param numeric rate_r0: Initial value for angular rotation rate of the 0^{th} angle :param numeric rate_r1: Initial value for angular rotation rate of the 1^{st} angle If the DOF form is chosen, then optional stiffness, damping, and equilibrium coefficients can be used to include rotational spring-damper physics in the joint. **Spring Parameters** :param numeric kr0: Stiffness corresponding to the 0^{th} rotation angle in the Euler sequence :param numeric kr1: Stiffness corresponding to the 1^{st} rotation angle in the Euler sequence :param numeric cr0: Damping corresponding to the angular rotation rate about the x-axis of the created frame :param numeric cr1: Stiffness corresponding to the angular rotation rate about the y-axis of the created frame :param numeric equilibrium_r0: Equilibrium corresponding to the 0^{th} rotation angle in the Euler sequence :param numeric equilibrium_r1: Equilibrium corresponding to the 1^{st} rotation angle in the Euler sequence