Hallo,

wenn du nur einen Beschleunigungssensor benutzt, hast du das Problem, dass du nicht zwischen der Erdbeschleunigung und der Beschleunigung des Robters unterscheiden kannst.
Um den Kippwinkel zu bestimmen, brauchst du die Erdbeschleunigung. Die Messachse des Beschleunigungssensors wird parallel zur Erdoberfläche angeordnet. Wenn der Roboter gerade steht, bemerkt der Sensor nichts von der Erdbeschleunigung. Sobald er aber kippt, wird diese vom Sensor gemessen. Damit lässt sich dann der Winkel berechnen.

Allerdings misst der Beschleunigungssenor natürlich auch eine Beschleunigung, wenn der Roboter fährt. Er kann diese Beschleunigungen nucht unterscheiden.

Theoretisch ist es möglich mit zwei Beschleunigungssensoren zu balancieren: Einer wird oben und einer unten am Roboter befestigt. Wenn der Roboter dann kippt, werden unterschiedliche Beschleunigungen gemessen, da der obere Sensor stärker bewegt wird. Durch das Rauschen des Sensors ist diese Methode allerdings fast unmöglich, der berechnete Winkel wird sehr ungenau.

Am besten funktioniert die Kombination von einem Beschleunigungssensor mit einem Gyro. Ein Gyro kann eine Winkelgeschwindigkeit messen. Damit kann dann zumindest näherungsweise der Winkel bestimmt werden.

Zur Platzierung des Sensor:
Ich bin mir nicht ganz sicher, aber ich glaube im Schwerpunkt des Roboters funktioniert es am besten.

Viele Grüße,
Jan