Börja med att bygga en självbalanserande robot i liten skala, det du lär dig av att göra så kan du sedan "skala upp". Jag började själv med en för flera år sedan men fastnade just på hur signalerna från gyro och accelerometer skulle "klistras" ihop för att alltid ge rätt värde (vart är ner?). Accelerometern mäter acceleration vilket funkar ypperligt att tala om vart "ner" är, problemet är att när plattformen accelererar så plockar accelerometern upp denna acceleration också (natrultigvis) och det som "ser ut" som ner är inte längre ner.
Gyro då, teoretiskt sett vore det bara att starta i lodrät position och sedan kontinuerligt integrera signalen från gyrot så vet man platformens lutning. Problemet är att alla gyron driver, mer eller mindre, vilket gör att efter en stund (sekunder eller minuter) så är inte heller här det som "ser ut" att vara ner - ner.
Man måste alltså använda signalerna från både gyro och accelerometer och den typ av filter som verkar i särklass vanligast kallas för Kalman filter - det var här jag fastnade för teorin bakom detta filter övertiger visa mina mattematikkunskaper

Jag vet docj att Elektor Wheelie, som den kallas, INTE använder ett Kalman filter och den funkar bevisligen så det går att göra utan. Sen vilket språk man använt för att kompilera och assemblera koden som körs spelar väl ingen roll, det vet ju inte uC'ern nåntig om i alla fall.
Sen för ett tag sedan beställde jag lite saker från Polulo och av en händlese fick jag syn på CHR-6dm från
CH Robotics och beställde en sådan. Den har sagda gyro och accelerometer, inte bara för en axel utan för tre plus magnetsensorer och en 32bitare uC som kör just Kalman filtrering av mätvärdena. Tyvärr har jag har inte kommit så långt att jag monterat den på min lilla
robot ännu.
Ett annat möjligt sätt att göra det hela på kan vara att med hjälp av återföring från hjulen räkna ut hur mycket platformen accelererar och sedan "dra bort" motsvarande värde från den signal man får från enbart accelerometern. Detta var något jag tänkt labba med men mina hjulenkoders har bara 256 pulser per varv så upplösningen blir nog för dålig.
/Henrik.