Rotational Stiffness Comparison

Two ways to implement rotational stiffness

  • The gimbal torque model in drake's LinearBushingRollPitchYaw:
  • The gimbal torque model in drake's LinearBushingRollPitchYaw:
  • The axis-angle model from Natle's book, where a rotational potential energy is defined as

Gimbal torque (not a vector)

Moments on frames (a vector)

Moments 

Result of taking time derivative of axis and angle, although setting this to identity doesn't seem to cause problems...

Constant

with

Monotonically increasing in an interval around the origin, \(f(0) = 0\). E.g. \(\sin \frac{\cdot}{2}\) for quaternions.

Angle

Axis

Taking the time-derivative of the potential energy yields an expression for moments:

3x3 stiffness

\Omega(r, \theta) = f'(\theta) I_3 - 0.5f(\theta)\hat{r}

Simulation comparison

  • We applied external moments on an object that starts at X_WB = I and is controlled by controller that uses one of the two rotational stiffness models. 
  • Example:
    • \(K_r\) = diag([10, 20, 40]) Nm/rad
    • \(\tau_{ext}\): a 10Nm torque along [1, 2, 3]

Gimbal stiffness model

Axis-angle stiffness model with \(\Omega\)

  • The steady-state rotations are different, but seem to be in the same ballpark. Which one is "better"?
    • The gimbal model has a corresponding mechanical device.
    • The axis-angle model (with \(\Omega\)) has the property that a moment along one of the eigenvectors of \(K_r\) generates a rotation whose axis is also aligned with the same eigenvector. A property called "geometric consistency" by Natale. 

Axis-angle stiffness model with \(\Omega = I\)

Why do they go unstable as \(\tau_{ext}\) gets larger?

  • Example:
    • \(K_r\) = diag([10, 20, 40]) Nm/rad
    • \(\tau_{ext}\): a 30Nm torque along [1, 2, 3]
    • All angles are between 0 and pi/2, but the system starts to oscillate. 

Gimbal stiffness model

Axis-angle stiffness model with \(\Omega\)

Axis-angle stiffness model with \(\Omega = I\)