Tell the arm. It moves.
A realtime agent in a thread gets the arm's channel as tools. It sends a goal, reads the joints back, and moves again, inside the bounds the channel declares.
Command, then read back
The agent checks before it moves on.
The servo channel's driver enforces its limits and refuses what is out of bounds. A reply is only the driver's read-back, never an assumption that the arm got there.
Six commands, each one checked.
The goal, as the test typed it: turn shoulder_pan to at least 3000 steps, at most 300 steps a command, looking at the read-back after each; then open the gripper fully. The arm's stream, each command followed by the driver's read-back (hlc and salt left out).
10:33:15.262 command agent:openai-gpt-realtime-2-1@live: torque on 10:33:15.262 state torque on shoulder_pan=2048 10:33:19.437 command agent:openai-gpt-realtime-2-1@live: goal shoulder_pan=2348 10:33:20.024 state torque on shoulder_pan=2348 10:33:20.547 command agent:openai-gpt-realtime-2-1@live: goal shoulder_pan=2648 10:33:21.094 state torque on shoulder_pan=2648 10:33:22.661 command agent:openai-gpt-realtime-2-1@live: goal shoulder_pan=2948 10:33:23.183 state torque on shoulder_pan=2948 10:33:23.888 command agent:openai-gpt-realtime-2-1@live: goal shoulder_pan=3000 10:33:24.168 state torque on shoulder_pan=3000 10:33:25.257 command agent:openai-gpt-realtime-2-1@live: goal gripper=2700 10:33:25.333 state torque on shoulder_pan=3000 gripper=2700
Case study · a live run
At its goal in 14 seconds.
OpenAI's gpt-realtime-2.1 drove the arm cell's simulated SO-101 through its servo channel. It ended the session itself: "the read-back showed shoulder_pan at 3000 … so the goal is satisfied".
Voice or text. In this run the instructions were typed: the session took 11 texts and no audio. A spoken session takes the same tools. The arm was the simulation's, not a real one: no hardware took part.
Simulated
- commands, 0 refused
- 6
- tool calls, each with its result recorded
- 12
- for the session (0.227 min)
- 14 s
- for the session
- $0.060
cloud://global/worlds/arm-cell/world.tsxEjecución runs/20261023t103311z-j57xResultado case-studies/realtime/stats.jsonHerramienta tests/workbench/realtime-robot-live.mjs, read by scripts/sites/case-studies.mjs realtimeSe ejecutó en This computer (dell-gb10-1), OpenAI's realtime APICuándo Talk to the arm cell.
Open the arm cell and start a thread with a realtime agent. A simulated arm needs no grant; a real arm needs a standing grant on its channel.