Ein balancierender Bot ist von der Thematik her schon ziemlich kompliziert, das mußte ich jetzt auch feststellen, nachdem ich mich auch damit befasst habe.

Grundsätzlich reicht ein PID- oder PD-Regler aus, um eine inverses Pendel (balancierenden Bot) zu stabilisieren. Aber in der Praxis hat das einen Haken. Da ein PID-Regler ein SISO-Sytem (single Input single Output) ist, kann er nur eine Regelgröße überwachen und eine Stellgröße ausgeben. Beim inversen Pendel ist die Regelgröße der Winkel, der so geregelt wird, dass das Pendel aufrecht stehen bleibt. Dabei kann sich aber eine beliebige konstante Geschwindigkeit des Bots einstellen. Um auch noch die Geschwindigkeit oder die Position mit zu berücksichtigen braucht es eine Mehrgrößenregelung. Das kann z.B. ein Zustandsregler (ist sehr kompliziert). Erschwerend kommt noch hinzu, dass ein Neigungssensor wahrscheinlich immer einen kleinen Offset hat. Die PID-Regelung wird den Bot genau auf den Offset (=Neigung) regeln. Um die Neigung stabil zu halten, bedarf es einer konstanten Beschleunigung, d.h. in der Praxis wird der Bot nach dem Einschwingen in eine Richtung solange beschleunigen, bis er nicht mehr kann und umfällt.

Ich habe meinen Asuro (mit Abstandssensor zum Boden ausgerichtet) nur in einer Mulde ins Gleichgewicht gebracht. Da kann er sich dann an den richtigen Abstand hin regeln. Auf einer ebenen Fläche klappt es bei mir auch noch nicht. Ich muss also auch noch eine 2. Regelgröße ins Spiel bringen. Da bin ich auch erst durch die Versuche darauf gekommen.

Waste