행동 기반 아키텍처 (Behavior-Based Architecture)
✅ 개념
- 센서 입력 → 직접적인 행동(Behavior) 유닛 실행
- 중앙집중식 판단 없이 분산된 모듈이 자율적으로 반응
- 각 행동은 특정 조건에서 작동하며 병렬 동작 가능
✅ 구조
[Sensors] ─┬─> [AvoidObstacle]
├─> [FollowLine]
├─> [StopAtEdge]
└─> [Other Behavior...]
[Arbiter] ─> [Motor Control]
✅ 주요 구성 요소
- Behavior: 특정 조건에서 동작하는 반응 유닛 (ex. 경로 추종, 장애물 회피)
- Arbiter: 동시에 활성화된 행동 중 어느 것을 실행할지 결정
✅ 장점
항목 |
설명 |
🏃 빠른 반응성 |
이벤트 발생 시 즉시 반응 가능 (센서 → 행동 직결) |
🧩 모듈화 용이 |
각 행동은 독립적으로 구현 및 테스트 가능 |
🔀 병렬성 우수 |
여러 행동 유닛이 동시에 감지 및 처리 가능 |
❌ 단점
항목 |
설명 |
📉 전역 계획 부재 |
전체적인 목표(예: 최단경로 도달 등) 계획이 어려움 |
⚠️ 행동 충돌 위험 |
여러 행동이 동시에 실행될 경우 우선순위 관리 필요 |
🧠 논리 복잡성 증가 |
많은 행동 간 조율이 복잡해질 수 있음 |
✅ 적합한 로봇 유형
로봇 타입 |
적합도 |
군집 로봇 |
매우 높음 ✅ |
단순 미로 탈출 로봇 |
높음 ✅ |
고정된 환경에서의 서비스 로봇 |
중간 |
복잡한 SLAM 로봇 |
낮음 ❌ |
🛠️ 적용 예시 (STM32 기반)
void loop() {
if (detectObstacle()) {
avoidObstacle(); // 회피 행동
} else if (detectLine()) {
followLine(); // 라인 추종
} else {
stopRobot(); // 기본 상태
}
}
댓글