INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Integrität von Sensordaten
16.08.2015, 10:23
Beitrag #9
RE: Integrität von Sensordaten
Hi,
ich habe nochmal über einen stochastischen Algorithmus (oder auch Partikelfilter?) nachgedacht. Das ganze setzt normalerweise voraus, dass der Zustandsraum bekannt ist. Anders gesagt: Du brauchst eine Art Karte der Umgebung. Hier könnte das Problem sein, dass der Ort der Spiegel unbekannt ist.
Auf jeden Fall geht das meiner Meinung nach so: Man schmeißt sozusagen eine bestimmte Anzahl "Partikel" auf die Karte. Jeder (jedes?) Partikel hat z.B. einen Ort und eine Richtung. Dann berechnet man für jeden Partikel anhand des Modells, wie wahrscheinlich es ist, dass der Partikel das "sieht", was der tatsächliche Roboter "sieht. Jetzt wirft man den Anteil (z.B. die Hälfte) der Partikel weg, bei der hier die kleinste Wahrscheinlichkeit rauskommt. Die weg gelassenen Partikel ersetzt man durch neue zufällig gewählte Partikel, wobei man die Verteilung so wählt, dass sie sich durch die neuen Partikel nicht oder nur wenig ändert. (D.h. da wo vorher viele waren, sind danach immer noch viele.)
Wenn sich der Roboter bewegt, dann bewegt man auch alle Partikel genauso.
Da, wo die meisten Partikel sind, ist dann wahrscheinlich auch der Roboter. (Zumindest wird das so angenommen.)
Das ganze funktioniert wohl ganz gut, wenn man z.B. eine Art Labyrinth und Entfernungssensoren hat. Bei Deiner Aufgabenstellung ist halt schwierig, dass die Landkarte selbst sozusagen stochastisch ist. Möglicherweise kann man das aber durch geschickte Modellierung hinbekommen. Du müsstest halt die Wahrscheinlichkeitsverteilung der Spiegel ungefähr kennen und das mit in die Berechnungen einbeziehen.
Mmm... das ganze klingt nicht unbedingt so, als ob das ein Arduino stemmen könnte.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.08.2015, 23:07
Beitrag #10
RE: Integrität von Sensordaten
Hm ja, danke! So in etwa ist auch mein Stand bislang!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.08.2015, 12:59 (Dieser Beitrag wurde zuletzt bearbeitet: 17.08.2015 15:44 von HaWe.)
Beitrag #11
RE: Integrität von Sensordaten
es stimmt, der ("stochastische")
Kalman- Filter
ist (vereinfacht ausgedrückt) "eine Art" Lowpassfilter
MWneu = eta*SensorNeu + (1-eta)*MWalt (0<=eta<=1)
mit sich automatisch anpassendem eta und zusätzlichem einem sich automatisch anpassendem Korrekturfaktor("Kalman Gain"), je nach dem Fehler des vorhergesagten MWneu gemessen am dann tatsächlich eingetretenen MWneu

[Bild: 400px-Basic_concept_of_Kalman_filtering.svg.png]

Er ist sehr wirkungsvoll, wenn die Messreihen normalverteilt sind . Wenn sie nicht normalverteilt sind, gibt es auch eine Lösung, und die lautet
"extended Kalman"
- dazu brauchst du aber sehr gute Mathekenntnisse (Matrizen, Determinanten, Transponierte, Inverse, Submatrizen, obere Dreiecksform).

Außerdem arbeitet der Kalman nur zufriedenstellend, wenn du eine extrene Messreferenz hast (Bake, Kompass etc)

Außerdem brauchst du die von dir exakt gemessenen Standardabweichungen sämtlicher Sensoren und ihrer Messwerte für deinen aktuellen Hardware-Aufbau.

Hast du nur interne Referenzwerte (Odometrie, Gyro) wird er nach einer gewissen Zeit wertlos, denn er läuft aus dem Ruder.

Da du mit deinem Laser aber eine exterene Bake hast sowie weitere fixe Referenzpunkte (wenn ich es richtig verstanden habe), ist der Kalman perfekt: du kannst zunächst mappen per Odometrie, Laser, IMU-Sensor (ich empfehle CMPS11), dann anschließend nach Karte per Ortsbestimmung fahren.

Alternative, wesentlich einfacher und fast ebenso gut: Nimm einfach nur den ("statistischen")
LowPassfilter (s.o.)
MWneu = eta*SensorNeu + (1-eta)*MWalt (0<=eta<=1)

und ermittle dein eta mit ein paar Testversuchen selber!
Selbst für die Sensorfusion mit anderen Filtern gibt es dazu recht einfache statistische Lösungen (statistiscer Mittelwert, statistischer Median).
Ich habe so etwas sogar schon ohne Kalman einzig und alleine mit diesen Methoden geschafft:

http://www.mindstormsforum.de/viewtopic....46&p=56850


Kompliziierter, aber ebenfalls ein genialer stochastischer Filter, der perfekt arbeitet selbst bei manuellem wegnehmen, entführen und wieder irgendwo absetzen ("kidnap and replace" heißt das glaube ich im englischen), ist der stochastische
Partikelfilter (engl. particle filter, besser aber SMC = "sequentielle Monte-Carlo-Methode" genannt.).

Dies erfordert aber die meiste Mathematik von allen Methoden: NIEMALS unter einem DUE als Plattform!
Außerdem arbeitet er nur perfekt bei bekannten Raum-Geometrie-Daten, weniger gut für einen Explorer.
Hats du also einen Kalman, benutze ihn als Explorer, hast due einen Particlefilter, benutze ihn als Navigator und Maize-Solver!

(die Videos zeigen u.a. NXTs mit ARM 7 aber sehr langsamen Bytecode Interpreter, der EV3 läuft auf ARM9/Linux.)















Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Sensordaten per I2C senden ElAleMaNo 2 688 30.03.2016 23:44
Letzter Beitrag: ElAleMaNo
  Sensordaten in MYSQL speichern rieders 3 694 02.03.2016 19:58
Letzter Beitrag: rieders

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste