xabsl - Die erweiterbare Sprache zur Spezifikation des Agentenverhaltens

Diskutiere, xabsl - Die erweiterbare Sprache zur Spezifikation des Agentenverhaltens in iPhone Allgemein forum; Was ist XABSL? Die Extensible Agent Behavior Specification Language XABSL ist eine sehr einfache...
E
edo224
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​

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)
Das Verhalten wird durch eine Reihe von .xabsl-Dateien beschrieben. Diese müssen mit dem XABSL-Compiler zu einem Zwischencode kompiliert werden. Beim Start des Agenten wird dieser Zwischencode von der XabslEngine gelesen, die das Verhalten zur Laufzeit ausführt.

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:
A
Shona

Lösungsvorschläge

Hey,

Folgende Anleitungen sind nützlich und könnten dir bei der Bewältigung des Problems helfen:
Lösung
P

Werkzeuge​

Aus XABSL-Quelldokumenten können vier Arten von Dokumenten erzeugt werden:

  • Ein Intermediate Code, der von der XabslEngine ausgeführt wird, so dass kein zusätzlicher Parser benötigt wird, da auf vielen eingebetteten Computerplattformen z.B. XML-Parser aufgrund von Ressourcen- und Portabilitätsbeschränkungen nicht verfügbar sind.
  • Eine umfangreiche HTML-Dokumentation mit SVG-Diagrammen für jeden Agenten, jede Option und jeden Zustand, die den Entwicklern hilft zu verstehen, was ihr Verhalten bewirkt. Siehe die Startseite für Beispiele.
  • Debugsymbole, die die Namen aller Optionen, Zustände, grundlegenden Verhaltensweisen und Symbole enthalten, können bei der Implementierung von...
  • xabsl - Die erweiterbare Sprache zur...
  • #2

Werkzeuge​

Aus XABSL-Quelldokumenten können vier Arten von Dokumenten erzeugt werden:

  • Ein Intermediate Code, der von der XabslEngine ausgeführt wird, so dass kein zusätzlicher Parser benötigt wird, da auf vielen eingebetteten Computerplattformen z.B. XML-Parser aufgrund von Ressourcen- und Portabilitätsbeschränkungen nicht verfügbar sind.
  • Eine umfangreiche HTML-Dokumentation mit SVG-Diagrammen für jeden Agenten, jede Option und jeden Zustand, die den Entwicklern hilft zu verstehen, was ihr Verhalten bewirkt. Siehe die Startseite für Beispiele.
  • Debugsymbole, die die Namen aller Optionen, Zustände, grundlegenden Verhaltensweisen und Symbole enthalten, können bei der Implementierung von plattform- und anwendungsabhängigen Debugging-Tools zur Überwachung von Options- und Zustandsaktivierungen sowie von Eingabe- und Ausgabesymbolen hilfreich sein.
  • Eine Schlüsselwortliste, zum Beispiel für die Verwendung von Editoren mit Syntaxhervorhebung.
xabsl_work_flow.gif


Das obige Diagramm zeigt, wie diese Dokumente generiert werden. Die Dokumentation und die Debugsymbole werden mit Hilfe eines XSLT-Prozessors aus einer XML-Zwischendarstellung generiert. Die XML-Darstellung ermöglicht es auch, mit Hilfe von benutzerdefinierten XSLT-Stylesheets verschiedene Inhalte aus XABSL-Quellen zu generieren. Die Dateien werden automatisch mit Hilfe eines Makefiles generiert, das im nächsten Abschnitt beschrieben wird. Für die Ausführung des XABSL-Compilers ist ein Ruby-Interpreter erforderlich.

Anpassen des Makefiles​

Da es sehr viele Eingabedateien und XSLT-Stylesheets gibt, ist es empfehlenswert, ein Makefile zu verwenden, anstatt den XABSL-Compiler und den XSLT-Prozessor direkt auszuführen. Es gibt ein allgemeines XABSL-Makefile. Diese Datei muss in ein eigenes Makefile eingebunden werden, das sich im Verzeichnis der Quelldateien befinden sollte. Das benutzerdefinierte Makefile muss die folgenden Variablen enthalten:

