1314.50 복잡한 로봇 도메인을 위한 액션 설계 가이드라인

1314.50 복잡한 로봇 도메인을 위한 액션 설계 가이드라인

1. 도메인 복잡성의 원천

로봇 도메인의 복잡성은 다수의 로봇 유형, 다양한 행동 능력, 환경의 이질성, 다중 목표의 동시 추구, 자원 제약, 시간 제약 등에서 기인한다. 이러한 복잡성이 증가하면 PDDL 도메인의 타입 수, 술어 수, 액션 수, 매개변수 수가 모두 증가하며, 플래닝의 계산 비용이 급격히 상승한다. 체계적인 액션 설계 가이드라인은 이러한 복잡성을 관리 가능한 수준으로 유지하는 데 필수적이다.

2. 원칙 1: 적절한 추상화 수준의 선택

2.1 추상화 수준의 결정 기준

PDDL 액션은 태스크 플래닝 수준의 추상 행동 모델이다. 액션의 추상화 수준은 다음 기준에 따라 결정해야 한다:

  • 플래닝 목적에 필요한 최소 세부도: 플래너가 유효한 계획을 생성하는 데 필요한 수준 이상의 세부사항은 불필요하다.
  • 실행 수준의 역량: 하위 실행 시스템(Nav2, MoveIt2 등)이 처리할 수 있는 행동 단위로 액션을 정의한다.
  • 재사용 가능성: 다양한 임무 시나리오에서 재사용 가능한 일반적 수준으로 정의한다.
;; 적절한 추상화: 임무 수준
(:action navigate :parameters (?r - robot ?from ?to - waypoint) ...)
(:action pick_up :parameters (?r - robot ?obj - object ?loc - waypoint) ...)

;; 과도한 세부화: 모션 수준 (PDDL에서 비권장)
(:action rotate_joint :parameters (?r - robot ?joint - joint ?angle - angle_value) ...)
(:action send_wheel_velocity :parameters (?r - robot ?left ?right - velocity) ...)

2.2 수직적 분해

복잡한 행동을 여러 수준의 추상화 계층으로 분해한다. 상위 계층은 전략적 의사 결정을, 하위 계층은 전술적 실행을 담당한다:

계층 구조:
임무 수준: deliver_package(robot1, pkg1, warehouse, customer)
  → 태스크 수준: navigate(robot1, dock, warehouse)
                 pick_up(robot1, pkg1, warehouse)
                 navigate(robot1, warehouse, customer)
                 place(robot1, pkg1, customer)
    → 모션 수준: (Nav2, MoveIt2가 처리)

3. 원칙 2: 매개변수 최소화

매개변수 수의 증가는 그라운딩 공간을 기하급수적으로 확장시킨다. 다음의 기법으로 매개변수를 최소화한다:

3.1 불필요한 매개변수 제거

전제 조건이나 효과에서 자유 변수로 도출 가능한 정보는 매개변수에 포함하지 않는다:

;; 비권장: 불필요한 매개변수 포함
(:action move
    :parameters (?r - robot ?from - waypoint ?to - waypoint ?speed - speed_mode)
    ...)

;; 권장: 불필요한 매개변수 제거
(:action move
    :parameters (?r - robot ?from - waypoint ?to - waypoint)
    ...)

3.2 타입 계층을 활용한 범위 축소

구체적인 하위 타입을 매개변수에 지정하여 바인딩 범위를 줄인다:

;; 넓은 범위
(:action fly :parameters (?v - vehicle ?from ?to - location) ...)

;; 좁은 범위 (권장)
(:action fly :parameters (?d - drone ?from ?to - airspace) ...)

4. 원칙 3: 술어 구조의 체계화

4.1 상호 배타적 술어 그룹 정의

로봇 상태, 물체 상태 등의 상호 배타적 속성을 명확히 그룹화한다:

;; 로봇 운영 상태 그룹 (상호 배타)
;; robot_idle, robot_active, robot_charging, robot_error
;; → 하나만 참이어야 함

;; 물체 위치 그룹 (상호 배타)
;; 각 물체에 대해 object_at는 최대 하나, 또는 holding 상태

4.2 술어 명명 규칙의 일관성

동일한 범주의 술어는 일관된 명명 패턴을 따른다:

