I am using a robotics simulator named V-Rep. In V-Rep Euler angles $\alpha$, $\beta$ and $\gamma$ describe a rotation composed by three elemental rotations: $$Q=R_x(\alpha) R_y(\beta) R_z(\gamma)$$

where $R_x$, $R_y$ and $R_z$ represent elemental rotations about axes $x$, $y$ and $z$ respectively of the absolute reference frame. If the angular velocity of an object, whose orientation with respect to the reference frame is described by the Euler angles above, is $\omega=[\omega_x,\omega_y,\omega_z]$ with respect to the reference frame, then am I right to say that $\dot \alpha=\omega_x$, $\dot \beta=\omega_y$ and $\dot \gamma=\omega_z$ ?


2 Answers 2


No, Euler angles are a poor choice for representing the orientation. Apart from that not all orientations can be represented it complicates the calculations.

What you instead could do is to use quaternion representation of orientation or use a rotation matrix. That would make the maths more easy, the relation between angular velocity and orientation is $\omega q = {1\over 2}{d\over dt}\operatorname{vec}(q)$, where $\operatorname{vec}(q)$ is the vector part of the quaternion.

  • $\begingroup$ @LukeHutchison Thanks for pointing that out. I've checket into the relation and corrected it (so hopefully I got it right this time) $\endgroup$
    – skyking
    Commented Oct 8, 2020 at 16:57
  • $\begingroup$ At first squint that almost looks right; however, it probably is not correct, because quaternion differentiation does not follow the chain rule, since quaternion multiplication is not commutative. See "pure exponential derivative" here: neil.dantam.name/note/dantam-quaternion.pdf $\endgroup$ Commented Oct 8, 2020 at 20:28

If you have the individual Euler angles, produce three quaternions (using an axis-angle to quaternion conversion function) representing rotations of each Euler angle around each corresponding axis, and multiply the three quaternions together in the appropriate order so that they form a quaternion product that represents the same rotation as $Q$. Or if you have only the final rotation matrix, you can convert it into a quaternion using this method:


Then to calculate the angular velocities with respect to the local reference frame, you have to differentiate this quaternion over time. See equations (1) and (2) in the answer here:

Converting from quaternion to angular velocity then back to quaternion

Or this cheat sheet might help (see "Finite Difference" and then "Logarithm" for quaternions):



You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .