Pages: 1 ... 80 81 [82] 83 84 ... 106   Go Down
Author Topic: [Multicotteri] Elettronica : IMU, MCU, Sensori ed algoritmi di controllo  (Read 99533 times)
0 Members and 3 Guests are viewing this topic.
Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

cavde devbe

ROTFL  smiley-grin

La STM32F3 Discovery dovrebbe essere disponibile a partire da metà Ottobre.
« Last Edit: September 17, 2012, 11:56:55 am by astrobeed » Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley-mr-green

comuque astro le spedizioni dai sisti che la propongono sono alte (20€), e io la vorrei al volo ( due, una da regalare smiley ) quindi se non c'è la certezza che RS la venda possiamo fare un acquisto di gruppo? magari si aggiunge pure cavde e qualcun'altro
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

comuque astro le spedizioni dai sisti che la propongono sono alte (20€), e io la vorrei al volo ( due, una da regalare smiley ) quindi se non c'è la certezza che RS la venda

Non appena sarà realmente disponibile di sicuro la trovi sia da RS, spedizione meno di 7 Euro, che da Watterott, quindi il problema non si pone minimamente.
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

fa ridere soprattutto perchè cavde deriva da "carde" e dalla mia r moscia smiley-grin
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao,
sto mettendo su un simulatore per algoritmi di stabilizzazione del quad. Ne avevo già fatto uno maho perso il codice  smiley-grin
al momento c'è l'ambiente grafico 3d, il motore fisico, e un quad stilizato.
Ogni update fisico viene chiamato un update della classe QuadLogic, che sarà dove il codice utente viene inserito. (input: angoli x, y, z, posizione x, y, z; output ppm 4 canali)

per ora la logica mantiene un'altezza fissa, è solo P + I, quindi in realtà "galleggia" come una nave sul mare mosso, e setto lo stesso valore PPM su tutti i canali, però carino da vedere come riesce a mantenere la posizone anche da inclinato, credo che si un bug che le forze non sono solidali col quad ma relative al mondo esterno.

in oltre col sinistro del mouse è possibile sparare una pallina per destabilizzare un pò il sistema..

Domani inizio a lavorarci su seriamente (oggi ho montato grafica e fisica, o meglio il framework JME3) e posto il codice su github.

Domanda: qualcuno ha delle curve motore "ppm/velocità", nel senso: quanto velocemente è in grado un motore di cambiare velocità (e di conseguenza spinta) in un dato istante (1/60 di secondo è la risoluzione attuale).
So che la cosa in realtà varia in base a molti fattori blablabla, ma a me basta una media per capire se posso far finta che i motori siano istantanei, o se devo limitare il cambio di impulso generato in base al PPM limitandolo in base al valore precedente.

Poi, volendo implementare anche l'effetto "rotazionario" sarebbe fico sapere quanto velocemente gira il vostro quad in base ai valori PPM... ma qui la cosa si complica. Quando (e se) il mio quad volerà potrò rilavare i dati in volo e quindi tunare il sistema apposta, ma per ora brancolo nel buio, e mi piacerebbe avere almeno una posto dove pre-testare virtualmente la stabilità dei vari algoritmi.
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi autorispondo:
i tempi di risposta (di soli ESC) da 0 a 100% sono di circa 130ms, con tempi "nel mezzo" assimilabili a frazioni (da 30 a 80% quindi è un aumento del 50%, e il 50% di 130 è 65ms)

notare che il vero rallentament è dato dai firmware degli esc che non aumentano di botto ma a piccoli step. ESC modificati per rispondere istantaneamente senza step dimezzano i tempi. I test sono stati fatti da kaptainkuk, il creatore dell'ononima board, quindi mi fido smiley

http://www.rcgroups.com/forums/showthread.php?t=1250488

invece per dei buoni test ESC + motori + elica: http://www.rcgroups.com/forums/showthread.php?t=1620724

Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

roma
Offline Offline
Newbie
*
Karma: 1
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti

sto costruendo un micro quadricottero, con  giroscopi e accelerometri della wii, e come firmware il multiwii.

però mi è venuto un piccolo dubbio.

tra gli accelerometri e i giroscopi che differenza c'è??

mi potreste spiegare gentilmente in modo scolastico come funzionano??

intendo a livello di fisica e di elettronica come lavorano.

grazie mille

ciao
Logged

Tortona
Offline Offline
God Member
*****
Karma: 2
Posts: 590
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

