Det jag fastnat på tidigare har varit att jag vill bygga styrsystemet själv och jag har snöat in i väldigt komplicerade filter för att estimera pitch, roll och yaw som oftast resulterat i en orgie i flyttalsberäkningar och trigonometri som inte skulle vara möjligt att köra i en microkontroller.
För ett tag sedan läste jag om någon som hade förenklat problemet genom att dela upp det i ett filter för pitch och ett för roll vilket egentligen är så simpelt att jag inte förstår varför jag inte tänkte på det själv.

Sagt och gjort, jag klottrade ihop ett linjärt kalmanfilter med tre states, vinkel, vinkelhastighet och gyrobias. Ägnade någon timme på att utveckla och optimera alla matrisberäkningar. Det gick att optimera ganska mycket pga att flera matriser är diagonala. Jag gissade på lite schyssta värden på Q- & R-matriserna, kopplade upp en dspic med ett 3-axligt gyro och en 3-axlig accelerometer via I2C. Ett testprogram i C# som tar emot pitch och roll beräknat på två olika sätt via com-porten. Till vänster visas det som beräknas direkt på accelerationen och till höger visas det filtrerade värdet.
Måste erkänna att jag blev lite förvånad när det fungerade ganska bra direkt bortsett från lite trial and error för att hitta rätt tecken och axlar på sensorerna.http://www.youtube.com/watch?v=92R0YRvJAlY. Lägger jag ned lite tid på att finjustera Q- & R-matriserna så skulle det nog kunna bli ännu bättre. Jag ska nog till exempel straffa accelerometern lite hårdare för att minska förändringarna då jag skakar på kortet.
Själva algoritmen körs i 100 Hz med 32-bitars flyttal i en dsPIC33F @ 40MIPS. Nu kör jag algoritmen i 100Hz och då står processorn och väntar ca 5/6 av tiden så det är nog inte några problem att få till resten av funktionerna också.
Någon som vet hur ofta det går att skicka uppdateringar till borstlösa ESC:er? Till analoga servon vet jag att man inte ska skicka pulser oftare än var 20:e millisekund. Men en digital ESC borde teoretiskt sett kunna uppdateras betydligt oftare. Hade varit snyggt om man kunde köra reglersnurran lite fortare än så. 100Hz-200Hz borde vara lagom. Vinkelregleringen blir förmodligen en PID till att börja med.
I hårdvaruväg har jag tänkt att använda samma typ av motor och propeller som jag har till mitt depronplan. Det borde ge en lyftkraft på ca 3-4 Kg. Det borde vara tillräckligt för att ta med ett ordentligt batteri och kanske en liten kamera så småningom. Till att börja med ska jag nog bygga den i trä för att sedan göra den i aluminium när jag är nöjd med storlek och flygprestanda.