BerryIMU - Selbstlokalisierung mittels Beschleunigungssensoren

  • [font="Lato, sans-serif"]Hallo zusammen, [/font]
    [font="Lato, sans-serif"]ich habe die BerryIMU auf einer art kleinem Auto installiert, auf dem ich bereits die Möglichkeit hatte festzustellen ob es sich bewegt, oder fährt. Mithilfe der IMU wollte ich die Selbstlokalisierung noch weiter verbessern. Allerdings scheint das nicht so ganz so präzise zu funktionieren wie ich es ursprünglich erhofft hatte. [/font]

    [font="Lato, sans-serif"]Ich verwende die Theorie der Positionsbestimmung mittels doppelter Integration. Ergo die gemessene Beschleunigung doppelt über die Zeit integrieren, um so auf die Geschwindigkeit und schließlich auf die aktuelle Position zu schließen.[/font]

    [font="Lato, sans-serif"]Zurzeit verwende ich die letzten [10, 20. bzw. 100] gemessenen Werte in X-Richtung seit erkennen einer Bewegung zur Festlegung der Geschwindigkeit, welche ich dann beibehalte bis die anderen Sensoren ein Stillstehen erkennen. Wenn ich mir diese Daten ausgeben lasse, ist eindeutig eine Abweichung von dem Standard erkennbar, allerdings immer eine unterschiedlich große. Das nutze ich zurzeit lediglich um eine Geradeaus fahrt zu messen.[/font]

    [font="Lato, sans-serif"]Leider bringen mir diese Messdaten gar nichts, da wenn das Fahrzeug sich um 2m bewegt ich auf diese Weise eine Distanz von teilweise 1m und manchmal auch 5m - 6m errechne. Wie man sieht ist die ungenauigkeit so groß, dass ich diese Daten nicht verwenden kann.[/font]

    [font="Lato, sans-serif"]Hat evtl. schon jemand anders in diesem Forum eine IMU genutzt um die akutelle Position zu bestimmen und verfolgt eine ähnliche Technik mit ähnlicher Hardware?[/font]

    [font="Lato, sans-serif"]Ich wäre sehr glücklich über weitere Hilfe.[/font]

    [font="Lato, sans-serif"]Mit besten Grüßen, RaspBiNoob[/font]
    [font="Lato, sans-serif"] [/font]

  • BerryIMU - Selbstlokalisierung mittels Beschleunigungssensoren? Schau mal ob du hier fündig wirst!

  • Ich habe mit meiner MPU6050 bis dato noch nicht versucht, eine Position zu bestimmen - aber was haelt dich davon ab, permanent die Sensorwerte zu integrieren? Diese "letzten X Werte"-Nummer wuerde ich mir einfach mal sparen.

    Und dann sollte man wahrscheinlich noch Runge-Kutta verwenden - da hab' ich aber bis dato auch noch keine Erfahrung mit.

  • Hallo __deets__,

    Das Problem dabei Permanent die Sensorwerte zu Integrieren ist folgendes:
    Die Sensorwerte messen lediglich Beschleunigungen. Eine Beschleunigung tritt allerdings nur beim anfahren (Positiv) bzw. bei abstoppen(In der Theorie das Äquivalente Negativ) auf.
    Das heißt im Umkehrschluss, dass die gemessenen Beschleunigungen, die während einer Fahrt auftreten (also wenn die Geschwindigkeit bereits konstant ist) lediglich rauschen, wackeln durch huckel, kanten, etc. über die die Räder fahren, oder andere Störeinflüsse sind.
    Dadurch, dass ich lediglich die letzten X-Werte nutze gehe ich also auf die "interessanten" Werte zur Bestimmung der Geschwindigkeit ein.
    Also:
    1. Beschleunigung zu Beginn der Fahrt über die Zeit integrieren entspricht der Geschwindigkeit.
    2. Diese konstante Geschwindigkeit über die Zeit integrieren, bis das Fahrzeug stoppt entspricht der Distanz.

    Hier einmal die Messungen einer kurzen Fahrt. Die Tatsächliche Geschwindigkeit (gemessen an Rad-Encodern) betrug 0.1 m/s. Beschleunigungszeitraum ist äußerst gering!
    Man sieht ein relativ konstantes Rauschen um (+-100) und dann den Beginn der Fahrt mit Werten ab 600 bzw. +- 1000 und ein Wert > 2000.
    Da die Daten leider immer in gegeneinander gerichteten Paaren auftreten, kann ich die Informationen nicht so nutzen, wie ich gerne würde.

    Die Daten sind in [mm/s^2]

    Wie genau mit ras Runge-Kutta verfahren helfen soll verstehe ich leider noch nicht :s :denker:
    Vielleicht könntest du darauf noch einmal eingehen :helpnew:

    Falls hier noch jemand eine Idee hat, wie ich aus diesen Daten "solide" die Geschwindigkeit ablesen kann bin ich natürlich sehr dankbar :)

  • Wie gesagt, mein eigener theoretischer Hintergrund ist da auch mau. Aber konzeptionell erschliesst sich mir immer noch nicht, wieso du glaubst, Dinge verwerfen zu koennen. Entweder kommst du mit de verrauschten Daten klar - oder nicht. Ob du waehrenddessen milde beschleunigst oder nicht, macht keinen Unterschied.

    Runge-Kutta ist eine Methode, die man bei Differentialgleichungen anwendet, um bestimmte numerische Probleme in den Griff zu bekommen. Ich weiss auch nur, dass man das halt verwendet.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!