환경 변화에 대한 자동 적응 (Automatic Adaptation to Environmental Changes)
1. 개요
자율 계획 시스템은 환경 변화를 감지하고 현재 상태를 갱신한 후, 계획기를 재호출하여 변경된 환경에 맞는 새로운 계획을 자동으로 생성한다. 이 재계획(replanning) 능력은 동적 환경에서의 로봇 자율 운용의 핵심이다.
2. 재계획 메커니즘
2.1 감지-갱신-재계획 루프
[환경 변화 감지] → [상태 모델 갱신] → [기존 계획 무효화 판정]
→ [계획기 재호출] → [새 계획 생성] → [실행 전환]
2.2 재계획 트리거
| 트리거 | 예시 |
|---|---|
| 행동 실패 | 이동 실패(경로 차단) |
| 목표 변경 | 운용자의 새로운 임무 지시 |
| 상태 불일치 | 예상과 다른 센서 관측 |
| 자원 변화 | 배터리 소진, 도구 손실 |
| 환경 변화 | 새 장애물, 문 잠김 |
3. 재계획 전략
3.1 전체 재계획 (Full Replanning)
현재 상태에서 목표까지의 계획을 처음부터 다시 생성한다.
장점: 항상 최적 계획을 보장
단점: 높은 계산 비용
3.2 부분 재계획 (Partial Replanning)
기존 계획에서 무효화된 부분만을 수정한다.
장점: 낮은 계산 비용
단점: 전체 최적성 보장 불가
3.3 지속적 계획 (Continuous Planning)
계획 실행과 재계획을 병렬로 수행하여, 환경 변화에 즉각적으로 대응한다.
4. 환경 변화 유형별 대응
| 환경 변화 | 하드코딩 | 자율 계획 (재계획) |
|---|---|---|
| 경로 차단 | 사전 대체 경로만 사용 | 새 경로 자동 생성 |
| 물체 위치 변경 | 고정 위치 가정 실패 | 현재 위치 반영하여 재계획 |
| 새 장애물 | 알려진 회피 규칙만 적용 | 환경 모델 갱신 후 재계획 |
| 로봇 고장 | 대응 규칙 없으면 실패 | 가용 능력 제약 반영하여 재계획 |
5. PlanSys2에서의 재계획
// 상태 갱신
problem_expert_client->removePredicate(
plansys2::Predicate("(connected room_A room_B)"));
// 기존 계획 무효화
executor_client->cancel();
// 재계획
auto new_plan = planner_client->getPlan(
domain_expert_client->getDomain(),
problem_expert_client->getProblem());
// 새 계획 실행
executor_client->executePlan(new_plan);
6. 재계획의 한계
6.1 계산 시간
재계획에 소요되는 시간 동안 로봇은 행동을 중단하거나 이전 계획의 안전한 부분만을 실행한다.
6.2 도메인 모델 정확도
환경 변화가 도메인 모델의 범위를 벗어나면(새로운 유형의 장애물 등), 재계획도 유효한 계획을 생성하지 못한다.
7. 참고 문헌
- Ghallab, M., Nau, D., & Traverso, P. (2016). Automated Planning and Acting. Cambridge University Press.
- Ingrand, F., & Ghallab, M. (2017). “Deliberation for Autonomous Robots: A Survey.” Artificial Intelligence, 247, 10-44.
| 버전 | 날짜 | 변경 사항 |
|---|---|---|
| v0.1 | 2026-04-05 | 초안 작성 |