Go Down

Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo (Read 140161 times) previous topic - next topic

sciorty

Mi ero promesso che prima o poi avrei fatto un quadricottero, così ieri trovando su ebay una base usata composta da frame, motori, eliche ed esc ad un prezzo che ho ritenuto conveniente, l'ho presa.
Ancora deve arrivare ma in ogni caso la mia idea è quella di montarci una MCU ed una IMU e di studiarmelo con calma quelle orette libere che ho al giorno, dato che sono all'uni. Magari partire da un semplice comando che aziona tutte e 4 le eliche per arrivare pian piano ad un algoritmo ottimizzato per la stabilizzazione del mezzo :)

So che sarà un'ardua impresa ma è puramente a scopo didattico, non ho fretta di vedere il quadri stare fermo in aria nè tanto meno ne nutro particolare interesse al momento..

Detto ciò,
Per questa lunga fase di test, per evitare di comprare subito una tx/rx, avevo in mente di usare una coppia di xbee.
L'idea è questa, ed è simile alla logica che ho usato per il ROV:

Lato TX:Collegare un joystick al pc sul quale gira un programma in python che elabora un pacchettino di dati relativo al valore dei canali (stick) e li spedisce sull'xbee trasmettente. es:a0b127c255d0 più eventuali valori aggiuntivi.

Lato RX:L'xbee riceve la posizione degli stick, l'arduino determina quindi l'angolo che l'utente desidera e lo confronta con quello ottenuto tramite i calcoli fatti sulla IMU. A questo punto con un PID agisco sui singoli motori.

Detto così sembra facile ma sappiamo tutti che non lo è, ma la logica è giusta? Sul quadri basta solo-ad esempio-una freeIMU?
In fin dei conti, ammettendo un ritardo esagerato degli xbee, il quadri dovrebbe rimanere stabile di suo no?



lesto

il concetto è quello :)

Quote
ammettendo un ritardo esagerato degli xbee, il quadri dovrebbe rimanere stabile di suo no?

non proprio.. ammettendo un ritaro esagerato, durante quel ritarto il quad continua a mantenere l'angolo richiesto. Il che è un bel problema :)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

sciorty

Si in effetti lo è, però quello che intendevo dire è che comunque mantiene una qualche posizione, senza cadere a terra come farebbe se mandassi ai motori dei dati "crudi"  XD

Farò dei test per valutare il ritardo anche se per il momento dovrei potermi accontentare giusto per farlo alzare no?

P.S: Insieme al telaio c'è anche uno stabilizzatore tarot zyx, non so che versione ma non me ne faccio niente vero? Cioè non so esattamente a cosa serva ma mi è sembrato di capire che sia un sistema tutto integrato e pensavo di venderlo perchè il mio scopo è un altro..  Comunque 67 euro per telaio carbonio 450, motori  Turnigy DST-1200, esc 18-20A (i motori sono 16 :/ ), eliche 8x4.5 e questo stabilizzatore. Ho fatto un buon acquisto considerando che voglio solo smanettare con queste robe?

astrobeed


edit: ma il kallman è un filro, non una sensor fusion, no?


Il Kalman fa anche sensor fusion, dai uno sguardo qui.

lesto


Comunque 67 euro per telaio carbonio 450, motori  Turnigy DST-1200, esc 18-20A (i motori sono 16 :/ ), eliche 8x4.5 e questo stabilizzatore. Ho fatto un buon acquisto considerando che voglio solo smanettare con queste robe?


te l'hanno regalato, solo di motori e esc costa di più

per il kallman da uqanto ho capito esistyono millemila implementazioni, un pò come per il PID, in base a dove lo devi utilizzare ti puoi ricavare la funzione più o meno ideale, giusto?

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

ecco, haiparlato spesso di fuzzy, un implementazione di esempio?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

#1356
Dec 06, 2013, 10:23 am Last Edit: Dec 06, 2013, 10:25 am by RiccardoMerli94 Reason: 1
Ciao ragazzi io avrei delle domande, siccome ho letto quasi tutti i post dal 2011 ad oggi e non ho trovato ancora una risposta esauriente alle mie domande vi chiedo un po' di pazienza per spiegarmi alcune cose.
Allora io sarei indirizzato verso l'acquisto della FreeIMU 0.4, leggendo sulla pagina ufficiale ho visto che è possibile controllarla attraverso arduino uno R3, attraverso delle librerie apposite.La mie richieste sono :
1 esistono dei programmi e degli sketch che mi permettono di pilotare un quadcopter attraverso quest'hardware ?
2 Ho cercato di documentarmi un po' sull'GUI rilascata dal blog di Versano ma sinceramente non ho capito bene il funzionamento visto il mio scarso inglese e neanche a cosa serve, cioè potete darmi delle indicazioni ?
3 Esiste un modo "semplice" per riuscire a far volare un quadcopter molto basilare? (ad esempio senza il matenimento di quota automatico e senza tutti i vari aggiustamenti che esegue la scheda per evitare piccoli movimente indesiderati)
Vi ringrazio per l'attenzione e spero che questa mia richiesta d'aiuto porti dei frutti.

PS: vanno bene anche link a delle guide (vi prego se possibile non in inglese :D)
e preferirei che se mi dovete risponde con un " usa il search" non mi rispondete perchè è circa un mese che sto cercando constantemente di capire bene il funzionamento di tutto ciò spiegato sopra ma con risultati alquanto scadenti.

