새로운 목표에 대한 동적 행동 생성 (Dynamic Action Generation for New Goals)

새로운 목표에 대한 동적 행동 생성 (Dynamic Action Generation for New Goals)

1. 개요

자율 계획의 가장 강력한 특성 중 하나는 새로운 목표가 주어졌을 때 코드 수정 없이 행동 시퀀스를 동적으로 생성하는 능력이다. 이는 하드코딩 방식에서 새 목표마다 규칙을 수동으로 추가하여야 하는 것과 근본적으로 대비된다.

2. 동적 행동 생성 메커니즘

2.1 목표 변경에 의한 재계획

시나리오 1:
  목표: on(box1, table_A)
  계획: [move(robot, start, shelf), pick(robot, box1), move(robot, shelf, table_A), place(robot, box1)]

시나리오 2 (목표 변경):
  목표: on(box1, table_B) ← 목표만 변경
  계획: [move(robot, start, shelf), pick(robot, box1), move(robot, shelf, table_B), place(robot, box1)]
  → 계획기가 자동으로 새로운 경로 생성

2.2 다중 목표의 동적 처리

목표: on(box1, table_A) ∧ on(box2, table_B) ∧ on(box3, table_C)
→ 계획기가 3개 물체의 배달을 통합적으로 최적화한 단일 계획 생성

3. 하드코딩과의 비교 예시

3.1 물류 로봇 시나리오

5개의 물품을 3개의 목적지로 배달하는 임무이다.

접근구현 방식변경 대응
하드코딩5 \times 3 = 15개의 배달 규칙 정의물품/목적지 추가 시 규칙 추가 필요
자율 계획move, pick, place 3개 액션 + 목표 정의물품/목적지 추가 시 문제 정의만 갱신

물품 수가 50개, 목적지가 20개로 증가하면:

  • 하드코딩: 50 \times 20 = 1{,}000개 규칙 + 순서 최적화 규칙
  • 자율 계획: 동일한 3개 액션 + 목표 정의 갱신

4. ROS2에서의 동적 목표 처리

PlanSys2에서 새로운 목표를 동적으로 설정하는 과정이다.

// 문제 전문가에게 목표 추가
problem_expert_client->addGoal(
    plansys2::Goal("(on box1 table_A)"));

// 목표 변경
problem_expert_client->clearGoal();
problem_expert_client->addGoal(
    plansys2::Goal("(on box1 table_B)"));

// 계획기 호출
auto plan = planner_client->getPlan(
    domain_expert_client->getDomain(),
    problem_expert_client->getProblem());

5. 동적 생성의 한계

5.1 계산 시간

새로운 목표에 대한 계획 생성은 계산 시간을 요구한다. 실시간 반응이 필요한 상황에서는 계획 생성 지연이 문제가 될 수 있다.

5.2 도메인 모델의 완전성

도메인에 정의되지 않은 행동은 계획에 포함될 수 없다. 새로운 유형의 행동이 필요하면 도메인 모델을 갱신하여야 한다.

6. 참고 문헌

  • Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
  • PlanSys2 공식 문서. https://plansys2.github.io/

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