Offset For Vertical usage

Hallo everyone. I need to use the sensor vertically. I've tested it horizontally and the moving one axis singularly the movement is in fact affecting only one angle. As soon as i put the sensor vertical, the movement in one axis is not stable and also affect other axis. Is there a way to set an offset to the sensor for working vertically. I implemented a manual offset on the angles but this does not help since the variation of the quaternion is clearly visible in 2 terms... See attached figure

Comments

  • I'm not aware of any configuration for the sensor fusion algorithm.  What sensor fusion mode are you using?
  • Actually NDoF, but i tried every mode.
  • Ok, to other having same issue, i've used quaternion multiplication in order to rotate reference frame before getting the euler angles. And it works perfectly. Thanks.
  • edited April 2017

    Hello ivancap,


    I opened two weeks ago a similar post as yours regarding issues with vertical usage and drift attitude between sensors after fast movements  : http://community.mbientlab.com/discussion/comment/4223#Comment_4223


    I understand that you find a way to change the reference frame thanks to a quaternion multiplication but could you be more specific if you have time.

    Did you finally : 

    - choose to forget "sensorFusion!.eulerAngle" mode for "sensorFusion!.quaternion" mode, 

    - in order then to re-calculate yourself all eulers angles from quaternion after an initial rotation of the frame reference ?


    Did you succeed to automatically detect the vertical frame reference and adjust the quaternion rotation automatically ?

     Many thanks for your time and your support

  • HI, yes, work on quaternion, then apply rotation, in my application i do not need to find out automatically the orientation.
    The applied quaternion is a rotation quaternion that rotate the versor x to z. 

  • I wanted to inquire regarding the potential solution of the rotation quaternion so that the sensor could be used in a vertical position.

    Is this just a matter of creating a new quaternion (new.w = old.w ; new.x = old.x; new.y= old.z ; new.z= -old.y) and then converting to Euler from there?

    Thank you.

This discussion has been closed.