> restart: libname := libname, "C:/MBSymba": with(MBSymba_r6):
Rotation matrix
Bryant's angles are defined as sequential rotations alpha, beta and delta as follows
> bryant_angles := alpha(t),beta(t),delta(t);
> PDEtools[declare](bryant_angles, prime=t, quiet):
> alias(S=sin,C=cos):
> TB := rotate('X',alpha), rotate('Y',beta), rotate('Z',delta);
> TB := rotate('X',alpha(t)) * rotate('Y',beta(t)) * rotate('Z',delta(t));
> set_frame_name(TB,'TB'):
Angular velocity and
> Omega := angular_velocity(TB): show(Omega);
> project(Omega,ground): show(%);
Singular configuration
It is easy to verify that when beta = 0, it is not possible to express the body angular velocity in terms of Bryant's angles time derivatives
> om := make_VECTOR(TB, omega[X],omega[Y],omega[Z]): show(om);
> solve([comp_XYZ(Omega-om)] , diff([bryant_angles],t)): Vector(%[1]);
>
>