I have a headset that provides 3 axis gyroscope readings. I wish to find out movement of head for e.g. if a person is nodding left to right etc. But the headset give me values in angular velocity for each axis. How can i process these values to get head movement in real time?


1 Answer 1


You would have to integrate the rotational kinematics equations forward in time with a known initial orientation, such as R(0) = eye(3,3) -- identity matrix. You will have drift issues if you go out too far in time of course. But, in any case, now you have an 'estimate' of R(t). Or get a 3-axis gyro from microstrain.com that gives you R(t).

Is there any way i can find by what angle and in which axis the head is rotated?

Yes, that is the standard Rot-k-theta conversion, for the 3x1 vector k and angle theta. Given R, k and theta are trivially found. See page 51 "Equivalent angle-axis" section of the below book, e.g.: Craig, Introduction to Robotics, 2nd Ed., ISBN 0-201-09528-9. You can get it for free from your interlibrary loan... Rot(k,th) is easily derived, btw, and from it you can derive the standard quaternion equations, although you don't need those here per se.

  • $\begingroup$ thanks for reply. Do u know any python implementation for the same? $\endgroup$ Commented Feb 16, 2019 at 5:49
  • $\begingroup$ I am not familiar with python. I had it all coded in matlab previously. But, it would take me a while to find it per se. $\endgroup$
    – robotno
    Commented Feb 16, 2019 at 5:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.