Come determinare la posizione dall'ingresso del giroscopio e dell'accelerometro?


33

Ho un accelerometro a 3 assi e un giroscopio a 2 assi. Intendo misurare qualcosa che si muove solo negli assi X e Z. Ho sentito parlare dell'utilizzo dei filtri Kalman per appianare i vettori di accelerazione, ma non riesco a trovare un buon tutorial per un principiante completo dell'argomento. Inoltre, so che posso raddoppiare l'integrazione dell'accelerazione per ottenere la posizione, ma come posso farlo con un numero finito di vettori di accelerazione campionati? Gradirei collegamenti a buoni tutorial per principianti su entrambi questi argomenti.


3
Sembra un po 'come questo post sul blog in cui mi sono imbattuto in precedenza oggi: starlino.com/imu_kalman_arduino.html Non ho alcun collegamento con quel sito, ho pensato che fosse rilevante per quello che stai chiedendo.
JustJeff

1
in questo articolo è possibile trovare una serie di tutorial su come utilizzare e interfacciare i sensori dell'accelerometro. intorobotics.com/… qui sono disponibili tutorial per la misurazione a 2 assi
Ezu,

Risposte:



8

Bene, il filtro Kalman è un tipo di magia che funziona misteriosamente. :)

Ho iniziato prima con i filtri digitali . Ben spiegato per cominciare. E facilmente undertable. Questi semplici filtri funzionano bene per il rollio e il passo di qualsiasi sistema. Ho solo bisogno di regolare il rapporto tra Precisione e Risposta sperimentando. Il trucco è [Precisione = 1 - Risposta].

Provaci.

Quindi per capire il filtro Kalman dovrai seguire i seguenti:

  1. Probabilità
  2. Legge di Bayes
  3. Quindi dovrai imparare come modellare scenari semplici per adattarli al filtro Kalman.
  4. Attualmente sono qui, quindi trovo cosa fare .. ti farò sicuramente sapere.

E deve condividere se ti imbatti in qualcosa di simile.


7

... doppia integrazione dell'accelerazione per ottenere la posizione

In teoria (purché tu abbia sensori e misurazioni perfette) puoi farlo, ma in pratica non puoi. Il problema è che l'accelerometro avrà una forza costante di 1G causata dalla gravità quando l'oggetto è fermo (zero G in caso di caduta libera), ma questo non viene misurato esattamente come 1.00000000 ... G. Quando si sposta l'oggetto, si avrà un vettore come la somma della gravità 1G e l'accelerazione dal movimento (che in genere è molto più piccola di 1G) e le misurazioni accumuleranno troppo rumore nel tempo per essere utili se si tenta di integrare la misurazione accelerazione meno gravità 1G.


6

Ho iniziato a costruire un quad quasi 6 mesi fa, ho avuto molti problemi con la corretta determinazione dell'angolo :)

Prima di tutto dovresti provare questa presentazione - http://web.mit.edu/scolton/www/filter.pdf È davvero completa e potrebbe aiutarti a farti un'idea migliore di ciò che vuoi davvero, praticamente ha funzionato per me.

Immagino che dipenda da te, ma l'implementazione del filtro Kalman non richiede solo un know-how abbastanza solido in matematica, teoria dei sistemi e in questo caso fisica, ma è anche molto impegnativo per quanto riguarda il carico della CPU. Nel caso in cui tu abbia in mente di usare, diciamo che un Atmega328 con clock a 16Mhz potresti avere problemi con questo tipo di filtro. È davvero efficace se si utilizza un DSP in modo da poter filtrare passa-basso in ingresso.

Tutto sommato, il mio consiglio è: prova a utilizzare il filtro complementare del 1 ° ordine o forse anche il filtro complementare del 2 ° ordine nel caso in cui non sei soddisfatto dei risultati. Se il tuo sistema è privo di vibrazioni ad alta frequenza, dovrebbe funzionare alla grande. A parte questo, il link di JustJeff è il punto di partenza perfetto nel caso in cui ti blocchi con l'implementazione :)

Ti auguro il meglio, Dan


Il tuo link è morto. Ho scavato un po 'e ho trovato di nuovo il documento: googledrive.com/host/0B0ZbiLZrqVa6Y2d3UjFVWDhNZms/filter.pdf Almeno dovrebbe essere lo stesso, forse vuoi fare un doppio controllo.
Giovanni,

Sì, è esattamente lo stesso :)
Dan

il link è di nuovo morto :(
KyranF

@KyranF penso di averlo trovato di nuovo :) portal.ts-muenchen.de/Dateien/filter.pdf
Dan

@ Bello, questo è esattamente lo stesso documento che ho usato per progettare il mio firmware quando ho realizzato un mini segway in uni. youtu.be/zOFlJJj8pPA
KyranF,

1

Sono anche un principiante e sto anche cercando una soluzione per il mio lavoro di navigazione. come te, ho una scheda configurata con accelerometro a 3 assi e giroscopio 2D. fino ad ora ho letto molti materiali su questo, allo stesso modo decido di adottare il filtro kalman per la mia gestione del segnale. forse non ho qualche suggerimento per te, ma voglio condividere qualcosa con te che avevo visto prima. ci sono alcuni link che li indicano, spero che ti siano utili.

  1. Introduzione di Kalman Filter
  2. Casella degli strumenti di navigazione del robot CAS
  3. Toolbox di navigazione inerziale open source
  4. Codice sorgente di un progetto sulla navigazione

limitato alla mia reputazione, ho solo l'autorità per pubblicare meno di 2 link. quindi le altre due voglio post come di seguito:


1
Sebbene possa trattarsi di un utile insieme di collegamenti per il PO, questo post sarebbe utile se si aggiungessero anche riassunti del contenuto pertinente da tali collegamenti, specifici della domanda che il PO ha pubblicato. Tieni presente che quando i link alla fine diventano non validi a causa della putrefazione dei link, questo post non manterrà alcun valore. Grazie.
Anindo Ghosh,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.