
Cette bibliothèque C ++ 17 fournit un cadre pour créer des comportements. Il a été conçu pour être flexible, facile à utiliser, réactif et rapide.
Même si notre principal cas d'utilisation est la robotique , vous pouvez utiliser cette bibliothèque pour construire l'IA pour les jeux ou pour remplacer les machines d'état finies.
Il existe peu de fonctionnalités qui rendent BehaviorTree.Cpp unique, par rapport à d'autres implémentations:
Il fait des actions asynchrones , c'est-à-dire non bloquantes, un citoyen de première classe.
Vous pouvez construire des comportements réactifs qui exécutent plusieurs actions simultanément (orthogonalité).
Les arbres sont définis à l'aide d'un langage de script spécifique au domaine (basé sur XML) et peuvent être chargés au moment de l'exécution; En d'autres termes, même s'ils sont écrits en C ++, la morphologie des arbres n'est pas codée en dur.
Vous pouvez lier statiquement vos treenodes personnalisés ou les convertir en plugins et les charger au moment de l'exécution.
Il fournit un mécanisme de type et flexible pour faire du flux de données entre les nœuds de l'arbre.
Il comprend une infrastructure de journalisation / profilage qui permet à l'utilisateur de visualiser, d'enregistrer, de rejouer et d'analyser les transitions d'état.
Vous pouvez en apprendre davantage sur les principaux concepts, l'API et les tutoriels ici: https://www.behaviantree.dev/
Si la documentation ne répond pas à vos questions et / ou que vous souhaitez vous connecter avec les autres utilisateurs de BT.CPP , visitez notre forum
La modification d'un comportement est aussi simple que de modifier un fichier XML dans votre éditeur de texte préféré.
Si vous recherchez une interface utilisateur graphique plus fantaisie (et je sais que vous le faites), consultez Groot2.

BT.CPP nécessite une compilation qui prend en charge C ++ 17.
Trois systèmes de construction sont pris en charge:
Compilation avec Conan:
En supposant que vous êtes dans le répertoire parent 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 vous avez des dépendances telles que Zeromq et Sqlite déjà installées et que vous ne voulez pas utiliser Conan, tapez simplement:
mkdir build; cd build
cmake ../BehaviorTree.CPP
cmake --build . --parallel
Si vous souhaitez construire dans un projet PIXI (Conda Virtual Environment).
pixi run build
Si vous souhaitez utiliser BT.CPP dans votre application, veuillez vous référer à l'exemple ici: https://github.com/behaviortree/btcpp_sample.
Utilisez-vous BT.CPP dans votre produit commercial et avez-vous besoin d'un support / conseil technique? Vous pouvez contacter l'auteur principal, [email protected] , pour discuter de votre cas d'utilisation et de vos besoins.
La version 3.8 du logiciel se trouve dans la branche V3.8.
Cette branche peut recevoir des corrections de bogues, mais les nouvelles fonctionnalités ne seront implémentées que dans la branche maître.
La licence du MIT (MIT)
Copyright (c) 2019-2023 Davide Faconti
Copyright (c) 2018-2019 Davide Faconti, EURECAT
Copyright (C) 2014-2018 Michele Colledanchise
L'autorisation est accordée gratuitement par la présente à toute personne qui obtient une copie de ce logiciel et des fichiers de documentation associés (le "logiciel"), pour traiter le logiciel sans restriction, y compris sans limiter les droits d'utilisation, de copier, de modifier, de fusionner , publier, distribuer, sous-licencier et / ou vendre des copies du logiciel, et pour permettre aux personnes à qui le logiciel est fourni pour le faire, sous réserve des conditions suivantes:
L'avis de droit d'auteur ci-dessus et le présent avis d'autorisation sont inclus dans toutes les copies ou des parties substantielles du logiciel.
Le logiciel est fourni "tel quel", sans garantie d'aucune sorte, express ou implicite, y compris, mais sans s'y limiter, les garanties de qualité marchande, d'adéquation à un usage particulier et de non-contrefaçon. En aucun cas, les auteurs ou les titulaires de droits d'auteur ne seront pas responsables de toute réclamation, dommage ou autre responsabilité, que ce soit dans une action de contrat, de délit ou autre, découlant de, hors du logiciel ou de l'utilisation ou d'autres transactions dans le LOGICIEL.