Forum: Mikrocontroller und Digitale Elektronik Theorie zu selbstbalancierenden Roboter


von Martin R. (mironik)


Lesenswert?

Hallo,
ich möchte einen selbstbalancierenden Roboter bauen. An sich ist alles 
klar (Hardware, Software und Regelung mit PID). Es gibt an der Theorie 
aber eine Sache, die mir unklar ist.
Ich kann den Roboter mittels IMU auf genau 90° balancieren. Aber wenn 
der Schwerpunkt nicht genau in der Mitte liegt, dann würde der Roboter 
bei genau 90° immer in eine Richtung fahren. Wenn ich dann auf die eine 
konstante Winkelgeschwindigkeit regle, kann es trotzdem sein, dass der 
Roboter in eine Richtung fährt. Irgendwie müsste man den Roboter so 
regeln, dass er lediglich nahe 90° steht und dabei die Räder sich 
möglichst wenig drehen. Kann mir jemand kurz erläutern, wie man den 
Roboter regelt, damit er quasi still steht oder eine entsprechende 
Lektüre empfehlen? (ja, gegoogelt habe ich schon, da findet man zwar 
viele Projekte aber wenig zur eigentlichen Theorie dazu)
Danke
Grüße

von Jens G. (jensig)


Lesenswert?

Ja dann musst Du eben das 90°-Soll in leichtem Maße immer so anpassen 
lassen, daß die Räder möglichst still stehen. Also nicht sturr auf 90° 
regeln, sondern als zweite Komponente auch auf Radstillstand regeln.

von Uwe B. (uwe_beis)


Lesenswert?

Die IMU liefert dir nur einen Wert, der (in erster Näherung) 
proportional zu Beschleunigung ist, aber nicht abhängig von der 
Geschwindigkeit. Das ist ja auch dir klar.

Die Geschwindigkeit ist das Integral der Beschleunigung + eine 
unbekannte Konstante. Das ist das Problem. Um die Geschwindigkeit zu 0 
zu machen, musst du sie direkt bestimmen. Entweder z. B. aus der 
Drehzahl der Antriebsräder (sofern vorhanden) oder auch der Spannung des 
Motors, die zu 0 werden sollen. Das muss in deine Regelung als eine Art 
Korrekturwert für die nicht exakte Justage der IMU auf 90° einfließen.

Wenn du noch die absolute Position = 0 erreichen willst, gilt dasselbe:

Die Position  ist das Integral der Geschwindigkeit + eine unbekannte 
Konstante. Um die Position zu 0 zu machen, musst du sie direkt 
bestimmen. Z. B. aus dem Drehwinkel der Antriebsräder (sofern 
vorhanden), der zu 0 werden soll. Auch das kann in deine Regelung 
einfließen.

von Purzel H. (hacky)


Lesenswert?

Die IMU bringt ja eine Beschleunigung. Und da musst du (horizontal) auf 
Null plus einen Offset regeln, sodass die Raeder stehen. Woher kommt der 
Offset ? Das laeuft unter schief montiert.

Allenfalls ist ein PID Regler etwas wenig ... zeigt sich aber nach ein 
paar Versuchen. Dann braucht's halt etwas mehr Theorie, wie an einem PID 
an den Parametern zu schrauben.

: Bearbeitet durch User
von Jens G. (jensig)


Lesenswert?

Uwe B. schrieb:
> oder auch der Spannung des
> Motors, die zu 0 werden sollen.

Würde ich nicht machen, sondern wirklich nur auf Drehzahl der Räder 
regeln. Denn Motorspannung=0 erreicht man nur in der absoluten 
Waagerechten - am Hang klappt das dann nicht mehr (falls der Robbi 
geländegängig sein soll ;-)

von Sebastian W. (wangnick)


Lesenswert?


von Martin R. (mironik)


Lesenswert?

Danke allen für die Antworten! Da muss ich mich dann erstmal 
einarbeiten.

von Obelix X. (obelix)


Lesenswert?

Jens G. schrieb:
> Uwe B. schrieb:
>> oder auch der Spannung des
>> Motors, die zu 0 werden sollen.
>
> Würde ich nicht machen, sondern wirklich nur auf Drehzahl der Räder
> regeln. Denn Motorspannung=0 erreicht man nur in der absoluten
> Waagerechten - am Hang klappt das dann nicht mehr (falls der Robbi
> geländegängig sein soll ;-)