AGENTEN_DATEIDie Stammquelldatei agents.xabsl, die die Verhaltensagenten definiert und auf alle anderen Quelldateien verweist.
QUELLENEine Liste aller XABSL-Quelldateien
XABSL_OUTPUT_DIRVerzeichnis, in dem der Zwischencode und die Debugsymbole erzeugt werden sollen.
XABSL_TEMP_DIRVerzeichnis, in dem die während der Kompilierung erzeugten temporären Dateien gespeichert werden können.
INTERMEDIATE_CODEThe path of the intermediate code to be generated.
DEBUG_SYMBOLEPfad der zu erzeugenden Debugsymbole.
XML_OUTPUT_DIRVerzeichnis, in dem die XML-Darstellung erzeugt werden soll.
XABSL_COMPILER_DIRVerzeichnis, in dem der XABSL-Compiler (die Datei xabsl.rb) zu finden ist.
XABSL_COMPILER_OPTIONENZusätzliche Optionen für den XABSL-Compiler. Siehe unten für eine Beschreibung der möglichen Compiler-Optionen.
DOC_OUTPUT_DIRVerzeichnis für die Dokumentationsausgabe.
XSLTEin XSLT-Prozessor, der XInclude-Anweisungen (mit den erforderlichen Parametern) verarbeiten kann. Wir empfehlen LibXSLT(http://xmlsoft.org/XSLT/).
DOTPfad zum Punktwerkzeug.(http://www.research.att.com/sw/tools/graphviz/). Dies wird für die Diagramme in der HTML-Dokumentation benötigt.
DOTML_DIRVerzeichnis, das die DotML-Schemata und XSLT-Stylesheets enthält(http://www.martin-loetzsch.de/DOTML/). DotML wird benötigt, um die Diagramme in der HTML-Dokumentation zu erstellen.
XABSL_XSL_DIRVerzeichnis der XABSL-Schemas und XSLT-Stylesheets relativ zu den Quelldateien und dem benutzerdefinierten Makefile.
Als letztes muss das gemeinsame Makefile in das Makefile eingebunden werden:

$(XABSL_DIR)/XabslMakefile einschließen


Verwendung des Makefiles​

alles machen
generiert Zwischencode und XML-Darstellung aus XABSL-Quellen. Anschließend werden Dokumentation und Debugsymbole generiert.

DOC machen
erzeugt die Dokumentation. Beachten Sie, dass einzelne HTML-Seiten auch separat erzeugt werden können, indem Sie Folgendes eingeben

dateipfad_und_name_der_HTML_seite.html machen
Einige Abkürzungen:

IC machen
Nur Zwischencode.

DS machen
Nur Debug-Symbole.

Verwendung des XABSL-Compilers​

Der XABSL-Compiler wird durch Ausführen des Ruby-Skripts xabsl.rb aufgerufen. Die folgenden Optionen können bei der Ausführung des XABSL-Compilers in der Befehlszeile angegeben werden:

-q, --leiseUnterdrücken Sie fast jede Ausgabe.
-v, --verboseAusführlich ausführen.
-x, --xml PfadErstellte xml im Pfad.
-i, --Zwischencode DateinameErzeugt Zwischencode in Dateiname.
-a, --api-file DateinameErstellen Sie eine . api-Datei und kopieren Sie sie in den Speicherort von scite/Microsoft Visual Studio.
-m, --vcproj DateinameErstellen einer partiellen .vcproj-Datei, die eine Dateiliste für ein Microsoft Visual Studio-Projekt enthält.
-I, -inkrementelles VerzeichnisInkrementelle Kompilierung, Ablage der Dumpfiles im angegebenen Verzeichnis.
-C, --KommentareEinfügen zusätzlicher Kommentare in generierte Dateien.
-V, --vs-fehler-message-styleErzeugen Sie Microsoft Visual Studio-konforme Fehlermeldungen.
-f, --force-outputErzwingt die Ausgabe, auch wenn Fehler aufgetreten sind.
 
Zuletzt bearbeitet von einem Moderator:
Thema: xabsl - Die erweiterbare Sprache zur Spezifikation des Agentenverhaltens

Similar threads: xabsl - Die erweiterbare Sprache zur Spezifikation des Agentenverhaltens

CarPlay Musikwiedergabe über Sprache/ Dialog: Wenn sich das IPhone mit CarPlay verbindet und Musik aus Spotify etc. wieder gibt dann als Sprache Dialog Ausgabe und nicht als Musik( Musik wird...
Autokorrektur stellt sich nicht mehr auf die verwendete Sprache um: Hallo, ich schreibe häufig WhatsApps und Mails in italienischer Sprache. Vor dem letzten oder vorletztem Softwareupdate stellte sich das System...
Sprache der AirPods einstellen: airpods sprache einstellen [Betreff vom Moderator bearbeitet] 255478331
Vor 20 Jahren sprach Steve Jobs über die Apple Vision Pro: Steve Jobs spricht vor 20 Jahren über die Apple Vision. RED:1an862y
Deutsche Sprache korrekt einstellen: Wie bekomme ich meine Geräte dazu die korrekte deutsche Sprache zu verwenden, ohne diesen Gender-Unfug? 255443459
Mit iOS 17.4 kann Siri Nachrichten in zusätzlichen Sprachen lesen, nicht nur in der Hauptsprache: Mit iOS 17.4 wird die Möglichkeit eingeführt, Siri Sprachen zuzuweisen, die speziell für das Vorlesen von Nachrichten verwendet werden. Die...
Zurück
Oben