- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 9 von 9

Thema: C/C++ : einfach zu nutzende Kalman-Lib für den Pi

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    HaWe
    Gast

    C/C++ : einfach zu nutzende Kalman-Lib für den Pi

    hallo,
    aus "gegebenem Anlass" bin ich nochmals auf den Kalman Filter gestoßen zur Sensor Fusion von (nicht Gauss'sch) verrauschten Sensoren.

    Da nicht-Gauss'sch verrauscht, heißt das zunächst: man braucht den Extended Kalman.

    Von alleine gelöst hat sich das Problem, Kompass, Accelerometer und Gyro per Kalman zu fusionieren - das macht mein IMU Sensor selbstständig per eigener cpu.
    Drehung wird also perfekt gemessen.

    Nun soll der IMU-Wert genutzt werden, um festzustellen, ob man geradeaus oder im Bogen fährt.

    Jetzt geht es aber zusätzlich um den Vortrieb, und dazu bräuchte ich einen Kalman, der zwei gleichsinnige, aber sehr verrauschte Quellen miteinander verrechnen soll:
    a) ein Accelerometer in x-Richtung (vorwärts/rückwärts), 2x über die Zeit integriert ergibt dann Sensorwert 1: die Strecke aus Acc.
    b) ein Quadratur-Encoder an beiden Antriebsketten, aus den Laufstrecken (arithm. Mittel li+re oder kleinster Wert, je nach IMU) erhält man Sensorwert 2: die Strecke aus Enc.


    diese beiden Werte sollen nun per Kalman "fusioniert und geglättet" werden, damit man einen besseren, saubereren Streckenwert erhält.


    die Kalman-Lib bräuchte also nur 2 "Eingänge" und 1 "Ausgang",
    zusätzlich die Standardabweichungen (empirisch ermittelt) der Sensorwerte als Eingabeparameter.


    Ob es so etwas gibt und ob das dann so einfach geht ?

  2. #2
    HaWe
    Gast
    hat denn irgendwer "fertige" Extended-Kalman-Libs in C/C++ bereits erfolgreich selber genutzt ?

  3. #3
    HaWe
    Gast
    kann das sein, dass die Nutzung von Kalman Filtern hier im Forum nicht so recht bekannt und verbreitet ist?
    Falls doch - wie macht ihr es stattdessen?

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    897
    Ich nehme die Odometrie pur (und jage die ermittelte Position zusammen mit den Daten des Rundumsensors durch einen Partikelfilter).
    Aus meinem Billig-Beschleunigungssensor von Pollin kam bei meinen Tests nix vernünftiges raus. Der Beschleunigungswert im Bereich von +-2g wurde vom Rauschen (Chassisvibrationen bei laufenden Motoren) verschluckt. Da half weder mitteln noch integrieren. Schien mir im Nachhinein auch der falsche Messbereich für ein rampenbeschleunigtes Fahrzeug mit Schrittgeschwindigkeit. Man will ja gerade sanft beschleunigen, um den Schlupf der Räder zu minimieren.

  5. #5
    HaWe
    Gast
    ich kriege leider den Schlupf bei meinem Kettenantrieb niemals raus - auf Teppichboden oder Rasen kein Problem, auf Parkett aber nicht zu machen, selbst bei langsamem ramp-up rutscht immer irgendwo was. Der Accelerometer meines CMPS11 ist aber recht gut, wenn auch nicht rauschfrei. Partikelfilter scheidet aus, da die Raumgeometrie nicnt bekannt ist (SLAM-Robot), und daher keine externen Referenzpunkte existieren.
    Was bleibt, ist also der Kalman, zumindest für Anfahren und bremsen, um den wird also kein Weg herumführen.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Bekannt ist mir das schon, ich habe sogar noch mal in zwei Bücher geschaut, als die Frage hier erschienen ist.

    Und dann habe ich geschwiegen, weil

    a) keine eigene Erfahrung
    b) bei der Mathematik, die ich da gesehen habe, müsste ich erst mal eine Weile in mich gehen
    c) da steht fertig und im Zusammenhang mit dem Autor bedeutet das, die Antwort muss 100 % passen
    d) da steht C/C++ und im Zusammenhang mit dem Autor bedeutet das nur C wird akzepiert. Alles was ich kenne ist aber in C++

    Was ich dazu habe, sammle ich gerade ein wenig und hänge gleich noch mal die Liste an. Sonst meckert das Forum wieder, wenn ich zu lange brauche einen Beitrag zu schreiben.

    - - - Aktualisiert - - -

    So hier der Rest:

    Die Bucherkenntnis war: Dafür braucht man eine gute Matrizenbibiliothek.

    Also wäre die erste Wahl
    http://eigen.tuxfamily.org/index.php?title=Main_Page
    und dann mit Beispiel aus Büchern und Tutorials mal was probieren.

    Wenn aus irgendwelchen Gründen Eigen nicht in Frage kommt, wäre das die Alternative
    http://arma.sourceforge.net/
    das wäre die zweite "Quasi Standard" Lib.

    Auf einer Lib aufbauend haben sich ja schon einige Leute abgearbeitet
    https://github.com/hmartiro/kalman-cpp
    http://kalman.sourceforge.net/
    https://github.com/vancegroup/eigen-kalman

    Es gibt auch sowas hier, bei den Drohnenfliegern
    http://diydrones.com/profiles/blogs/...man-filter-for

    Dann gibt es natürlich noch "fertigeres", bei den großen Robotik-Frameworks
    http://www.orocos.org/bfl
    http://wiki.ros.org/robot_pose_ekf
    http://wiki.ros.org/robot_localization

Ähnliche Themen

  1. Kalman für Anfänger
    Von Ritchie im Forum Software, Algorithmen und KI
    Antworten: 7
    Letzter Beitrag: 06.11.2014, 19:46
  2. ST LPR530AL + Kalman Filter
    Von Pepade im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 23.04.2010, 08:29
  3. Kalman Filter für BASCOM
    Von harry1 im Forum Sensoren / Sensorik
    Antworten: 30
    Letzter Beitrag: 29.10.2009, 00:22
  4. An die Kalman-Filter-Fachleute
    Von Crazy Harry im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 08.05.2006, 22:33
  5. Kalman-Filter - wie/wo/was ?
    Von Crazy Harry im Forum Sensoren / Sensorik
    Antworten: 4
    Letzter Beitrag: 02.02.2006, 11:23

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests