Go Down

Topic: disegnare traiettoria con accelerometro (Read 2 times) previous topic - next topic

miche

Salve a tutti sono nuovo nel forum ma lo seguo da un po' di tempo.
Poiche sono un appassionato di motori ho montato un accelerometro collegato all' arduino in un go kart. Io riesco a leggere l'accelerazione laterale e longitudinale grazie ad un LDC montato sul volante. Vorrei sapere dai più esperti in materia come riuscire ad interpretare i dati forniti dall' accelerometro per poter disegnare la traiettoria seguita da kart.
Vi ringrazio in anticipo
un cordiale saluto a tutti...... :P

gbm

Ciao! Per disegnare una traiettoria hai bisogno di sapere anche di quanto ha curvato il mezzo. Ti serve anche almeno un giroscopio.
Community robotica / programmazione Arduino
www.gioblu.com

miche

ciao grazie per la risposta. Ma per sapere quanto ha curvato non basta solo avere il valore dell' accelerazione laterale in relazione a quella longitudinale istante per istante???

kokiua

E le "derapate" e gli slittamenti sulle 4 ruote dove li mettete?
Per far vedere le traiettorie in F1 usano dei GPS, e hanno una traiettoria piuttosto fedele da mostrare in TV... Ma se i dati gli servono per capire come migliorarsi in gara, altro che un accelerometro e un giroscopio.. ne servono almeno due coppie (uno davanti ed uno di dietro) per verificare tutti i movimenti imprevedibili... E poi con quale frequenza si vuole loggare il tracciato??
Insomma, un lavoretto per il quale forse solo un Arduino con LCD non basta  :P

Calamaro

si in effetti mi sembra un lavorone :D volendo potresti scrivere tutti i dati in una SD ma dovrai creare un bel software per interpretarli. Se pensi che ne valga la pena io farei come ha detto kokiua, pero' metterei 3 accelerometri in modo da individuare le componenti di 3 punti in un piano, di giroscopi secondo me te ne basta uno.
in tempo reale "potresti" vedere la tua traiettoria sul display, pero` il codice arduino a quel punto diventa abbastanza tosto e forse 16MIPS sono poche... boh potresti provare con un dsPIC a 40MHz o un ARM a 72MHz...

gbm

#5
Jul 01, 2010, 07:14 pm Last Edit: Jul 01, 2010, 07:15 pm by gioscarab Reason: 1
Ciao. Vuoi scrivere un programma per la navigazione inerziale? I nuovi sistemi di riferimento inerziale presenti sui moderni jet di linea fanno quello che dici tu, si ricordano istante per istante le accelerazioni e rotazioni a cui sono sottoposti per tutto il viaggio e matematicamente si calcolano l'effettivo spostamento, la velocità e l'inclinazione in rapporto alla massa dell'aereo. Sembra interessante. A che punto sei con la matematica? Serve una conoscenza non comune di matematica e fisica per scrivere un software del genere.

Ci sono alcuni problemi:
-Max g degli acc
-Max degrees/second giro
-clock cpu utilizzata
-vibrazioni che deteriorano un sacco il dato
-conseguente filtro (dannatamente pesante vedi filtro di kalman)
Community robotica / programmazione Arduino
www.gioblu.com

kokiua

@gbm: Ora però gli hai dato tutti gli input per rinunciare a qualsiasi velleità di migliorare il suo progettino...  :-/
Non esiste nulla che gli si possa consigliare senza scomodare aerei e quant'alro?  :P
Vediamo un po, con i dati di un accelerometro quali informazioni si possono desumere??

gbm

#7
Jul 01, 2010, 07:56 pm Last Edit: Jul 01, 2010, 07:59 pm by gioscarab Reason: 1
te l'ho detto volendo con 3 accelerometri, stando nel loro range di funzionamento puoi desumere di quanto ti sei spostato nello spazio. Accoppiando questi dati con un giroscopio che senta le rotazioni sul piano parallelo alla pista puoi sapere piu' o meno di dov'eri e quanto inclinato con una certa precisione (data dall'MCU utilizzata). Chiaramente sapendo la velocità a cui si sta andando piuttosto precisamente grazie a un sensore encoder il calcolo diventa piu' semplice perchè ti permette di tenere l'output IMU un po' piu' sporco dalle vibrazioni (aumentando di per se la risoluzione e la velocità di acquisizione).

Allo stesso modo è possibile utilizzare i dati OUTPUT IMU per creare una sorta di ESP. Cioè se non si sta accelerando e le ruote girano troppo rispetto all'accelerazione acquisita taglio corrente alla candela.

Ma a questo punto perchè non lo fai elettrico il kart  :D :D :D :D?

X Calamaro credo basti un solo giroscopio posto al centro del kart.
Community robotica / programmazione Arduino
www.gioblu.com

miche

grazie per le risposte, vedo che è più complicato di quanto mi aspettassi..... Per ovviare al problema di montare 3 accelerometri e poi non saper interpretare i dati, avevo in mente di montare un modulo gps che registrasse istante per istante la posizione in una memory. Il problema pero sarebbe sempre quello di interpretare i dati. In questo modo otterrei un file che contiene per esempio tantissime letture in  gradi primi e secondi. Il programma per interpretare i dati diciamo che lo avrei è un software open souces si chiama DANAS. Dal modulo gps le mie informazioni dovrebbero uscire in un formato NMEA e poi le dovrei convertire in .dat o .log. Spero di non aver detto fesserie.
Please help me !!!! :'(

BrainBooster

se il tuo obbiettivo è quello dell'elaborazione/visualizzazione "onboard" la vedo mooolto in salita.
se invece puoi "decentralizzare" lo storage e l'elaborazione dei dati diventa solo una questione di budget...
e comunque il realtime è da dimenticare...

redfox74

Ciao,
utilizzare solo gli accelerometri per definire traiettorie è praticamente impossibile per problemi di precisione dei sensori mems ... quello che ti posso consigliare è l'impiego di un gps ... se vuoi poi avere info di telemetrie sul tuo kart gli acc. assieme ad i giroscopi possono fare al caso tuo ... io ho realizzato una scheda competa di tutto quello che ti serve ... si chiama MultiBoard e nasce per applicazioni di volo automatico ... ultimamente abbiamo aperto anche una nostra network in ning che abbiamo chiamato www.virtualrobotix.com .. se passi di li puoi trovare molte info su come usiamo accelerometri ed amenità simili.

dolfrang

#11
Jul 10, 2010, 06:51 pm Last Edit: Jul 10, 2010, 06:54 pm by dolfrang Reason: 1
se integri una volta l'accelerazione ottieni la velocità, se integri i dati della velocità ottieni lo spostamento nei tre assi e quindi istante per istante conosci la tua posizione .

Nel tuo caso visto che il percorso viene ripetuto più volte , puoi ad ogni giro ridistribuire l'errore dx,dy,dz  in modo che le coordinate del punto di partenza coincidano con quelle del punto di arrivo e gli eventuali errori vengano compensati ( post processing )

come elaborato finale potresti tracciare un grafico  con le progressive dei tempi, l'accelerazione,la velocità, lo spostamento per ogni istante e per ogni asse  e le coordinate  xyz.

per maggiori dettagli contattami  dolfrang@libero.it

ps attenzione devi conoscere le caratteristiche dell'accelerometro ed eseguire una serie di test per ottimizzare il programma.

Sono banali tecniche utilizzate nel campo della sismologia e/o dell'ing. sismica per monitorare le oscillazioni del terreno o dei fabbricati in caso si sisma o reale o indotto.

Federico

scusate spero di non essere troppo ot nel topic. con un accelerometro a 3assi e' possibile calcolare un angolo? Se io muovo l'accell di 90 gradi, e' possibile capire che la cosa e' stata fatta? F
Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

garinus

si perchè guardi la variazione della gravità:
gli accelerometri la misurano come se fosse una accelerazione normale ed è costante.
la scomponi in vettori e sai come è orientato l'accelerometro se però questo è sottoposto solo a quell'accelerazione

uwefed

scusami garinus
La tua affermazione é correttta in parte.
Se ruoti il accelerometro nella asse x e y é possibie perché c'é l'acelerazione terrestre che é sempre presente. Se lo giri nel sul asse z non legge niente.
Per quello vengono gli acelerometri vengonousati insieme ai gyroscopi a 3 assi.
Ciao Uwe

Go Up