Domanda

Sto costruendo un bilanciamento del robot utilizzando il Lego Mindstorm s NXT sistema.Io sto utilizzando due sensori da HiTechnic, il primo è un Accelerometro e il secondo è un Giroscopio.Ho filtrato con successo del rumore da entrambi i sensori e derivati angoli sia in un range compreso tra -90 e 90 gradi, con 0 gradi di essere perfettamente bilanciato.

La mia prossima sfida è quella di combinare entrambi i valori del sensore per correggere il Giroscopio deriva nel tempo.Sotto è riportato un grafico di esempio che ho creato da dati reali per dimostrare la deriva dal giroscopio:

enter image description here

L'approccio utilizzato più frequentemente ho visto fare la combinazione di questi sensori solida come una roccia, è possibile utilizzare un filtro di Kalman.Tuttavia, io non sono un esperto in matematica e io davvero non capisco simboli matematici, io capisco la matematica codice sorgente di se.

Sto usando RobotC (che è come tutti gli altri derivati C) e sarebbe davvero apprezzare se qualcuno mi può dare esempi di come eseguire questa operazione in C.

Grazie per il vostro aiuto!

RISULTATI DELLA SOLUZIONE:

Va bene, kersny risolto il mio problema con l'introduzione di me complementari filtri.Questo è un grafico che illustra i miei risultati:

Risultato #1

enter image description here

Risultato #2

enter image description here

Come si può vedere, il filtro corregge giroscopico deriva e combina segnali in un unico liscia segnale.

Edit: Fin da quando ero fissaggio rotto le immagini comunque, ho pensato che sarebbe stato divertente per mostrare il rig che ho usato per generare questo tipo di dati:

enter image description here

È stato utile?

Soluzione

I Filtri di Kalman sono grande e tutti, ma trovo Complementari Filtro molto più facile da implementare con risultati simili.I migliori articoli che ho trovato per la codifica di un Filtro sono Complementari questo wiki (insieme con questo articolo sulla conversione di sensori in unità Ingegneristiche) e un PDF in file zip questa pagina (In Documentazione Tecnica, credo che il nome del file zip è il filtro.pdf);

PS.Se il vostro bloccato su un Filtro di Kalman, qui è C-sintassi del codice per Arduino che la implementa.

Altri suggerimenti

Gamasutra.com corse un articolo sull'uso di filtri di Kalman per il WiiMote di filtraggio.

Ci sono alcuni link a codice sorgente C++ alla fine dell'articolo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top