ROS2 기반 자율 계획 시스템의 구조 (Architecture of ROS2-Based Autonomous Planning Systems)

ROS2 기반 자율 계획 시스템의 구조 (Architecture of ROS2-Based Autonomous Planning Systems)

1. 개요

ROS2 환경에서의 자율 계획 시스템은 PlanSys2를 핵심 프레임워크로, BehaviorTree.CPP를 실행 엔진으로, Nav2와 MoveIt2를 저수준 동작 실행기로 활용하는 다계층 아키텍처로 구성된다.

2. 시스템 아키텍처

┌──────────────────────────────┐
│     PlanSys2 (태스크 플래닝)    │
│  Domain Expert │ Problem Expert │
│  Planner Node  │ Executor Node  │
├──────────────────────────────┤
│   BehaviorTree.CPP (행동 실행)  │
│  각 PDDL 행동의 행동 트리 실행   │
├──────────────────────────────┤
│   Nav2 / MoveIt2 (동작 실행)   │
│  경로 계획, 경로 추종, 파지 실행  │
├──────────────────────────────┤
│   로봇 하드웨어 드라이버        │
│  센서, 모터, 그리퍼             │
└──────────────────────────────┘

3. PlanSys2의 노드 구조

노드역할ROS2 인터페이스
Domain ExpertPDDL 도메인 관리서비스
Problem Expert상태/목표 관리서비스
Planner계획 생성서비스
Executor계획 실행액션 서버

4. 통합 흐름

  1. 운용자/상위 시스템이 목표를 PlanSys2에 전달
  2. Problem Expert가 현재 상태와 목표를 PDDL로 구성
  3. Planner Node가 계획기(POPF 등)를 호출하여 계획 생성
  4. Executor Node가 계획의 각 행동을 행동 트리로 실행
  5. 행동 트리가 Nav2/MoveIt2를 호출하여 물리적 동작 수행
  6. 실행 결과에 따라 상태 갱신 또는 재계획 트리거

5. ROS2 통신 구조

[사용자 CLI/GUI] → PlanSys2 서비스 호출
[PlanSys2] → BT 액션 노드 호출
[BT 액션] → Nav2 액션 서버 호출 (NavigateToPose)
[Nav2] → /cmd_vel 토픽 발행

6. 참고 문헌

  • PlanSys2 공식 문서. https://plansys2.github.io/
  • Macenski, S., et al. (2020). “The Marathon 2: A Navigation System.” arXiv preprint arXiv:2003.00368.

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