1314.43 통신 액션의 PDDL 표현
1. 통신 액션의 개요
로봇 시스템에서 통신 액션은 로봇 간 또는 로봇과 기지국 간의 정보 교환을 모델링한다. PDDL에서 통신은 메시지의 송신과 수신, 데이터의 업로드와 다운로드, 상태 보고 등의 형태로 추상화된다.
2. 단방향 메시지 전송
(:predicates
(comm_link ?from - robot ?to - robot)
(has_message ?r - robot ?msg - message)
(message_delivered ?msg - message ?recipient - robot)
)
(:action send_message
:parameters (?sender - robot ?recipient - robot ?msg - message)
:precondition (and
(has_message ?sender ?msg)
(comm_link ?sender ?recipient)
)
:effect (and
(message_delivered ?msg ?recipient)
(has_message ?recipient ?msg)
)
)
3. 범위 제한 통신
(:predicates
(in_comm_range ?r1 - robot ?r2 - robot)
(comm_enabled ?r - robot)
)
(:action communicate
:parameters (?sender - robot ?receiver - robot ?data - data_packet)
:precondition (and
(has_data ?sender ?data)
(comm_enabled ?sender)
(comm_enabled ?receiver)
(in_comm_range ?sender ?receiver)
)
:effect (and
(has_data ?receiver ?data)
(data_transmitted ?data)
)
)
4. 기지국을 통한 데이터 업로드
(:action upload_to_base
:parameters (?r - robot ?station - comm_station ?data - data_packet)
:precondition (and
(robot_at ?r ?station)
(has_data ?r ?data)
(station_online ?station)
)
:effect (and
(data_at_base ?data)
(not (has_data ?r ?data))
(upload_complete ?r ?data)
)
)
5. 방송 통신
특정 범위 내의 모든 로봇에게 메시지를 전파하는 액션:
(:action broadcast
:parameters (?sender - robot ?msg - message ?loc - waypoint)
:precondition (and
(robot_at ?sender ?loc)
(has_message ?sender ?msg)
(comm_enabled ?sender)
)
:effect (and
(message_broadcast ?msg)
(forall (?r - robot)
(when (and (not (= ?r ?sender))
(in_comm_range ?sender ?r)
(comm_enabled ?r))
(has_message ?r ?msg)
)
)
)
)
6. 듀레이티브 통신
대용량 데이터 전송에 시간이 소요되는 경우:
(:durative-action transfer_large_data
:parameters (?r - robot ?station - comm_station ?dataset - dataset)
:duration (= ?duration (/ (data_volume ?dataset) (bandwidth ?station)))
:condition (and
(at start (robot_at ?r ?station))
(at start (has_dataset ?r ?dataset))
(over all (robot_at ?r ?station))
(over all (station_online ?station))
)
:effect (and
(at start (transfer_in_progress ?r))
(at end (not (transfer_in_progress ?r)))
(at end (dataset_uploaded ?dataset))
(at end (not (has_dataset ?r ?dataset)))
)
)
7. 통신 실패와 재전송 모델
결정론적 PDDL에서 통신 실패를 직접 모델링할 수 없으나, 통신 가능 조건을 전제 조건으로 강화하여 실패 가능성을 간접적으로 반영할 수 있다:
:precondition (and
(comm_enabled ?sender)
(comm_enabled ?receiver)
(in_comm_range ?sender ?receiver)
(not (comm_interference ?sender ?receiver))
(signal_quality_sufficient ?sender ?receiver)
)
8. 설계 지침
- 통신 범위와 가용성을 전제 조건으로 명시하라. 무제한 통신은 비현실적이므로, 범위와 상태를 명시적으로 확인해야 한다.
- 메시지의 중복 수신을 고려하라. PDDL의 프레임 가정에 의해 이미 수신한 메시지의 재수신은 상태에 영향을 미치지 않는다.
- 통신과 데이터 이동을 구분하라. 짧은 제어 메시지와 대용량 데이터 전송은 서로 다른 액션으로 모델링하는 것이 적절하다.
9. 참고 문헌
- 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.