io ti so dire che il giroscopio ti da un valore in funzione del suo momento angolare, quindi se sta ruotando sui suoi 3 assi.
L'accelerometro invece ti da un valore in funzione della sua posizione rispetto alla direzione e al verso della forza di gravità, quindi sai se è inclinato di tot gradi rispetto sempre ai suoi 3 assi
Logged

Se gommo tiene,io vince gara! Se gommo non tiene,io come bomba dentro montagna

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

il giroscopio restituisce la VELOCITA' di rotazione angolare.
l'accelerometro restituisce le ACCELERAZIONI sugli assi, ma per motivazioni strutturali legge anche l'accelerazione gravitazionale.
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

roma
Offline Offline
Newbie
*
Karma: 1
Posts: 15
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok , la cosa mi è molto piu chiara adesso.

però ho ancora dei dubbi.

il giroscopio rileva la velocità angolare,ma qundi prima di entrare in funzione deve essere calibrato per il neutro???.

ad esempio io mi diverto con gli elicotteri rc, e per settare la coda bisogna impostare il gyro su avcs, ovvero che riconosce la posizione della coda e la tiene in quella posizione anche se manualmente la muovi.

l'accelerometro quindi si basa su l'accelerazione di gravità della terra??? non deve essere calibrato??

se usassi l'accelerometro nella spazio rileverebbe solamente le accelerazioni che vengono fatte sul suo corpo??.

perchè usare gyro e acceleromtro insieme porta dei benefici??

scusate le tante domande.

ciao

Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma per motivazioni strutturali legge anche l'accelerazione gravitazionale.

Non è per motivazioni strutturali, è per motivi fisici visto che la gravità è una forza applicata a una massa pertanto esprime una accelerazione (A=F/M), come tale viene misurata da un accelerometro in funzione dell'angolo tra asse e centro della terra, se l'asse è perfettamente ortogonale la gravità non influisce in nessun modo.
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

il giroscopio rileva la velocità angolare,ma qundi prima di entrare in funzione deve essere calibrato per il neutro???.

Assolutamente si, i giroscopi sono molto sensibili alle variazioni di temperatura e hanno sempre un certo drift il che rende indispensabile calibrarli ad ogni accensione.

Quote
l'accelerometro quindi si basa su l'accelerazione di gravità della terra??? non deve essere calibrato??

L'accelerometro non si basa sull'accelerazione gravitazionale, la misura, non serve calibrarlo ad ogni accensione, basta farla periodicamente.

Quote
se usassi l'accelerometro nella spazio rileverebbe solamente le accelerazioni che vengono fatte sul suo corpo??.

Dipende da cosa intendi per spazio, anche in orbita alta, p.e. dove si trova la ISS, la gravità terrestre è presente, infatti viene sfruttata dagli strumenti di bordo, e anche se ti allontani molto dalla terra sei sempre in presenza dei campi gravitazionali degli altri pianeti e del sole, non sono trascurabili se parliamo di strumentazioni inerziale.

Quote
perchè usare gyro e acceleromtro insieme porta dei benefici??

Misurano grandezze fisiche diverse tra loro complementari, unendo tramite particolari processi matematici, i più utilizzati sono il Kalman e la DCM, le loro letture si attua ciò che viene definito come "sensor fusion" e ti permette di correggere/compensare le letture ottenendo una rilevazione dell'assetto molto più precisa e stabile.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ovvioamente sia giroscopio che accelemometro vanno calibrati , anche se quelli con interfaccia digitale già di fabbrica hanno una buona impostazione. Di solito possiedono anche un sistema di self-test che se attivato crea una finta rotazione/accelerazione nota sul sensore, in modo che automaticamente non solo si possa settare lo 0 del sensore (che si fa semplicemente leggendo un pò di valori da fermo ed assumendoli come 0, unico caso particolare l'asse della gravità che è da assumere come 0+1g), ma anche di quanto variano i valori applicando una rotazione(i sensori sono più o meno lineari, quindi se vedi che esempio 32 è lo zero reale, e 200 è 1G, allora sai che 500 è ((500-32)/200)*1 G

confermo che nello spazio "perfetto" l'accelerometro leggerebbe solo le accelerazioni, nella realtà vedresti gli effetti combinati di più gravità smiley

Quote
che riconosce la posizione della coda e la tiene in quella posizione anche se manualmente la muovi.
lui semplicemente somma le velocità angolari * il tempo di lettura (velocità*tempo = spazio percorso), e poi da il comando per muoversi al contrario in modo da avere spazio percorso sempre = 0

Ora, dopo un pò che lo usi, noterai che però lo 0 un pò si sposta. Se conosci gli integrali, sai che quella variabile "tempo" più è piccola e più ti da una misura precisa, però noi siamo limitati ad un certo di misure al secondo, e non solo, ma anche sulla precisione stessa delle letture. L'errore quindi si accumula, e piano piano ti ti ritrovi sottosopra senza neanche accorgertene.
In generale puoi volare anche con solo il giroscopio, di solito ci si riferisce a questo come modalità "acro"

poi c'è la cosidetta modalità "stabile" (in realtà a seconda di come compensi i moviomenti ne esistono tantissime, per esempio puoi mantenere l'ultima posizione, tornare allo 0 degli assi, seguire dei valori stabiliti etc...)
A questo punto entrano in gioco gli accelerometri: visto che sai che più o meno puntano sempre verso il basso (salvo accelerazioni quindi entra in gioco un pò di matematica per eliminarle, o compensarle), puoi eliminare l'errore del giroscopio.

