Die Berechnung der magnetischen überschrift mit raw-Beschleunigungsmesser und magnetometer-Daten
Ich habe einen Beschleunigungssensor und magnetometer jeder, die rohe X -, Y-und Z-anzeigen. Von diesen brauche ich zur Bestimmung der magnetischen überschrift des Objekts.
Ich bin nicht so der große bei trig, aber ich habe eine Formel, die nicht reagieren ziemlich gut auf die Drehung des Gerätes, sondern reagiert auch auf Bewegung, würde man nicht denken, ist relevant, wie Angeln das Gerät so ein, dass hat keinen Einfluss auf die Richtung in die es gerichtet ist. Wie legen Sie es flach und "Rollen" Gerät.
Ich denke, die Formel habe ich für die Berechnung der magnetischen überschrift ist gut, aber ich denke, dass mein pitch und roll Rad für die Eingabe falsch sind.
Also ich denke, der Kern meiner Frage (es sei denn, jemand hat tatsächlich eine Formel um, der dies tut), ist, wie berechnet man Winkel in Bogenmaß, mit einem Beschleunigungsmesser für pitch und roll.
Dann zweitens, jede info auf die überschrift, die Formel an sich wäre toll.
- Welche Position werden Sie versuchen, zu berechnen, und relativ zu dem Objekt? Kann ich davon ausgehen, Sie sprechen über ein Telefon?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Abhängig von der Genauigkeit, die Ihre Anwendung erfordert, müssen Sie möglicherweise einige Probleme lösen:
Sind die Achsen Beschleunigungsmesser kalibriert? Ich habe gesehen, MEMs-Beschleunigungssensoren hatte, dass die Achsen nicht gegenseitig senkrecht, und hatte deutlich unterschiedlichen Ansprechverhalten für jede Achse (in der Regel X und Y entsprechen würde, und Z würde zu unterscheiden). Sie müssen zu synthetisieren ideal XYZ-Achsen aus, was körperliche Lektüre Ihr Gerät bietet. (Google 'accelerometer-Kalibrierung".)
Sind die Achsen magnetometer kalibriert? Ähnliches problem wie oben, nur viel schwerer zu überprüfen: Es ist sehr schwierig zu erzeugen, einheitlich kalibriert magnetische Felder. Wenn Sie die umgebende Erdmagnetfeld, müssen Sie sorgfältig die Kontrolle der lokale Magnetismus von Ihrer Arbeitsumgebung und tools. (Google "magnetometer-Kalibrierung".)
Nach dem Beschleunigungsmesser und magnetometer wurden einzeln kalibriert, die Achsen müssen kalibriert relativ zu einander. Da diese beiden Geräte sind in der Regel gelötet auf einem PCB, es ist fast garantiert, werden erhebliche Fehlstellung. In vielen Fällen, das board-layout und die device-Parameter können nicht sogar erlauben, den XYZ-Achsen entsprechen, mit einander! Dies kann der schwierigste Teil zu tun, von einem lab-Perspektive, also würde ich empfehlen, dass Sie tun einen direkten Vergleich mit anderer hardware, hat beide Arten von sensoren und ist bereits kalibriert (wie ein iPhone oder Android-Handy - aber überprüfen Sie das Gerät vor der Verwendung). Normalerweise geschieht dies durch die Anpassung der vor zwei Kalibrier-Matrizen, bis Sie erzeugen die Vektoren, die richtig ausgerichtet sind relativ zu einander.
Nur, nachdem Sie erzeugen sich gegenseitig kalibrierte Magnetfeld-und Beschleunigungsmesser Vektoren können, die Sie anwenden, die Lösungen vorgeschlagen, die von den anderen Befragten.
Ich habe nur beschrieben, die statische Lösung, wenn die beiden magnetometer und Beschleunigungsmesser sind unbeweglich relativ zu den lokalen Gravitations-und magnetischen Felder. Wenn Sie brauchen, um zu generieren, die Antworten in Echtzeit, während das system sich schnell bewegen, werden Sie brauchen, um für die Zeit Verhalten jedes einzelnen Sensors. Es gibt zwei grundlegende Möglichkeiten, dies zu tun: 1) es Gelten die Zeit-Domäne-Filter für jeden sensor, so dass Ihre Ausgänge teilen sich einen gemeinsamen Zeitbereich (in der Regel das hinzufügen einiger Verzögerung). 2) die Nutzung von predictive modeling zum ändern der sensor-Ausgänge in Echtzeit (weniger Verzögerung, aber mehr Rauschen).
Ich habe gesehen, Kalman-Filter verwendet, der für solche Anwendungen, aber Ihre Anwendung in einem Vektor-domain können verlangen, mit Quaternionen anstelle von Matrizen Euler. Quaternionen sind einfacher zu bedienen rechnerisch (weniger Operationen nötig im Vergleich zu Matrizen), aber ich fand Sie um einiges schwieriger zu verstehen und richtig zu machen.
Oder, Sie können einen völlig anderen Weg, und verwenden Sie Statistiken und Daten sinnvoll, alle der oben genannten Arbeit in einem Riesen Schritt. Betrachten Sie das problem wie folgt: Gegeben 6 Eingabe der Werte (XYZ-jeder von unkalibrierten magnetometer und Beschleunigungsmesser) und eine Referenz auf das Gerät (vorausgesetzt, es wird in der hand gehalten, und es ist ein Pfeil gemalt, der auf den Fall) erfolgt die Ausgabe einer einzigen Winkel repräsentieren die magnetischen Lager eine Richtung, in die der Pfeil auf dem Gehäuse zeigt, und die Höhe des Pfeils ist relativ zur Schwerkraft-Vektor (tilt der Fall).
Mit einem kalibrierten Referenzgerät (wie oben erwähnt), koppeln Sie es mit dem Gerät kalibriert werden, und nehmen eine mehrere hundert Datenpunkte, mit dem Gerät zu unterschiedlichen Orientierungen. Dann benutzen Sie ein leistungsfähiges Mathematik-Paket wie Matlab, MathCAD, R oder SciPy zu setup und lösen der nichtlinearen Gleichungen zu erstellen, die die transformation von Matrizen.
Ich würde den Punkt zu Euler Winkeln und Roll Pich Gier.
Sie denken nicht in genug Dimensionen. Dies wäre die Antwort in nur 2 Dimensionen, und es funktioniert großartig, wenn Sie einen Weg finden können, um sicherzustellen, "Z" immer im Einklang mit der Schwerkraft.
(wenn Sie das Lesen direkt aus dem Gerät - Vorsicht, dass es wahrscheinlich gibt X, Z, Y, nicht X, Y, Z !)
Jedoch - dies ist nicht ein 2D-Kompass-problem - stellen Sie sich vor Sie nehmen die Nadel aus der Kompass, das Gleichgewicht, so dass die Schwerkraft spielt keine Rolle in halten Sie "Ebene", und Sie werden feststellen, dass die "Norden" wird Punkt ein bisschen nach oben oder unten - je nachdem wo auf der Erde Sie sind (oder, wenn an den Polen, direkt nach oben oder unten!).
So dass Sie brauchen, um zu versuchen und berechnen die DREIDIMENSIONALEN Vektor aus allen 3 Werten - das ist eine matrix-operation.