Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
gyro und Komplementärfilter
key-board
myCSharp.de - Member



Dabei seit:
Beiträge: 33

Themenstarter:

gyro und Komplementärfilter

beantworten | zitieren | melden

Hallo Leute
Ich experimentiere zur zeit mit meinem MPU-6050 (Gyro+Acclerometer)
die Daten hol ich mir über einen Arduino in den PC

Um sauber die Lage des Sensors zu ermitteln werden z.B. Komplementärfilter verwendet.
Winkel= a*(alter Winkel+Winkelgeschw*dt)+(1-a)*(Acc Winkel)

Was ich nicht verstehe ist warum immer gyro und acc winkel des selben messachse genommen werden un die zu einem Winkel zu machen

So wie ich das Verstehe und rangehe errechne ich einen Normalenvektor in einem festen Koordinatensystem mit den Winkelkomponenten zu X Y und Z Oder dem Gier, Nick und Rollwinkel was im prinzip ja die Winkel in den Ebenen sind.
Aber wenn das so ist verändert eine Drehung um die z.B. Y Achse den Z-Winkel in er X_Z Ebene des Vektors.
Ich komm nicht dahinter warum alle anderen einem Winkel und das Driften des selben durch eine Beschleunigung in Richtung der Drehachse herausrechnen???

könnt ihr mich da erleuchten?

so ich würde das so machen z.B. den Rollwinkel (Drehung um die X Achse*dt+alter rollwinkel)*a +(1-a)*((ACC Y Winkel+Z Winkel)/2).

So würde das für mich mehr sinn ergeben.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von key-board am .
private Nachricht | Beiträge des Benutzers
Palin
myCSharp.de - Member



Dabei seit:
Beiträge: 1.090

beantworten | zitieren | melden

Hi,

ich muss gestehen so ganz habe ich deine Frage jetzt nicht verstanden.

Soweit ich dich verstanden habe geht es um die Frage, wie so ich die Berechnungen immer im Bezug auf eine Achse mache und die anderen nicht direkt berücksichtige.

Wenn dem so ist.

In den meisten Fällen kann ich z.B. eine Achse ignorieren. Beim Labyrinth Spiel (mit dem Ball) kann ich z.B. die Z-Achse ignorieren. Mich interessieren also nur noch Abhängigkeiten von X- und Y-Achse. Hier für kann ich mir dann Gleichungen Aufstellen, die ich in anderen Situationen wieder verwenden kann. Grundlegend habe ich nichts anders gemacht als mein Koordinatensystem zu Normen um die Gleichungen wieder verwenden zu können. Was in manche Fällen aber zu komplizierten Berechnungen führen kann.

Ich könnte jetzt natürlich hingehen und meinen Bezugspunkt (Koordinatensystem) für den Einzelfall so wählen, das die Gleichungen einfacher werden. Wobei ich es dann immer für den Einzelfall anpassen muss.

Also einfach eine Abwägung zwischen Generalisierung und Spezialisierung.

Mit freundlichen Grüßen
Björn
Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern
private Nachricht | Beiträge des Benutzers
PPK
myCSharp.de - Member



Dabei seit:
Beiträge: 157

beantworten | zitieren | melden

Hm wie sind deine Messgeräte denn verbaut? Also in welche Richtung beweglich und in welche nicht. Ich selbst hab mein FEZCerbot beigebracht auf den Hinterrädern zu "stehen", weil ich dass mal in einem Youtube-Video gesehen hab.
Dabei hab ich die gleiche Formel wie deine erste benutzt. Mein Cerbot selbst kann, wenn er steht, nur in eine Richtung kippen. Daher ist der Acc-Winkel. Auf der Y-Z-Koordinate abzulesen. (X-Achse = der Achse der Hinterräder)
private Nachricht | Beiträge des Benutzers