
Esta biblioteca C ++ 17 proporciona un marco para crear BehaviorTrees. Fue diseñado para ser flexible, fácil de usar, reactivo y rápido.
Incluso si nuestro principal caso de uso es la robótica , puede usar esta biblioteca para construir IA para juegos o para reemplazar las máquinas de estado finitas.
Hay pocas características que hacen que BehavehTree.cpp sea único, en comparación con otras implementaciones:
Hace que las acciones asíncronas , es decir, no bloqueen, un ciudadano de primera clase.
Puede construir comportamientos reactivos que ejecuten múltiples acciones simultáneamente (ortogonalidad).
Los árboles se definen utilizando un lenguaje de secuencias de comandos específico de dominio (basado en XML), y se pueden cargar en tiempo de ejecución; En otras palabras, incluso si se escribe en C ++, la morfología de los árboles no está codificada.
Puede vincular estáticamente sus treeNodes personalizados o convertirlos en complementos y cargarlos en tiempo de ejecución.
Proporciona un mecanismo de tipo seguro y flexible para hacer un flujo de datos entre los nodos del árbol.
Incluye una infraestructura de registro/perfil que permite al usuario visualizar, registrar, reproducir y analizar las transiciones de estado.
Puede aprender sobre los conceptos principales, la API y los tutoriales aquí: https://www.behaviortree.dev/
Si la documentación no responde a sus preguntas y/o desea conectarse con los otros usuarios de BT.CPP , visite nuestro foro
Editar un comportamiento es tan simple como editar un archivo XML en su editor de texto favorito.
Si está buscando una interfaz gráfica de usuario más elegante (y sé que lo hace), consulte Groot2.

BT.CPP requiere una compilación que admite C ++ 17.
Se admiten tres sistemas de compilación:
Compilación con Conan:
Suponiendo que se encuentra en el directorio principal de 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
Si tiene dependencias como ZEROMQ y SQLITE ya instalados y no desea usar Conan, simplemente escriba:
mkdir build; cd build
cmake ../BehaviorTree.CPP
cmake --build . --parallel
Si desea construir un proyecto PIXI (entorno virtual de conda).
pixi run build
Si desea usar BT.CPP en su aplicación, consulte el ejemplo aquí: https://github.com/behaviortree/btcpp_sample.
¿Está utilizando BT.CPP en su producto comercial y necesita soporte técnico / consultoría? Puede comunicarse con el autor principal, [email protected] , para discutir su caso de uso y necesidades.
La versión 3.8 del software se puede encontrar en la rama v3.8.
Esa rama puede recibir correcciones de errores, pero las nuevas características se implementarán solo en la rama maestra.
La licencia del MIT (MIT)
Copyright (c) 2019-2023 Davide Faconti
Copyright (c) 2018-2019 Davide Faconti, EURECAT
Copyright (c) 2014-2018 Michele Colledanchise
El permiso se otorga, de forma gratuita, a cualquier persona que obtenga una copia de este software y archivos de documentación asociados (el "software"), para tratar el software sin restricción, incluidos los derechos de usar, copiar, modificar, modificar, modificar, fusionar , publique, distribuya, sublicence y venda copias del software, y para permitir a las personas a las que se proporciona el software para hacerlo, sujeto a las siguientes condiciones:
El aviso de derechos de autor anterior y este aviso de permiso se incluirán en todas las copias o porciones sustanciales del software.
El software se proporciona "tal cual", sin garantía de ningún tipo, expresa o implícita, incluidas, entre otros, las garantías de comerciabilidad, idoneidad para un propósito particular y no infracción. En ningún caso los autores o titulares de derechos de autor serán responsables de cualquier reclamo, daños u otro responsabilidad, ya sea en una acción de contrato, agravio o de otro tipo, derivado, de o en relación con el software o el uso u otros tratos en el SOFTWARE.