I am trying to decide on a platform, but I would like to consider the math model being used, an the whether there is a need for floating point on the microcontroller.
There are several models available for inertial measurements - some handling drop out of the GPS signal better than others, etc.. I'm trying to decide on a platform to control a multi rotor craft - quad or something similar to Jack's latest iteration using five propellers - but I'd like to have the option (if possible) to plop it into a fixed wing craft too. Paparazzi is the only system I've seen applied to multiple craft types.
From a post by Jack Crossfire: "This is called an 'extended Kalman filter'. For best results, U need to integrate the gyros in quaternion form & blend in euler form. The ATMega autopilots don't do this because it's floating point intensive."
Other versions of the Kalman remove the need to explicitly calculate the Jacobians an thus seem to require less cycles to compute, an still handle non linearities.
Are most of the arduino an other lower power chips not using floating point dependant models (?). Perhaps there is a listing some where that I missed indicating the models used by different UAV platforms an the limits (if any) imposed by the microcontroller for floating point calculations (?).
I know there are floating point libraries available for the Propeller, an the PIC's - but I wasn't sure if they were fast enough for inertial navigation models. Do any microcontrollers handle floating point on the chip?
I saw this comment on another diydrones post
: "Regarding the ARM CPUs (and the PXA used for the gumstix), Adam used these modules for his Vicacopter, but the lack of FPU yield very poor performance for the algorithms he wrote.
The beagleboard is nice but it is also suffering from the same problem"
However, my understanding of the Beagleboard is that the ARM8 gives it certain advantages over the 2148. Specifically "Cortex has a few unfair advantages over the LPC2148: raw clock speed, and VFP. VFP technology is a coprocessor extension to the ARM architecture. It provides low-cost single-precision and double-precision floating-point computation fully compliant with the ANSI/IEEE Std 754-1985 Standard for Binary Floating-Point Arithmetic."
"The Cortex-A8 can calculate the square root of a single-precision floating-point number in 9 cycles. At 600 MHz, this is 15 ns. If you need double precision or full IEEE compliance (exceptions, fancy rounding, etc.), it can take up to 60 cycles (100 ns at 600 MHz). "
How do the numbers on the ARM8 stack up against other microcontrollers that people have used?
Thanks for any comments!