[Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo

il filtro MADGWICK, o DCM, è basato su matrici e quaternioni di rotazione.
Le matrici di rotazione sono abbastanza semplici, per i quaternioni ci sono di mezzo i numeri complessi perchè in realtà la rotazione viene fatta in 4 dimensioni invece che tre per evitare il gimbal lock, quindi sono un pò più complicate.
Però, visto che queste "formule" sono usate per la grafica 3d, trovi in rete tantissime guide, tutorial etc...
Per esempio, questo codice GitHub - Goffredo/Quad3D: Lab to test various stabilization controllers for a flying quadricopter. Implemented in JME3. l'ho fatto con un mio amico, è una simulazione 3d di un quad con tanto di pid di stabilità e altezza funzionante. Manca ancora il calcolo dello YAW, perchè il motore fisico non simula le eliche, ma solo le forze. Forse la cosa sarà implementta, forse no :wink:

bit95:
ho visto un po le formule e mi sono sentito male XD,forse in un futuro posso imparare tutto, sono ancora giovane.

La parte matematica per la gestione della IMU, e anche quella per il controllo, è molto complessa, è indispensabile una preparazione universitaria specifica per poterla affrontare da zero, anche partendo da un qualcosa di già fatto sono lo stesso necessarie elevate competenze per poterci mettere mano.
Un consiglio, lascia perdere i sensori della Wii, sia il giro che l'accelerometro, non sono un gran che e danno svariati problemi di connessione, Lesto ne sa qualcosa :slight_smile: , con gli stessi soldi per acquistarli ci compri una vera imu 9 d.o.f. con sensori di gran lunga migliori, p.e. questa di Drotek.
Oppure aspetti un paio di settimane e acquisti la STM32F3 Discovery di ST, meno di 15 Euro, di cui parlavamo qualche decina di post dietro, hai una board con un processore ARM Cortex M3 completa di accelerometro, giroscopio magnetometro con buone prestazioni, ovviamente non ci puoi mettere sopra MultiWii, però c'è l'ottimo Multipilot 32 del quale faccio sicuramente il porting non appena la scheda è disponibile, ne ho tre in preordine.

confermo gli sbattimenti con i sensori wii, usano un sistema di comunicazione non standard che è stato hackerato, ma sempre di un hack si tratta. Senza contare che ormaii il motion plus non lo vedo in giro da un pò.

Usa una IMU vera, molto meglio la STM32F3 che anche io prevedo di comprare appena esce, magari è un pò grndina per un picolo quad, ma io devo compensare per altro :grin:

lesto:
la STM32F3 che anche io prevedo di comprare appena esce

Io ne ho tre in preordine da Digikey, dovrebbero spedirmele il 30/10, se la vuoi faccio ancora in tempo ad aggiungerne una, da loro costa 11.4 Euro (ivata).

Scusate ho cancellato il post vecchio per vedere se riesco a spiegarmi meglio. :frowning: vorrei realizzare un multicottero usando una imu con gyro acc ecct da collegare ad arduino. Vorrei sapere come riuscirò, una volta fatto questo, a gestire la stabilizzazione del quadricottero. Voglio dire: ci sono librerie che aiutano in questa impresa? E' complesso? Non voglio utilizzare una board già preconfigurata in quanto vorrei apportare delle modifiche (come la gestione delle eccezioni e cose di questo tipo) quindi vorrei che sia abbastanza personalizzabile. Cosa ne dite? Sto facendo la scelta giusta? Vi ringrazio per le eventuali risposte.

esistono vari progetti di codice già protnto per arduino, comela multiwii, la ardupilot, la multipilot, etc...

sono tutte open-source, quindi puoi modificare a tuo piacimento (certo non saperare sia facile)

lesto:
esistono vari progetti di codice già protnto per arduino, comela multiwii, la ardupilot, la multipilot, etc...

sono tutte open-source, quindi puoi modificare a tuo piacimento (certo non saperare sia facile)

Ho capito, e se invece montassi insieme a per esempio ardupilot, una scheda con arduino uno? Sarebbe piu semplice? Io vorrei per esempio quando sta per finire la batteria avviare una procedura che fa atterrare il quadricottero... Insomma vorrei personalizzarlo.. Che mi consigliate?

Hal90001:
Io vorrei per esempio quando sta per finire la batteria avviare una procedura che fa atterrare il quadricottero...

Scordatelo con i vari software amatoriali per quadri basati su Arduino, nessuno è in grado di farlo volare in modo autonomo, quasi tutti prevedono il controllo livello di carica della batteria e lo segnalano con vari modi, si va dai segnali luminosi a quelli acustici per finire con la telemetria sul display della radio.

astrobeed:

Hal90001:
Io vorrei per esempio quando sta per finire la batteria avviare una procedura che fa atterrare il quadricottero...

Scordatelo con i vari software amatoriali per quadri basati su Arduino, nessuno è in grado di farlo volare in modo autonomo, quasi tutti prevedono il controllo livello di carica della batteria e lo segnalano con vari modi, si va dai segnali luminosi a quelli acustici per finire con la telemetria sul display della radio.

E questi software non sono modificabili come per esempio si fa con un arduino normale? Scusate ma mi sfugge qualcosa :frowning:

Hal90001:
E questi software non sono modificabili come per esempio si fa con un arduino normale? Scusate ma mi sfugge qualcosa :frowning:

Certo che puoi modificarli, però Arduino non dispone della potenza di calcolo per gestire il volo autonomo, cosa di cui abbiamo abbondantemente discusso in passato, chi di noi è interessato a prestazioni che vanno oltre il volo radiocomandato è già migrato verso processori molto più performanti di un AVR 8 bit.
C'è stato un attimo di blocco in attesa di Arduino DUE, annunciato l'anno scorso in questo periodo e che doveva essere disponibile prima di Natale 2012, poi non è mai arrivato, forse arriva adesso a fine mese, e nel frattempo si è migrato verso altre piattaforme hardware che con Arduino non hanno nulla a che vedere e che sono nettamente superiori alla DUE.

Ok ho un po' di confusione in testa. Puoi allora dirmi cosa mi converrebbe prendere considerando che e' il mio primo quadricottero anche se ho un po' di esperienza in programmazione? Vorrei pero un hardware che consentisse di aggiungere nuovi sensori e permettesse di smanettarci un po' sopra ma anche abbastanza economico. Spero di non chiedere troppo.

Hal90001:
Vorrei pero un hardware che consentisse di aggiungere nuovi sensori e permettesse di smanettarci un po' sopra ma anche abbastanza economico. Spero di non chiedere troppo.

Dipende da quello che vuoi fare e dalla tua preparazione di base matematica e fisica, oltre che di programmazione.
Se il tuo scopo è un quadri radiocomandato con qualche funzionalità aggiuntiva che non richiede il volo autonomo puoi tranquillamente stare su Arduino e utilizzare come base uno dei vari software già esistenti, sicuramente consigliato MultiWii.
Lascia perdere i sensori della Wii perché oltre ad essere diventati quasi introvabili, e non sono un gran che, alla fine spendi lo stesso di una vera imu a 6-9 d.o.f. che è di gran lunga migliore come tipologia di sensori, più piccola come dimensioni e con molti meno problemi di collegamento.

visto che ti sei buttato in un hoby non prorpio low-cost (preperati a spenderci 300€ per avere un sistema decente) tanto vale che per ora inizi ad usare un software con arduino, che credimi torna sempre utle in mille modi differenti..
Iniziare a prendere la mano con il mezzo, vedere che funziona è già un buon punto di partenza :slight_smile:

Poi io e astro stiamo esplorando una piccola boarda da una decina di euri che contiene già parte dei sensori necessari, ma oer cui non esiste ancora nesun software. Quindi mentre ti prepari il tuo quad al volo e inizi ad inaugurarlo, inizieranno (si spera) ad essere presenti dei software per la nuova scheda, e il passaggio sarà anche molto economico.

Poi con il tuo arduino, data la sua facilità di programmazione rispetto al nuovo sistema, potrai iniziare a buttare giù il codice per sensori di ostacoli, altezza, sonar, radar e ciò che più ti aggrada, e quando avrai un sistema funzionante potrai più facilmente unificare il codice con quello della board più avanzata.

ah proposito, molti SW per quad occupano quasi tutto lo spazio di memoria dell'arduino, quindi anche se sono modificabili non c'è molto spazio per giocare..

Ma poi dovrei scrivere tutta la gestione di questi sensori a mano? Mi puace programmare ma ho letto che si sfocia anche nella matematica e non avrei molto tempo per arrovellarmi sulle formule e in problemi che sono gia stati risolti. Mi sa che do retta a astrobeed e lascio perdere arduino in quanto vorrei poi fare FPV e se devo cambiare tutto tanto vale iniziare subito con altro hardware. Cosa mi consigliate quindi al posto di arduino?

che io sappia non esiste nessun sistema già fatto al di fuori del parrot-drone.

quindi o "perderdi tempo" con la matematica, o apsetti qualche anno che qualcun'altro lo faccia al tuo posto :grin:

lesto:
visto che ti sei buttato in un hoby non prorpio low-cost (preperati a spenderci 300€ per avere un sistema decente) tanto vale che per ora inizi ad usare un software con arduino, che credimi torna sempre utle in mille modi differenti..
Iniziare a prendere la mano con il mezzo, vedere che funziona è già un buon punto di partenza :slight_smile:

Poi io e astro stiamo esplorando una piccola boarda da una decina di euri che contiene già parte dei sensori necessari, ma oer cui non esiste ancora nesun software. Quindi mentre ti prepari il tuo quad al volo e inizi ad inaugurarlo, inizieranno (si spera) ad essere presenti dei software per la nuova scheda, e il passaggio sarà anche molto economico.

Poi con il tuo arduino, data la sua facilità di programmazione rispetto al nuovo sistema, potrai iniziare a buttare giù il codice per sensori di ostacoli, altezza, sonar, radar e ciò che più ti aggrada, e quando avrai un sistema funzionante potrai più facilmente unificare il codice con quello della board più avanzata.

ah proposito, molti SW per quad occupano quasi tutto lo spazio di memoria dell'arduino, quindi anche se sono modificabili non c'è molto spazio per giocare..

mmm intendete la discovery?ci stavo facendo nju pensierino mentre facevo al lista della spesa purtroppo ora non ho tempo di costruire un quad ho altri progetti in cantiere però mi stavo documentando epr il futuro :slight_smile:

lesto:
che io sappia non esiste nessun sistema già fatto al di fuori del parrot-drone.

quindi o "perderdi tempo" con la matematica, o apsetti qualche anno che qualcun'altro lo faccia al tuo posto :grin:

Va bene allora "perderò tempo io". Che piattaforma mi consigli?

Hal90001:
Mi sa che do retta a astrobeed e lascio perdere arduino in quanto vorrei poi fare FPV e se devo cambiare tutto tanto vale iniziare subito con altro hardware. Cosa mi consigliate quindi al posto di arduino?

Se vuoi fare fpv Arduino va benissimo, aggiungi una imu 6 d.o.f., giroscopio + accelerometro, e sei a posto.
Arduino non va bene per il volo totalmente autonomo e per la gestione di un eventuale gps, non ha la necessaria risoluzione nei calcoli che devono essere con float a 64 bit.

astrobeed:

Hal90001:
Mi sa che do retta a astrobeed e lascio perdere arduino in quanto vorrei poi fare FPV e se devo cambiare tutto tanto vale iniziare subito con altro hardware. Cosa mi consigliate quindi al posto di arduino?

Se vuoi fare fpv Arduino va benissimo, aggiungi una imu 6 d.o.f., giroscopio + accelerometro, e sei a posto.
Arduino non va bene per il volo totalmente autonomo e per la gestione di un eventuale gps, non ha la necessaria risoluzione nei calcoli che devono essere con float a 64 bit.

Ecco allora e' quello che cerco. Tuttavia per configurare i vari giroscopi e tutti gli altri sensori esistono librerie che facilitano questo compito? Con altre schede diverse da arduino questi calcoli sono già implementati? E' questo che voglio capire.

tutti i software arduino devi solo scegliere i sensori che stai usando e calibrare il tutto settando 3 valori (detti PID), andando un pò a caso (cerca qualche guida al riguardo, ce ne sono un sacco su google)

Se davi un'occhiata alle pagine dei progetti che ti sono stati suggeriti avresti già chioarito questo dubbio! :grin: