Token Lab検索

PHYSICAL AI / FRONTIER · ENGLISH

Robot recovery: when retrying helps, and when it hides failure

Read Backtrack, DexPort and ViT-H through a practical lens: frozen policies, action labels, executable motion and bounded recovery. Includes a local state-machine experiment.

Posted · Updated

Paper submissions: 23 October 2026; reviewed here on 26 October. All three are preprints. These are abstract-level briefs, followed by original Token Lab teaching material, not paper reproductions or robot safety certification.

Study guide & lesson outlineLEARNING CONTRACT

Understand → implement → investigate

Goal: explain the mechanism in this lesson, reproduce one example and test a failure case. Reading alone does not mark mastery.

  • Understand: state assumptions, shapes/units and a counterexample.
  • Implement: reproduce a numerical example and inspect boundaries.
  • Investigate: compare one alternative under a matched budget.

Learning goals and prerequisites

You should know conditional probabilities, basic feedback control and the distinction between an observation and an action. Learn to separate policy learning from recovery-controller changes, specify action-label semantics, and evaluate success under a fixed execution budget.

Predict first: a robot recovers twice and finishes a scripted trace. Is this evidence of task completion? What if recovery used more time than the baseline’s entire episode?

Three recent reading briefs

Backtrack: Lightweight Recovery for Frozen VLAs

Version 2610.32941v1 · Submitted

A small trained failure head reads a frozen VLA’s representations. When predicted failure exceeds a threshold, a controller retraces recent achieved arm motion before returning control to the policy. The authors evaluate in LIBERO and MetaWorld. Frozen policy weights do not mean the entire system requires no training: the failure head is learned.

Original paper · PDF

Reading question: Which outcomes label the predictor, and how does recovery consume the episode budget?

DexPort: A Hand-Held Skill Interface for Dexterous Hand Data Collection

Version 2610.32969v1 · Submitted

DexPort uses the same hand hardware for collection and deployment, logging commanded targets as well as measured states. Operators move the interface and select coordinated finger skills; downstream behavior cloning uses wrist motion and hand commands without skill labels. The abstract reports four real-world tasks.

Original paper · PDF

Reading question: Do your action labels describe the command issued or the state eventually reached?

ViT-H: Generative Video-To-Humanoid Control with Motion Tracking Feedback

Version 2610.32966v1 · Submitted

ViT-H generates humanoid reference motions directly from video and uses motion-tracking feedback for preference-based post-training. The authors report experiments on Unitree G1. A motion that looks plausible and one a particular tracker can execute are different objectives.

Original paper · PDF

Reading question: Does a reference remain executable under a different tracker and latency budget?

Connect the ideas to an actual robot stack

An attempted path approaches an obstacle; a separate dashed path returns to a prior state before retrying. The world may have changed.
Original concept sketch, not measured trajectories. Returning the arm does not necessarily restore objects, contacts or the environment.

Consider a drawer-opening assistant. A demonstration records a handle grasp and a pull. Training on measured joint positions instead of commanded targets can silently change what the policy learns to output. At deployment, a failure predictor may notice a missed grasp, but reversing the arm does not guarantee that the drawer or object returns to its original state. A video-derived reference can also be kinematically plausible while exceeding the tracker’s limits.

LayerWhat changesIndependent check
Demonstration dataTarget commands, states, timingUnits, frames, synchronization and actuator semantics
Motion generatorReference trajectoryTracking error, limits and contact feasibility
Recovery controllerWhen to pause and retryRecovery cost, collision checks and terminal success

A threshold is a decision rule, not a guarantee

Let p be a calibrated failure probability, CF the loss from continuing into failure, and CR a fixed recovery cost. In a deliberately simplified model where recovery prevents failure completely, recover when:

If CF=100 and CR=20 in the same utility units, the threshold is 0.2. If recovery itself fails with probability q=0.1, its expected cost becomes 20+0.1×100=30; the threshold becomes 0.3 under these assumptions. This ignores changing state, future options and risk constraints. Do not use it as a physical safety controller. The demo’s threshold 0.7 is a configurable fixture value, not an estimate from any of the papers.

A scalar risk estimate is dimensionless. Joint targets might be radians, Cartesian targets metres, and delays milliseconds; mixing these in an unweighted cost is invalid. For a horizon H and d joints, explicitly distinguish command arrays of shape H×d from observation arrays sampled at a different frequency.

Run a bounded recovery experiment locally

The synthetic risk stream [0.2, 0.8, 0.3] triggers one recovery at threshold 0.7. With one permitted recovery, [0.8, 0.9] stops at the second high-risk step. No neural network, real robot, API or upload is involved.

Expected: seven PASS checks; trace-ended is not a success verdict.

Download complete implementation. Node.js 22+, no dependencies and no randomness.

