1317.6 4대 핵심 노드의 역할과 관계

1. 대 핵심 노드의 개요

PlanSys2의 아키텍처는 네 가지 독립적인 ROS2 관리형 노드로 구성되며, 각 노드는 명확히 분리된 책임을 가진다. 이 분리는 관심사 분리(Separation of Concerns) 원칙에 따른 것으로, 각 노드를 독립적으로 개발, 테스트, 교체할 수 있게 한다.

2. Domain Expert 노드

2.1 역할

PDDL 도메인 모델의 관리와 조회를 담당한다.

2.2 책임

  • PDDL 도메인 파일의 로딩과 파싱
  • 타입 계층 구조의 관리
  • 술어 시그니처 목록 관리
  • 액션 스키마(순간적/듀레이티브) 관리
  • 상수(constants) 관리
  • 다른 노드의 도메인 정보 조회 요청 처리

2.3 제공 서비스

get_domain, get_domain_name, get_domain_types, get_domain_predicates, get_domain_actions, get_domain_action_details

3. Problem Expert 노드

3.1 역할

현재 세계 상태와 목표 조건의 관리를 담당한다.

3.2 책임

  • 객체 인스턴스의 추가/삭제/조회
  • 술어 인스턴스의 추가/삭제/조회
  • 수치 함수 값의 설정/조회
  • 목표 조건의 설정/조회
  • 완전한 PDDL 문제 인스턴스의 생성

3.3 제공 서비스

add_instance, remove_instance, get_instances, add_predicate, remove_predicate, get_predicates, add_function, set_goal, get_goal, get_problem

4. Planner 노드

4.1 역할

PDDL 도메인과 문제를 외부 플래너에 전달하여 계획을 생성한다.

4.2 책임

  • Domain Expert로부터 도메인 정보 수집
  • Problem Expert로부터 문제 정보 수집
  • PDDL 텍스트 생성 및 외부 플래너 호출
  • 플래너 출력의 파싱과 계획 구조 생성
  • 플래너 플러그인 관리

4.3 의존 관계

Planner는 Domain Expert와 Problem Expert에 의존한다.

5. Executor 노드

5.1 역할

생성된 계획의 실행을 조율한다.

5.2 책임

  • 계획을 행동 트리(Behavior Tree)로 변환
  • 각 PDDL 액션을 대응하는 ActionExecutorClient 노드에 위임
  • 실행 상태의 모니터링과 피드백 수집
  • 액션 완료 시 PDDL 효과의 세계 상태 반영
  • 실행 실패 시 오류 보고

5.3 의존 관계

Executor는 Planner(계획 수신)와 Problem Expert(상태 갱신)에 의존한다.

6. 노드 간 관계

Domain Expert ←──── Planner ────→ Problem Expert
                       ↓
                   Executor
                       ↓
              Action Executor Nodes

6.1 의존 관계 분석

노드의존하는 노드의존 이유
Domain Expert없음독립적으로 도메인 관리
Problem ExpertDomain Expert객체/술어 유효성 검증에 도메인 정보 참조
PlannerDomain Expert, Problem Expert계획 생성에 도메인과 문제 정보 모두 필요
ExecutorPlanner, Problem Expert계획 수신 및 상태 갱신

6.2 통신 패턴

  • Domain Expert ↔ Problem Expert: Problem Expert가 객체나 술어를 추가할 때, Domain Expert에서 타입과 술어의 유효성을 확인
  • Planner → Domain Expert/Problem Expert: 계획 생성 시 도메인과 문제 텍스트를 수집
  • Executor → Problem Expert: 액션 완료 후 효과에 의한 세계 상태 갱신
  • Executor → Action Nodes: ROS2 액션 인터페이스를 통한 행동 실행 위임

7. 독립적 스케일링

4대 노드의 분리에 의해 각 노드를 독립적으로 스케일링할 수 있다:

  • Planner 노드를 고성능 서버에 배치: 계산 집약적인 플래닝을 별도 머신에서 수행
  • Executor와 액션 노드를 로봇 온보드에 배치: 실행 레이턴시를 최소화
  • Domain/Problem Expert를 중앙 서버에 배치: 다중 로봇 시스템에서 세계 모델을 중앙 관리

8. 참고 문헌

  • Gonzalez, F., Martin, F., Matellán, V., & Rodriguez, F. J. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE ICARSC.