1317.3 PlanSys2의 설계 철학과 핵심 원칙

1. 설계 철학의 개요

PlanSys2의 설계 철학은 ROS2의 현대적 로봇 소프트웨어 원칙을 태스크 플래닝 영역에 충실히 적용하면서, AI 플래닝의 도메인 독립성(domain independence)과 로봇 시스템의 실용적 요구를 균형 있게 충족하는 것이다(Gonzalez et al., 2021).

2. 핵심 원칙

2.1 원칙 1: ROS2 네이티브 설계

PlanSys2는 ROS2의 아키텍처 패턴을 전면적으로 채택한다:

  • 관리형 노드(Managed Nodes): ROS2의 라이프사이클 인터페이스를 사용하여 노드의 상태 전이를 체계적으로 관리한다.
  • DDS 통신: ROS2의 DDS(Data Distribution Service) 기반 통신으로 노드 간 상호 작용을 수행한다.
  • QoS 정책: Quality of Service 정책을 활용하여 통신의 신뢰성을 보장한다.
  • 표준 인터페이스: ROS2의 서비스, 액션, 토픽 등 표준 통신 패턴만을 사용한다.

2.2 원칙 2: 모듈화와 관심사 분리

PlanSys2는 기능을 네 가지 독립적 노드로 분리하여, 각 노드가 단일 책임(Single Responsibility)을 가진다:

  1. Domain Expert: PDDL 도메인 모델 관리
  2. Problem Expert: 세계 상태와 목표 관리
  3. Planner: 계획 생성
  4. Executor: 계획 실행

이 분리에 의해 각 노드를 독립적으로 개발, 테스트, 교체할 수 있다.

2.3 원칙 3: 플래너 독립성

PlanSys2는 특정 플래너에 종속되지 않는 플러그인 아키텍처를 채택한다. 플래너는 표준화된 인터페이스(PlanSolverBase)를 구현하면 PlanSys2에 통합될 수 있다. 이에 의해 POPF, Fast Downward, 사용자 정의 플래너 등을 자유롭게 교체할 수 있다.

2.4 원칙 4: 도메인 독립성

PlanSys2 자체는 특정 로봇 도메인에 종속되지 않는다. 어떤 PDDL 도메인이든 로드할 수 있으며, 액션 노드를 구현하면 해당 도메인의 로봇 행동을 실행할 수 있다. 이는 AI 플래닝의 도메인 독립적 원리를 그대로 계승한 것이다.

2.5 원칙 5: 확장 가능한 아키텍처

사용자가 PlanSys2의 핵심 기능을 수정하지 않고도 새로운 기능을 추가할 수 있는 확장성을 제공한다:

  • 플래너 플러그인: 새로운 플래너를 플러그인으로 추가
  • 액션 수행기: ActionExecutorClient를 상속하여 새로운 액션 노드를 구현
  • 클라이언트 라이브러리: C++ 클라이언트 API를 통한 프로그래밍적 접근

2.6 원칙 6: 행동 트리 기반 실행

계획의 실행을 행동 트리(Behavior Tree)로 관리하여, 복잡한 실행 로직(조건부 실행, 병렬 실행, 실패 복구 등)을 유연하게 표현할 수 있다. BehaviorTree.CPP 라이브러리와의 통합이 이 원칙의 기반이다.

2.7 원칙 7: 동적 세계 모델

세계 상태(객체, 술어, 함수)를 런타임에 동적으로 추가, 삭제, 수정할 수 있다. 이는 실행 중 환경 변화에 대응하여 세계 모델을 갱신하고 재계획을 수행하는 데 필수적이다.

3. 설계 원칙의 실용적 이점

원칙이점
ROS2 네이티브실시간 성능, 보안, 멀티플랫폼 지원
모듈화독립적 개발/테스트, 유지 보수 용이
플래너 독립최적 플래너 선택의 유연성
도메인 독립다양한 로봇 응용에 범용 적용
확장 가능사용자 요구에 맞는 커스텀화
행동 트리복잡한 실행 로직의 유연한 표현
동적 세계 모델동적 환경 대응, 재계획 지원

4. 참고 문헌

  • Gonzalez, F., Martin, F., Matellán, V., & Rodriguez, F. J. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE International Conference on Autonomous Robot Systems and Competitions (ICARSC).
  • Macenski, S., Foote, T., Gerkey, B., Lalancette, C., & Woodall, W. (2022). “Robot Operating System 2: Design, Architecture, and Uses in the Wild.” Science Robotics, 7(66), eabm6074.