Si dice che il giroscopio fa delle letture "relative", mentre l'accelerometro "assolute" (ovviamente rispetto al sistema di riferimento terra).

Come avrai notato, però, l'accelerometro NON è in grado di compensare l'errore sullo YAW. Quindi si risolve con un magnetometro, che è una bussola digitale. In realtà, essenso il nord magnetico rilevato sui 3 assi, può essere usato per compensare anche asse x e y, l'unico preoblema è che i sensori magnetici sono molto sensibili ai disturbi anche elettrici come per esempio i motori, gli esc, il frame in metallo, etc..., in oltre sono molto lenti per le letture.
Per esempio l'ITG3200(gyroscopio) fa al massimo 256letture al secondo, l'ADXL345(accelerometro) 800letture/secondo(in i2c, via SPI ne fa molte di più, ma la maggior parte delle IMU è i2c purtroppo), e il BCMqualcosa(magnetometro) fa 60 misure al secondo

questi sono i sensori di una droteck da 50/60€ se non erro, ovvero la configurazione più low-cost.

edit: astro mi ha preceduto  smiley-mr-green
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 120
Posts: 9185
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

lui semplicemente somma le velocità angolari * il tempo di lettura (velocità*tempo = spazio percorso), e poi da il comando per muoversi al contrario in modo da avere spazio percorso sempre = 0

Se parliamo di giroscopi utilizzati su i modelli RC di elicotteri il funzionamento è diverso, esistono due modalità, il rate mode e l'AVCS (il nome può essere diverso a seconda del produttore.
Nella modalità rate il giroscopio, inteso come sensore e relativa elettronica di controllo e attuazione, si limita a fornire un comando fisso e proporzionale alla velocità angolare al servo di coda, in pratica modifica il passo del rotore di coda solo se questa si sposta quando non desiderato e riporta il passo al valore iniziale quando la velocità angolare è zero, il passo del rotore di coda è controllato direttamente dallo stick del radiocomando.
Il modo AVCS prevede il controllo della velocità di rotazione della coda, ovvero il giroscopio ha il controllo diretto del servo di coda, non il radiocomando, e ne varia il passo in funzione della velocità desiderata che può essere 0 con stick al centro oppure un certo valore, programmabile, in funzione della deviazione dello stick.
Il rate mode è quello utilizzato dai giro di vecchia generazione oppure da quelli attuali low cost, tutti quelli recenti sono del tipo AVCS, molti permettono anche il rate mode, che consente un controllo perfetto della coda senza dover utilizzare miscelazioni tra passo collettivo e passo di coda, abbastanza difficili da mettere a punto in modo perfetto, e consente di stoppare la coda quasi istantaneamente, o di farla girare in modo preciso e costante, mentre si eseguono manovre acrobatiche complesse.
Logged

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10106
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ah ok, non conosco queste impostazioni, mi ha ingannato la frase
Quote
ovvero che riconosce la posizione della coda e la tiene in quella posizione anche se manualmente la muovi.
pensavo che con AVCS tornasse ad una posizione angolazione (rispetto al nord) fissa impostata all'avvio, il che in effetti è un pò inutile smiley-mr-green
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 ... 80 81 [82] 83 84 ... 106   Go Up
Jump to: