Capo rotazione: Gyro Accelerometro

A

anh

Guest
Sto facendo un progetto per misurare il movimento della testa (3DOF: pece, fila, e imbardata).Come voi tutti sapete che la pece e fila può essere misurato da un accelerometro (Io uso ADXL 202 da analogico Devie).Ma non so come misurare la imbardata (testa di rotazione).Generalmente, un unità di misura inerziale (IMU), composto di un giroscopio a 3 assi e un accelerometro a 3 assi è in grado di farlo, ma non capisco perché?Qualcuno può spiegare a me come un giroscopio a 3 assi
e accelerometro a 3 assi è in grado di misurare l'altezza, ruolo, e in particolare YAW?Oltre utilizzando giroscopio, non vi è alcun modo per misurare il YAW?

La ringrazio molto!

 
Salve,
Vi suggerisco di leggere alcuni libri di testo di navigazione inerziale.

Il gyroscpe stabilizza la piattaforma (in un caso gimballed) e accelerometro misura l'accelerazione nel predeterminato asse.(Immagino ci vorrà un po 'di più per spiegare chiaramente il motivo per cui si può misurare).Tuttavia il tuo caso è come strpdown INS.

brmadhukar

 
Hi anh,

Al fine di una proposta pienamente descrive lo stato di un oggetto, le variabili sono necessarie 6, 3 lineari coodinate: X, Y, Z, e 3 angolare coodinate α, β, γ.accelerometro in grado di misurare il xyz e giroscopio può misurare la α, β, γ, per cui 6 sono tutte le variabili misurate con il 2 elementi, si ottiene l'esatto status di intestazione.

mike

 
Se si intrested solo in testa traking in condizioni normali non si può 6DOF bisogno di un sistema con 3 giroscopi.Singola giroscopio e accelerometro può essere usato.

Vedi: http://sourceforge.net/projects/autopilot/

Ho avuto
un'altra idea.Se si utilizzano due accelerometri separati da una distanza, è possibile misurare la roatation come ogni rotazione provoca una positiva acceleraion in un sensore e negativo in un altro.È possibile utilizzare un filtro di Kalman (sto ancora cercando di capire come funziona

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Wink" border="0" />

) Per ottenere un filtrato e pulito i dati.

(Siamo in grado di misurare l'altezza & roll da accelerometro gravità
della terra, perché sarà sempre 1 G componente sulla direzione verso il basso, ma per imbardata abbiamo bisogno di soluzioni alternative)

Spero che vi sono solo intrested per misurare i movimenti, non l'effettiva posizione di testa.Perché doppia integrazione dei dati per calcolare la posizione è molto difficile a causa del rumore che rende inutilizzabili i dati anche dopo un breve periodo di tempo (5 ~ 10 secondi)
 
Grazie per il vostro utile informazione!
Per Asit: Quello che voglio è di misurare il grado di rotazione della testa.
Sono d'accordo con lei sul fatto che è in grado di misurare ADXL202 Pitch & roll, ma non per imbardata.Come si posiziona in modo accelerometro imbardata che può essere ottenuto?Potrebbe dirmi in maggiori dettagli in merito?Ho provato a giocare con ADXL202; mi rivolgo non più di 90 gradi con il suolo, quindi ruotare attorno asse Z.Non ci sono informazioni a tutti.

 
Uso ADXL202 si sarà in grado di misurare solo rollio e beccheggio (2-asse inclinometro), come lei ha già scoperto, ma non imbardata.
Per testa orientamento è necessario almeno bussola elettronica (KVH100, o simili).

Vi è però un altro prodotto sul mercato, la EZ-Compass-3, che è fondamentalmente inclinazione / temperatura di 360 ° bussola compensata magnetometro con rollio e beccheggio gamme / -70 °: http://www.aositilt.com/APPCOMP3- 4.xsmall.pdf

 
ADXL non darà tutte le informazioni quando ruotato su asse Z.Ma se l'asse Z del ADXL è compensato da una distanza dal centro di rotazione effettiva poi leggerà accelerazione.Vedere la figura ho inviato.Qui il accelerometri sono montati su orecchie, dove la testa si muove intorno al collo.Spero che lei ha l'idea.

