chmbw
10.11.2010, 16:59
Hallo,
ich werkel derzeit im Rahmen eines Uniprojektes an einem "autonomen Fahrzeug", allerdings bin ich in Sachen Sensorik noch nicht sonderlich bewandert...Das System ist mit einer SPS bestückt.
Nun habe ich ein kleines Problem mit der Berechnung des Winkels bzw. der Winkeländerung pro Zyklus. Momentan bestimmt das Fahrzeug seine Orientierung über den Vergleich der zurückgelegten Strecke an seinen Antriebsrädern (Odometrie), ich möchte das ganze jetzt allerdings über einen Gyrosensor machen.
Link zum Datenblatt (Bezeichnung vom Sensor: NGS1):
http://www.sensor-technik.de/dbdownload/downger_105_1.pdf
Angeblich soll der Sensor die Drehrate bestimmen, also die Winkelgeschwindigkeit um die Hochachse (das Fahrzeug soll nur auf Ebenen Flächen fahren)
Das Signal vom Gyrosensor wird analog ausgegeben und als
Integer (−32.768 bis 32.767) verarbeitet. Der Gyrosensor soll einen Messbereich von +-50 °/s haben.
Aufgrund der kurzen Zykluszeit von 3,5 ms nehme ich die Geschwindigkeit jeweils als konstant an. Somit müsste meine Winkeländerung sich jeweils zu:
omega * t = phi
Meine Berechnung sieht so aus:
winkel_wert = 0.0035 * (winkel_integer + offset) * 50 / 32767
winkel = winkel + winkel_wert
winkel_integer ist der digitalisierte Ausgang vom Gyrosensor, also mein "Rohwert". Der Offset ist notwendig, weil wenn der Sensor komplett in Ruhe liegt er um -4000 leicht schwankt und ich ihn somit auf 0 lege.
Jetzt habe ich aber das Problem, dass ich je nachdem wie schnell ich den Sensor drehe unterschiedliche Winkelwerte kriege. Z.B:
ich drehe den Sensor LANGSAM um 45° ich kriege etwas mit 20° ausgegeben. Ich drehen ihn SCHNELL um 45° ich komme in den Bereich um 75°-85°.
Meine Überlegung bis jetzt war dazu folgende: Wenn ich den Sensor schnell drehe, ist die Zeit die ich für eine 45°-Drehung brauche kürzer, dafür ist die Winkelgeschwindigkeit höher. Drehe ich ihn langsam brauche ich mehr Zeit für die Drehung habe aber eine geringere Geschwindigkeit und somit müsste doch das ganze unabhängig von der Drehgeschwindigkeit sein?!
Wo könnte mein Denkfehler liegen, was habe ich evtl übersehen oder nicht verstanden? Ich freu mich über jede Anwort! :)
Viele Grüße
chmbw
PS:
Sollte ich irgendwelche Infos / Angaben vergessen haben, entschuldigt bitte und ich liefer sie sofort nach.
ich werkel derzeit im Rahmen eines Uniprojektes an einem "autonomen Fahrzeug", allerdings bin ich in Sachen Sensorik noch nicht sonderlich bewandert...Das System ist mit einer SPS bestückt.
Nun habe ich ein kleines Problem mit der Berechnung des Winkels bzw. der Winkeländerung pro Zyklus. Momentan bestimmt das Fahrzeug seine Orientierung über den Vergleich der zurückgelegten Strecke an seinen Antriebsrädern (Odometrie), ich möchte das ganze jetzt allerdings über einen Gyrosensor machen.
Link zum Datenblatt (Bezeichnung vom Sensor: NGS1):
http://www.sensor-technik.de/dbdownload/downger_105_1.pdf
Angeblich soll der Sensor die Drehrate bestimmen, also die Winkelgeschwindigkeit um die Hochachse (das Fahrzeug soll nur auf Ebenen Flächen fahren)
Das Signal vom Gyrosensor wird analog ausgegeben und als
Integer (−32.768 bis 32.767) verarbeitet. Der Gyrosensor soll einen Messbereich von +-50 °/s haben.
Aufgrund der kurzen Zykluszeit von 3,5 ms nehme ich die Geschwindigkeit jeweils als konstant an. Somit müsste meine Winkeländerung sich jeweils zu:
omega * t = phi
Meine Berechnung sieht so aus:
winkel_wert = 0.0035 * (winkel_integer + offset) * 50 / 32767
winkel = winkel + winkel_wert
winkel_integer ist der digitalisierte Ausgang vom Gyrosensor, also mein "Rohwert". Der Offset ist notwendig, weil wenn der Sensor komplett in Ruhe liegt er um -4000 leicht schwankt und ich ihn somit auf 0 lege.
Jetzt habe ich aber das Problem, dass ich je nachdem wie schnell ich den Sensor drehe unterschiedliche Winkelwerte kriege. Z.B:
ich drehe den Sensor LANGSAM um 45° ich kriege etwas mit 20° ausgegeben. Ich drehen ihn SCHNELL um 45° ich komme in den Bereich um 75°-85°.
Meine Überlegung bis jetzt war dazu folgende: Wenn ich den Sensor schnell drehe, ist die Zeit die ich für eine 45°-Drehung brauche kürzer, dafür ist die Winkelgeschwindigkeit höher. Drehe ich ihn langsam brauche ich mehr Zeit für die Drehung habe aber eine geringere Geschwindigkeit und somit müsste doch das ganze unabhängig von der Drehgeschwindigkeit sein?!
Wo könnte mein Denkfehler liegen, was habe ich evtl übersehen oder nicht verstanden? Ich freu mich über jede Anwort! :)
Viele Grüße
chmbw
PS:
Sollte ich irgendwelche Infos / Angaben vergessen haben, entschuldigt bitte und ich liefer sie sofort nach.