프로젝트 소개

BehaviorTree.CPP는 행동 트리를 만들기 위한 C++17 프레임워크입니다. 이 프로젝트는 유연하고 사용하기 쉬우며 반응성이 뛰어나고 빠르도록 설계되었다고 밝히고 있습니다. 주요 사용 사례는 로보틱스이지만, README에서는 게임용 AI를 구축하거나 유한 상태 머신을 대체하는 데에도 사용할 수 있다고 설명합니다. 프로젝트가 강조하는 주요 기능: - 비동기적이고 논블로킹 방식의 액션을 일급 요소로 취급합니다. - 반응형 동작은 여러 액션을 동시에 실행할 수 있습니다(직교성). - 트리는 XML 기반 도메인 특화 스크립팅 언어로 정의되며 런타임에 로드할 수 있어, 라이브러리가 C++로 작성되었음에도 트리 형태가 하드코딩되지 않습니다. - 사용자 정의 트리 노드는 정적으로 링크하거나 플러그인으로 변환하여 런타임에 로드할 수 있습니다. - 타입 안전하고 유연한 메커니즘이 트리 노드 간의 데이터 흐름을 지원합니다. - 로깅/프로파일링 인프라를 통해 사용자는 상태 전환을 시각화, 기록, 재생 및 분석할 수 있습니다. 문서 및 커뮤니티 자료로는 튜토리얼과 일반 문서를 제공하는 공식 사이트 behaviortree.dev, 자동 생성된 Doxygen 페이지, 커뮤니티 지원을 위한 GitHub Discussions가 있습니다. Groot2라는 그래픽 편집기가 행동 트리 편집용으로 제공되며, 일반 텍스트 편집기에서 순수 XML을 편집하는 것도 가능합니다. README에 설명된 빌드 및 설치 옵션: - C++17을 지원하는 컴파일러가 필요합니다. - 세 가지 빌드 시스템을 지원합니다: ROS2 사용자를 위한 colcon(ament), Linux/Windows용 conan, 의존성을 직접 관리하는 사용자를 위한 일반 CMake입니다. - Conan 빌드는 CMake 3.23 이상이 필요합니다. 일반적인 명령은 conan install, 그다음 conan-release 프리셋으로 cmake, 그다음 같은 프리셋으로 cmake --build입니다. - conan 없이 ZeroMQ 및 SQLite와 같은 의존성이 이미 설치되어 있다면 일반 CMake 명령으로 구성하고 빌드할 수 있습니다. - pixi(conda 가상 환경) 워크플로는 pixi run build를 통해 사용할 수 있습니다. - behaviortree-cpp 포트를 사용하여 vcpkg를 통해 라이브러리를 설치할 수도 있습니다. BT.CPP 사용 방법을 보여주는 예제 애플리케이션이 README에 링크되어 있습니다. 버전 3.8은 별도 브랜치에서 제공되며 버그 수정을 받을 수 있지만, 새로운 기능은 master 브랜치에서만 구현됩니다. 상업적 지원과 컨설팅은 주요 저자에게 연락하여 제공받을 수 있습니다. 이 프로젝트는 MIT 라이선스로 배포되며, 저작권은 여러 연도에 걸쳐 Davide Faconti와 Michele Colledanchise에게 있습니다.