E
e.
User
- xabsl - Die erweiterbare Sprache zur...
- #1
Was ist XABSL?
Die Extensible Agent Behavior Specification Language XABSL ist eine sehr einfache Sprache zur Beschreibung des Verhaltens von autonomen Agenten auf der Basis von hierarchischen endlichen Zustandsautomaten. XABSL wurde entwickelt, um das Verhalten von Fußballrobotern zu entwerfen. In XABSL spezifizierte Verhaltensweisen haben sich beim RoboCup seit 2004 als sehr erfolgreich erwiesen. 2004, 2005 und 2008 hat das GermanTeam die Wettbewerbe in der Standard Platform League (mit Sony Aibo-Robotern) gewonnen. Die Darmstadt Dribblershaben 2009 und 2010 den Wettbewerb in der Humanoid Kid Size gewonnen. Die Verwendung der Sprache ist jedoch nicht auf Roboterfußball beschränkt. XABSL ist eine gute Wahl, um Verhaltensweisen für alle Arten von autonomen Robotern oder virtuellen Agenten wie Charaktere in Computerspielen zu beschreiben.Beispiele
- Die Quellen und die Dokumentation einer XABSL-Beispielimplementierung für den ASCII Soccer Simulator. Diese Verhaltensweisen sind auch in der XABSL-Veröffentlichung enthalten, so dass Sie mit ihnen herumspielen können.
- Die Dokumentation der Verhaltensweisen des GermanTeam für ihren siegreichen Beitrag zur RoboCup 2008 Standard Platform League.
Veröffentlichungen
M. Risler. Verhaltenssteuerung für einzelne und mehrere autonome Agenten auf der Basis hierarchischer endlicher Zustandsautomaten. Fortschritt-Berichte VDI Reihe 10: Informatik/Kommunikation, Nr. 801, Darmstadt, VDI-Verlag, 2009 [bibtex]M. Risler und O. von Stryk. Formale Verhaltensspezifikation von Multi-Roboter-Systemen mit hierarchischen Zustandsmaschinen in XABSL. In AAMAS08-Workshop über formale Modelle und Methoden für Multi-Roboter-Systeme, Estoril, Portugal, 2008 [bibtex]
M. Lötzsch, M. Risler, und M. Jüngel. XABSL - Ein pragmatischer Ansatz für Behavior Engineering. In Proceedings of IEEE/RSJ International Conference of Intelligent Robots and Systems (IROS), Seiten 5124-5129, Beijing, China, 2006 [bibtex]
M. Lötzsch. XABSL - Ein Behavior Engineering System für autonome Agenten. Diplomarbeit. Humboldt-Universität zu Berlin, 2004 [bibtex ]
M. Lötzsch, J. Bach, H.-D. Burkhard, und M. Jüngel. Designing Agent Behavior with the Extensible Agent Behavior Specification Language XABSL. In D. Polani, B. Browning, and A. Bonarini, editors, RoboCup 2003: Robot Soccer World Cup VII, Band 3020 von Lecture Notes in Artificial Intelligence, Seiten 114-124, Padova, Italien, 2004. Springer, [bibtex]
Was brauchen Sie, um XABSL für Ihren Agenten zu verwenden?
Um XABSL für Ihren Agenten zu verwenden, brauchen Sie nur drei Dinge:- Einen Texteditor Ihrer Wahl
- Den XABSL-Compiler (Ruby-basiert)
- Die XabslEngine (C++- oder Java-Bibliothek)
Wie beschreibt man Verhaltensweisen mit XABSL?
In XABSL werden komplexe Verhaltensweisen als hierarchische endliche Zustandsmaschinen beschrieben. Um XABSL zu verwenden, müssen Sie vier Konzepte kennen: Agenten, Optionen, Zustände und Entscheidungsbäume.Agenten
In XASBL besteht ein Agent aus einer Reihe von Verhaltensmodulen, den Optionen. Die Optionen sind in einem verwurzelten gerichteten azyklischen Graphen, dem Optionsgraphen, angeordnet.Optionen
Optionen sind Verhaltensmodule, die die hierarchische Dekomposition des komplexen Agentenverhaltens bilden. Untere Hierarchieebenen bestehen aus primitiven Verhaltensweisen, die zu komplexeren Verhaltensoptionen zusammengesetzt werden.Zustände
Jede Option ist ein endlicher Zustandsautomat. Die Zustände einer Option definieren die Aktionen, die aktiv sind. Die Aktionen eines Zustands können auf andere Optionen verweisen und ermöglichen so die Zerlegung einer Aufgabe in primitive Optionen.Entscheidungsbäume
Die Zustandsübergänge werden durch Entscheidungsbäume definiert. Entscheidungsbäume können auf Eingabesymboleverweisen, um auf Eingabedaten wie den Weltzustand des Agenten oder sensorische Daten zuzugreifen.Wie funktionieren sie?
Das Diagramm auf der rechten Seite zeigt das Optionsdiagramm eines einfachen Torwartverhaltens. Kästchen bezeichnen Optionen, Ellipsen bezeichnen grundlegende Verhaltensweisen. Die Grundverhaltensweisen stellen die verfügbaren Grundfähigkeiten dar. Die Kanten zeigen, welche andere Option oder Grundverhaltensweise aus einer Option heraus aktiviert werden kann.Aufgabe des Optionsgraphen ist es, eines der Grundverhaltensweisen zu aktivieren und zu parametrisieren, das dann ausgeführt wird. Ausgehend von der Wurzeloption muss jede aktive Option eine andere Option auf einer niedrigeren Ebene im Graphen oder ein Grundverhalten aktivieren und parametrisieren.
Innerhalb von Optionen erfolgt die Aktivierung von Verhaltensweisen auf niedrigeren Ebenen durch Zustandsautomaten. Jeder Zustand hat eine beliebige Anzahl nachfolgender Grundverhaltensweisen von Optionen. Beachten Sie, dass es mehrere Zustände geben kann, die die gleiche Folgeoption oder das gleiche Grundverhalten haben.
Das Diagramm auf der rechten Seite zeigt den internen Zustandsautomaten der Option "Torwart spielen". Kreise bezeichnen Zustände, der Kreis mit den beiden horizontalen Linien bezeichnet den Ausgangszustand. Eine Kante zwischen zwei Zuständen zeigt an, dass es mindestens einen Übergang von einem Zustand in den anderen gibt. Die gestrichelten Kanten zeigen, welche andere Option oder welches Grundverhalten aktiviert wird, wenn der entsprechende Zustand aktiv ist.
Jede Option hat einen Ausgangszustand. Dieser Zustand wird aktiviert, wenn die Option bei der letzten Ausführung des Optionsgraphen nicht aktiv war. Zusätzlich können Zustände als Zielzustände deklariert werden. In den obigen Optionen kann dann abgefragt werden, ob die nachfolgende Option einen solchen Zielzustand erreicht hat, um zu überprüfen, ob ein Verhalten erfolgreich war.
Zusätzlich kann jeder Zustand spezielle Anforderungen(Ausgabesymbole) setzen, die neben den Aktionen, die aus den Basisverhaltensweisen generiert werden, die Informationsverarbeitung beeinflussen.
Jeder Zustand hat einen Entscheidungsbaum mit Übergängen zu anderen Zuständen an den Blättern. Für die Entscheidungen können der Weltzustand des Agenten, andere sensorische Informationen und Nachrichten von anderen Agenten verwendet werden. Da das Timing oft wichtig ist, kann die Zeit, wie lange der Zustand bereits aktiv ist, und die Zeit, wie lange die Option bereits aktiv ist, berücksichtigt werden.
Das Diagramm rechts zeigt den Entscheidungsbaum des Zustands "get-to-ball". Die Blätter des Baums sind Übergänge zu anderen Zuständen. Der gestrichelte Kreis kennzeichnet einen Übergang in den aktuellen Zustand.
Die Ausführung des Optionsgraphen beginnt bei der Wurzeloption des Agenten. Für jede Option wird der Zustandsautomat einmal durchlaufen, der Entscheidungsbaum des aktiven Zustands wird ausgeführt, um den nächsten aktiven Zustand zu bestimmen. Dies wird für die nachfolgenden Optionen des aktiven Zustands fortgesetzt.
Während der Ausführung des Verhaltens bilden die Optionen und grundlegenden Verhaltensweisen, die in einem bestimmten Zeitschritt aktiviert werden, einen verwurzelten Baum, der ein Teilbaum des Optionsgraphen ist, den so genannten Optionsaktivierungsbaum. Das Diagramm auf der rechten Seite zeigt ein Beispiel für einen Optionsgraphen eines einfachen Roboterfußballverhaltens mit zwei Spielern. Es zeigt die Zerlegung der Aufgabe des Fußballspielens in mehrere Optionen und ein Grundverhalten. Die Kästchen stehen für die Optionen, die Ellipsen für das Grundverhalten. Die Kanten zeigen, welche Optionen von einer anderen Option aktiviert werden können. Die hervorgehobenen Optionen, Grundverhalten und Kanten zeigen ein Beispiel für einen möglichen Optionsaktivierungsbaum, der anzeigt, welche Verhaltensweisen während eines bestimmten Zeitschritts aktiviert werden.
Agenten, die dieser schichtweisen Zustandsmaschinenarchitektur folgen, können vollständig in XABSL beschrieben werden. Es gibt Sprachelemente für Optionen, ihre Zustände und ihre Entscheidungsbäume. Boolesche Logik (||, &&, !, ==, !=, <, <=, > und >=) und einfache arithmetische Operatoren (+, -, *, / und %) können für bedingte Ausdrücke verwendet werden. Benutzerdefinierte arithmetische Funktionen (z.B. distance-to(x, y)), die nicht Teil der Sprache sind, können einfach definiert und in Instanzdokumenten verwendet werden.
Symbole werden in XABSL-Instanzdokumenten definiert, um die Interaktion mit der Softwareumgebung zu formalisieren. Interaktion bedeutet Zugriff auf Eingabefunktionen und Variablen (z. B. aus dem Weltzustand) und auf Ausgabefunktionen (z. B. um Anforderungen an andere Teile der Informationsverarbeitung zu stellen). Für jede Variable oder Funktion, die für Bedingungen verwendet werden soll, muss ein Symbol definiert werden. Dies macht die XABSL-Architektur und -Programmiersprache unabhängig von bestimmten Softwareumgebungen und Plattformen.
Da grundlegende Verhaltensweisen extern implementiert werden, müssen Prototypen und Parameterdefinitionen in einem XABSL-Dokument spezifiziert werden, damit Zustände darauf verweisen können.
Zuletzt bearbeitet von einem Moderator: