1314.42 센서 데이터 수집 액션의 모델링
1. 센서 데이터 수집의 PDDL 표현
로봇의 센서 데이터 수집은 물리적 상태를 직접 변경하지 않으면서 정보를 획득하는 행동이다. PDDL에서 이러한 정보 획득 행동은 “관측 결과가 참이 된다“는 논리적 효과로 추상화하여 모델링한다.
2. 기본 관측 액션
(:predicates
(robot_at ?r - robot ?loc - waypoint)
(sensor_active ?r - robot)
(location_scanned ?loc - waypoint)
(object_detected ?obj - object ?loc - waypoint)
)
(:action scan_location
:parameters (?r - robot ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc)
(sensor_active ?r)
(not (location_scanned ?loc))
)
:effect (and
(location_scanned ?loc)
)
)
3. 대상 특정 관측 액션
특정 물체나 현상을 탐지하는 관측 액션:
(:action detect_object
:parameters (?r - robot ?obj - object ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc)
(sensor_active ?r)
(object_at ?obj ?loc)
)
:effect (object_detected ?obj ?loc)
)
(:action measure_temperature
:parameters (?r - robot ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc)
(has_thermometer ?r)
)
:effect (temperature_measured ?loc)
)
(:action take_photo
:parameters (?r - robot ?target - target ?loc - waypoint)
:precondition (and
(robot_at ?r ?loc)
(has_camera ?r)
(visible_from ?target ?loc)
)
:effect (photo_taken ?target)
)
4. 데이터 저장 용량 모델
(:functions
(storage_used ?r - robot)
(storage_capacity ?r - robot)
(data_size ?type - data_type)
)
(:action collect_data
:parameters (?r - robot ?loc - waypoint ?type - data_type)
:precondition (and
(robot_at ?r ?loc)
(sensor_for ?r ?type)
(<= (+ (storage_used ?r) (data_size ?type)) (storage_capacity ?r))
)
:effect (and
(data_collected ?r ?type ?loc)
(increase (storage_used ?r) (data_size ?type))
)
)
(:action upload_data
:parameters (?r - robot ?station - comm_station)
:precondition (and
(robot_at ?r ?station)
(> (storage_used ?r) 0)
)
:effect (and
(data_uploaded ?r)
(assign (storage_used ?r) 0)
)
)
5. 듀레이티브 관측 액션
센서 데이터 수집에 시간이 소요되는 경우:
(:durative-action detailed_survey
:parameters (?r - robot ?area - survey_area)
:duration (= ?duration (survey_time ?area))
:condition (and
(at start (robot_at ?r ?area))
(at start (sensor_active ?r))
(at start (not (area_surveyed ?area)))
(over all (robot_at ?r ?area))
(over all (sensor_active ?r))
)
:effect (and
(at end (area_surveyed ?area))
(at end (decrease (battery_level ?r) (* ?duration 0.2)))
)
)
over all 조건으로 조사 중 로봇이 해당 구역에 머물러야 하며 센서가 활성 상태를 유지해야 함을 보장한다.
6. 다중 센서 모델
(:types sensor_type - object)
(:predicates
(has_sensor ?r - robot ?s - sensor_type)
(requires_sensor ?task - survey_task ?s - sensor_type)
(task_complete ?task - survey_task)
)
(:action perform_survey_task
:parameters (?r - robot ?task - survey_task ?loc - waypoint ?s - sensor_type)
:precondition (and
(robot_at ?r ?loc)
(task_at ?task ?loc)
(has_sensor ?r ?s)
(requires_sensor ?task ?s)
(not (task_complete ?task))
)
:effect (task_complete ?task)
)
7. 설계 지침
-
관측은 효과로만 표현하라. PDDL의 닫힌 세계 가정 하에서 관측 전에는 정보가 거짓(미지)으로 간주되고, 관측 후에 참으로 전환되는 형태로 모델링한다.
-
센서 가용성을 전제 조건으로 확인하라. 센서 유형, 활성 상태, 보정 여부 등을 전제 조건에서 검사한다.
-
저장 용량 제약을 모델링하라. 실제 로봇은 유한한 저장 용량을 가지므로, 수치 플루언트를 통해 데이터 축적과 업로드를 관리한다.
8. 참고 문헌
- Ghallab, M., Nau, D., & Traverso, P. (2004). Automated Planning: Theory and Practice. Morgan Kaufmann.
- Cashmore, M., Fox, M., Long, D., Magazzeni, D., Ridder, B., Carrera, A., Palomeras, N., Hurtos, N., & Carreras, M. (2015). “ROSPlan: Planning in the Robot Operating System.” Proceedings of ICAPS.
- Haslum, P., Lipovetzky, N., Magazzeni, D., & Muise, C. (2019). An Introduction to the Planning Domain Definition Language. Morgan & Claypool Publishers.