Run your manipulation policy on a physical FANUC ER-4iA cell from your own machine. An operator sets up and scores every trial against the task you define.
Select two rows to compare them layout by layout.
Ask for fanuc_er4ia_cell_client.zip in #data-and-testbed-requests, then install uv:
unzip fanuc_er4ia_cell_client.zip && cd fanuc_er4ia_cell_client uv sync uv add <what your policy needs>
Edit policy.py. act(obs) returns 1 to 100 rows; the cell plays one row every 0.1 s (10 Hz) and asks again when the chunk has played.
| obs["joints"] | J1..J6 in degrees, then the gripper (0 open, 1 closed) |
| obs["tcp_pose"] | fingertip [x, y, z mm, w, p, r deg] in the user frame |
| obs["images"] | table, side and wrist cameras (the ones you ask for), RGB at your size |
| obs["trial"] | trial id, layout, and the instruction the operator typed |
| ACTION = "joints" | rows [J1..J6 deg, gripper]: for trained policies |
| ACTION = "tcp" | rows [x, y, z mm, w, p, r deg, gripper]: for planners and agents, no IK needed |
A local stand-in for the cell with the same API and limits. Every trial must end with 0 rejected chunks.
uv run run.py --mock --checkpoint <your model>
Fill in submission/submission.json (team, model, contact) and submission/task_card.json: the objects (grip width under 11 mm), where they start, the instruction for each layout, and the stages the operator scores. Without stages a trial is scored success / fail. List any custom fingers under custom_hardware.
Request a slot in #data-and-testbed-requests and attach both files. Each team has three real-robot runs; we send you a token for each run privately.
Keep your client running. For each trial the operator homes the arm, sets up your layout and types the instruction; your client then starts on its own.
uv run run.py --token <token> --checkpoint <your model>
Results appear on the Leaderboard as soon as each trial is scored.
Each row moves the fingertip at most 8 mm and each joint (or the tool rotation) at most 5°. Speed is capped at 50 mm/s. The fingertip never goes below about 2 mm above the table.
The gripper opens or closes once the arm has reached that row's pose. The real arm trails its targets by about 0.8 s, which the twin does not do.
A chunk with a row out of range, NaN or of the wrong shape is rejected whole. Targets beyond the arm's reach (about 0.55 m from the base axis) fault the controller and end the trial.
Coming soon.