PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gyro-Sensor: Knick im Hirn



Jaecko
29.11.2012, 20:45
Moin.

Da es themenmässig eigentlich nirgendwo richtig reinpasst, schmeiss ichs einfach mal hier rein.

Ich hab einen Knick im Hirn bei nem Gyro-Sensor; irgendwie fehlt mir da das Vorstellungsvermögen. Auch "Experimente" mit einem 3D-Programm haben das "?" eher noch vergrössert als verkleinert. Und die Kinematikvorlesungen sind nun doch schon ein paar Jahre her...

Annahme: Ich hab ein Gerät, in dem ein Drehratensensor verbaut ist, d.h. Ausgabe in z.B. milli-°/sec auf 3 Achsen.
Das Ding sitzt jetzt auf einem Drehteller, Z-Achse liegt auf der Rotationsachse des Tellers, x/y liegen auf der Ebene des Tellers.

Wenn sich der Teller dreht, liefert mir Z einen Wert und X bzw. Y müssten 0 sein.

So... jetzt zum Knick (bzw. mehreren):
Angenommen, ich kipp das Ding jetzt 45° um die X-Achse.
Knick 1) Zeigen dann Y und Z eine Drehung an? Müssten doch eigentlich.

Knick 2) Zeigt Z so lange eine Drehung an (theoretisch), wie der Kippwinkel < 90° ist?
Bei exakt 90° würde Z ja in der Ebene des Drehtellers liegen => keine Drehung.
Also von 89.9999999999999° nach 90° wäre ein Sprung vorhanden?

Kann ja eigentlich nicht so schwer sein...

mfG

Ryoken
29.11.2012, 23:51
Moin!


Hier mal mein Senf (ohne Garantie auf Knickfreiheit):

zu Knick 1)
würde ich auch so sehen

zu Knick 2)
würde ich sagen: Jein - also im Prinzip ja, aber ohne Sprung.
Während der Kippwinkel gegen 90° geht, müsste die Drehrate um z gegen 0 gehen. Messtechnisch könnte vielleicht ein Sprung auftreten (je nach Genauigkeit des Sensors), mathematisch aber glaube ich nicht.


Gruß Ryoken

Manf
30.11.2012, 07:26
Ich würde da über das Focault Pendel einsteigen und dann mit dem Wheatstone Pendel weitergehen.
http://www.google.de/imgres?um=1&hl=de&sa=N&tbo=d&biw=1025&bih=949&tbm=isch&tbnid=itnGxrl_KwrfaM:&imgrefurl=http://en.wikipedia.org/wiki/Foucault_pendulum&docid=w0vAXQOUL4MuAM&imgurl=http://upload.wikimedia.org/wikipedia/en/thumb/d/d3/Wheatstone_Foucault_device_256x256.png/200px-Wheatstone_Foucault_device_256x256.png&w=200&h=200&ei=AVG4UNLdOsnFtAb97YDICA&zoom=1&iact=hc&vpx=12&vpy=440&dur=4179&hovh=160&hovw=160&tx=101&ty=78&sig=104779906298197210948&page=1&tbnh=152&tbnw=160&start=0&ndsp=38&ved=1t:429,r:25,s:0,i:163

238862388723885

Che Guevara
30.11.2012, 13:58
Hi,

solche und ähnliche Fragen hab ich mir vor einiger Zeit auch gestellt ;)
Fakt ist, dem Sensor ist es egal, ob er jetzt waagrecht ist oder nicht, wenn du ihn um 90° nach X kippst und dann die Z-Achse drehst, zeigt dir auch die Z-Achse die Drehung an. Ich hatte mal ein Verständnisproblem bei meinem Quadrocopter:
Ich bin vorwärts geflogen (Y um ca. 15° nach vorne gekippt) und habe dann den Kopter in der Z-Richtung gedreht (Z um ca. 90° gedreht). Plötzlich war dann der Vorderteil nicht mehr nach unten geneigt sondern die linke Seite. Das liegt aber einfach daran, dass der Gyro keinen Bezug zur Erde hat, sondern in seinem eigenen Koordinatensystem interargiert.
Deine Fragen kann ich dir leider nicht genau beantworten, weil ich nicht weiß, ob du nur den Sensor auf dem Drehteller kippst oder den gesamten Drehteller incl. Sensor?

Gruß
Chris

