À propos du projet

BehaviorTree.CPP est un framework C++17 pour créer des arbres de comportement. Le projet indique qu'il a été conçu pour être flexible, facile à utiliser, réactif et rapide. Son cas d'utilisation principal est la robotique, mais le README note qu'il peut également être utilisé pour construire l'IA de jeux ou pour remplacer les machines à états finis. Caractéristiques clés mises en avant par le projet : - Les actions asynchrones et non bloquantes sont traitées comme des citoyens de première classe. - Les comportements réactifs peuvent exécuter plusieurs actions simultanément (orthogonalité). - Les arbres sont définis avec un langage de script spécifique au domaine basé sur XML et peuvent être chargés à l'exécution, de sorte que la morphologie de l'arbre n'est pas codée en dur même si la bibliothèque est écrite en C++. - Les nœuds d'arbre personnalisés peuvent être liés statiquement ou convertis en plugins et chargés à l'exécution. - Un mécanisme sûr et flexible prend en charge le flux de données entre les nœuds de l'arbre. - Une infrastructure de journalisation/profilage permet aux utilisateurs de visualiser, enregistrer, rejouer et analyser les transitions d'état. Les ressources de documentation et de communauté incluent le site officiel behaviortree.dev pour les tutoriels et la documentation générale, des pages Doxygen générées automatiquement, et GitHub Discussions pour le support communautaire. Un éditeur graphique appelé Groot2 est proposé pour éditer les arbres de comportement, tandis que l'édition XML simple dans n'importe quel éditeur de texte est également possible. Options de construction et d'installation décrites dans le README : - Un compilateur prenant en charge C++17 est requis. - Trois systèmes de construction sont pris en charge : colcon (ament) pour les utilisateurs ROS2, conan pour Linux/Windows, et CMake direct pour les utilisateurs gérant eux-mêmes les dépendances. - Les constructions Conan nécessitent CMake 3.23 ou plus récent. Les commandes typiques sont conan install, puis cmake avec le preset conan-release, puis cmake --build avec le même preset. - Sans conan, si des dépendances telles que ZeroMQ et SQLite sont déjà installées, les utilisateurs peuvent configurer et construire avec des commandes CMake simples. - Un flux de travail pixi (environnement virtuel conda) est disponible via pixi run build. - La bibliothèque peut également être installée via vcpkg en utilisant le port behaviortree-cpp. Un exemple d'application montrant comment utiliser BT.CPP est lié dans le README. La version 3.8 est disponible sur une branche séparée, qui peut recevoir des corrections de bugs, tandis que les nouvelles fonctionnalités ne sont implémentées que sur la branche master. Un support commercial et des services de conseil sont offerts en contactant l'auteur principal. Le projet est publié sous la licence MIT, avec des droits d'auteur attribués à Davide Faconti et Michele Colledanchise sur diverses années.