Sollimann/bonsai
Rust implementation of behavior trees for deterministic AI (now with Python bindings)
해결하는 문제
Bonsai는 AI 및 로봇 공학에서 복잡한 행동을 모듈화하고 반응형으로 구성하는 방법을 제공합니다. 고정된 상태 기계 대신 트리 기반 구조를 사용하여, 프로세스의 실행 방식과 환경에 대한 반응을 위한 유연하고 계층적인 규칙을 만들 수 있습니다.
작동 방식
Bonsai는 행동 트리(BTs)를 구현하며, 트리 내의 각 노드는 Success, Failure, Running 중 하나의 상태를 반환하는 프로세스를 나타냅니다. 부모 노드는 이러한 신호를 사용하여 다음 동작을 결정합니다. 라이브러리는 다음과 같은 제어 흐름 노드를 제공합니다:
- Sequence: 자식 노드를 순서대로 실행하며, 하나가 실패하면 중단합니다.
- Select: 자식 노드를 시도하며, 하나가 성공하면 중단합니다.
- If: 조건에 따라 특정 자식 노드를 실행합니다.
- 병렬 노드:
WhenAll,WhenAny,Race는 여러 작업을 동시에 실행할 수 있습니다. - 반복:
While과WhileAll은 조건에 따라 반복 동작을 가능하게 합니다.
응답성을 유지하기 위해, 장시간 실행 작업은 백그라운드 스레드로 디스패치되고 채널을 통해 모니터링되어 트리 탐색을 차단하지 않습니다.
대상 사용자
로봇 공학, 게임 프로그래밍, AI 에이전트 개발에서 복잡하고 반응형 행동을 구조적이고 유연하게 관리해야 하는 개발자들입니다.
주요 특징
- 다국어 지원: 성능을 위해 Rust로 작성되었으며, PyPI를 통해 Python 바인딩도 제공됩니다.
- 반응형 설계: 비동기 및 장시간 실행 작업을 지원하여 시스템의 응답성을 보장합니다.
- 포괄적인 제어 흐름: Invert, Timeout, AlwaysSucceed와 같은 다양한 논리 게이트 및 병렬 실행 패턴을 포함합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트