Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
a_exec(t) := exact runtime branch mode_transport_servo(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
a_exec(t) := exact runtime branch mode_transport_servo(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
a_exec(t) := exact runtime branch mode_transport_servo(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
a_exec(t) := exact runtime branch mode_transport_servo(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)


Instruction: put the spoon on the towel

window(t) := 12 <= t < 56
budget(t) := interventions(t) < 18
proposed_open(t) := a_policy[6](t) > 0.0
target_vector_xy(t) := target_xy(t) - source_xy(t)
d_xy(t) := ||target_vector_xy(t)||_2
a_exec(t) := a_policy(t), then apply the active mode branch below
stable_grasp(t) := consecutive(grasped(t)) >= 2
transport_request(t) := proposed_open(t) OR false
transport_trigger(t) := phase=idle AND not transport_done AND window(t) AND budget(t) AND transport_request(t) AND stable_grasp(t) AND d_xy(t) >= 0.07
servo_xy(t) := clip_norm(-1.0 * target_vector_xy(t), 0.03)
lift: a_exec[:6]=0; a_exec[2]=+0.012; a_exec[6]=-1.0
servo: a_exec[:6]=0; a_exec[:2]=servo_xy(t); a_exec[6]=-1.0
descend: a_exec[:6]=0; a_exec[:2]=0.5*servo_xy(t); a_exec[2]=-0.012; a_exec[6]=-1.0
release: a_exec[:6]=0; a_exec[6]=1.0
lift -> servo after age >= 3 OR source_lift >= 0.02
servo -> descend after age >= 7 OR d_xy <= 0.022
descend -> release after age >= 3; release -> done after age >= 2
lost := active transport AND not grasped AND phase_age > 0; lost -> done
unilateral(t) := (F_left >= 0.5 AND F_right <= 0.02) OR (F_right >= 0.5 AND F_left <= 0.02)
regrasp_trigger(t) := phase=idle AND not regrasp_done AND window(t) AND budget(t) AND not grasped(t) AND consecutive(unilateral AND not grasped) >= 4 AND not proposed_open(t) AND all(q_finger <= 0.025)
regrasp_open: a_exec[:6]=0; a_exec[6]=1.0 for 1 steps
regrasp_close: a_exec[:6]=0; a_exec[6]=-1.0 for 1 steps; then idle
a_exec(t) := exact runtime branch mode_hybrid(a_policy(t), oracle_metrics(t), phase(t))
interventions(t+1) := interventions(t) + [a_exec(t) != a_policy(t)]
success_latch(t) := OR_{k<=t} physical_success(k)
if success_latch(t): a_exec[:6]=0; a_exec[6]=1.0 (budget-exempt terminal stabilization)