ShockWaveRider
20.02.2010, 11:09
Hallo allerseits,
ich bin dabei einen einachsigen, balancierenden Roboter nach dem Prinzip des inversen Pendels zu entwickeln. Die für die Regelung u. a. benötigte Information über den aktuellen Auslenkwinkel (theta) des Bodies soll über eine Accelerometer-Gyroskop-Kombination mit Hilfe eines Kalman-Filters ermittelt werden. Ich hätte hierzu nun eine Frage zum Verständnis und hoffe ihr könnt mir weiterhelfen:
Ich hatte mir gedacht, dass Accelerometer möglichst im Schwerpunkt des Roboters anzubringen, da sich ja die gemessene, statische Beschleunigung in x-Richtung (x-Achse des Accelerometers ist parallel zur Erdoberfläche) meines Wissens nach folgendermaßen zusammensetzt:
ax = at + g*sin(theta)
// at := Beschl. aufgrund der Pendelbewegung (at = l*winkelbeschl.)
// l = Abstand des Accelerometers von Schwerpunkt
=> Bei Annahme l = 0 (Accelerometer ist im Schwerpunkt) müsste folgen:
ax(t) = g*sin(theta) <=> theta(t) = arcsin(ax(t)/g)
Wie sieht die Sache nun aber im Falle einer Beschleunigung des Roboters aus? In diesem Fall würde das Accelerometer ja zusätzlich auch noch die Beschleunigung in x-Richtung ausgeben und nach obiger Formel ein entsprechend falscher Winkel herauskommen, oder?
Ich habe mir die Seite von dem Forumsmitglied Uffi http://home.arcor.de/uffmann/ARTIST3.htm angeschaut, auf der er angibt, wie man diese dynamische Beschleunigung mit Hilfe der Messwerte von zwei Achsen herausrechnet. Leider bin ich durch seine Berechnungen nicht durchgestiegen. Er schreibt weiterhin, dass das Accelerometer möglichst auf Höhe der Drehachse und nicht des Schwerpunkts angebracht werden muss. Nun bin ich vollends verwirrt! :-(
Ist es evtl. sogar überhaupt nicht notwendig den dynamischen Beschleunigungsanteil herauszurechnen, da dieser sowieso zumeist nur kurzzeitig auftritt und nachher bei der Sensorintegration durch den Kalman-Filter eh keine große Rolle mehr spielen?
Ich bin zur Zeit etwas verwirrt und hoffe ihr könnt mir weiterhelfen. Schon einmal vielen Dank für eure Mühe.
ich bin dabei einen einachsigen, balancierenden Roboter nach dem Prinzip des inversen Pendels zu entwickeln. Die für die Regelung u. a. benötigte Information über den aktuellen Auslenkwinkel (theta) des Bodies soll über eine Accelerometer-Gyroskop-Kombination mit Hilfe eines Kalman-Filters ermittelt werden. Ich hätte hierzu nun eine Frage zum Verständnis und hoffe ihr könnt mir weiterhelfen:
Ich hatte mir gedacht, dass Accelerometer möglichst im Schwerpunkt des Roboters anzubringen, da sich ja die gemessene, statische Beschleunigung in x-Richtung (x-Achse des Accelerometers ist parallel zur Erdoberfläche) meines Wissens nach folgendermaßen zusammensetzt:
ax = at + g*sin(theta)
// at := Beschl. aufgrund der Pendelbewegung (at = l*winkelbeschl.)
// l = Abstand des Accelerometers von Schwerpunkt
=> Bei Annahme l = 0 (Accelerometer ist im Schwerpunkt) müsste folgen:
ax(t) = g*sin(theta) <=> theta(t) = arcsin(ax(t)/g)
Wie sieht die Sache nun aber im Falle einer Beschleunigung des Roboters aus? In diesem Fall würde das Accelerometer ja zusätzlich auch noch die Beschleunigung in x-Richtung ausgeben und nach obiger Formel ein entsprechend falscher Winkel herauskommen, oder?
Ich habe mir die Seite von dem Forumsmitglied Uffi http://home.arcor.de/uffmann/ARTIST3.htm angeschaut, auf der er angibt, wie man diese dynamische Beschleunigung mit Hilfe der Messwerte von zwei Achsen herausrechnet. Leider bin ich durch seine Berechnungen nicht durchgestiegen. Er schreibt weiterhin, dass das Accelerometer möglichst auf Höhe der Drehachse und nicht des Schwerpunkts angebracht werden muss. Nun bin ich vollends verwirrt! :-(
Ist es evtl. sogar überhaupt nicht notwendig den dynamischen Beschleunigungsanteil herauszurechnen, da dieser sowieso zumeist nur kurzzeitig auftritt und nachher bei der Sensorintegration durch den Kalman-Filter eh keine große Rolle mehr spielen?
Ich bin zur Zeit etwas verwirrt und hoffe ihr könnt mir weiterhelfen. Schon einmal vielen Dank für eure Mühe.