RAFCON

Screenshot einer beispielhaften RAFCON-Zustandsmaschine

RAFCON (RMC advanced flow control) ist ein Softwarewerkzeug, das es ermöglicht, hierarchische Zustandsmaschinen (engl. "state machines") mit Hilfe einer funktionsreichen grafischen Benutzeroberfläche (GUI) visuell zu programmieren. Es ist mit der Interpretersprache Python programmiert. Da diese nicht kompiliert werden muss, können Zustandsmaschinen sogar während ihrer Ausführung modifiziert werden. Darüber hinaus erleichtert Python die Integration verschiedener, heterogener Komponenten eines robotischen Systems, die in verschieden Sprachen geschrieben sein können. Die neuartige Visualisierung von hierarchischen Zustandsmaschinen im Zusammenspiel mit ausgereiften Debugwerkzeugen ermöglicht es, Ideen schnell umzusetzen und zu testen, ohne dass tiefgehende Programmierkenntnisse nötig sind. RAFCON unterstützt die kollaborative Entwicklung von einzelnen Zustandsmaschinen. Während des SpaceBotCamp-Wettbewerbs wurde die Funktionstüchtigkeit unseres Softwarewerkzeugs unter Beweis gestellt.

Kern

Der Kern von RAFCON, das Konzept der Zustandsmaschine, ist getrennt von der grafischen Darstellung. Die Programmierschnittstelle (API) kann somit zur programmatischen Erstellung von Zustandsmaschinen benutzt werden. Diese Zustandsmaschinen können hierarchisch organisiert sein und Nebenläufigkeiten enthalten. Mittels eines Bibliothekskonzepts für Zustände können einmal erstellte Zustandsmaschinen in anderen Abläufen wiederverwendet werden. Der Datenfluss innerhalb einer Zustandsmaschine ist dabei durch Datenports und Datenflüsse explizit definiert. Darüber hinaus ist die Ausführung sehr flexibel: (Rückwärts-)Schritte, Pausen, Sprünge und weitere Eingriffsmöglichkeiten werden unterstützt.

Grafische Benutzeroberfläche (GUI)

Screenshot einer relativen komplexen RAFCON-Zustandsmaschine, aus der komplett herausgezoomt wurde

Die GUI von RAFCON erlaubt (neben der API) die komplette Erstellung und Modifikation von Zustandsmaschinen von Hand. Dies ist ein großer Vorteil gegenüber z. B. SMACH. Die Bearbeitungshistorie ermöglicht es, in der Zeit zurückzugehen, wenn Fehler gemacht wurden. Darüber hinaus kann die Oberfläche zum Debuggen einer Zustandsmaschine genutzt werden, etwa mit Hilfe der Ausführungshistorie und der Logbuchausgabe. Der grafische Editor zeigt verschachtelte Zustände kleiner als ihre übergeordneten Zustände. Damit werden unwichtige Details ausgeblendet, die jedoch jeder Zeit über intuitive Navigationsmechanismen, wie Zoomen und Verschieben wieder hervorgeholt werden können.

Open Source

RAFCON ist unter einer Open-Source-Lizenz auf GitHub veröffentlicht, siehe https://github.com/DLR-RM/RAFCON.

Links

Kontakt

Rafcon-Team

Institut für Robotik und Mechatronik
Münchener Straße 20, 82234 Oberpfaffenhofen-Weßling