We made a small demo of IMU with NAVIO to show real-time performance of the platform. The algorithm is Mahony quaternion based. The sensor is MPU9150 connected over I2C.
The IMU runs well over thousand of Hertz and takes around 20 percent of CPU. When running on typical for autopilots 200Hz update rate the load falls down to 4-5%, and when pumped up to 3000Hz takes almost 50%.
Raspberry Pi is able to perform other tasks while running an IMU, in the video we demonstrate that such heavy tasks as compilation do not affect the rate of the real-time IMU. Also, there’s a PWM controller working simultaneously on the same bus, which can be seen by the LED changing colors.
In the final version of Navio we are using MPU9250 that is connected over SPI and can be polled at the full gyro update rate.