하이브리드 접근 방식의 개요 (Overview of the Hybrid Approach)

하이브리드 접근 방식의 개요 (Overview of the Hybrid Approach)

1. 개요

하이브리드 접근 방식은 하드코딩 기반 행동 제어와 자율 계획의 장점을 결합하여, 안전성과 유연성을 동시에 확보하는 통합 설계 전략이다. 고수준의 임무 계획은 자율 계획기가 동적으로 생성하고, 각 행동의 실행 관리와 안전 보장은 행동 트리가 담당하며, 저수준의 물리적 제어는 하드코딩된 알고리즘이 수행한다.

2. 계층 하이브리드 아키텍처

┌──────────────────────────────────┐
│    심의 계층 (Deliberative)        │ ← 자율 계획 (PlanSys2)
│    태스크 플래닝, 목표 분해         │   계획 생성: 초~분
├──────────────────────────────────┤
│    조율 계층 (Sequencing)         │ ← 행동 트리 (BehaviorTree.CPP)
│    행동 실행, 예외 처리, 안전 감시   │   반응 시간: 밀리초~초
├──────────────────────────────────┤
│    반응 계층 (Reactive)           │ ← 하드코딩 (제어 알고리즘)
│    센서 처리, 모터 제어, 안전 정지   │   반응 시간: 마이크로초~밀리초
└──────────────────────────────────┘

3. 각 계층의 역할

3.1 심의 계층: 자율 계획

  • 역할: 목표에서 행동 시퀀스를 자동 생성
  • 도구: PlanSys2, PDDL 계획기
  • 시간 스케일: 초~분
  • 강점: 유연성, 최적성, 도메인 독립성

3.2 조율 계층: 행동 트리

  • 역할: 계획의 실행 관리, 예외 처리, 안전 감시
  • 도구: BehaviorTree.CPP
  • 시간 스케일: 밀리초~초
  • 강점: 반응성, 모듈성, 디버깅 용이성

3.3 반응 계층: 하드코딩

  • 역할: 물리적 제어, 센서 처리, 비상 정지
  • 도구: 제어 알고리즘, 드라이버
  • 시간 스케일: 마이크로초~밀리초
  • 강점: 실시간 보장, 안전 검증, 결정론적 동작

4. ROS2에서의 하이브리드 구현

4.1 PlanSys2 + BehaviorTree.CPP + Nav2

[PlanSys2] → 태스크 계획 생성 (PDDL)
    ↓
[BehaviorTree.CPP] → 각 행동을 행동 트리로 실행
    ↓ (navigate 행동)
[Nav2] → 경로 계획 및 추종 (하드코딩 + BT)
    ↓
[로봇 하드웨어] → 모터 제어, 센서 처리

4.2 예시: 배달 임무

PlanSys2 계획:
  1. move(robot, dock, kitchen)
  2. pick(robot, tray, kitchen)
  3. move(robot, kitchen, room_301)
  4. place(robot, tray, room_301)

각 행동의 BT 실행:
  move → Nav2 NavigateToPose + 안전 가드
  pick → MoveIt2 Pick + 파지 확인 + Retry
  place → MoveIt2 Place + 배치 확인

5. 하이브리드 접근의 장점

장점설명
유연성 + 안전성고수준 유연성과 저수준 안전성 동시 확보
계층적 복잡도 관리각 계층이 적합한 수준의 추상화 담당
기존 시스템 재활용Nav2, MoveIt2 등 기존 하드코딩 시스템 재활용
점진적 도입기존 BT 시스템에 태스크 플래닝을 점진적으로 추가

6. 참고 문헌

  • Gat, E. (1998). “On Three-Layer Architectures.” In Artificial Intelligence and Mobile Robots. MIT Press.
  • Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
  • PlanSys2 공식 문서. https://plansys2.github.io/

버전날짜변경 사항
v0.12026-04-05초안 작성