Closed-loop policies#
Closed-loop policies for the one-motor VLA: act on the argmax, hedge, or ask when the grounding is ambiguous.
Functions
Split-conformal gate fitted on held-out scenes: ask when the prediction set over cells has more than one cell. |
|
Classical belief update after an answer: product of the two groundings, renormalised (Bayes with independent evidence). |
|
Roll one episode out. |
|
Plan factory. |
|
Like |
- calibrate_gate(model, scenes, alpha=0.1)[source]#
Split-conformal gate fitted on held-out scenes: ask when the prediction set over cells has more than one cell.
- fuse(g_first, g_answer, eps=1e-06)[source]#
Classical belief update after an answer: product of the two groundings, renormalised (Bayes with independent evidence).
- run_episode(scene, rng, plan, motor=None, steps=60, tol=0.0625, n_cells=16)[source]#
Roll one episode out.
plan(scene, rng)returns(controller, n_questions);controller(theta, omega)is called every control step with the noisy measurement.
- vla_plan(model, gate=None, always_ask=False, slot=None, person=<function person_answers>, n_questions=2)[source]#
Plan factory. No gate: act on the model’s expected target. With a gate: ask when the set is not a single cell.
With a belief
slotthe robot asks two questions, the simulatedpersonanswers them, and the slot (Bayes, context-weighted or quantum, seequantum_mind.embodied.belief) turns the instruction belief and the two answers into the posterior it acts on.n_questions=1uses only the first answer. The robot then acts on the most likely object. Without a slot it asks one noise-free question (an idealised answer) and fuses it by the product rule.
- run_sensed_episode(scene, rng, plan, mode, outage_at=1.0, disturbance=0.0, steps=60, tol=0.0625, n_cells=16)[source]#
Like
run_episode(), but the controller sees a state estimate (seequantum_mind.embodied.state).The encoder drops out at
outage_atseconds and an unmodelled push of up todisturbanceworkspace units/s^2 acts on the joint.