Two simulated SO-101 arms face each other across a randomised dinner table. Say "set the table, but skip the cup" and they do it: open the cutlery drawer, hand the spoon across, place the plate, set the cup, and say when it is done. Speech in and out is Speechmatics. The transcript lands about 1.2 s after you stop talking, and the microphone stays open all run: say "stop" and the arms halt at once, or change your mind mid-run and the new plan takes over when the current step ends, with nothing dropped in mid-air. Qwen3-VL-4B (INT4, OpenVINO GenAI) reads the sentence and the top camera and returns a plan over five skills. A verifier adds what physics requires - the spoon is inside a closed drawer, so the drawer opens first - and every correction is shown. One learned ACT policy per skill then drives both arms at 25 Hz from cameras and joint angles alone: no object positions from the simulator, nothing glued to a gripper, grasps held by friction. A ResNet18 camera classifier checks every step and retries what failed. Neither arm reaches the far half of the table, so the cutlery has to change hands. Results on tables never used for training or tuning: 183 of 200 set completely, four sets of 50. Placement medians 3-4 mm, every placed object inside a 2.5 cm tolerance. Push friction, mass, lighting and colour to twice the training range and it still sets 40 of 50. Object sizes at plus or minus 20% are the real limit, at 27 of 50 - measured and reported, not hidden. Every model on the machine runs in OpenVINO on an Intel Core i5: 39-45 ms in PyTorch, 18-20 ms at FP32, 15.5-16 ms with INT8 weights and an IR four times smaller, with no loss in success. Full INT8 is faster again and halves success, so it is not shipped - precision chosen by what the robot achieves, not by output error. The arms run on the performance cores and the planner on the efficiency ones, which takes late control steps from 97% to 6%. Every number comes from a script in the repo.
Category tags: