1314.45 다중 로봇 협력 액션의 모델링 기법

1314.45 다중 로봇 협력 액션의 모델링 기법

1. 다중 로봇 협력의 PDDL 모델링

다중 로봇 시스템에서 협력 액션(cooperative action)은 두 대 이상의 로봇이 동시에 참여하여 단일 로봇으로는 수행 불가능한 태스크를 완료하는 행동이다. PDDL에서 이러한 협력 액션을 모델링하는 주요 기법을 분석한다.

2. 동기화 기반 협력

두 로봇이 동일한 위치에서 동시에 작업하는 모델:

(:action cooperative_lift
    :parameters (?r1 ?r2 - robot ?obj - heavy_object ?loc - waypoint)
    :precondition (and
        (robot_at ?r1 ?loc)
        (robot_at ?r2 ?loc)
        (not (= ?r1 ?r2))
        (object_at ?obj ?loc)
        (gripper_free ?r1)
        (gripper_free ?r2)
        (requires_two_robots ?obj)
    )
    :effect (and
        (lifted ?obj)
        (not (object_at ?obj ?loc))
        (not (gripper_free ?r1))
        (not (gripper_free ?r2))
        (co_holding ?r1 ?r2 ?obj)
    )
)

이 모델에서 두 로봇이 동일 위치에 있고 양쪽 모두 그리퍼가 비어 있어야 협력 들기가 가능하다. 플래너는 두 로봇을 해당 위치로 이동시키는 계획을 자동으로 생성한다.

3. 역할 분담 기반 협력

로봇들이 서로 다른 역할을 수행하여 협력하는 모델:

(:action assisted_inspection
    :parameters (?inspector - robot ?illuminator - robot ?target - object ?loc - waypoint)
    :precondition (and
        (robot_at ?inspector ?loc)
        (robot_at ?illuminator ?loc)
        (not (= ?inspector ?illuminator))
        (has_camera ?inspector)
        (has_light ?illuminator)
        (object_at ?target ?loc)
    )
    :effect (and
        (inspected ?target)
        (inspection_data_collected ?inspector ?target)
    )
)

4. 릴레이 기반 협력

물체를 여러 로봇이 릴레이 방식으로 전달하는 모델:

(:action handover
    :parameters (?giver ?receiver - robot ?obj - object ?loc - waypoint)
    :precondition (and
        (robot_at ?giver ?loc)
        (robot_at ?receiver ?loc)
        (not (= ?giver ?receiver))
        (holding ?giver ?obj)
        (gripper_free ?receiver)
    )
    :effect (and
        (not (holding ?giver ?obj))
        (holding ?receiver ?obj)
        (gripper_free ?giver)
        (not (gripper_free ?receiver))
    )
)

5. 듀레이티브 협력 액션

시간적 중첩을 활용한 병렬 협력:

(:durative-action collaborative_transport
    :parameters (?r1 ?r2 - robot ?obj - heavy_object ?from ?to - waypoint)
    :duration (= ?duration (/ (distance ?from ?to) (cooperative_speed)))
    :condition (and
        (at start (co_holding ?r1 ?r2 ?obj))
        (at start (robot_at ?r1 ?from))
        (at start (robot_at ?r2 ?from))
        (at start (connected ?from ?to))
        (over all (co_holding ?r1 ?r2 ?obj))
    )
    :effect (and
        (at start (not (robot_at ?r1 ?from)))
        (at start (not (robot_at ?r2 ?from)))
        (at end (robot_at ?r1 ?to))
        (at end (robot_at ?r2 ?to))
    )
)

6. 타입 계층을 활용한 역할 모델링

(:types
    robot - object
    ground_robot aerial_robot - robot
    scout transport_robot - ground_robot
)

(:action scout_and_report
    :parameters (?scout - scout ?loc - waypoint)
    :precondition (and (robot_at ?scout ?loc) (not (area_scouted ?loc)))
    :effect (area_scouted ?loc)
)

(:action transport_to_scouted
    :parameters (?transport - transport_robot ?cargo - object ?from ?to - waypoint)
    :precondition (and
        (robot_at ?transport ?from)
        (holding ?transport ?cargo)
        (area_scouted ?to)
        (connected ?from ?to)
    )
    :effect (and
        (not (robot_at ?transport ?from))
        (robot_at ?transport ?to)
    )
)

정찰 로봇이 먼저 구역을 확인한 후, 운송 로봇이 안전하게 이동하는 순차적 협력을 모델링한다.

7. 설계 지침

  1. 로봇 간 구별 조건(not (= ?r1 ?r2))을 반드시 포함하여 자기 자신과의 협력을 방지하라.
  2. 협력 전제 조건의 동시 충족을 명확히 정의하라. 고전적 PDDL에서는 순차적 계획이므로, 두 로봇이 동시에 특정 위치에 도달하는 것은 순서대로 이동한 후 협력 액션을 수행하는 것으로 구현된다.
  3. 협력 상태의 해제를 반드시 모델링하라. co_holding 등의 협력 술어는 협력 완료 시 적절히 해제해야 한다.

8. 참고 문헌

  • Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
  • Brafman, R. I. & Domshlak, C. (2008). “From One to Many: Planning for Loosely Coupled Multi-Agent Systems.” Proceedings of ICAPS.
  • Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.