Manf
30.11.2012, 14:11
Die Rotation wird mit dem cos des Winkels zur Drehachse wahrgenommen.
Beispiele:
Mit dem Faktor 1 bei der Ausrichtung zur Drehachse und dem Winkel null,
mit dem Faktor 0,5 bei einer Abweichung von 60°
mit dem Faktor 0 bei 90° Abweichung
und mit -1 bei 180° Abweichung.
Damit ist es auch kontinuierlich.

Geistesblitz
01.12.2012, 11:13
Vielleicht lässt es sich besser vorstellen, wenn man die Drehung einfach mit Vektoren auf der jeweiligen Drehachse beschreibt. Die Winkelgeschwindigkeit hätte dann auf deinem Drehtisch einen Vektor nur mit Z-Anteil. Wenn man nun das Koordinatensystem um einen Winkel apha um X dreht, so ist dies dasselbe, als würde man den Vektor in dem System um den negativen Winkel drehen. Wenn dein Winkelgeschwindigkeitsvektor also vorher
W0=(0,0,w)
war, so wäre er nach der Drehung (Drehsinn nach Rechte-Hand-Regel)
W1=(0 , w*sin(alpha) , w*cos(alpha))
So bekomm ich das heraus, wenn ich die Drehmatrix (http://de.wikipedia.org/wiki/Drehmatrix) um X verwende, also
W1=Rx*W0

Bei deiner Problemstellung würde das sagen:
alpha=45° -> W1y=sqrt(2)*w und W1z=sqrt(2)*w
alpha=90° -> W1y=w und W1z=0 , also nur Drehung um die neue Y-Achse
alpha=89.9° -> W1y=0,999*w und W1z=0.002*w

Kampi
01.12.2012, 15:09
Hey,

Ich versuch es auch mal mit erklären, vielleicht hilft es dir ja weiter (ich habe bei sowas auch immer Denkprobleme / Knicke).
Ein beliebtes Hilfsmittel von mir ist da die "rechte Hand" Regel, sprich Daumen = X, Zeigefinger = Y und Mittelfinger = Z.
Wenn Z nun die Rotationsachse ist, zeigt dein Mittelfinger nach oben und wenn du dann deine Hand drehst, siehst du das nur der Daumen und der Mittelfinger die Position ändern. Also beschreiben X und Y die Drehbewegung (also der Drehteller liegt waagerecht).
Solange der Winkel = 0° ist, ist Z auch 0.
Wenn du das Ding nun um eine Achse drehst (z.B. X-Achse) dann wird der X-Wert immer kleiner, bis er anschließend verschwindet und dein Daumen nach oben zeigt. Wenn dies der Fall ist wird die Drehbewegung durch Y und Z beschrieben.
Der Sprung wäre bei einer gleichmässigen Bewegung um die Achse nur durch die Hardware gegeben. Rein mathematisch wäre da keiner drin.
Vielleicht hilft dir das ja weiter. Wie gesagt ich habe damit auch oft Probleme und die Geschichte mit der rechten Hand hilft da doch sehr oft weiter.....

Geistesblitz
01.12.2012, 16:10
Wirklich kompliziert wird das aber, wenn man um verschiedene Achsen dreht, da es dann auf die Reihenfolge der Drehachsen ankommt und ob diese raumfest sind oder sich mitdrehen.

@Kampi: irgendwas ist in deiner Beschreibung faul. Wenn ich um X drehe, kann X doch nicht kleiner werden. Die Drehachse verändert sich ja nicht. Oder meinst du Z?

Kampi
01.12.2012, 16:24
Nein ich meinte das vielmehr so das die der Drehteller solange geneigt wird bis die X-Achse die Drehachse ist.
Oder habe ich nun einen Knick im Gehirn :)?

Ryoken
02.12.2012, 01:56
Moinsen!



Fakt ist, dem Sensor ist es egal, ob er jetzt waagrecht ist oder nicht, wenn du ihn um 90° nach X kippst und dann die Z-Achse drehst, zeigt dir auch die Z-Achse die Drehung an.Ja, wenn man den ganzen Teller kippt bleibt es eine reine Drehung um Z. Aber so wie ich das verstanden hatte, wird der Sensor zum Teller - und somit zur Drehachse gekippt.



