Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:dydaktyka:aml:lab4 [2013/11/09 13:38]
esimon [Filtrowanie danych]
pl:dydaktyka:aml:lab4 [2019/06/27 15:50]
Linia 1: Linia 1:
-====== Dostęp do sensorów ====== 
- 
-===== Sensor Manager ===== 
- 
-Pobierz aplikację kompas, z repozytorium i przetestuj jej działanie. 
-**Uwaga** Pobierz tylko wersje tagowaną jako RAW, filtrowanie będzie realizowane podczas tego ćwiczenia. 
- 
-Przeanalizuj w jaki sposób realizowany jest dostęp do sensorów i ich przekształcenie w odpowiedni dla obrotu ekranu układ współrzędnych. 
- 
- 
- 
-===== Filtrowanie danych ===== 
- 
-Dla danych pobieranych z sensorów urządzenia zaimplementuj filtr Kalmana. 
-Poszczególne parametry tego filtra powinny być aktualizowane zgodnie z formułami podanymi poniżej: 
-<​code>​ 
-x = x 
-p = p + q; 
- 
-k = p / (p + r); 
-x = x + k * (measurement – x); 
-p = (1 – k) * p; 
-</​code>​ 
- 
-Gdzie: 
-  * x - filtrowana dana 
-  * p - szacowany błąd 
-  * k - wzmocnienie Kalmana (tzw. //Kalman Gain//) 
-  * r - szum pomiaru 
-  * q - szum przetwarzania 
- 
-Wartości, które należy dobrać, w celu modyfikowania działania filtru to: **p,q** oraz **k**. 
-Poeksperymentuj z różnymi wartościami i zaobserwuj wyniki. Dla jakich wartości otrzymujesz najlepsze rezultaty? 
- 
-**Uwaga** Dla ułatwienia,​ poniżej kod filtru kalmana w C: 
-<code c> 
-typedef struct { 
-  double q; //process noise covariance 
-  double r; //​measurement noise covariance 
-  double x; //value 
-  double p; //​estimation error covariance 
-  double k; //kalman gain 
-} kalman_state;​ 
- 
-kalman_state 
-kalman_init(double q, double r, double p, double intial_value) 
-{ 
-  kalman_state result; 
-  result.q = q; 
-  result.r = r; 
-  result.p = p; 
-  result.x = intial_value;​ 
- 
-  return result; 
-} 
- 
-void 
-kalman_update(kalman_state* state, double measurement) 
-{ 
-  //​prediction update 
-  //omit x = x 
-  state->p = state->p + state->​q;​ 
- 
-  //​measurement update 
-  state->k = state->p / (state->​p + state->​r);​ 
-  state->x = state->x + state->k * (measurement - state->​x);​ 
-  state->p = (1 - state->​k) * state->​p;​ 
-} 
-</​code>​ 
- 
- 
- 
- 
-===== Analiza danych ===== 
-//analiza danych z akcelerometru - pobranie, zapisanie do sqlite, analiza w octave (czestotliwosci maksymalnej i minimalnej, amplituda, srednie przyspieszenie,​ korelacja trzech osi , srednia ​ - jakie?​etc.)//​ 
- 
- 
  
pl/dydaktyka/aml/lab4.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0