拿机器人来做例子,我init设(is_foot_use) 为True
(:durative-action acion_d
:parameters ()
:duration (= ?duration 6)
:condition (and
(at start (not (is_foot_use)) )
(over all (is_foot_use))
)
:effect (and
(at start (is_foot_use))
(at end (and
(increase (dance-time) ?duration)
(not (is_foot_use))
))
)
)
一开始在conditon中(at start)条件为(is_foot_use)为假,但是over_all 中需要(is_foot_use)为保持为真,但是有没有其他动作将(is_foot_use)变为真,那么就需要在effect中的(at start)中将(is_foot_use)变为真。
多次询问群上大佬才深刻的意识到durative-action的open intervals,即在处理时间问题的时候,条件和影响都是具有“时效”的,也即是“一开始”的条件是什么,然后满足才开始动作,判断完condition的“at start”就来判断effect的“at start”,因为都是“at start”的动作影响。"over all"和"at end"也同理。