Ich hatte mal ein Verständnisproblem bei meinem Quadrocopter:
Ich bin vorwärts geflogen (Y um ca. 15° nach vorne gekippt) und habe dann den Kopter in der Z-Richtung gedreht (Z um ca. 90° gedreht). Plötzlich war dann der Vorderteil nicht mehr nach unten geneigt sondern die linke Seite. Das liegt aber einfach daran, dass der Gyro keinen Bezug zur Erde hat, sondern in seinem eigenen Koordinatensystem interargiert.Gerade dadurch müsste doch eine Kippung nach vorne (am Copter) auch bei Drehung erhalten bleiben.
Oder war "vorne" nur duch Deine eigene Blickrichtung definiert und ist aus der dann rausgewandert:-b? (halb OT - sorry)


Gruß Ryoken

Che Guevara
02.12.2012, 03:07
Hi,

ok, wenn der Sensor ohne den Drehteller gekippt wird ist es was anderes...

"Vorne" bezeichnet den Mittelpunkt zwischen zwei bestimmten Motoren, es ist also unabhängig von der Blickrichtung ;)
Genau den selben Gedanken wie du hatte ich auch, aber nach längerer Überlegung ist mir klar geworden, dass aus "nach vorne gekippt" durch eine Drehung in der Z-Achse "nach links gekippt" wird. Der Gyro ansich erkennt ja nur Drehungen und weiß nicht, ob er waagrecht ist oder nicht.

Gruß
Chris

Ryoken
02.12.2012, 08:47
Ahh jetzt ja. Drehrate vs. Drehwinkel.
D.h. es wurde um Z nach rechts gedreht, damit aus Kippung nach vorne, eine Kippung nach links wurde, richtig? Und wie hast Du das dann gelöst?

Gruß Ryoken

Che Guevara
02.12.2012, 12:42
Hi,

genau so ist es ;) Nun ja, da das Verhalten ja aus Sicht des Gyros genau richtig ist, hab ich es so belassen! Hingegen im Hover-Mode (also mit ACC) passiert dies nicht, da er ja dann einen Bezug zum momentan Winkel hat.

Gruß
Chris

Ryoken
03.12.2012, 12:57
Moin!

Hover-Mode/ACC sind dann die (Softwarebasierten) Flugsteuerungen?
Da tät mich dann halt interessieren, wie die das Gyrosignal verarbeiten um das o.g. Verhalten zu vermeiden

Meine spontane Idee wäre, eine Erdfeste senkrechte Drehachse zu ermitteln/festzulegen und die Abweichung davon nach einer Kippung um eine Fahrzeugachse dann als Wert festzuhalten.
Wird wahrscheinlich recht schnell aufwändig, diese Drehung dann auf die Einzelantriebe umzurechnen, im Vergleich zu der um die Senkrechte Fahrzeugachse...


Gruß Ryoken

Jaecko
03.12.2012, 13:03
So, hatte jetzt mal die Gelegenheit, einen dieser Sensoren in Betrieb zu nehmen und etwas zu messen. Es ist tatsächlich ein cos(a)-"Übergang", wie beim Foucault-Pendel.
D.h. wird der Sensor gekippt, hat man den cos-ähnlichen Verlauf.

Um das Rätsel von "vorher" zu klären: Der Drehteller bleibt wie er ist, es wird nur der Sensor selbst gekippt.

Wie dieser Verlauf zustandekommt (physikalisch, Sensortechnisch bedingt über die Corioliskraft) ist mir jetzt zwar klar.

Aber wo genau hab ich dann hier einen Denkfehler:
Angenommen der Sensor ist jetzt um 30° gekippt.
Wert X-Achse: cos(90°) * Originaldrehung = 0 (liegt in Drehebene)
Wert Y-Achse: cos(60°) * Originaldrehung
Wert Z-Achse: cos(30°) * Originaldrehung

Wenn ich jetzt von oben, parallel zur Z-Achse des Tellers, draufschau, dann drehen sich doch die Y-/Z-Achsen des Sensors von oben gesehen mit jeder Drehung des Tellers auch um eine Umdrehung. Oder täuscht das?

Che Guevara
03.12.2012, 13:24
Hi,

also es gibt einen ACRO-Mode (nur Gyro) und einen Hover-Mode (Gyro + ACC). Im ACRO-Mode tritt dieses Verhalten auf und es ist technisch gesehen auch vollkommen richtig. Im Hover-Mode kennt der Kopter seinen Winkel bezogen zur Erde. Somit tritt dieses Verhalten erst garnicht auf ;)

Gruß
Chris