;; 위치 술어: entity_at 패턴
(robot_at ?r - robot ?w - waypoint)
(object_at ?o - object ?w - waypoint)
(drone_at ?d - drone ?a - airspace)

;; 상태 술어: entity_state 패턴
(robot_idle ?r - robot)
(robot_active ?r - robot)
(sensor_calibrated ?s - sensor)

5. 원칙 4: 액션 세분화 수준의 균형

5.1 통합 액션과 분해 액션의 트레이드오프

설계 방식장점단점
통합 액션 (큰 단위)계획 길이 감소, 탐색 효율유연성 제한, 재사용 어려움
분해 액션 (작은 단위)높은 유연성, 재사용 용이계획 길이 증가, 탐색 비용 증가

복잡한 도메인에서는 핵심 행동을 적절한 크기의 단위로 분해하되, 항상 함께 수행되는 행동은 단일 액션으로 통합하는 것이 바람직하다.

6. 원칙 5: 플래닝 효율을 위한 설계

6.1 전제 조건의 최적 설계

전제 조건은 필요 충분 조건에 가깝게 설계해야 한다. 과소 명세는 비현실적 계획을 생성하고, 과잉 명세는 유효한 계획을 찾지 못하게 한다.

6.2 ADL 기능의 절제된 사용

or, exists, forall, 조건부 효과 등의 ADL 기능은 표현력을 높이지만, 플래너의 효율을 저하시킬 수 있다. 가능하면 STRIPS 수준의 구성을 우선하고, ADL 기능은 진정으로 필요한 경우에만 사용한다.

6.3 대칭성 제거

동일한 타입의 매개변수 간 순서가 무관한 경우, 명시적 순서 제약을 추가하거나 비대칭적 명명을 사용하여 중복 그라운딩을 줄인다.

7. 원칙 6: 다중 로봇 도메인의 특수 고려사항

7.1 로봇 유형별 능력 모델링

(:types
    robot - entity
    ground_robot aerial_robot manipulator - robot
)

;; 공통 능력 (모든 로봇)
(:action communicate :parameters (?r - robot ...) ...)

;; 특화 능력 (특정 로봇 유형)
(:action fly :parameters (?d - aerial_robot ...) ...)
(:action grasp :parameters (?m - manipulator ...) ...)

7.2 자원 공유와 상호 배제

공유 자원(충전 스테이션, 공유 작업 공간 등)에 대한 잠금-해제 패턴을 일관되게 적용한다.

8. 원칙 7: 실행 시스템과의 정합성

8.1 PlanSys2 호환 설계 원칙

  1. 액션 이름: 소문자와 밑줄만 사용
  2. 매개변수 순서: 에이전트, 대상, 위치의 일관된 순서
  3. 효과의 완전성: 실행 후 모든 관련 상태 변화를 반영
  4. 실행 가능성: 각 액션에 대응하는 ActionExecutorClient 구현이 가능한 수준

8.2 점진적 개발 전략

  1. 핵심 도메인 우선: 이동과 기본 조작만으로 구성된 최소 도메인을 먼저 설계하고 검증한다.
  2. 점진적 확장: 센서, 에너지 관리, 다중 로봇 등의 기능을 단계적으로 추가한다.
  3. 각 단계별 검증: 확장 시마다 기존 계획의 유효성과 새로운 기능의 정확성을 검증한다.

9. 검증 체크리스트

복잡한 도메인의 최종 검증을 위한 체크리스트:

  1. 모든 액션에 대한 단위 테스트 수행 여부
  2. 전제 조건-효과 연쇄의 완전성 확인
  3. 상호 배타적 술어의 일관성 확인
  4. 수치 플루언트의 유효 범위 보호 확인
  5. 도달 불가능 목표의 부재 확인
  6. 플래너 호환성 테스트 (대상 플래너에서 계획 생성 성공)
  7. PlanSys2에서의 실행 테스트 (시뮬레이션 환경)
  8. 엣지 케이스 테스트 (빈 도메인, 단일 객체, 최대 객체 수)

10. 참고 문헌

  • Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
  • Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.
  • 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).
  • Helmert, M. (2006). “The Fast Downward Planning System.” Journal of Artificial Intelligence Research, 26, 191–246.