09-10 15:59
Notice
Recent Posts
Recent Comments
반응형
관리 메뉴

BAN2ARU

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

Study/Nav2

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

밴나루 2024. 1. 27. 22:16

Nav2 튜토리얼은 공식 홈페이지를 참조하여 작성함

 

이전 글 참조

2024.01.27 - [Study/Nav2] - [Foxy/Nav2] 튜토리얼 3. Navigation Concepts - 1) ROS2

 

[Foxy/Nav2] 튜토리얼 3. Navigation Concepts - 1) ROS2

Nav2 튜토리얼은 공식 홈페이지를 참조하여 작성함 이전 글 참조 2024.01.27 - [Study/Nav2] - [Foxy/Nav2] 튜토리얼 2.Development Guides - 2) Dev Containers ROS2는 Nav2에서 사용되는 핵심 middleware이다. Action Server ROS와

ban2aru.tistory.com

 

행동트리(Behavior trees; BT)는 완료해야하는 작업의 tree 구조로, 복잡한 로봇 작업에서 많이 사용된다. 이를 통해 다양한 state 또는 multi-step 응용 프로그램을 정의하기 위한 확장 가능하고 이해하기 쉬운 프레임워크를 제공한다. 이는 수십 개의 state와 수백 개의 transition이 있는 FSM(finite state machine; 유한 상태 기계)와 대조된다. BT와 FSM을 축구 게임 플레이 로직으로 비교해보자. FSM으로는 좌측, 우측 또는 중앙에서 공을 차기와 같은 모델링 선택히 명확하지 않다. BT에서는 “차기”, “걷기”, “공으로 이동하기”와 같은 기본 작업을 만들고 다양한 동작에 재사용할 수 있다. 즉 BT는 로봇의 행동을 명확하게 구조화하고 복잡성을 줄이며, 기본 레벨의 동작을 효과적으로 재사용할 수 있는 강력한 도구이다.

 

행동 트리는 트리의 계층 구조를 사용하여 복잡한 작업을 더 작고 관리 가능한 하위 작업으로 나눌 수 있다. 또한 행동 트리는 논리가 트리에 구조화되어 있기 때문에 각 노드와 전체적인 구조를 검증하고 확인할 수 있으므로, 로봇 시스템의 행동을 형식적으로 분석하고 검증할 수 있다. 응용프로그램의 논리가 행동 트리에 중앙 집중화되어 있기 때문에 높은 수준에서 전반적인 시스템 동작을 이해할 수 있다. 행동 트리내에서 독립된 작업 서버는 트리를 통해 데이터를 통신하는 방식으로 작동하여, 시스템 내에서 데이터 교환을 관리하기 용이하기 만들어준다.

 

이 프로젝트에서는 behavior tree library로 BehavioTree CPP V3를 활용한다. node 플러그인을 생성하여 이를 BT 내에서 트리로 구성할 수 있다. 프로젝트에서는 BehaviorTree CPP V3 라이브러리를 사용하여 행동 트리를 XML 파일로 정의한다. 이 XML 파일은 노드 플러그인들의 등록된 이름과 연결된다. 등록된 이름을 기반으로 한 행동 트리는 내비게이션의 논리를 나타낸다. 각 노드는 로봇 시스템의 특정 동작 또는 의사 결정을 담당하므로 트리를 따라가면서 로봇의 행동이 이루어진다.

 

이 라이브러리를 사용하는 이유 중 하나는 subtree를 로드할 수 있는 능력 때문이다. 이는 Nav2 행동 트리를 다른 상위 수준의 행동 트리에 로드하여 이 프로젝트를 노드 플러그인으로 사용할 수 있다. 예를 들어, 축구 경기에서 Nav2 행동 트리를 “go to ball” 노드로 사용하여 볼을 찾는 작업의 일부로 활용할 수 있다. 이렇게하면 Nav2 행동 트리의 노드를 사용함으로써 볼을 찾는 복잡한 작업을 트리의 일부로 간편하게 통합할 수 있다. 라이브러리는 NavigateToPoseAction과 같은 다양한 플러그인을 제공한다. 이러한 플러그인을 사용하여 Nav2 스택을 클라이언트 응용프로그램에서 호출할 수 있으며, 이를 통해 일반적인 액션 인터페이스를 통해 Nav2 스택을 편리하게 사용할 수 있도록 한다.

728x90
Comments