Kalmani filter

Allikas: Digilabor

Redaktsioon seisuga 26. märts 2012, kell 09:58 kasutajalt Jaanus.kalde (arutelu | kaastöö)
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

Sisukord

Lugemismaterjal

Kõige lihtsamini arusaadav dokument antud teemal:

Kvaliteet on niru aga parema eksemplari saab ainult raha eest siit:

Lihtsamatest materjalidest tasub veel lugeda:

Muu materjal

Tarkvara

Java

C++

C

Parallax Propeller Spin


Proov (ära usu, võib väga vale olla)

Lähteandmed

  • Me robot on võimeline maksimaalselt liikuma kiirusega 0,1 m/s.
  • Robot alustab sirgjoonelist liikumist arvteljel punktist 1,0m.
  • Me suudame roboti paigutada platsile täpsusega 5mm ehk 0,05m
  • Me mõõdame alguses roboti asukoha infrapuna anduriga ja saame asukohaks 1.1m
tonu@hp:~/kaalman$ cat kaalman.c

#include <stdio.h>

float location_variance = 0.1;
float measurement_variance = 0.1;

kalman(float guess, float measurement) {

  float weight;
  float estimate;
  float estimate_variance;

  printf("----------------\n");
  weight =
    location_variance / (location_variance + measurement_variance);
  printf ("weight %f\n", weight);
  estimate = guess + weight * (measurement - guess);
  printf ("estimate %f\n", estimate);

  // confidence level
  estimate_variance =
    location_variance * measurement_variance / (location_variance +
						   measurement_variance);
  printf ("estimate_variance %f\n", estimate_variance);
  location_variance = estimate_variance;

}

int
main ()
{
  // We stand still on location 1.0 but get slightly different readings from infrared distance sensor:
  kalman(1.0,1.1);
  kalman(1.0,1.0);

  // We moved 0,5 meters
  kalman(1.5,1.6);

  return 0;
}
tonu@hp:~/kaalman$ 
tonu@hp:~/kaalman$ gcc kaalman.c -o kaalman
tonu@hp:~/kaalman$ ./kaalman 
----------------
weight 0.500000
estimate 1.050000
estimate_variance 0.050000
----------------
weight 0.333333
estimate 1.000000
estimate_variance 0.033333
----------------
weight 0.250000
estimate 1.525000
estimate_variance 0.025000
tonu@hp:~/kaalman$ 
Personaalsed tööriistad
Navigeerimine
Käsitöö