Neigungswinkel mittels Accelerometer bei balancing robot
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.
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich danke euch beiden schon einmal sehr für eure Antworten. Ich denke mittlerweile auch, dass es wohl am besten wäre das Accelerometer möglichst in der Nähe des Drehpunktes auf Höhe der Räder anzubringen.
Um dies zu verdeutlichen habe ich eine kleine Zeichnung als attachment beigefügt, in dem ich die beiden in Frage kommenden Positionen des Sensors als rot markierte Punkte angegeben habe (einmal im Center of Gravity und einmal in der Drehachse)
Wenn ich euch richtig verstehe, dann ist der Vorteil im Drehpunkt der, dass als wirkende Beschleunigungen auf die x-Messachse des Accelerometers nur zum einen die horizontale Beschleunigung a_beschl aufgrund der Beschl. des Roboters sowie die Komponente g*sin(theta), hervorgerufen durch die Gravitation, auftreten. Falls das Accelerometer dagegen im Punkt CG angebracht wird, so wird zusätzlich zu den beiden genannten Beschleunigungen außerdem noch die Komponente a_tan mit gemessen. Sehe ich das so richtig?
Insgesamt ist es also vorteilhaft, wenn ich den Abstand zwischen Drehpunkt und Position des Sensors , also die Länge L, möglichst klein halte, richtig?
LG,
ShockWaveRider.