BehaviorTree.CPP
Biblioteca C++ de árboles de comportamiento para la planificación de tareas robóticas, base de Nav2 y de sistemas ROS 2
Licencia
MIT
Resumen
BehaviorTree.CPP es una biblioteca de C++ para crear y ejecutar árboles de comportamiento para la planificación de tareas de robots. Los árboles se definen en XML y se construyen con nodos Action, Condition, Control y Decorator que comparten datos a través de una pizarra (blackboard), con registro y reproducción para la depuración. Es la base de la navegación basada en comportamientos de Nav2 para ROS 2.
BehaviorTree.CPP es una biblioteca C++ de alto rendimiento para crear árboles de comportamiento, ampliamente utilizada en robótica para planificación y ejecución de tareas. Es la base del sistema de navegación basado en comportamiento de Nav2.
Las características clave incluyen: - Definición de árbol basada en XML - Tipos de nodos personalizados (Action, Condition, Control, Decorator) - Pizarra para compartir datos - Registro y reproducción para depuración - Ejecución capaz en tiempo real - Editor gráfico Groot - Integración con ROS 2 - Documentación y tutoriales extensos
La biblioteca es utilizada en producción por muchas empresas de robótica para ejecución de tareas complejas, desde secuencias de manipulación hasta coordinación multi-robot.
Por qué importa
BehaviorTree.CPP es el framework estándar para la planificación de tareas robóticas en ROS 2. Ofrece la forma estructurada de componer comportamientos robóticos complejos en la que se apoyan Nav2 y muchos otros paquetes de ROS 2, lo que lo convierte en infraestructura fundamental para robots autónomos.
Qué problema resuelve
Los comportamientos robóticos complejos (navegar, recoger, inspeccionar, recuperarse de errores) son difíciles de expresar como máquinas de estados finitos. Los árboles de comportamiento ofrecen una alternativa modular y jerárquica, más fácil de diseñar, depurar y modificar.
Puntos clave
- Biblioteca C++ estándar de la industria para ejecutar árboles de comportamiento
- Base de la navegación de Nav2 y de muchos paquetes de autonomía de ROS 2
- Editor gráfico (Groot2) para diseñar árboles de comportamiento visualmente
- Admite acciones asíncronas, subárboles y modificación del árbol en tiempo de ejecución
- Arquitectura reactiva y modular para comportamientos robóticos complejos
Para quién es
- Desarrolladores de ROS 2 que construyen comportamientos de robots autónomos
- Ingenieros de robótica que diseñan sistemas de planificación de tareas
- Equipos que usan Nav2 y necesitan comportamientos de navegación propios
- Desarrolladores de videojuegos que aplican árboles de comportamiento a la IA de robots
Limitaciones
- Al ser una biblioteca C++, los nodos personalizados exigen saber C++
- Los patrones de diseño de árboles de comportamiento tienen una curva de aprendizaje
- El editor gráfico Groot2 es comercial para las funciones avanzadas
- Depurar árboles complejos requiere entender la propagación de los ticks