BehaviorTree.CPP
C++-Bibliothek für Behavior Trees zur Aufgabenplanung von Robotern, auf der Nav2 und ROS-2-Systeme aufbauen
Lizenz
MIT
Überblick
BehaviorTree.CPP ist eine C++-Bibliothek zum Erstellen und Ausführen von Behavior Trees für die Aufgabenplanung von Robotern. Bäume werden in XML definiert und aus Action-, Condition-, Control- und Decorator-Knoten aufgebaut, die Daten über ein Blackboard austauschen, mit Logging und Wiedergabe zum Debuggen. Sie ist die Grundlage der verhaltensbasierten Navigation in Nav2 für ROS 2.
BehaviorTree.CPP ist eine Hochleistungs-C++-Bibliothek zum Erstellen von Verhaltensbäumen, die in der Robotik weit verbreitet für Aufgabenplanung und -ausführung verwendet wird. Sie ist die Grundlage für das verhaltensbasierte Navigationssystem von Nav2.
Wichtige Merkmale umfassen: - XML-basierte Baumdefinition - Benutzerdefinierte Knotentypen (Action, Condition, Control, Decorator) - Blackboard für Datenaustausch - Protokollierung und Wiedergabe zur Fehlersuche - Echtzeitfähige Ausführung - Groot grafischer Editor - ROS 2-Integration - Umfangreiche Dokumentation und Tutorials
Die Bibliothek wird von vielen Robotikunternehmen in der Produktion für komplexe Aufgabenausführung eingesetzt, von Manipulationssequenzen bis zur Koordination mehrerer Roboter.
Warum es wichtig ist
BehaviorTree.CPP ist das Standard-Framework für die Aufgabenplanung von Robotern in ROS 2. Es bietet die strukturierte Methode zur Komposition komplexer Roboterverhalten, auf die Nav2 und viele andere ROS-2-Pakete angewiesen sind — und ist damit grundlegende Infrastruktur für autonome Roboter.
Welches Problem es löst
Komplexe Roboterverhalten (navigieren, aufheben, inspizieren, sich von Fehlern erholen) lassen sich nur schwer als endliche Zustandsautomaten ausdrücken. Behavior Trees bieten eine modulare, hierarchische Alternative, die sich leichter entwerfen, debuggen und ändern lässt.
Wichtigste Punkte
- C++-Bibliothek nach Industriestandard für die Ausführung von Behavior Trees
- Grundlage der Nav2-Navigation und vieler ROS-2-Autonomiepakete
- Grafischer Editor (Groot2) für den visuellen Entwurf von Behavior Trees
- Unterstützt asynchrone Aktionen, Subtrees und Änderungen am Baum zur Laufzeit
- Reaktive und modulare Architektur für komplexe Roboterverhalten
Für wen
- ROS-2-Entwickler, die autonome Roboterverhalten entwickeln
- Robotikingenieure, die Aufgabenplanungssysteme entwerfen
- Teams, die Nav2 nutzen und eigene Navigationsverhalten benötigen
- Spieleentwickler, die Behavior Trees auf Roboter-KI anwenden
Einschränkungen
- Als C++-Bibliothek erfordert sie C++-Kenntnisse für eigene Knoten
- Entwurfsmuster für Behavior Trees erfordern Einarbeitung
- Der grafische Editor Groot2 ist für erweiterte Funktionen kommerziell
- Das Debuggen komplexer Bäume erfordert Verständnis der Tick-Propagation