It's been a while since I've posted an update on the progress of the AutoQuad flight controller. The event that we've all been waiting for has arrived with ST Micro's announcement and subsequent release of their STM32F4 product line. As expected, the micro-controller is pin for pin compatible with their STM32F2 series which the AQ v6.1 hardware was designed for. This meant it was a drop-in replacement. The most important new feature of the chip is the implementation of ARM's Cortex M4 core with a hardware FPU! This means that we can now do floating point operations in a single clock cycle. All forms of add / subtract / multiply / integer conversion, etc are single clock cycle instructions with the divide and square root instructions taking 14 cycles. This is a significant step forward for math hungry applications like AutoQuad.
As soon as I could get my hands on one (around November I think) I had it on a board working to port my ground Unscented Kalman Filter code to fit into the 168MHz MCU. With some optimizations, it ended up fitting with processing room to spare. The current version leaves ~40% idle time during flight. The filter is interesting because it brings all of the important estimated states and observations under a single mathematical model. This means that each observation can influence any number of state estimates if there is determined to be co-variance between them. The theoretical performance improvements over my old fixed gain techniques is high. 17 states and 16 process noise terms are estimated at 200Hz observed by 13 sensor measurements.
A benefit to using such a filter onboard is that it can adapt to changing variance of sensors and measurements on the fly. This removes the need to do ground based flight calibration simulations which was a drawback to the original fixed gain methods. Once you have a calibrated IMU, it can provide accurate state estimates "out of the box." While this is nice, the biggest improvement is the accuracy of the state estimates it can produce. States like 3D accelerometer bias and 3D rate gyro bias are critical to accurate attitude estimates which is the only way that you can propagate acceleration measurements through velocity and position estimates with any kind of accuracy.
Other than the upgrade of the MCU, the hardware is mostly unchanged from the original v6.1 layout. However, there have been a lot of new features added to the firmware since last year. What I call DVH (dynamic velocity hold) allows the pilot to control the craft's velocity in 3 dimensions while AQ handles everything else. Let go of the sticks and the machine holds position. AQ now speaks mavlink so it can be configured and controlled from any ground station that supports the protocol. A comprehensive parameter set has been established that allows configuration of almost all aspects of operation. Gimbal support and expanded mission capabilities have been added. 1-wire support for pre and post flight communications with ESC32. Too many more to list here.
With the help of Max Levine I created this video to demonstrate the autonomous mission capabilities of the current firmware (version 6.6):
If you use the uBlox LEA-6T as the onboard GPS module, AQ can record raw satellite observations to its uSD card along with the normal flight log. With this data and data from a local base station, you can use post RTK to get extremely accurate position and velocity estimates (~ centimeter accuracy.) In fact, I use the RTK velocity estimates as an absolute data point in scoring the filter's performance in the ground simulations used to tune the variance and noise parameters used by the UKF. Future work might include onboard RTK calculations using a linux based application processor mounted on a daughter board. This would bring the system's performance to an entirely new level.
Here is what the actual flight path looked like of the flight shown in the above video using post processed RTK:
I need to thank the small group of people who have worked very hard to test, write utility software and interfaces, create documentation and generally improve the AQ platform. It is still very far from a finished, polished flight controller, but it has come a long way because of their help.
As with ESC32, I have decided to release the AutoQuad FC firmware under an open source license. It can be found at:
http://code.google.com/p/autoquad/
I would also like to invite anyone interested to participate in a public beta test of the system. Sensor calibration, setup and configuration is still a lengthy and sometimes tedious process so I would discourage anyone who thinks they can bolt the board to a frame and start flying as that is not at all what you should expect. I have authorized manufacture and sale by ViaCopter and Flyduino who are taking orders in a few days.
Comments
Seems that Bill has set a new reference in the quad flight control development.
Some weeks ago I read in the Mikrokopter forum that Holger and Ingo don't want do switch to an other CPU,
so they will have not the capability to keep up with the new platforms.
Anyway, I think only the existence of the great AutoQuad plattform will surely animate other projects to push forward their development ;)
Hi Roberto, nice to see you again. :-)
Yes, the F4 will be a game changer for sure. Atm only the AutoQuad and your Multipilot are available for purchase (though I couldn't find it in your shop - but read on your site you'll be selling the whole package for ~400Euros). So both set a mark at the price range and alternative offers will have to deal with it.
I'm pretty sure we'll see more ARM based controllers, both at the low and the high end.
Maybe some will also follow the path of the AQ6 making use of the FPU.
Bill, just wanted to say thanks for sharing your designs. I just became one of the beta testers this morning when the boards were released. :^)
Hi Max,
i think that the quality of Bill work is great , and great is also his donation to opensource community. So thank you Bill Great Work .
Now the important is check how is affordable the code. Only when a lot of people fly with AutoQuad we understand if this is the new reference is opensource world.
About the hardware is more simple Bill choose the better micro available on the Market for developing this kind of platform . STM32F4 Cheaper and Powerfull :) The same of Multipilot32 .
I fly for some month with Arducopter ported on MP32 and with arm inside the quality of flight in all new advanced function is very well we can do better but in 1 year of work the result of DEVTEAM is eccelent.
At the moment the STM32F4 is the micro most used in the new advanced quadcopter platform.
Aeroquad use STM32F4
Openpilot use STM32F1 and doing porting on STM32F4
AutoQuad use STM32F4
Arducopter32 rev 2.61 actually is fully supported by my work on STM32F4
So this is the new 32 bit platform for this kind of application all choose to use this micro. That's a great news i understod that 2 years ago when starting to support 32 bit for Arducopter.
So i hope that with all this platform that share same hardware we can learn how to improve our platform . I think that the next year will be the year where the performance of opensource quad will be better of closed platform :)
Best
Roberto
Its actually $420 for US :)
To put things in perspective here:
AutoQuad board + 6 ESC32 = $670.
Open source code, NO range/waypoints limits !!!
MikroKopter with 6 ESCs = $1500 ! (limited to 250m range)
for 500m range, add $1200. for 1750m range, add $2500.
So to match it to AutoQuad you'll need to spend $4100 !!!!!!!!!
DJI WooKong (no ESC) 50 waypoints $3650 !!!!!!!
both closed code.
open/closed hardware have no role here
AutoQuad looks almost free :))))))
Actually, for USA buyers who don't have to pay VAT, I believe the price is closer to $400
The AutoQuad boards appear to be available now for $500. Closed source hardware, open source software.
Congratulations Bill,very impressive.
Andi
I think Bill Premerlani has gone a long way down the path of automatic characterization of transfer functions, which then leads to auto-matic tuning of the controls. Did you see his paper and diy drones post in March ?
True, but I won't come from me. I am no expert in controllers. :P