Es bringt weder etwas die Drehzahl der Räder noch den Winkel zu regeln. 
Es muss die Beschleunigung geregelt werden. Kommt ein Störgröße z.B. 
Wind hinzu kippt das Ding bei Drehzahl 0 um. Durch Änderung der Drehzahl 
wird der Störgröße entgegengewirkt so das die Beschleunigung wieder 0 
ist. Aus diesem Regelkreis ergibt sich dann automatisch der Winkel egal 
ob der 80° oder 100° ist.
Bringt man das Gleichgewicht kontrolliert aus dem Gleichgewicht 
resultiert das in eine Drehbewegung der Räder und eine Fahrtbewegung.

von Monk (roehrmond)


Lesenswert?

Obelix X. schrieb:
> Bringt man das Gleichgewicht kontrolliert aus dem Gleichgewicht
> resultiert das in eine Drehbewegung der Räder und eine Fahrtbewegung.

Wie beim Segway.

Spannend wird die Frage, ob sich der Roboter automatisch dem Wind 
entgegen stellen kann, ohne weg zu rollen. Das würde ich gerne mal in 
der Praxis sehen, ist bestimmt spannend.

: Bearbeitet durch User
von Obelix X. (obelix)


Lesenswert?

Ja, der IMU müsste ja unterscheiden, ob ein Mensch die Stange bewegt 
oder Wind. Könnte der IMU aber entweder mit Gewichtssensoren im 
Trittbrett oder Hand-Sensoren im Lenker feststellen.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Obelix X. schrieb:
> Ja, der IMU müsste ja unterscheiden, ob ein Mensch die Stange bewegt
> oder Wind.

In beiden Fällen muss das Gerät das Kippen vermeiden. Das geht nur, 
indem es mit den Rändern unter den "Angriffspunkt" fährt.

Ergo: Auch bei Wind wird sich das Teil fortbewegen müssen, um das Kippen 
zu vermeiden. Es wird also mit der Zeit "fortgeweht". ;-)

von Monk (roehrmond)


Angehängte Dateien:

Lesenswert?

Frank M. schrieb:
> Es wird also mit der Zeit "fortgeweht"

Man kann sich gegen den Wind lehnen. Mit Rollschuhen wäre das nicht 
möglich, aber der Roboter kann seine Räder abbremsen bzw. gegensteuern.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Steve van de Grens schrieb:
> Man kann sich gegen den Wind lehnen. Mit Rollschuhen wäre das nicht
> möglich, aber der Roboter kann seine Räder abbremsen bzw. gegensteuern.

Sorry, zwischen den Füßen auf Deinem Foto und den Rädern eine 
selbstbalancierenden Roboters gibt es einen kleinen Unterschied:

Um gegenzusteuern ("gegen den Wind lehnen"), muss er seine Räder bewegen 
(drehen!), da er den Anstellwinkel nicht anders hinbekommt. Er wird also 
zwangsweise ins Rollen kommen.

von Monk (roehrmond)


Lesenswert?

Frank M. schrieb:
> Er wird also zwangsweise ins Rollen kommen.

Ja ein Stückchen, bis er den richtigen Neigungswinkel hat. Wie gesagt, 
ist bestimmt spannend, das mal in echt zu sehen. Das ist bestimmt nicht 
einfach umzusetzen, schätze ich.

von Obelix X. (obelix)


Lesenswert?

Frank M. schrieb:
> Um gegenzusteuern ("gegen den Wind lehnen"), muss er seine Räder bewegen
> (drehen!), da er den Anstellwinkel nicht anders hinbekommt. Er wird also
> zwangsweise ins Rollen kommen

Der IMU muss die Räder nicht unbedingt drehen. Er muss einen Drehmoment 
erzeugen. Das kann dazu führen, dass sich die Räder drehen aber es führt 
auch dazu, das die Lenkstange sich entgegen bewegt. Wenn ein Mensch auf 
dem IMU steht verhindert er diese Gegenbewegung was in einer 
Vorwärtsbewegung resultiert. Steht kein Mensch drauf, kann der IMU mit 
diesem Drehmoment die Lenkstange dem Wind so entgegen stellen, dass er 
stehen bleibt.

Vergleiche mit einem Hubschrauber, ohne Heckrotor würde sich der Rotor 
in die  eine Richtung bewegen und die Kabine in die andere Richtung.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.