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. 설계 지침

  1. 통신 범위와 가용성을 전제 조건으로 명시하라. 무제한 통신은 비현실적이므로, 범위와 상태를 명시적으로 확인해야 한다.
  2. 메시지의 중복 수신을 고려하라. PDDL의 프레임 가정에 의해 이미 수신한 메시지의 재수신은 상태에 영향을 미치지 않는다.
  3. 통신과 데이터 이동을 구분하라. 짧은 제어 메시지와 대용량 데이터 전송은 서로 다른 액션으로 모델링하는 것이 적절하다.

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.