Hey!
I bought a SparkFun 9DOF Sensor Stick some time ago and everything is working fine with an Aduino and the Razor code, that uses the DCM algorithm to calculate the pitch/roll/yaw. However, I find that the YPR calculations are not accurate when I move the sensor really fast in x, y or z axis. So my first questions is: Is it possible to have accurate pitch/roll/yaw calculations when moving the sensor fast?
My goal is to have a sensor connected to an Arduino that can send pitch/roll/yaw calculations with a reasonable accuracy in a high speed/acceleration scenario (i.e. mounted to a racing drone). Can anybody help me with:
- What IMU can I use? I was using the SparkFun 9DOF but it is not longer for sale. I wouldn't mind changing, as long as it has SPI or I2C to interface with an Arduino.
- What algorithm can I use? The DCM used in Razor seems to be good, but as I explained I'm not getting accurate measurements when having acceleration along x,y or z axis.
- What about Kalman filtering or complimentary filter? What are they limitations?
Thank you!
Replies
ok, now we come to the heavy part.
you might consider switching over to an arm derivate as mcu.
the madgewick sensor fusion is somewhat more optimised.
give google a try.
7ms is very very slow for fast movements.
run the sensor fusion with new data all 2ms.
that should help.