11-13 08:59
Notice
Recent Posts
Recent Comments
관리 메뉴

BAN2ARU

[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 2) Behavior Trees 본문

Study/Nav2

[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 2) Behavior Trees

밴나루 2024. 10. 3. 17:05
반응형

해당 글은 공식페이지를 참조하여 작성함.

 

이전 글 목록

Behavior Trees

행동 트리(Behavior trees; BT)는 복잡한 로봇 동작을 효과적으로 설계하고 관리할 수 있는 방법이다. 이는 여러 상태와 전환을 관리하는 finite state machine(FSM)과 달리, 더 확장 가능하고 이해하기 쉬운 구조를 제공한다. FSM은 상태가 많아질수록 관리가 어려워지고 오류가 발생하기 쉬운 반면, BT는 작업을 tree 구조로 구성하여 이를 해결한다.

행동 트리의 특징은 아래와 같다.

  1. primitive 재사용
  2. : 기본적인 행동을 정의하고, 이를 다양한 상황에서 재사용할 수 있음. 예를 들어, “킥”, “걷기”, “공으로 이동”과 같은 기본적인 행동을 정의하고, 이를 다양한 로봇 동작에 적용할 수 있음
  3. 복잡한 논리 처리 가능
  4. : 복잡한 로봇 동작을 모델링할 때, FSM과 달리 BT는 논리적 선택을 명확하게 표현할 수 있음. 예를 들어 축구 로봇이 골을 시도할 때, 어느 방향에서 시도할지를 BT 구조 내에서 쉽게 정의할 수 있음

Nav2 프로젝트에서는 BehaviorTree CPP V4 라이브러리를 사용하여 행동 트리를 구현한다. 이는 복잡한 로봇 네비게이션을 관리하고 확장 가능하게 만드는데 중요한 역할을 한다. 또한 subtree를 load하는 기능을 통해, 다른 높은 수준의 행동트리에서 Nav2 트리를 재사용할 수 있다. 이 말은 이미 만들어진 행동 트리(예: Nav2의 “공으로 이동” 트리)를 다른 행동 트리(예: 축구 로봇의 전체 행동 트리에서 재사용할 수 있게 해준다.

728x90
Comments