clariusdev / motion

IMU Technical Information and Examples
https://www.clarius.com
BSD 3-Clause "New" or "Revised" License
5 stars 1 forks source link

Innacurate IMU captor #2

Closed eclarius closed 2 years ago

eclarius commented 2 years ago

Hello,

We are testing the IMU sensor of the probe. After calibrating the probe with the app, we did a rotation of exactly 90 degree and back twice on our workbench and recorded the rotational speed. We simply integrated this speed to obtain the orientation:

PastedGraphic-1

Unfortunately we obtain 75 degrees of rotation, which is a >15% error. Such error on an easy and short task makes the IMU data worthless on longer capture. To verify that this is not due to our code, we attached an iPhone on our workbench to capture simultaneously the same data (up to axis and directions):

PastedGraphic-3

The integrated rotation gives us indeed 90 degrees:

PastedGraphic-2

Thank you for your help

clariusk commented 2 years ago

are you using the raw data or the quaternion data to run your calculations?

eclarius commented 2 years ago

We are using the raw gyroscope data.

clariusk commented 2 years ago

ok great, the calibration will not have an effect then. once calibrated you can then use the quaternion data (if that helps with your positioning calculations) - you can see an example of how that data is used: https://github.com/clariusdev/motion/blob/master/pyimu/pyimu.py

eclarius commented 2 years ago

Great! That's much better :)

To understand better: the quaternions are computed from the gyroscope, accelerometer and magnetometer on the chip after calibration? Does that mean we should discard gyroscope and magnetometer data? Is the accelerometer calibrated and does it make sense to use it to find the (relative) position by double integration?

output

clariusk commented 2 years ago