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
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.
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.
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
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 ;-)
Martin R. schrieb: > eine entsprechende > Lektüre empfehlen https://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum§ion=SystemModeling https://users.soe.ucsc.edu/~slogan/Pendulum/Inverted_Pendulum_MATLAB_Manual.pdf HTH LG, Sebastian
Danke allen für die Antworten! Da muss ich mich dann erstmal einarbeiten.
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.
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.
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.
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". ;-)
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.