Robo Use

Robot0 picks up a hammer and hands it to robot1

robosuite-twoarm-handover-pandarobosuiteFranka PandaManipulationhard

Reference solution, 226 of 700 steps.

Instruction

Two Franka Emika Panda (7-DoF) with its parallel-jaw gripper arms face each other across a table: robot0 on the -y side, robot1 on the +y side. The scene is robosuite's TwoArmHandover environment (MuJoCo).

Goal: The hammer lies on the table on robot0's side. Robot0 picks it up and hands it to robot1. robosuite's TwoArmHandover check: robot1 grasps the hammer's handle, robot0 no longer touches the hammer, and the hammer is more than 10 cm above the table. This must still hold after robo done.

Call robo done when finished; the check is made after the robot then holds still for 10 steps, so the result must last.

This robot

  • The action has 14 numbers: robot0's DX DY DZ DROLL DPITCH DYAW GRIP, then robot1's, each in [-1, 1]: robosuite's OSC_POSE end-effector commands plus the gripper, 20 steps per second, all in the world frame (the same frame for both robots). DX/DY/DZ = 1.0 asks for a 5 cm move (held at 1.0 a hand travels about 1.1 cm per step); DROLL/DPITCH/DYAW rotate that hand about the world x/y/z axes (1.0 asks for 0.5 rad); GRIP +1 closes, -1 opens, 0 keeps the fingers as they are (they move over about 5 steps).
  • robo move-to and robo grip are not available (two robots); use robo act.
  • World frame, metres: +x points away from the table edge between the robots, +y to the robot1 side, +z up.
  • robo observe fields: for each robot i in 0, 1: roboti_hand_pos, roboti_hand_quat (x, y, z, w), and, if it has a gripper, roboti_gripper_open (finger-pad distance, metres) and roboti_gripper_yaw_deg (direction of the fingertip line in the table plane, degrees from +x, in [-90, 90)); hammer_pos (centre of the handle), hammer_quat, hammer_yaw_deg, handle_pos (same point), hammer_handle_axis (unit vector along the handle, pointing toward the head), hammer_head_pos, hammer_handle_length (m); table_height.
  • robo observe --image saves the frontview camera; add --camera robot0_eye_in_hand for the wrist camera. Images are 320x320.
  • The step budget is 700 steps.
  • Robot0 stands at -y and robot1 at +y. Both robots must hold the handle at the same time for a moment, so leave room for two hands on it. Close the fingers across the handle. Move robot1 in from above, not through the hammer.
How the robot is controlled and scored

You are controlling a simulated robot. Read the task below, then solve it by running the robo command in your shell (start with robo info and robo observe). Keep going until the task is done, then call robo done once. Do not stop to ask questions; there is no human to answer.

How to control the robot

You are the robot's policy. You act only through the robo command in your shell. There is no other way to move the robot, and you cannot read or change the simulator, the scoring, or other files to succeed; the episode server judges the final physical state itself.

robo info                         # action space, available skills, step budget
robo observe                      # robot and object state as numbers
robo observe --image              # also saves a camera image and prints its path (open it to look)
robo act DX DY DZ GRIP [--repeat N]   # low-level action, applied N times (N <= 50)
robo move-to X Y Z [--grip G]     # skill: move the gripper toward a point (if enabled for this task)
robo grip G [--steps N]           # skill: hold position and set the gripper (+1 close, -1 open)
robo done "short summary"         # end the episode and ask for scoring
robo give-up "reason"             # end the episode without claiming success
  • Positions are in metres in the world frame (x, y on the table plane, z up).
  • The episode has a fixed step budget (see robo info); every simulated step counts, including skills.
  • Unless the task says otherwise, success is judged about 10 steps after you call robo done, with the robot holding still, so the goal must still be true when the robot stops.
  • Work in small steps and re-observe after each motion. Call robo done exactly once when finished.

Run this task

bench eval run \
  -d arise-initiative/robosuite@0.1 \
  --registry https://robouse.ai/hub/registry.json \
  --agent oracle \
  --include robosuite-twoarm-handover-panda

Pinned to robohub commit 9e672aa1e7f0. The verifier and the reference solution are not published.

Trial
Kimi K3 · mini-swe-agentSolved211 / 7003 minTrial Compare
GPT-6 Astra · CodexNot solved447 / 7003 minTrial Compare
Kimi K3 · Claude CodeNot solved500 / 70013 minTrial Compare
GLM-5.3 · mini-swe-agentNot solved700 / 70010 minTrial Compare
GLM-5.3 · Claude CodeNot solved378 / 70046 minTrial Compare
GLM-5.3 · CodexNot solved634 / 7009 minTrial Compare