È anche possibile provare a sperimentare con la forza centrifuga lettura con ADXL.

Ma ho ancora in dubbio la correttezza e l'utilità dei dati per il vostro scopo.Gyro sembra essere l'opzione migliore, specialmente quando ci sono uno di uscita con SPI (AnalogDevices).

 
Come è stato menzionato sopra u bisogno di un pieno asse strapdown INS per capo-movimento misurazioni.INS Gimbaled non è utile e per quanto necessario e potente electromotors wery complesso mecanically.

U Se si desidera solo per misurare la posizione di testa statico e solo bisogno di tre axeleroneters witn non collineari sesing asse (la scelta migliore è di tre ortogonal asse).

Ma se la testa è mooving (rotazione o l'uomo con la testa sta aniway) è un vero problema - e bisogno di 3 giroscopio e 3 axelerometers e potente DSP in tempo reale per la soluzione di equazioni differenziali matrice.

 
Salve
Hitachi-Metalli ha rilasciato un bel 3axis / - 3G acelerometer, il H48C.Davvero vale la pena guardare.Ho inviato alcuni dati su di esso.
In realtà i usare il bellissimo adxl, invece del costo, ma le sue caratteristiche sono di facile applicazione su qualsiasi CPU.
Un trucco è utilizzare i interrupt separato per ciascun asse,
in modo immaginare un ingresso in alto, significa che un inizio del ciclo pwm.
A questo punto i salvare le cpu alto contrasto.e un locale iniziare counter
Quando il pin va dal basso i subract l'attuale elevato contrastare il locale inizia a contenere e aggiungere un ricordo.
quando si va di nuovo ad alto controllare se ho appena una variabile globale è stato autorizzato, in caso affermativo, i locali di copia globals e ricominciare.
Ma il segreto è che il tempo totale viene conteggiato una sola volta.
Il globals sono poi (4,0 * dazio / periodo) -2,0
Se subtrack da quello vecchio si ottiene in modo da non addirittura DC
La sua bella, perché si finisce aggiungendo il rumore e le variazioni tendono ad annullarsi.

Esempio di lista di int routine:

unsigned int PortBXg, PortB;

PIOB_Int_Time = cpu_clock_hi (); / * Salva Alta freq counter * /
PortB = PIO_PORTB [PIN] & PIO_PORTB [PMASK]; / * ottenere Pin & Maschera * /
PortBXg = PortB ^ PIO_PORTB [PCOMP]; / * Che cosa è cambiato? * /

/ * Giroscopio grabbing stuff * /
if (PortBXg & INP_GYRO_X) / * X?* /
(
if (PortB & INP_GYRO_X) / * Changed a HI * /
(
if (! Gyro_X_Duty)
(
Gyro_X_Period = PIOB_Int_Time - Gyro_X_Start;
Gyro_X_Duty = LGyro_X_Duty;
LGyro_X_Duty = 0;
Gyro_X_Start = PIOB_Int_Time;
)
LGyro_X_Start = PIOB_Int_Time;
PIO_PORTB [SET_PCOMP] = INP_GYRO_X;
)
else / * Cambiato per Basso * /
(
LGyro_X_Duty = PIOB_Int_Time - LGyro_X_Start;
PIO_PORTB [CLEAR_PCOMP] = INP_GYRO_X;
)
)

Così, quando alcuni usi globale compito, dovere / periodo,
ma solo pulisce le variabili e le loro int riempirà con quelli nuovi per il prossimo ciclo.
Quindi, di cui si necessità di monitorare i campioni ed alcuni assincronicity è bello avere ....

Il migliore

PadsPCB<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Molto Felice" border="0" />Siamo spiacenti, ma è necessario il login per visualizzare questo attaccamento

 

Welcome to EDABoard.com

Sponsor

Back
Top