19 Oct 2002 hudson   » (Master)

I've spent last night and this morning hacking on my Kalman filter code to process inertial measurements from my board's gyros and accelerometers.

We had several successful autonomous flights running the filter on my Linux iPAQ. I optimized the C++ AHRS code to produce a lean, fast version that will run on an 8 bit microcontroller. Right now it can sample the sensors at 60 Hz and produces an attitude estimate every 20 Hz. That should be good enough for jerky autonomous flight.

I'm amazed at how much extra speed there was to wring out of the code. The iPAQ has a 206 Mhz StrongARM SA-1110, while the 2.2 board has an 8 Mhz ATmega163, yet the speed difference between the C++ code and the C code is only a factor of five. Wowza! I guess the very clean templated Matrix math code is easier to read and write, but sure does add some speed penalties.

There is an banner ad encouraging me to try the ISOPOD. 40 MIPS is five times faster than the 8 MIPS I have now; it might be worth a try...

Latest blog entries     Older blog entries

Share this page