일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- nav2 튜토리얼
- ros2 튜토리얼
- ROS FOXY 튜토리얼
- error
- nav2 tutorial
- foxy nav2
- 코드업
- nav2 development guides
- nav2 development guides
- ros2 remapping
- nav2 설치
- humble development guides
- Foxy tutorial
- docker foxy
- nav2 getting started
- first-time robot setup guide
- Python
- ros2 configuring environment
- CODEUP 6073
- development guides
- nav2 first-time robot setup guide
- humble 환경설정
- ros2 development guides
- ros2 foxy docker
- ros2 foxy tutorial
- Nav2 document
- ros2 튜토리얼 환경설정
- nav2 dev contatiner
- CodeUp
- ros2 환경설정
- Today
- Total
BAN2ARU
[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 2) Behavior Trees 본문
해당 글은 공식페이지를 참조하여 작성함.
이전 글 목록
2024.09.18 - [Study/Nav2] - [Humble/Docker] ubuntu에서 ROS2 humble docker 환경 구축
2024.09.18 - [Study/Nav2] - [Humble/Nav2] 튜토리얼 1. Getting Started
2024.09.18 - [Study/Nav2] - [Humble/Nav2] 튜토리얼 2. Development Guides - 1) Build and Install
2024.09.18 - [Study/Nav2] - [Humble/Nav2] 튜토리얼 2. Development Guides - 2) Dev Containers
2024.10.03 - [Study/Nav2] - [Humble/Nav2] 튜토리얼 3. Navigation Concepts - 1) ROS2
Behavior Trees
행동 트리(Behavior trees; BT)는 복잡한 로봇 동작을 효과적으로 설계하고 관리할 수 있는 방법이다. 이는 여러 상태와 전환을 관리하는 finite state machine(FSM)과 달리, 더 확장 가능하고 이해하기 쉬운 구조를 제공한다. FSM은 상태가 많아질수록 관리가 어려워지고 오류가 발생하기 쉬운 반면, BT는 작업을 tree 구조로 구성하여 이를 해결한다.
행동 트리의 특징은 아래와 같다.
- primitive 재사용
- : 기본적인 행동을 정의하고, 이를 다양한 상황에서 재사용할 수 있음. 예를 들어, “킥”, “걷기”, “공으로 이동”과 같은 기본적인 행동을 정의하고, 이를 다양한 로봇 동작에 적용할 수 있음
- 복잡한 논리 처리 가능
- : 복잡한 로봇 동작을 모델링할 때, FSM과 달리 BT는 논리적 선택을 명확하게 표현할 수 있음. 예를 들어 축구 로봇이 골을 시도할 때, 어느 방향에서 시도할지를 BT 구조 내에서 쉽게 정의할 수 있음
Nav2 프로젝트에서는 BehaviorTree CPP V4 라이브러리를 사용하여 행동 트리를 구현한다. 이는 복잡한 로봇 네비게이션을 관리하고 확장 가능하게 만드는데 중요한 역할을 한다. 또한 subtree를 load하는 기능을 통해, 다른 높은 수준의 행동트리에서 Nav2 트리를 재사용할 수 있다. 이 말은 이미 만들어진 행동 트리(예: Nav2의 “공으로 이동” 트리)를 다른 행동 트리(예: 축구 로봇의 전체 행동 트리에서 재사용할 수 있게 해준다.
'Study > Nav2' 카테고리의 다른 글
[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 4) State Estimation (2) | 2024.10.03 |
---|---|
[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 3) Navigation Servers (0) | 2024.10.03 |
[Humble/Nav2] 튜토리얼 3. Navigation Concepts - 1) ROS2 (0) | 2024.10.03 |
[Humble/Nav2] 튜토리얼 2. Development Guides - 2) Dev Containers (6) | 2024.09.18 |
[Humble/Nav2] 튜토리얼 2. Development Guides - 1) Build and Install (0) | 2024.09.18 |