Im Rahmen der Vorlesung „Datenverarbeitung in der Technik“ (DT) wurde der Regensburger Balance Bot (ReBaBo) entwickelt – ein autonomer, zweirädriger Roboter, der nach dem Prinzip des inversen Pendels balanciert. Mein Fokus in diesem Projekt lag auf der Konzeption und Implementierung der Regelungstechnik mittels Fuzzy Logik.
Systemarchitektur
Der ReBaBo basiert auf einer Dual-Plattform-Strategie:
- Infineon XE167F: Zuständig für die hardwarenahe Steuerung, Sensorik (Gyroskop, Beschleunigungssensor, Radencoder) und die Echtzeit-Regelung.
- BeagleBoard (ARM): Übernimmt High-Level-Aufgaben wie Kommunikation und zukünftige Erweiterungen.
Die Fuzzy-Regelung
Anstelle eines klassischen PID-Reglers wurde eine Fuzzy-Logik eingesetzt, um das komplexe Balancier-Verhalten abzubilden. Die Regelung verarbeitet drei wesentliche Eingangsgrößen:
- Winkelgeschwindigkeit ($\omega$): Direkt vom Gyrosensor geliefert.
- Neigungswinkel ($\alpha$): Berechnet aus den Werten des Beschleunigungssensors.
- Positionsabweichung: Ermittelt über die Radencoder, um ein unkontrolliertes Wegfahren (Drift) zu verhindern.
Fuzzifizierung und Regelwerk
Die Eingangsgrößen werden in linguistische Terme (Fuzzy Sets) wie Negative Big (NB), Zero (ZE) oder Positive Small (PS) übersetzt. Das Regelwerk verknüpft diese Terme, um die notwendige Motorgeschwindigkeit zu bestimmen.
| Winkel \ $\omega$ | NB | NM | ZE | PS | PB |
|---|---|---|---|---|---|
| NB | NB | NB | NM | - | - |
| NM | NB | NM | NS | - | - |
| ZE | NM | NS | ZE | PS | PM |
| PM | - | - | PS | PM | PB |
| PB | - | - | PM | PB | PB |
Auszug aus der Entscheidungstabelle für Winkel und Winkelgeschwindigkeit.
Implementierungsdetails (Embedded C)
Die Umsetzung erfolgte in C auf dem XE167F unter Einsatz des Echtzeitbetriebssystems µC/OS-II. Da der Controller über keine Fließkommaeinheit (FPU) verfügte, wurde die gesamte Fuzzy-Arithmetik für eine effiziente Ausführung optimiert, um die Rechenlast gering zu halten.
- FuzzySets: Definition von Trapez- und Dreiecksfunktionen für die Zugehörigkeitsgrade.
- Inferenz: Anwendung der Min-Max-Methode.
- Defuzzifizierung: Berechnung des scharfen Ausgangswerts (Motordutycycle) mittels der Schwerpunktmethode (Center of Gravity).
Ergebnis
Die Fuzzy-Regelung ermöglichte es dem ReBaBo, stabil im Stillstand zu balancieren und externe Störungen (wie leichtes Anstoßen) autonom auszugleichen. Durch die Einbeziehung der Radencoder-Daten konnte zudem die Position im Raum stabilisiert werden.