
Diese C ++ 17 -Bibliothek bietet einen Rahmen zum Erstellen von BehaviorTrees. Es war flexibel, einfach zu bedienen, reaktiv und schnell zu sein.
Auch wenn unser Hauptnutzungsfall Robotik ist, können Sie diese Bibliothek verwenden, um KI für Spiele zu erstellen oder endliche Staatsmaschinen zu ersetzen.
Es gibt nur wenige Funktionen, die im Vergleich zu anderen Implementierungen Verhaltensree.cpp einzigartig machen:
Es macht asynchrone Handlungen , dh nicht blockiert, ein erstklassiger Bürger.
Sie können reaktive Verhaltensweisen erstellen, die mehrere Aktionen gleichzeitig ausführen (Orthogonalität).
Bäume werden unter Verwendung einer domänenspezifischen Skriptsprache (basierend auf XML) definiert und können zur Laufzeit geladen werden. Mit anderen Worten, selbst wenn es in C ++ geschrieben wurde, ist die Morphologie der Bäume nicht hartcodiert.
Sie können Ihre benutzerdefinierten Treenodes statisch verknüpfen oder in Plugins konvertieren und sie zur Laufzeit laden.
Es bietet einen Typ-sicher und einen flexiblen Mechanismus, um Datenfluss zwischen Knoten des Baumes durchzuführen.
Es enthält eine Protokollierungs-/Profiling -Infrastruktur, mit der der Benutzer Statusübergänge visualisieren, aufzeichnen, wiederholt und analysiert.
Weitere Informationen zu den Hauptkonzepten, der API und den Tutorials hier: https://www.behaviortree.dev/
Wenn die Dokumentation Ihre Fragen nicht beantwortet und/oder Sie mit den anderen BT.CPP -Benutzern eine Verbindung herstellen möchten, besuchen Sie unser Forum
Das Bearbeiten eines BehaviorTree ist so einfach wie das Bearbeiten einer XML -Datei in Ihrem bevorzugten Texteditor.
Wenn Sie nach einer ausgefalleneren grafischen Benutzeroberfläche suchen (und ich weiß, dass Sie dies tun), überprüfen Sie Groot2.

BT.CPP benötigt ein Kompilieren, das C ++ 17 unterstützt.
Drei Build -Systeme werden unterstützt:
Kompilierung mit Conan:
Angenommen, Sie befinden sich im übergeordneten Verzeichnis von BehaviorTree.CPP :
mkdir build; cd build
conan install ../BehaviorTree.CPP --output-folder=. --build=missing
cmake ../BehaviorTree.CPP -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
cmake --build . --parallel
Wenn Sie Abhängigkeiten wie Zeromq und SQLite bereits installiert haben und CONAN nicht verwenden möchten, geben Sie einfach ein:
mkdir build; cd build
cmake ../BehaviorTree.CPP
cmake --build . --parallel
Wenn Sie in einem PIXI -Projekt (virtuelle Kondaumgebung) aufbauen möchten.
pixi run build
Wenn Sie BT.CPP in Ihrer Bewerbung verwenden möchten, finden Sie hier das Beispiel: https://github.com/behaviortree/BTCPP_Sample.
Verwenden Sie BT.CPP in Ihrem kommerziellen Produkt und benötigen Sie technischen Support / Beratung? Sie können den Hauptautor, [email protected] , kontaktieren, um Ihren Anwendungsfall und Ihre Bedürfnisse zu besprechen.
Version 3.8 der Software finden Sie im Zweig v3.8.
Diese Zweigstelle kann Fehlerbehebungen erhalten, aber die neuen Funktionen werden nur in der Master -Filiale implementiert.
Die MIT -Lizenz (MIT)
Copyright (C) 2019-2023 Davide Faconti
Copyright (C) 2018-2019 Davide Faconti, Eurcat
Copyright (C) 2014-2018 Michele Colledanchise
Die Erlaubnis wird hiermit kostenlos an eine Person erteilt, die eine Kopie dieser Software und zugehörigen Dokumentationsdateien ("Software") erhält, um die Software ohne Einschränkung zu behandeln, einschließlich ohne Einschränkung der Rechte zu verwenden, zu kopieren, zu modifizieren, zu verschmelzen, verschmelzen , veröffentlichen, vertreiben, unterlizenzieren und/oder Kopien der Software verkaufen und Personen, denen die Software dazu bereitgestellt wird, unter den folgenden Bedingungen ermöglicht:
Die oben genannte Copyright -Mitteilung und diese Erlaubnisbekanntmachung müssen in alle Kopien oder wesentlichen Teile der Software enthalten sein.
Die Software wird "wie es ist" ohne Garantie jeglicher Art, ausdrücklich oder stillschweigend bereitgestellt, einschließlich, aber nicht beschränkt auf die Gewährleistung der Handelsfähigkeit, die Eignung für einen bestimmten Zweck und die Nichtverletzung. In keinem Fall haftet die Autoren oder Urheberrechtsinhaber für Ansprüche, Schäden oder andere Haftungen, sei es in einer Vertragsklage, unerlaubter Handlung oder anderweitig, aus oder im Zusammenhang mit der Software oder anderen Geschäften in der SOFTWARE.