-
-
Erfahrener Benutzer
Roboter-Spezialist
JanB,
danke, ich hatte übersehen, dass Besserwessi die Überlägerung von freiem Fall und horizontaler Kreisbewegung meinte. Der Fall kommt in Wirklichkeit aber wirklich äusserst selten vor. Tatsächlich funktioniert der Algorithmus nämlich ziemlich gut.
Aber es ging ja darum, grid zu erklären, dass man sowohl Gyros als auch Beschleunigungsmesser braucht. Und da sind wir ja einer Meinung.
Ciao,
mare_crisium
-
Erfahrener Benutzer
Robotik Visionär
Die bewegung war auch nur eine relativ extremes Beispiel das zeigt, das man 1 g als Beschleunigung auch anders hinkrigen kann als in Ruhe. Es gibt noch viel anderen Fälle, wenn man vertikale und horizontale beschleunigung kombiniert. Da man sich dabei aber immer nach unten beschleunigt sind das natürlich alles keine sehr dauerhaften Zustände.
-
Gyroskope durch Accelerometer abgleichen
Hallo leute..
Hab eine wichtige Frage an euch!
Ein Kollege und ich arbeiten an einem Projekt, wo wir die Winkel eines Modellschiffes im Raum messen wollen.
Jetzt stehen wir jedoch vor einem Problem:
Vorher ist noch gesagt, dass wir mit Quaternionen rechnen.
Der Gyro driftet zu sehr. Daher ist unsere Idee, dass wir den Gyro mit Hilfe der Accelerometer abgleichen. Unser Gyro, sowie die Accelerometer iefern uns 819x in der Sekunde einen neuen Wert. Sobald das Gerät in Ruhelage ist, wollen wir die Gyrowerte durch den Accelerometerwerte abgleichen.
Jedoch müsste wir dazu die Accelerometer, welches ja Bezug auf Weltkoordinatensystem hat, auf den Bezug des Gyros, also an das Koordinatesystems des Objektes anpassen...
Habt ihr eine Idee wie man das anstellen könnte?
Wir hoffen dass ihr uns helfen könnt...
mfg Mexx
-
Erfahrener Benutzer
Roboter-Spezialist
Mexx000,
guck' mal in die pdf-Datei hier:
http://www.fho-emden.de/~hoffmann/quater12012002.pdf
Sie bezieht sich zwar auf Flugzeuge, aber das stört nicht weiter. Ganz hinten die Programmbeispiele können Dir vielleicht helfen. Nach meiner Meinung gibt's zwei Wege:
1. Den Erdbeschleunigungsvektor aus dem mitbewegten Koordinatensystem ins raumfeste transformieren (das geht nicht direkt, aber man kann die Eulerwinkel aus der Cayley-Matrix des Quaternions ausrechnen), den Ausgleich machen, und daraus ein neues Quaternion ausrechnen.
2. Den im raumfesten Koordinatensystem gemessenen Erdbeschleunigungsvektor in ein Quaternion transformieren und dann direkt die Quaternionen ausgleichen.
Würde mich interessieren, für welchen Weg Du Dich entscheidest und wie's funktioniert!
Leider hat das mare-Filter, das ich im Posting vom 23.09.2008 vorgeschlagen hatte, in der praktischen Erprobung nicht funktioniert .
Ciao,
mare_crisium
-
Erfahrener Benutzer
Robotik Visionär
Schiffe sind in der Regeln nicht so dynamisch. Da sollte der Beschleuniguingssensor ausreichen, um unten zu finden obwohl man diese Information auch eher selten braucht, außer für die Neigung seines Segelbootes. Für die Richtung hilft da ein Gyro der nicht driftet, ein Kompass oder ggf. eine Art Leuchtturm.
-
hm
Naja die zweite Variante haben wir bereits erledigt gehabt.
Jedoch ist eben das Problem, dass die Accelerometerwinkel auf ein anderers Koordinatensystem bezogen ist als die des Gyros..
Wir haben die Accelerometerdaten in ein Quaternion gepackt. Die Gyrowinkel natürlich auch in Quaternionendarstellung.
und jetzt haben wir die Bedingung gestellt, dass wenn der Betrag der Accelerometer ~1 ist, und die Gyrowinkel nur eine minimale Auslenkung zeigt, die Winkel durch die Accelerometer abgeglichen werden..
So alles gut und schön.. nur es bleibt das Problem bestehen, dass die Winkel nicht zusammenpassen...
MFG Mexx
-
Erfahrener Benutzer
Roboter-Spezialist
Mexx,
mir ist nicht ganz klar, was Du mit „Accelerometerdaten in ein Quaternion gepackt“ meinst. Dein „Verpacken“ stelle ich mir so vor:
1.Als Beschleunigungsvektor z.B. (0,0,-1) nehmen
2.Aus den mit den Accelerometern gemessenen Eulerwinkeln gem. Formel 6.18 (auf Seite 17 des Skripts) ein Quaternion bilden.
3.Den Beschleunigungsvektor mit dem Quaternion transformieren.
Das Ergebnis der Transformation (ein Vektor) stellt die Lage des Beschleunigungsvektors im mitbewegten Koordinatensystem des Schiffs dar. Diesen Vektor musst Du mit dem vergleichen, den Du bekommst, wenn Du den Vektor (0,0,-1) mit dem Gyro-Quaternion transformierst. Das gibt Dir die Aussage über die Fehlweisung, die durch die Gyrodrift entstanden ist.
Im Übrigen, die Quaternionen-Darstellung nimmt man bei Flugzeugen bloss deshalb, weil die Eulerwinkel-Darstellung bei Sturz- bzw. senkrechtem Steigflug versagt. Bei Schiffen (ausser vielleicht bei U-Booten) gibt es solche Zustände nicht, jedenfalls nicht solange sie noch schwimmen . Deshalb kannst Du Deine Rechnungen ohne Schwierigkeiten - und deutlich anschaulicher - auch mit Eulerwinkeln erledigen.
Ciao,
mare_crisium
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen