Об этом проекте
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 в разные годы.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.