PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Neigungswinkel messen



filth
03.02.2013, 20:53
Hallo,

ich suche einen Sensor, mit dem ich den Neigungswinkel in einem statischen System messen kann.

Genauer gesagt:
Ich habe ein Tilt / Pan System was auf einem Stativ steh. Den Pan (also Drehung um die Y-Achse) messe ich mit einem Kompass. Wie kann ich jetzt die Neigung messen? Es kommt auf keine große Genauigkeit an - +-1-2° reichen aus.

Danke!

Besserwessi
03.02.2013, 20:59
Die Neigung kann man mit Beschleunigungssensoren messen. Bei der möglichen Drehung um 1 Achse reicht ein 1-achiger Sensor für kleine Winkel, bei mehr als etwa 60 Grad wäre ein Sensor mit 2 Achsen angebracht. Bei unbekannter Achse braucht man dann 2 oder 3 Richtungen vom Sensor.

filth
03.02.2013, 21:02
Ich möchte mit dem System eine Antenne nachführen, wahrscheinlich reichen 60°. Könntest du mir eine Empfehlung für einen Sensor geben, nach dem ich suchen kann? I2C oder analog wäre super!

malthy
03.02.2013, 23:01
zB http://www.elv.de/3-achsen-beschleunigungssensor-3d-bs-komplettbausatz.html Der hat zwar drei Achsen, ist dafür aber pflegeleicht (I2C/SPI) und kostet nur 6.95€.

Gruß
Malte

oberallgeier
03.02.2013, 23:13
... Der hat zwar drei Achsen ... pflegeleicht (I2C/SPI) und kostet nur 6.95€ ...Und in diesem Thread (klick mal) (https://www.roboternetz.de/community/threads/47783-3-Achs-Beschleunigungssensor-sensationell-günstig-!?p=485256&viewfull=1#post485256) gibts sogar noch den Auswertecode für den BMA020 in C dafür.

malthy
03.02.2013, 23:25
[...] Auswertecode für den BMA020 in C [...]

<eigenwerbung>und hier in Bascom (http://www.mtahlers.de/index.php/elektronik/sensoren/bma020)</eigenwerbung>

;-)

filth
04.02.2013, 05:41
Danke, der passt perfekt.

An den Neigungswinkel komme ich dann so?

alpha = arctan (Ax / Az)

richtig? Oder sollte man alle 3 Kräfte berücksichtigen?

malthy
04.02.2013, 09:33
Hallo!

Ja, das sollte schon so gehen. Du kannst aber auch alle drei Komponenten berücksichtigen. Das ist hier ganz verständlich beschrieben (http://www.mh-hannover.de/fileadmin/zentrale_einrichtungen/zentrale_forschungswerkst/downloads/AN3461.pdf) (das ist eine ältere Rev. der AN, die aktuelle Version wurde komplett überarbeitet und ist m. E. damit nicht mehr ganz so gut verständlich). Du solltest dann noch bedenken, dass du den atan in einer Vierquadrantenversion benutzen solltest (atan2) um über 360° eine eindeutige Antwort zu bekommen. Aber auch das ist in der AN beschrieben.

Gruß
Malte

filth
04.02.2013, 09:49
Super! Vielen Dank!

oberallgeier
04.02.2013, 10:15
... alpha = arctan (Ax / Az) ...Zum Vorgehen kann ich nichts mehr hinzufügen. Dass der Winkel üblicherweise in Radiant definiert ist, wird Dir sicher schon klar sein. Das die transzendenten Funktionen ziemlich rechenzeitaufwendig sind ist auch sattsam bekannt (klick mal). (https://www.roboternetz.de/community/threads/56649-Projekt-Positionsbestimmung-für-ein-Roboter-(RP6)/page2?p=539390&viewfull=1#post539390) Deshalb haben wir mal ne schnellere Näherungsvariante gesucht und gefunden (klick). (https://www.roboternetz.de/community/threads/50078-sinus-satz?p=482862&viewfull=1#post482862) Kommt halt drauf an wo Du rechnest - ein PC von heute rechnet ja um ein Vielfaches schneller als ne große Cray von vor dreissig Jahren . . .

filth
04.02.2013, 10:16
Eine Rückfrage zu der Vierquadrantenversion: das wird nur relevant, wenn der Tilt > 90° werden kann, oder verstehe ich das falsch?

Hier stehe ich noch etwas auf dem Schlauch:
Wenn ich mit der 3-Achsen Lösung arbeite und die 3 Winkel berechnet habe (Tilt, Pitch und Roll) - wie komme ich an den gewünschten Winkel. Beispielsweise wenn ich berechnet habe, dass die Antenne einen Winkel von 20° anfahren soll.

malthy
04.02.2013, 13:20
Hallo!

Der atan liefert eindeutige Werte von -pi/2 (-90°) bis pi/2 (90°) während atan2 von -pi (-180°) bis pi (180°) läuft. Man kann sich den atan2 mit einer einfachen Fallunterscheidung nach den Vorzeichen der Argumente auch selber basteln. Das "Probem" beim atan ist ja eigentlich nur, dass der Quotient, den man als Argument reinsteckt für -y/x und für y/-x gleich ist, das aber geometrisch verschiedene Situationen sind (Stichwort "Einheitskreis (http://de.wikipedia.org/wiki/Einheitskreis)").

Der "gewünschte" Winkel hängt natürlich von der relativen Ausrichtung deines Sensors zum bewegten Objekt ab. Einer von den dreien ist es :-).

Gruß
Malte

filth
04.02.2013, 18:00
Irgendwie stehe ich noch etwas auf dem Schlauch - bei Beachtung von nur 2 Achsen ist alles klar und einfach.
Wenn nun doch alle 3 Achsen ausgewertet werden sollen, ist das Berechnen der Winkel klar. Aber bei der Korrektur tue ich mir schwer.

Zum Beispiel stellt man sich vor, dass das gesamte System nach Rechts gekippt ist - je nachdem welche Richtung nun mit dem Pan angefahren wird, muss aufgrund der seitlichen Neigung der Tilt entweder nach unten oder nach oben korrigiert werden. Prinzip klar, aber wie drückt man das sinnvoll in einer Formel aus?