Learn / Practice
Embodied AI X: why can a recovery budget stop a recoverable task?
EMBODIED-AI / EXPLORE · Engineering cases
Twelve rollouts compare unlimited recovery, a two-resume cap and a 400 ms cooldown, separating bounded behavior from task completion.
What was published after this article?
The original conclusions and next-step proposals are retained. These published follow-ups do not imply that every limitation has been resolved.
KEEP EXPLORING
Related content
- Engineering cases
Embodied AI practice (11): placement completed, but is it still valid?
Seven MuJoCo rollouts and a paired replay separate historical completion from current validity, including false alarms and expiry boundaries.
View count unavailable
On this page 7
Reproduce from a clean checkout · this article’s revision
Windows PowerShell with Python 3.12. Use a new directory, not a working copy with unsaved changes. Each article pins its own revision; the first article’s revision does not contain later experiments.
git clone https://github.com/VirtualSelect/hohoo-embodied-agent.git hohoo-embodied-agent-study
cd hohoo-embodied-agent-study
git checkout 497d0df30c1f66de50fb38b930f0c6ea069d9634
python -m venv .venv
$py = '.\.venv\Scripts\python.exe'
& $py -m pip install -r requirements-lock.txt
& $py experiments/vl01_exit_release_budget/run.py --out outputs/my-run
& $py experiments/vl01_exit_release_budget/audit.py outputs/my-runExpect raw trajectories, summaries and audit results. Use a new output directory to preserve earlier results; runners differ in how they handle existing directories. E8–E10 share one experiment runner. No model calls are made; run the numeric experiment first and use the article’s separate replay command for video.
Troubleshooting: a missing experiment directory usually means the wrong revision; import failures require checking the interpreter and environment. OpenGL errors concern rendering steps. On Linux/macOS use .venv/bin/python; those platforms have not been retested.
Inspect the pinned code ↗Pinned code · Raw evidence and audit · Experiment record
The recovery ablation showed why smooth replanning alone does not explain repeated stops. This experiment adds a resume budget and minimum hold duration to the E5 fresh-observation gate.
More restrictions do not automatically produce more completed tasks. The recorded results expose that tradeoff.
1. Preserve the evidence gate
During transfer, capture age reaching 60 ms triggers hold. Resuming requires fresh, consecutive, good observations captured after the stop and spanning at least 100 ms. Bilateral contact, lift height and grasp distance must still pass.
Each resume replans from the measured hand position over 500 ms, followed by the existing lower/release/retreat sequence. A hold exceeding 800 ms aborts.
| Policy | Resume cap | Minimum hold |
|---|---|---|
| unlimited | No per-episode count cap | 0, evidence still required |
| budget-two | 2 | 0, evidence still required |
| budget-two-cooldown | 2 | 400 ms, evidence still required |
Unlimited still has a 12 s episode horizon and an 800 ms hold deadline. The budget counts admitted resumes, not received packets.
2. Four communication conditions
The matrix contains clean operation; a 4.6–4.84 s gap; periodic gaps from 4.3 s, dropping 140 ms of every 440 ms until 6.94 s; and permanent silence from 4.3 s. These faults alter communication, not physical state or capture timestamps.
Monitoring remains transfer-only. Faults are tied to absolute simulation time, so different waits affect motion progress and exposure. Twelve deterministic rollouts do not establish a whole-task pure budget effect or randomized success rate.
3. Outcomes
| Condition | Unlimited | Cap 2 | Cap 2 + cooldown |
|---|---|---|---|
| Clean | 0 resumes, pass | 0, pass | 0, pass |
| Single gap | 1, pass | 1, pass | 1, pass |
| Repeated gaps | 6, pass | 2, budget abort | 2, budget abort |
| Permanent gap | 0, deadline abort | Same | Same |
The unlimited policy eventually places the cube despite repeated interruptions. Both capped policies obey their resource rule but abort with the cube still held. Bounded behavior and successful task completion are separate metrics.
4. Cooldown does not guarantee future stability
The first hold occurs at 4.342 s. Without cooldown, recovery occurs at 4.542 s; with cooldown, at 4.742 s. The next stale-observation stop arrives at 4.782 s, only 40 ms later.
Waiting 400 ms proves a past waiting duration. It does not predict a future healthy interval. The capture age and prior observation window were valid at resume, but the next scheduled gap was close. Longer health windows or link-quality estimates need separate frozen comparisons, not post-hoc tuning to improve the chart.
5. Order the constraints explicitly
The base gate checks its 800 ms deadline first. Once recovery evidence qualifies, the subclass rejects an exhausted budget, waits for minimum hold time if necessary, or admits the resume:
if resumes >= cap:
abort("budget")
elif now - hold_tick < cooldown:
keep_waiting()
else:
resume_after_revalidation()Budget abort keeps the held target. It does not automatically incorporate the E8 opening exit, which would introduce another explanation for changed placement outcomes. Combining individually tested modules requires a new integration test.
6. Verification and limits
Sixteen tests cover contract boundaries and evidence-tampering rejection. The independent audit covers 96 records from 32 rollouts and 11 source fingerprints, checking E10 resume counts, post-hold observation windows, freshness, cooldown and deadlines.
This is neither an independent physics-force recomputation nor a formal safety proof. No hardware braking, variable loads, realistic sensor-error distribution or cross-scene performance was evaluated. VL01 and full M4/M5 remain open.
python experiments/vl01_exit_release_budget/run.py --out evidence/my-budget-series
python experiments/vl01_exit_release_budget/audit.py evidence/my-budget-seriesPredict the outcome of a zero resume budget, or a cooldown longer than the hold deadline, before reading the corresponding tests. These boundaries explain more than a generic retry counter alone.
Read this series
A note to your future selfBefore you move on, keep one thought of your own.
Your private reading note stays in this browser; it is never uploaded or published. Clearing browser data removes it, so export a copy to keep. This article’s translations share the same note.
Next published article:Embodied AI practice (11): placement completed, but is it still valid? →
You are here
EXPLORE / Getting started with embodied AI
- ○ Embodied AI IX: a release command is not verified placement
- ○ Embodied AI X: why can a recovery budget stop a recoverable task?
- ○ Embodied AI practice (11): placement completed, but is it still valid?
KEEP EXPLORING
Related content
- LAB / 018
E10 / Bounded recovery and cooldown
Twelve rollouts compare unlimited recovery, a two-resume cap and a 400 ms cooldown, separating bounded behavior from task completion.
- PROJECT / 003
Hohoo Embodied Experiments
Two MuJoCo teaching scenes—pick-and-place and planar force control—record contracts, tuning, clearance and delayed-feedback outcomes, including failures.
- Engineering cases
Embodied AI VIII: what should the gripper do after a drop alarm?
Fifteen fixed-scene rollouts compare hold, open and open-then-retreat after identical alarms.
- Engineering cases
Embodied AI IX: a release command is not verified placement
Apply single-capture and sustained-window checks to five actual trajectories, including forged observations and post-completion disturbance.
Which way next?
- Embodied AI VIII: what should the gripper do after a drop alarm? →
Fifteen fixed-scene rollouts compare hold, open and open-then-retreat after identical alarms.
- Embodied AI IX: a release command is not verified placement →
Apply single-capture and sustained-window checks to five actual trajectories, including forged observations and post-completion disturbance.
Based on article relationships and published same-topic content, not random recommendations.