Sobre el proyecto
BehaviorTree.CPP es un framework de C++17 para crear árboles de comportamiento. El proyecto afirma que fue diseñado para ser flexible, fácil de usar, reactivo y rápido. Su caso de uso principal es la robótica, pero el README señala que también puede usarse para crear IA para juegos o para reemplazar máquinas de estados finitos.
Características clave destacadas por el proyecto:
- Las acciones asíncronas y no bloqueantes se tratan como ciudadanos de primera clase.
- Los comportamientos reactivos pueden ejecutar múltiples acciones de forma concurrente (ortogonalidad).
- Los árboles se definen con un lenguaje de scripting de dominio específico basado en XML y pueden cargarse en tiempo de ejecución, por lo que la morfología del árbol no está codificada de forma rígida aunque la biblioteca esté escrita en C++.
- Los nodos de árbol personalizados pueden enlazarse estáticamente o convertirse en plugins y cargarse en tiempo de ejecución.
- Un mecanismo flexible y con seguridad de tipos admite el flujo de datos entre los nodos del árbol.
- Una infraestructura de registro/perfilado permite a los usuarios visualizar, grabar, reproducir y analizar transiciones de estado.
Los recursos de documentación y comunidad incluyen el sitio oficial behaviortree.dev para tutoriales y documentación general, páginas Doxygen generadas automáticamente y GitHub Discussions para soporte de la comunidad. Se ofrece un editor gráfico llamado Groot2 para editar árboles de comportamiento, aunque también es posible editar XML simple en cualquier editor de texto.
Opciones de compilación e instalación descritas en el README:
- Se requiere un compilador compatible con C++17.
- Se admiten tres sistemas de compilación: colcon (ament) para usuarios de ROS2, conan para Linux/Windows y CMake directamente para usuarios que gestionan sus propias dependencias.
- Las compilaciones con Conan requieren CMake 3.23 o posterior. Los comandos típicos son conan install, luego cmake con el preset conan-release y después cmake --build con el mismo preset.
- Sin conan, si dependencias como ZeroMQ y SQLite ya están instaladas, los usuarios pueden configurar y compilar con comandos CMake simples.
- Hay disponible un flujo de trabajo con pixi (entorno virtual de conda) mediante pixi run build.
- La biblioteca también puede instalarse a través de vcpkg usando el port behaviortree-cpp.
En el README se enlaza una aplicación de ejemplo que muestra cómo usar BT.CPP. La versión 3.8 está disponible en una rama separada, que puede recibir correcciones de errores, mientras que las nuevas características se implementan solo en la rama master. El autor principal ofrece soporte comercial y consultoría si se le contacta. El proyecto se publica bajo la Licencia MIT, con derechos de autor atribuidos a Davide Faconti y Michele Colledanchise en varios años.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.