Revolute
========

A revolute joint creates a frame that is rotated relative to an existing frame about an axis defined in a specified reference frame. The angular component can be constant valued, or a degree of freedom (DOF) may be generated. If the DOF form is chosen, then an optional rotational stiffness, damping, and equilibrium angle can be used to include rotational spring-damper physics in the joint.

**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: Point at which the joint is displayed

:param str ref_frame_key: Reference frame in which the components of the rotation axis are defined

:param str is_form: 'constant' or 'degree of freedom'

**Rotation Axis Components**

:param numeric x: Component of the rotation axis measured in the x-axis of the reference frame

:param numeric y: Component of the rotation axis measured in the y-axis of the reference frame

:param numeric z: Component of the rotation axis measured in the z-axis of the reference frame

**Initial States**

:param numeric value: Initial value for the generalized coordinate if is_form == 'degree of freedom'

:param numeric rate: Initial value for the generalized speed if is_form == 'degree of freedom'

**Spring Parameters**

:param numeric k: Spring constant

:param numeric c: Damping constant

:param numeric equilibrium: Equilibrium angle