Об этом проекте

BehaviorTree.CPP — это фреймворк на C++17 для создания деревьев поведения. Проект заявляет, что он был разработан с целью быть гибким, простым в использовании, реактивным и быстрым. Его основное применение — робототехника, но в README отмечается, что его также можно использовать для создания ИИ в играх или для замены конечных автоматов. Ключевые особенности, выделяемые проектом: - Асинхронные, неблокирующие действия рассматриваются как граждане первого класса. - Реактивные поведения могут выполнять несколько действий одновременно (ортогональность). - Деревья определяются с помощью XML-подобного предметно-ориентированного скриптового языка и могут загружаться во время выполнения, поэтому морфология дерева не зашита в код, даже несмотря на то, что библиотека написана на C++. - Пользовательские узлы дерева могут быть статически связаны или преобразованы в плагины и загружаться во время выполнения. - Типобезопасный и гибкий механизм поддерживает обмен данными между узлами дерева. - Инфраструктура логирования/профилирования позволяет пользователям визуализировать, записывать, воспроизводить и анализировать переходы состояний. Документация и ресурсы сообщества включают официальный сайт behaviortree.dev для учебных пособий и общей документации, автоматически генерируемые страницы Doxygen и обсуждения на GitHub для поддержки сообщества. Предлагается графический редактор Groot2 для редактирования деревьев поведения, а также возможно редактирование XML в любом текстовом редакторе. Варианты сборки и установки, описанные в README: - Требуется компилятор, поддерживающий C++17. - Поддерживаются три системы сборки: colcon (ament) для пользователей ROS2, conan для Linux/Windows и прямой CMake для пользователей, управляющих зависимостями самостоятельно. - Сборки с conan требуют CMake 3.23 или новее. Типичные команды: conan install, затем cmake с пресетом conan-release, затем cmake --build с тем же пресетом. - Без conan, если зависимости, такие как ZeroMQ и SQLite, уже установлены, пользователи могут настроить и собрать с помощью прямых команд CMake. - Доступен рабочий процесс pixi (виртуальная среда conda) через pixi run build. - Библиотеку также можно установить через vcpkg с использованием порта behaviortree-cpp. Пример приложения, показывающий, как использовать BT.CPP, приведен в README. Версия 3.8 доступна в отдельной ветке, которая может получать исправления ошибок, в то время как новые функции реализуются только в ветке master. Коммерческая поддержка и консультации предлагаются при обращении к основному автору. Проект выпущен под лицензией MIT, авторские права принадлежат Davide Faconti и Michele Colledanchise в разные годы.