Geometric control: Given a rotation matrix how can I compute its derivative without knowing the angular velocity of its principal axes?

257 Views Asked by At

I am trying to implement the geometric controller presented in this paper in python to control a simulated quadcopter.

First a little background of the general control problem: given a trajectory of the center-of-mass $x \in R^3$ and the direction of the first body axis $b^\rightarrow_{1d} \in R^3$, compute the control inputs $f \in R$ (force) and $M \in R^3$ (moment around each principal axis) to follow this trajectory.

My problem arises in computing the desired control action: in equation 11 the authors use $\Omega_d$, the desired angular velocity.

My question: How do I compute $\Omega_d$?


Some more information: $R_d$ is known, and I know that $\dot{R}_d = R_d \cdot \hat{\Omega}_d$.So my question can be formulated as: how do I compute $\dot{R}_d$ given $R_d$?

Any help is greatly appreciated.

Edit:

$R_dR_d^T = I$

$\dot{R}_dR_d^T +R_d\dot{R}_d^T = 0$

$\dot{R}_d = -R_d\dot{R}_d^TR_d$

I'm not sure how this gets me a step further.