Riccardo

lesto

1. sì, la freeimu è supportata da molti firmware, multiwii, aeroquad ed altri

2. non so, ma in generale userai quella del firmware che userai, quindi non preoccuparti troppo a meno che non vuoi tenstare la freeimu da sola

3. gli aggiustamenti del pid servono per forza, perchè sono unici per quadricotterno, anzi proprio per componente e montaggio. (se cambi le eliche, facile che devi rifare il pid)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Ciao innanzi tutto ti ringrazio per avermi risposto.
Io in questo campo sono molto inesperto e sto cercando di apprendere il più possibile.
Quindi ricapitolando io ho il quadcopter pronto con ricevente a 4 ch,motori,ESC,arduino uno,FreeIMU,eliche,batterie e frame.
Per farlo alzare in volo serve uno sketch nell'arduino che pilota i motori in base ai "comandi" ricevuti dalla ricevente e i valori rilevati dai sensori(accellerometro, barometro, magnetometro, gyro) fino a qua credo di andare bene giusto?
Poi mi sembra di aver capito che i sonsori vanno tarati (inizzializzati non so qual'è la sintassi corretta :D) tramite la GUI rilasciata ?
Le mie conoscenze si fermano qui, sono messo male vero?
Vi prego di indirizzarmi verso la strada "più semplice" ammettendo che ci sia :D

astrobeed


1 esistono dei programmi e degli sketch che mi permettono di pilotare un quadcopter attraverso quest'hardware ?


Ne esistono diversi, quello più "semplice", che ti consente risultati immediati è MultiWii, supporta molti modelli di IMU, tra cui la freeimu, e svariate configurazione del quadri, è dotato di una semplice GUI per PC che ti consente di verificare il funzionamento del tutto e impostare vari parametri, c'è anche una APP per Android che consente di modificare i parametri sul campo senza portarsi appresso un notebook.

Quote

2 Ho cercato di documentarmi un po' sull'GUI rilascata dal blog di Versano ma sinceramente non ho capito bene il funzionamento visto il mio scarso inglese e neanche a cosa serve, cioè potete darmi delle indicazioni ?


Piccola premessa, purtroppo Fabio ci ha lasciato per sempre (r.i.p.) quasi un anno fa, il suo progetto è portato avanti da altre persone, idem la produzione delle freeimu, questo vuol dire che non c'è nessuna garanzia del supporto e della disponibilità del hardware.
Il software da lui realizzato è una gestione, ad uso generico, della sua freeimu, non lo puoi utilizzare direttamente per far volare un quadri, almeno non senza "cucirgli" attorno tutto la parte mancante, ovvero qualche centinaio di linee di codice.

Quote

3 Esiste un modo "semplice" per riuscire a far volare un quadcopter molto basilare? (ad esempio senza il matenimento di quota automatico e senza tutti i vari aggiustamenti che esegue la scheda per evitare piccoli movimente indesiderati)
Vi ringrazio per l'attenzione e spero che questa mia richiesta d'aiuto porti dei frutti.


Un quadricottero è un mezzo instabile, solo un pilota molto, ma molto, esperto e bravo può riuscire a tenerlo senza ausilio dell'elettronica, comunque con il rischio di fare il botto in un attimo.
Senza ausilio della IMU e tutto il software che la gestisce e gestisce il quadri non puoi farli volare, scordati le cose semplificate perché l'unico risultato che puoi ottenere è perdere tempo e denaro per i botti che immancabilmente fai.

Grazie mille.
Saresti in grado di linkarmi l'harware da te elencato sopra magari combinazioni gia testate e funzionanti? Te ne sarei veramente grato.

astrobeed


Saresti in grado di linkarmi l'harware da te elencato sopra magari combinazioni gia testate e funzionanti? Te ne sarei veramente grato.


Premesso che realizzare un buon quadri non è una cosa economica, quant'è il tuo budget di spesa ?

Io pensavo di spendere al massimo 250/300 euro più o meno. Se è possibile anche meno. :D

astrobeed


Io pensavo di spendere al massimo 250/300 euro più o meno. Se è possibile anche meno. :D


Va bene per realizzare un buon quadri, come frame + motori + esc ti conviene prendere questo kit di Dji, è veramente ottimo col vantaggio che trovi senza problemi tutti i ricambi in Italia.
Come radio il minimo consigliato è una Spektrum 5, ottima qualità, costo contenuto, omologata per l'Italia e UE.
Poi ti serve un Arduino mini e la IMU, però potresti anche prendere una di quelle board specifiche per multirotori con sopra il MEGA2560 e già dotate di IMU, ce ne sono diverse in giro con costi compresi tra 40 e 70 Euro, hai il grosso vantaggio di avere tutti i connettori già predisposti per collegare la ricevente e gli ESC.
Batteria questa, o una della stessa serie con capacità similare.

#1364
Dec 06, 2013, 11:47 am Last Edit: Dec 06, 2013, 11:56 am by RiccardoMerli94 Reason: 1
senti e che mi dici di questo ?
http://www.hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=24723
mi potrebbe essere utile?
Si ho visto quelle board però poi non saprei come programmarle visto che so soltanto programmare arduino.

Go Up