Closed-loop policies#

Closed-loop policies for the one-motor VLA: act on the argmax, hedge, or ask when the grounding is ambiguous.

Functions

calibrate_gate

Split-conformal gate fitted on held-out scenes: ask when the prediction set over cells has more than one cell.

fuse

Classical belief update after an answer: product of the two groundings, renormalised (Bayes with independent evidence).

run_episode

Roll one episode out.

oracle_plan

vla_plan

Plan factory.

bc_plan

run_sensed_episode

Like run_episode(), but the controller sees a state estimate (see quantum_mind.embodied.state).

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.

oracle_plan(scene, rng)[source]#
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 slot the robot asks two questions, the simulated person answers them, and the slot (Bayes, context-weighted or quantum, see quantum_mind.embodied.belief) turns the instruction belief and the two answers into the posterior it acts on. n_questions=1 uses 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.

bc_plan(model)[source]#
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 (see quantum_mind.embodied.state).

The encoder drops out at outage_at seconds and an unmodelled push of up to disturbance workspace units/s^2 acts on the joint.