Hallo, Ich weiß, dass diese Frage schon oft gestellt wurde, aber ich habe nach einigen Suche bis jetzt nichts gefunden. (Ich habe auch schon einige Formeln, welche ich im Internet gefunden habe getestet. Leider hat keine bisher funktioniert.) Ich baue eine Quadrokopter. Ich verwende einen Gyro und eine Beschleunigungssensor um Roll (X) und Pitch (Y) zu erhalten. Nun möchte ich auch Yaw (Z) erhalten. Darum brauche ich zuerst einmal einen Winkel vom Kompass, damit ich diesen anschließend mit dem Gyro vereinigen kann. Ich habe schon ein Programm geschrieben mit welchen ich den Winkel aus den Raw - Daten des Kompasses berechnen kann. Ich verwende dafür die Formel: winkel = atan2(y,x) Jedoch habe ich nun das Problem, dass der Kompass keinen sinnvollen Winkel liefert, wenn ich in nicht gerade halte. (Was logischer weiß bei einem Quadrokopter sehr oft der Fall ist.) Weiß jemand Formeln, mit welchen ich mittels Roll und Pitch und den Raw Daten (x y z) des Kompasses den richtigen Yaw Winkel erhalte? Danke für eure Hilfe Marcel
Moin, Z bekommst Du aber auch vom Gyro und ACC. Für was genau brauchst Du denn den Magnetometer ? Gruß Kay
Ich wollte den Kompass verwenden um dessen Winkel mit den Winkel des Gyro's zu verbinden. (Da der Gyro über die Zeit auch fehlerhaft wird.) Aber nach meinen Wissen ist es nicht möglich aus den Daten des ACC den Z Winkel zu berechnen bzw. ich habe nie dafür eine passende Formel gefunden.
Was du da machen willst - nennt man Sensorfusion. Und das ist alles andere als einfach und mit ein paar Formeln erledigt. Du solltest dir vorhandene Projekte anschauen und abkupfern. Gruß Jonas
Die Sensorfusion habe ich schon. (Ich habe das mittels Hoch- und Tiefpass gelöst.) Mir geht es nur drum den Fehler des Kompasses zu korrigieren, der entsteht, wenn ich den Kompass nicht perfekt gerade halte. Und sollte mit zwei Formeln lösbar sein, soweit ich weiß.
Hoch und Tiefpass, sozusagen ein Complementary Filter? Vielleicht hilft die ein Kalman-Filter? Gruß0 Jonas
http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf Funktioniert bei mir aber leider nicht wie gewünscht, ich bin nicht sicher woran es liegt. Die Formeln habe ich grob nachgerechnet, das scheint zu stimmen -- vielleicht ist an meiner Kalibration was falsch. Sag' Bescheid, wenn es bei dir geht, würde mich interessieren! Natürlich ist es nicht möglich aus den Daten des Beschleunigungssensors den z-Winkel zu berechnen, denn welche physikalische Gegebenheit soll denn dafür sorgen, dass das Ding merkt in welche Richtung es gedreht ist. Ist doch alles komplett symmetrisch um diese Achse.
Okay. Danke für Antwort. Ich werde es mal dieses Wochenende probieren und dann bescheid geben falls es funktioniert.
Marcel D. V. schrieb: > (Ich habe auch schon einige Formeln, welche ich im Internet gefunden > habe getestet. Leider hat keine bisher funktioniert.) In welchem Bereich? Bei uns ist das Erdmagnetfeld schon rund 45 Grad geneigt, da gibt es also Orientierungen, in denen das Feld senkrecht durch den Sensor geht und also keine Richtung gemessen werden kann, ungenau wird sie natürlich schon lange vorher. Ergo braucht man mehr als einen Magnetfeldsensor. Georg
Also wenn ich dich richtig verstehe funktioniert halt der Kompass schlecht/gar nicht, wenn er leicht gekippt ist. Was willst du denn da rechnen, wenn er nicht funktioniert. Das ist halt bei einem Kompass so Prinzipbedingt. Deshal werden solche sachen schon immer kKardanisch aufgehängt. Kardanische aufhängung des Kompasses!? http://de.wikipedia.org/wiki/Kardanische_Aufh%C3%A4ngung
Georg schrieb: > In welchem Bereich? Bei uns ist das Erdmagnetfeld schon rund 45 Grad > geneigt, da gibt es also Orientierungen, in denen das Feld senkrecht > durch den Sensor geht und also keine Richtung gemessen werden kann, Man braucht für diesen Zweck ohnehin einen 3-Achsen-Magnetfeldsensor und einen 3-Achsen-Beschleunigungssensor, und dann sollte das in jeder Orientierung funktionieren -- egal wie das Feld durch den Sensor geht. > Also wenn ich dich richtig verstehe funktioniert halt der Kompass > schlecht/gar nicht, wenn er leicht gekippt ist. Was willst du denn da > rechnen, wenn er nicht funktioniert. Das ist halt bei einem Kompass so > Prinzipbedingt. Wenn du einen Beschleunigungssensor hast, kannst du die Kippung rausrechnen.
uwe schrieb: > Deshal werden solche sachen schon immer kKardanisch > aufgehängt. Quatsch. Man braucht einen magnetischen Sensor mit 3 Achsen und einen Lagesensor mit ebenfalls 3 Achsen, dann lässt sich die waagrechte Komponente des Magnetfelds, vulgo die Himmelsrichtung, eindeutig bestimmen. Georg
uwe schrieb: > Also wenn ich dich richtig verstehe funktioniert halt der Kompass > schlecht/gar nicht, wenn er leicht gekippt ist. Das funktioniert sehr wohl, wenn man die Daten verschiedener Sensoren (mit jeweils 3 Achsen) kombiniert. Genau darum geht es hier ja ...
Also ich habe einen 3 Achsen Gyro, ein 3 Achsen Beschleunigungssensor und einen 3 Achsen Kompass. Und wie kann ich nun mit den Beschleunigungssensor bzw. Gyro die Neigung des Kompasses ausbessern? Und wenn ich den Kompass auf dem Tisch im Kreis drehe ändert sich der Winkel genau so, wie er sich ändern soll.
Ein paar Grundlagen: http://cache.freescale.com/files/sensors/doc/app_note/AN4248.pdf http://www.pololu.com/file/0J434/LSM303DLH-compass-app-note.pdf http://scholar.lib.vt.edu/theses/available/etd-05272010-122009/unrestricted/Bingaman_AB_T_2010.pdf
Marcel D. V. schrieb: > Und wie kann ich nun mit den Beschleunigungssensor bzw. Gyro die Neigung > des Kompasses ausbessern? In dem PDF was ich gepostet habe steht das alles sehr ausführlich erklärt. Ob es dann am Ende funktioniert ist wie gesagt eine andere Frage, aber erklärt ist es da und die Methode die da verwendet wird macht m.E. auch Sinn.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.