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.
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.
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 je implementovaný v triede KalmanReal, v balíku sk.fiit.jim.agent.kalman. V triede sa nachádzajú dve hlavné metódy:
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.