úÎ7z6     None*+-./0 #3-2-1 Euler angle rotation sequence  Rotate a vector about the X axis!rotateXyzAboutX (V3 0 1 0) (pi/2) V3 0.0 6.123233995736766e-17 1.0!rotateXyzAboutX (V3 0 0 1) (pi/2)#V3 0.0 (-1.0) 6.123233995736766e-17  Rotate a vector about the Y axis!rotateXyzAboutY (V3 0 0 1) (pi/2) V3 1.0 0.0 6.123233995736766e-17!rotateXyzAboutY (V3 1 0 0) (pi/2)#V3 6.123233995736766e-17 0.0 (-1.0)  Rotate a vector about the Z axis!rotateXyzAboutZ (V3 1 0 0) (pi/2) V3 6.123233995736766e-17 1.0 0.0!rotateXyzAboutZ (V3 0 1 0) (pi/2)#V3 (-1.0) 6.123233995736766e-17 0.0 "Convert quaternion to Euler angles0euler321OfQuat (Quaternion 1.0 (V3 0.0 0.0 0.0)).Euler {eYaw = 0.0, ePitch = -0.0, eRoll = 0.0}@euler321OfQuat (Quaternion (sqrt(2)/2) (V3 (sqrt(2)/2) 0.0 0.0))=Euler {eYaw = 0.0, ePitch = -0.0, eRoll = 1.5707963267948966}@euler321OfQuat (Quaternion (sqrt(2)/2) (V3 0.0 (sqrt(2)/2) 0.0))<Euler {eYaw = 0.0, ePitch = 1.5707963267948966, eRoll = 0.0}@euler321OfQuat (Quaternion (sqrt(2)/2) (V3 0.0 0.0 (sqrt(2)/2)))=Euler {eYaw = 1.5707963267948966, ePitch = -0.0, eRoll = 0.0}convert a DCM to a quaternion/quatOfDcm $ V3 (V3 1 0 0) (V3 0 1 0) (V3 0 0 1)Quaternion 1.0 (V3 0.0 0.0 0.0)2quatOfDcm $ V3 (V3 0 1 0) (V3 (-1) 0 0) (V3 0 0 1)=Quaternion 0.7071067811865476 (V3 0.0 0.0 0.7071067811865475)Glet s = sqrt(2)/2 in quatOfDcm $ V3 (V3 s s 0) (V3 (-s) s 0) (V3 0 0 1)=Quaternion 0.9238795325112867 (V3 0.0 0.0 0.3826834323650898)Convert DCM to euler angles3euler321OfDcm $ V3 (V3 1 0 0) (V3 0 1 0) (V3 0 0 1).Euler {eYaw = 0.0, ePitch = -0.0, eRoll = 0.0}6euler321OfDcm $ V3 (V3 0 1 0) (V3 (-1) 0 0) (V3 0 0 1)=Euler {eYaw = 1.5707963267948966, ePitch = -0.0, eRoll = 0.0}Klet s = sqrt(2)/2 in euler321OfDcm $ V3 (V3 s s 0) (V3 (-s) s 0) (V3 0 0 1)=Euler {eYaw = 0.7853981633974483, ePitch = -0.0, eRoll = 0.0}"Convert Euler angles to quaternionquatOfEuler321 (Euler 0 0 0)Quaternion 1.0 (V3 0.0 0.0 0.0)!quatOfEuler321 (Euler (pi/2) 0 0)=Quaternion 0.7071067811865476 (V3 0.0 0.0 0.7071067811865475)!quatOfEuler321 (Euler 0 (pi/2) 0)=Quaternion 0.7071067811865476 (V3 0.0 0.7071067811865475 0.0)!quatOfEuler321 (Euler 0 0 (pi/2))=Quaternion 0.7071067811865476 (V3 0.7071067811865475 0.0 0.0)convert a quaternion to a DCM+dcmOfQuat $ Quaternion 1.0 (V3 0.0 0.0 0.0)5V3 (V3 1.0 0.0 0.0) (V3 0.0 1.0 0.0) (V3 0.0 0.0 1.0)<let s = sqrt(2)/2 in dcmOfQuat $ Quaternion s (V3 0.0 0.0 s)eV3 (V3 0.0 1.0000000000000002 0.0) (V3 (-1.0000000000000002) 0.0 0.0) (V3 0.0 0.0 1.0000000000000002)IdcmOfQuat $ Quaternion 0.9238795325112867 (V3 0.0 0.0 0.3826834323650898)tV3 (V3 0.7071067811865475 0.7071067811865476 0.0) (V3 (-0.7071067811865476) 0.7071067811865475 0.0) (V3 0.0 0.0 1.0)Convert DCM to euler angles9dcmOfEuler321 $ Euler {eYaw = 0.0, ePitch = 0, eRoll = 0}5V3 (V3 1.0 0.0 0.0) (V3 0.0 1.0 0.0) (V3 0.0 0.0 1.0):dcmOfEuler321 $ Euler {eYaw = pi/2, ePitch = 0, eRoll = 0}\V3 (V3 2.220446049250313e-16 1.0 0.0) (V3 (-1.0) 2.220446049250313e-16 0.0) (V3 0.0 0.0 1.0):dcmOfEuler321 $ Euler {eYaw = pi/4, ePitch = 0, eRoll = 0}tV3 (V3 0.7071067811865475 0.7071067811865476 0.0) (V3 (-0.7071067811865476) 0.7071067811865475 0.0) (V3 0.0 0.0 1.0)vec_b = R_a2b * vec_avec_a = R_a2b^T * vec_b>vec_b = q_a2b * vec_a * q_a2b^(-1) vec_b = R(q_a2b) * vec_a            spatial-math-0.2.0.1 SpatialMathlinear-1.10.1.2 Linear.MatrixM33Linear.Quaternion Quaternion Linear.V3V3EulereYawePitcheRollrotateXyzAboutXrotateXyzAboutYrotateXyzAboutZeuler321OfQuat quatOfDcm quatOfDcmB2A euler321OfDcmquatOfEuler321 dcmOfQuat dcmOfEuler321 dcmOfQuatB2A rotVecByDcmrotVecByDcmB2A rotVecByQuatrotVecByQuatB2A rotVecByEulerrotVecByEulerB2A normalize'