프로젝트 소개

Bonsai는 행동 트리(BT)를 구축하기 위한 Rust 라이브러리로, 행동이 어떻게 실행되고 어떤 순서로 진행되는지를 정의하는 데 사용되는 데이터 구조입니다. 모듈식이고 반응적인 제어 흐름이 중요한 로보틱스 및 게임 프로그래밍과 같은 결정론적 AI 애플리케이션을 대상으로 합니다. 이 크레이트는 crates.io에 bonsai-bt로 게시되어 있으며, 동일한 이름으로 PyPI를 통해 Python 바인딩도 제공합니다. 이 라이브러리는 Sequence, Select, If, Invert, AlwaysSucceed, Timeout, While, WhileAll, WhenAll, WhenAny, Race, After 등 다양한 제어 노드를 제공합니다. 노드는 Success, Failure, Running을 신호로 보내며, 부모 노드는 이를 통해 다음 프로세스를 결정할 수 있습니다. 장시간 실행되는 작업의 경우 Bonsai는 비동기 또는 동기 작업을 백그라운드 스레드로 디스패치하고 채널을 통해 상태를 수신하는 기능을 지원하여 트리 순회의 응답성을 유지합니다. 문서에는 개념 가이드, 예제, 개발 가이드가 포함되어 있습니다. 이 프로젝트는 CI 빌드, 코드 커버리지 보고를 갖추고 있으며 MIT 라이선스로 유지 관리됩니다. 예제 사용 사례와 추가 세부 정보는 examples 폴더와 docs 디렉터리에서 확인할 수 있습니다.