1317.34 계획 실패 시 재계획 전략

1. 재계획의 개념과 필요성

재계획(replanning)이란, 기존 계획의 실행이 실패하거나 환경의 변화로 인해 계획이 더 이상 유효하지 않을 때, 현재 상태에 기반하여 새로운 계획을 수립하는 과정을 의미한다. 실세계의 로봇 시스템은 예측 불가능한 장애물 출현, 하드웨어 고장, 동적 환경 변화 등에 의해 사전 수립된 계획이 무효화될 수 있으므로, 재계획 능력은 자율 임무 수행의 필수 요건이다(Ghallab et al., 2004). PlanSys2는 이러한 재계획을 지원하기 위한 아키텍처적 기반을 제공하며, 상위 수준 시스템이 다양한 재계획 전략을 구현할 수 있는 인터페이스를 제공한다(Martín et al., 2021).

2. 재계획 트리거 조건

2.1 액션 실행 실패

가장 일반적인 재계획 트리거는 액션 실행의 실패이다. 액션 수행기가 실패를 보고하면, 행동 트리의 실패 전파를 통해 실행기 노드가 ExecutePlan 액션의 실패 결과를 반환한다. 상위 수준 임무 관리자는 이 실패를 수신하고, 재계획의 필요성을 판단한다.

2.2 전제 조건 불충족

계획 실행 중 다음 액션의 전제 조건이 현재 세계 상태에서 충족되지 않는 경우가 발생할 수 있다. 이는 외부 요인에 의해 세계 상태가 변화하여 계획이 무효화된 경우이다. PlanSys2의 행동 트리에 전제 조건 검증 노드가 삽입되어 있다면, 이 불충족이 감지되어 재계획이 트리거된다.

2.3 외부 이벤트

센서 데이터의 변화, 새로운 장애물의 감지, 사용자로부터의 목표 변경 등 외부 이벤트에 의해 재계획이 요구될 수 있다. 이 경우 상위 수준 시스템이 현재 계획의 실행을 취소하고 재계획을 개시한다.

3. 재계획의 절차

3.1 기본 재계획 절차

PlanSys2에서의 재계획은 다음과 같은 절차를 따른다.

  1. 현재 실행 취소: 실행기 노드에 ExecutePlan 액션의 취소를 요청하여, 진행 중인 모든 액션을 안전하게 중단한다.
  2. 세계 상태 갱신: 문제 전문가 노드의 술어 인스턴스와 함수 값을 현재 실제 세계 상태에 맞추어 갱신한다. 완료된 액션의 효과를 반영하고, 실패한 액션의 효과는 배제한다.
  3. 목표 재설정: 필요한 경우 목표 조건을 수정하거나 유지한다.
  4. 새 계획 수립: 플래너 노드에 갱신된 도메인과 문제를 전달하여 새로운 계획을 수립한다.
  5. 새 계획 실행: 수립된 새 계획을 실행기 노드에 전달하여 실행을 개시한다.

3.2 세계 상태 갱신의 중요성

재계획의 품질은 세계 상태 갱신의 정확성에 크게 의존한다. 부정확한 세계 상태에 기반한 재계획은 다시 실패할 확률이 높다. PlanSys2에서 세계 상태의 갱신은 두 가지 방식으로 수행된다.

  • 액션 효과 기반 갱신: 성공적으로 완료된 액션의 PDDL 효과를 적용하여 상태를 갱신한다. 이 방식은 도메인 모델이 정확하게 현실을 반영하는 경우에 유효하다.
  • 센서 기반 갱신: 로봇의 인식 모듈로부터 현재 환경 상태를 직접 수신하여 세계 상태를 갱신한다. 이 방식은 환경의 불확실성이 높은 경우에 보다 신뢰성이 높다.

4. 재계획 전략의 유형

4.1 완전 재계획

완전 재계획(full replanning)은 현재 상태와 목표를 바탕으로 처음부터 새로운 계획을 수립하는 방식이다. 기존 계획의 어떠한 부분도 재사용하지 않으므로 구현이 단순하지만, 계획 수립에 소요되는 시간이 길어질 수 있다. PlanSys2의 기본 재계획 방식은 이 완전 재계획에 해당한다.

4.2 부분 재계획

부분 재계획(partial replanning)은 기존 계획에서 실패 지점 이후의 부분만을 재계획하는 방식이다. 이미 성공적으로 완료된 액션들을 보존하고, 실패 지점의 현재 상태부터 목표까지의 경로만을 새롭게 계획한다. 이 방식은 계획 수립 시간을 단축할 수 있으나, 부분적으로 실행된 계획의 중간 상태를 정확하게 파악해야 하는 어려움이 있다.

4.3 계획 수선

계획 수선(plan repair)은 기존 계획을 최소한으로 수정하여 유효한 계획으로 변환하는 방식이다. 실패한 액션을 대체 액션으로 교체하거나, 추가적인 액션을 삽입하여 계획을 복구한다. 이 방식은 계획 수립 비용이 가장 낮지만, 수선된 계획의 품질이 최적이지 않을 수 있다.

전략계획 수립 비용계획 품질구현 복잡도
완전 재계획높음높음낮음
부분 재계획중간중간중간
계획 수선낮음낮음~중간높음

5. PlanSys2에서의 재계획 구현

5.1 임무 관리자 패턴

PlanSys2에서 재계획 로직은 일반적으로 상위 수준의 임무 관리자(mission manager) 노드에서 구현된다. 임무 관리자는 PlanSys2의 클라이언트 라이브러리(PlannerClient, ProblemExpertClient, DomainExpertClient, ExecutorClient)를 사용하여 계획 수립과 실행의 전 과정을 제어한다.

전형적인 재계획 루프는 다음과 같은 구조를 가진다.

while (목표 미달성):
    세계_상태_갱신()
    목표_설정()
    계획 = 계획_수립()
    if 계획 == 실패:
        대응_전략_실행()
        continue
    결과 = 계획_실행(계획)
    if 결과 == 성공:
        break
    오류_분석(결과)

5.2 재계획 빈도의 제어

무한한 재계획 루프를 방지하기 위해, 재계획 횟수에 상한을 설정하는 것이 일반적이다. 설정된 횟수 이상의 재계획이 시도되면, 시스템은 임무를 포기하고 운영자에게 개입을 요청한다. 또한, 연속적인 재계획 사이에 일정한 대기 시간을 두어 시스템이 안정화될 시간을 확보할 수 있다.

재계획은 자율 로봇 시스템의 강건성을 확보하는 핵심 메커니즘이며, PlanSys2는 이를 위한 체계적인 인프라를 제공한다(Martín et al., 2021; Ghallab et al., 2004).


참고 문헌

  • Martín, F., Cañas, J. M., Ginés, J., & Fuentetaja, R. (2021). “PlanSys2: A Planning System Framework for ROS2.” IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS).
  • Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
  • Fox, M., Gerevini, A., Long, D., & Serina, I. (2006). “Plan Stability: Replanning versus Plan Repair.” Proceedings of the 16th International Conference on Automated Planning and Scheduling (ICAPS).

버전: v1.0