Table of Contents

Úvod

Tento dokument obsahuje analýzu kalmanovho filtra hráča, ktorý bol implementovaný tímom BAREKO 2017 v rámci tímového projektu na FIIT.

Vypracovanie

Kalmanov filter je algoritmus, ktorý používa sériu meraní pozorovaných v priebehu času, obsahujúcich štatistický šum a iné nepresnosti na odhad premenných v širokom spektre procesov. Je široko používaný pre spracovanie signálov, navigáciu a iné úlohy. Predpoklad pre využitie kalmanovho filtra je linearizovaný systém, alebo systém transformovaný na lineárny.

1. Lineárne systémy

V uvedených rovniciach pre lineárne systémy platí:

Stavová rovnica prechodu:

xk+1 = Axk + Buk + wk

Rovnica výstupu:

yk = Hxk + zk

Keďže pohyb hráča je priamočiary, môžeme povedať že stav pozostáva z jeho polohy p a rýchlosti v. Vstupná veličina u je nariadené zrýchlenie a výstupná veličina je meraná poloha. Pri meraniach v časových intervaloch Ts sekúnd bude rýchlosť definovaná rovnicou:

vk + 1 = vk + Ts uk

Avšak táto rýchlosť bude ovplyvnená šumom. Šum rýchlosti je náhodnou premennou, ktorá sa mení s časom. Preto realistickejšie zapísaná rovnica vyzerá nasledovne:

vk + 1 = vk + Ts uk + ~vk

kde ~vk je šum rýchlosti. Podobnú rovnicu je možne odvodiť aj pre polohu p:

pk+1 = pk + Ts vk + Ts2uk + ~pk

de~pk je šum rýchlosti . Na základe čoho môžeme definovať stavový vektor, ktorý pozostáva z polohy a rýchlosti: Xk += (pk vk)

Keďže je meraná výstupná veličina úmerná polohe, je možné do rovníc za premenné A,B a H dosadiť nasledovné matice:

pričom platí, že matica A sa nazýva predikčná matica a matica B sa nazýva riaiaca matica.

Taktiež je potrebné si uvedomiť, že v rovniciach (modelu systému) v úvode vystupujú dve premenné w je šum v procese a z je šum v meraní. Taktiež je ďalej možné skonštatovať, že neexistuje korelácia medzi w a z, teda v akomkoľvek čase k, wk a zk sú nezávislé náhodné premenné. Potom je možné zadefinovať kovariančné matice šumu Q a R ako:

Kovariancia šumu v procese:

Q = (wkwkT)

Kovariancia šumu v meraní:

R = (zk zk T )

kdewT azT označujú transpozíciu náhodných vektorov šumov. Teraz je možné použiť Kalamnové rovnice.

Kalmanove rovnice

Kalmanov filter sa delí na 2 fázy: Predikčnú, ktorej sa robí odhad ako predikcia z predchádzajúceho najlepšieho odhadu plus korekcia. Táto fáza obsahuje dve rovnice. Druhá fáza je korekčná fáza, ktorá obsahuje tri rovnice. Ich tvar môžeme vidieť na nasledujúcom obrázku.

Kalmanov filter v kóde

Kalmanov filter je implementovaný v triede KalmanReal, v balíku sk.fiit.jim.agent.kalman. V triede sa nachádzajú dve hlavné metódy:

Záver

Tento dokument obsahuje analýzu kalmanovho filtra, ktorý implementoval tím BAREKO 2017. Na základe tejto analýzy však zatiaľ nedokážem navrhnúť optimalizáciu kalmanovho filtra, keďže v dokumentácií predchádzajúceho tímu sa žiadna možnosť optimalizácie nespomína.