-         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 19 von 19

Thema: Gyro drift beheben/kompensieren

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    25
    Beiträge
    1.553
    Anzeige

    Hi,

    also nicht umsonst werden Magnetometer relativ häufig verbaut wenn es um die Drehung der Yaw-Achse geht. Dass Motoren und andere eisenhaltige Gegenstände Störungen verursachen, ist auch nichts neues. Trotzdem kann man mit einem Kompass sehr gute Ergebnisse erzielen.
    Wurde er einmalig in einer relativ ungestörten Umgebung kalibriert, kann man später jederzeit die aktuelle Vektorlänge des Magnetfeldes ausrechnen und somit erkennen, ob und wie stark die Daten gerade verfälscht sind. Nun kann man einfach seinen Filter so anpassen, dass er nur bei geringer Störung den Kompass mit einbezieht oder je nach Störung mehr oder weniger stark.
    Wer gut in Sensorfusion ist, der schafft es auch, einen Kalman oder ähnliche Filter so zu programmieren, dass dieser nur einmalig beim Start (also Motoren aus) den Kompass benötigt und später ohne diesen trotzdem korrekte Headingwerte liefert.

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von HaWe
    Registriert seit
    09.10.2014
    Beiträge
    3.506
    Extremfall zur Verdeutlichung:

    kalibriere ihn mal in einer ungestörten Umgebung,

    dann platziere ein paar Dutzend starke Dauermagneten und DC-Elektromagneten zufällig irgendwo im Raum
    und verändere ihre Position während des Tests
    und dann fahre mit deinem Robi an diesen Magneten mit veränderlicher Position vorbei:

    das gibt Murks, das Heading (Yaw) ist nicht zu gebrauchen.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    193
    @Che Guevara:
    also nicht umsonst werden Magnetometer relativ häufig verbaut wenn es um die Drehung der Yaw-Achse geht.
    Das ist wohl richtig, aber wenn Du den zurückgelegten Weg, also quasi Deinen Standort bestimmen willst, summierst
    Du auf und damit summierst Du fortlaufend jeden Fehler, also Driften und absolute Fehler. Kann man sich mit einfachen
    Zahlenbeispielen klarmachen (Geschwindigkeit = 1. Ableitung des Weges nach der Zeit, Beschleunigung: 2. Ableitung,
    Weg aus Beschleunigung bedeutet dann 2x integrieren, also gehen Fehler bei z.B. konstanter Beschleunigung auch
    quadratisch ein.) Um so was befriedigend zu realisieren brauchst du, wie shedepe schon erwähnt hat, high-end-sensoren mit
    minimalen Fehlern.
    mfg
    Achim

  4. #14
    Erfahrener Benutzer Robotik Einstein Avatar von HaWe
    Registriert seit
    09.10.2014
    Beiträge
    3.506
    wie gesagt,
    selbst nur minimalste Fehler der besten Kompass-IMUs helfen nicht, wenn zufällig wechselne externe oder interne Magnetfelder an verschiedensten Orten zu verschiedensten Zeiten auftreten.

    - - - Aktualisiert - - -

    update, überlesen:
    @shedepe
    ich widerspreche an der Stelle HaWe erneut, dass Motoren unbedingt Probleme machen müssen
    stimmt,
    nicht alle müssen,
    aber viele können...
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    25
    Beiträge
    1.553
    Nun wenn ich Magneten in der Nähe habe (oder andere ferromagnetische Objekte) ändert sich i.d.R. die Länge des Gesamtvektors, sodass ich zu diesem Zeitpunkt meine Messwerte verwerfen / weniger stark berücksichtigen kann. Hab ich natürlich andauernd wechselnde Magnetfelder hilft das auch nichts, das ist schon klar. Normalerweise ist so eine Situation aber eher die Ausnahme als die Regel. Für kurze Unterbrechungen kann man auch nur mit dem Gyro arbeiten (t<xx sec).
    Dass der TE damit seinen Bot lokalisieren möchte, habe ich so nicht verstanden, das wird weder mit Odometrie noch mit AHRS / INS was. Dazu braucht es GPS o.ä. (also Absolutwertgeber der Position) oder evtl. SLAM, da kenn ich mich nicht aus.

  6. #16
    Erfahrener Benutzer Roboter-Spezialist Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    503
    Dass der TE damit seinen Bot lokalisieren möchte, habe ich so nicht verstanden
    Er möchte zunächst das Gerät in einem bestimmten Winkel drehen und weiterfahren lassen, zu jeder Zeit, ausgehend vom letzten Winkel. Also z.B. erst geradeaus dann, nach 50cm, 20 Grad nach links, dann geradeaus und nach 210cm, 10 Grad nach rechts und für weitere 85cm geradeaus.
    Er bekommt einen starken Drift, wenn er ein Quadrat in einer Richtung abfährt (also immer Links herum z.b.). Wobei es hierbei sicher nicht unwichtig wäre, zu wissen, um wieviel Grad sich das abgefahrene Quadrat in welcher Zeit dreht.

  7. #17
    Erfahrener Benutzer Robotik Einstein Avatar von HaWe
    Registriert seit
    09.10.2014
    Beiträge
    3.506
    Zitat Zitat von Che Guevara Beitrag anzeigen
    Nun wenn ich Magneten in der Nähe habe (oder andere ferromagnetische Objekte) ändert sich i.d.R. die Länge des Gesamtvektors, sodass ich zu diesem Zeitpunkt meine Messwerte verwerfen / weniger stark berücksichtigen kann. Hab ich natürlich andauernd wechselnde Magnetfelder hilft das auch nichts, das ist schon klar. Normalerweise ist so eine Situation aber eher die Ausnahme als die Regel. Für kurze Unterbrechungen kann man auch nur mit dem Gyro arbeiten (t<xx sec).
    Dass der TE damit seinen Bot lokalisieren möchte, habe ich so nicht verstanden, das wird weder mit Odometrie noch mit AHRS / INS was. Dazu braucht es GPS o.ä. (also Absolutwertgeber der Position) oder evtl. SLAM, da kenn ich mich nicht aus.
    du brauchst nur mal an Lautsprecher-Standboxen vorbeizufahren, die beeinflussen das Magnetfeld bereits unkalkulierbar in Stärke und Richtung in ihrem Umfeld, und wenn der Robot nicht weißt, wie nah er dran ist, lässt sich auch kein verlässliches Kompass-Heading berechnen.
    Das gleiche gilt für Stahlträger in Wänden und Fussböden, Metallöfen, Computern, sowie Stahl/Eisen-Stehlampen, Tisch- und Stuhlbeinen oder -Gitarrenständer (letztere werden ja auch mal herumgerückt). Hinzu kommen elektrom. Störfelder durch Motoren und Gestell oder Dreharm des Robots selber, ebenfalls abhängig von Stellung und Leistung im wechselnden Fahrbetrieb.
    Da es unmöglich ist, jede Fehl- und Missweisung an jedem beliebigen Ort samt aller exakter Korrekturwerte für jede beliebige aktuelle Stellung/Fahrrichtung zu kennen, kannst du auch keine Position bestimmen und keine Drehung exakt berechnen.
    Daher kann man auch nicht vorhersagen, wann man sich auf den Kompass velassen kann und wann man nur mit Gyro allein arbeiten muss.
    Fazit: vergesst einen Kompass für Räume/indoors, wenn es keine standardisierbare Experimentalumgebung ist.
    Wer es tatsächlich geschafft haben sollte, ohne weitere externe Referenzen (Baken, Peilungen, Sensoren), möge das mal hier vorstellen. Und übrigens, auch GPS ist indoors bei seiner ungeheueren Ungenauigkeit nicht hilfreich, eher schon Odometrie (auch nur in gewissen Genauigkeits-Grenzen).
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  8. #18
    Erfahrener Benutzer Roboter-Spezialist Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    503
    Ich habe noch was gefunden:

    Wenn du dein Modul auf den Tisch legst und es fixierst, wirst du immer noch eine Drehrate messen. Verschieden groß auf verschiedenen Achsen, aber diese drift ist immer da.

    Und jetzt nimmst du du einen Fön und bläst dein Modul an. Da wirst du eine deutliche Veränderung bemerken.

    Darum haben die einen Temperatursensor eingebaut, und mit dem kannst du die drift pro Achse und Temperatur bestimmen. Und das liefert dir eine Tabelle, in der du einen Korrekturwert nachschlagen kannst. Und interpolieren zwischen den beiden nächstgelegenen Werten.

    Das musst aber alles DU programmieren. Das kann das Modul nicht. Aber die Temperatur gibt es dir ja.
    Quelle: https://www.python-forum.de/viewtopic.php?t=42462

  9. #19
    Erfahrener Benutzer Robotik Einstein Avatar von HaWe
    Registriert seit
    09.10.2014
    Beiträge
    3.506
    Falsch:
    Das musst aber alles DU programmieren. Das kann das Modul nicht. Aber die Temperatur gibt es dir ja.
    Richtig:
    der MPU6050 kann das selbstverständlich autonom berechnen, er rechnet das mit seinem onboard-dmp bereits mit ein, samt sensor fusion! (man muss dann ntl die dmp-Libs verwenden, wie bereits verlinkt, keinesfalls die raw-Werte)

    Es geht aber dauerhaft nicht ohne stabile externe Referenzen!
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Nur Gierwinkel benötigt; Gyro Drift wegbekommen? (Phidget 1044)
    Von SeveQ im Forum Software, Algorithmen und KI
    Antworten: 1
    Letzter Beitrag: 27.03.2013, 23:11
  2. 3-Achs Compass kompensieren
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 05.02.2013, 23:18
  3. Motor Anlaufstrom Kompensieren
    Von RobbyMartin im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 13.06.2011, 19:28
  4. Habe Probleme mit Drift bei Gyro ADIS16250
    Von reflection im Forum Sensoren / Sensorik
    Antworten: 65
    Letzter Beitrag: 14.10.2008, 08:45
  5. Ultraschall Transmitter kompensieren
    Von ernesti001 im Forum Sensoren / Sensorik
    Antworten: 15
    Letzter Beitrag: 23.02.2005, 10:55

Berechtigungen

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