I did’t find anyone on the internet who uses the brickpi for a segway type robot. So I decided to build one. More fun to do something that hasn’t been done already…
First I tried to get an idea of the dIMU together with the brickpi - see my post in the dIMU Forum. In short, brickpi with dIMU is unusable in C and I assume it is unusable in python, too. The timing deviations are not acceptable for any PID system. And everything is far too slow!
Then I tried the dIMU with a NXT and RobotC. It was a weekend long journey, the Dexter Industries git repository stuff does not compile with a RobotC 4.x compiler, no common.h found in git… at the end I found a nice working system at the website of Soldaat.
The dIMU on NXT works steady as a rock, no jitter at all, and it takes 9ms to poll all 6 axis! This is faster then anything I was able to get with brickpi, C and/or phython. My fastest time in C was around 12ms…
So my impression is that brickpi is not able to do steady, fast and reliable polling. No idea if this is due to hardware design glitches or a badly programmed API. And I have no idea how brickpi and the I2C interface work together. But I would assume that a compiled C program must be able to read all axis in under 10ms.
Are there any plans on Dexter side to invest some time in a nice c API? Or may be even a linux hardware driver for Rasbian?