node --input-type=module -e "import {run} from './robot-recovery.mjs'; console.log(run())"
Complete code and tests
// Original teaching state machine. No robot commands, network or learned predictor.
export function simulate({risks,threshold=0.7,maxRecoveries=1,safe=true}) {
 if(!Array.isArray(risks)||!risks.length||risks.some(x=>!Number.isFinite(x)||x<0||x>1)||!Number.isFinite(threshold)||threshold<0||threshold>1||!Number.isInteger(maxRecoveries)||maxRecoveries<0||typeof safe!=='boolean')throw Error('Invalid configuration');
 let recoveries=0;const events=[];
 for(const risk of risks){
  if(risk>=threshold){
   if(!safe){events.push('STOP_UNSAFE');return {events,recoveries,status:'stopped'};}
   if(recoveries>=maxRecoveries){events.push('STOP_BUDGET');return {events,recoveries,status:'stopped'};}
   events.push('PAUSE','RECOVER','RESUME');recoveries++;
  }else events.push('ACT');
 }
 return {events,recoveries,status:'trace-ended'};
}
export function run(){const checks=[];const check=(name,ok)=>{if(!ok)throw Error(name);checks.push('PASS: '+name)};
 const recovered=simulate({risks:[.2,.8,.3]});check('one bounded recovery',recovered.recoveries===1&&recovered.events.join(',')==='ACT,PAUSE,RECOVER,RESUME,ACT');
 check('unsafe recovery stops',simulate({risks:[.8],safe:false}).events[0]==='STOP_UNSAFE');
 check('repeated high risk exhausts budget',simulate({risks:[.8,.9]}).status==='stopped');
 check('zero budget stops without recovery',simulate({risks:[.7],maxRecoveries:0}).recoveries===0);
 check('threshold equality triggers',simulate({risks:[.7]}).recoveries===1);
 let rejected=0;for(const risks of [[],[NaN],[-.1],[1.1]])try{simulate({risks})}catch{rejected++}check('invalid probabilities rejected',rejected===4);
 check('trace end is not task success',recovered.status==='trace-ended');
 return {checks,recovered,boundary:'A scripted risk stream tests control logic, not a learned failure predictor or a physical robot.'};}

The safe flag stands in for an independently validated recovery check; it does not compute collision-free motion. The script tests state transitions, threshold boundaries, invalid probabilities and budget exhaustion. Real code must also handle sensor loss, asynchronous cancellation and emergency stops.

A reproducible evaluation protocol

  1. Freeze the policy checkpoint, controller versions, task set, reset distribution and terminal success evaluator.
  2. Compare no recovery, random intervention and predictor-driven recovery under equal total episode time. Count pauses and recovery motions in that budget.
  3. Fit and calibrate the failure predictor on development rollouts only. Split by task or scene where appropriate, not adjacent frames from the same rollout.
  4. Report paired task outcomes, intervention precision/recall, unnecessary interruptions, recovery duration and final success. A detector’s accuracy alone is insufficient.
  5. Test unseen objects and scenes, several thresholds and a separate tracker. Select thresholds before opening the held-out results.

For example, 60 baseline successes versus 68 recovery successes among 100 episodes is an 8 percentage-point difference. It is not enough to establish significance without the paired outcomes and sampling assumptions. A frozen policy with a better controller is a system-level improvement; it does not prove improved model weights or general recursive self-improvement.

Original interview questions and exercises

Why is reversing a motion not a rollback?

Hint: Think about contacts and objects.

Answer and analysis

The arm configuration is only part of the state. Objects can move, deform or fall; friction and contact are not generally reversible. Recovery needs fresh observations and feasibility checks.

Why are commanded actions different from measured states?

Hint: Consider lag and saturation.

Answer and analysis

A command is an input to the controller. A measured state is its delayed, noisy outcome under dynamics and constraints. Training targets must match the deployment action interface and timestamps.

How can a failure predictor with high accuracy hurt success?

Hint: Class imbalance and false alarms.

Answer and analysis

Most frames may be safe, masking rare failures. False alarms interrupt successful executions; detection delay may make recovery ineffective. Evaluate the closed loop, calibration and intervention costs.

How would you test whether recovery learns new capabilities?

Hint: Separate weights from runtime behavior.

Answer and analysis

Evaluate the same checkpoint with and without recovery, then compare updated checkpoints with a fixed controller. Use untouched tasks, equal budgets and independent success tests to distinguish effects.

Transfer exercise: add a cooldown measured in observation steps. Test a risk stream that oscillates around 0.7. Explain why hysteresis can reduce chattering but delay a legitimate new intervention.

Continue learning

Physical AI curriculum · Reward gains versus capability gains · DPO foundations

Sources were checked on 26 October 2026. The linked paper pages provide author-maintained project links where available; no unverified code release or conference acceptance is claimed. Read the full methods before reproducing the papers.

MATHEMATICAL REVIEW · 2026-10-26

Assumptions, implementation & acceptance

Seven deterministic recovery transition checks; scripted risk inputs, not a trained VLA or physical safety controller.

Implementation, invariants and declared evidence boundary reviewed; existing acceptance tests remain part of the suite.

Before running: predict a boundary case

Seven deterministic recovery transition checks; scripted risk inputs, not a trained VLA or physical safety controller.

Hint: isolate the assumption

Keep the baseline input fixed, change one parameter or boundary, and compare both the numerical result and the claimed units. A passing example verifies this fixture only.

Minimal executable example

Save the example and linked modules in one folder. Use Node.js 22 or newer, then run node robot-recovery.mjs. No third-party runtime dependencies.

import {run} from './robot-recovery-core.mjs';
console.log(run());

Test and transfer

Seven deterministic recovery transition checks; scripted risk inputs, not a trained VLA or physical safety controller.

Record input, code version, expected result and observed result in the notebook below. Then construct a counterexample that violates the assumption above and explain why the original conclusion no longer follows.

Download complete kit (.tar.gz) · Complete reference kit and regression checks

Predict, test and keep evidence

Before revealing an answer, predict one result. After the exercise, record the discrepancy and a transfer test. Saved locally across language editions.

Open notebook / export / clear →

The mathematical review scope is recorded per lesson. It does not establish empirical paper reproduction; report suspected errors in your notes. Review scope