Robo Use

Put both the alphabet soup and the tomato sauce in the basket

libero-10-0LIBEROFranka PandaManipulationhard

Reference solution, 293 of 520 steps.

Instruction

A Franka Panda arm with a parallel-jaw gripper works at a low table in a LIBERO scene (MuJoCo / robosuite; LIBERO suite libero_10, task LIVING_ROOM_SCENE2_put_both_the_alphabet_soup_and_the_tomato_sauce_in_the_basket). LIBERO-Long (libero_10): long-horizon tasks, most with two sub-goals.

Goal (LIBERO's language instruction): put both the alphabet soup and the tomato sauce in the basket.

The episode ends as solved the moment LIBERO's own success check (the task's goal predicates) passes; you do not need to call robo done after that. If you finish without the check passing, call robo done (or robo give-up).

This robot

  • The action has 7 numbers, not 4: robo act DX DY DZ DROLL DPITCH DYAW GRIPPER, each in [-1, 1]. It is LIBERO's delta end-effector command (robosuite's OSC_POSE controller, 20 steps per second). Holding DX/DY/DZ at 1.0 moves the hand about 1 cm per step; DROLL/DPITCH/DYAW rotate the hand (1.0 asks for 0.5 rad; usually leave them at 0). GRIPPER -1 opens, +1 closes.
  • robo move-to X Y Z [--grip G] and robo grip G are available (they keep the hand's orientation).
  • World frame, metres: +x points forward, away from the robot's base; +y is to the robot's left; +z is up. The table surface is at about z = 0.43.
  • robo observe fields: hand_pos (end-effector position), eef_quat (orientation quaternion x, y, z, w) and eef_axis_angle, gripper_qpos (the two finger joints), gripper_open (finger gap in metres, about 0.08 when fully open), and objects: the position and quaternion of every object in the scene, under LIBERO's names (e.g. akita_black_bowl_1, plate_1; ..._1, ..._2 number identical objects); fixtures: the position and quaternion of each piece of furniture (cabinet, stove, microwave, rack, shelf, ...); articulated: each movable part of a fixture (drawer slide, door hinge, stove knob), keyed by its joint name (e.g. wooden_cabinet_1_top_level is the cabinet's top drawer), with qpos (joint position), range (joint limits), LIBERO's thresholds for that fixture (open_ranges / close_ranges, or turnon_ranges / turnoff_ranges for a stove knob: the joint positions at which LIBERO counts the part as open / closed or on / off) and box_min / box_max (the world-frame bounding box of the moving part).
  • robo observe --image saves the front camera (agentview); add --camera robot0_eye_in_hand for the wrist camera. Both are 256x256.
  • The step budget is 520 steps (LeRobot's LIBERO evaluation budget for this suite).
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 lifelong-robot-learning/libero@0.2 \
  --registry https://robouse.ai/hub/registry.json \
  --agent oracle \
  --include libero-10-0

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

Trial
GPT-6 Astra · CodexSolved364 / 5202 minTrial Compare
Kimi K3 · mini-swe-agentSolved279 / 52076 sTrial Compare
GLM-5.3 · mini-swe-agentSolved408 / 5203 minTrial Compare
GLM-5.3 · Claude CodeSolved455 / 5204 minTrial Compare
pi0.5-LIBERO · VLASolved269 / 52043 sTrial Compare
GR00T N1.7-LIBERO · VLASolved286 / 52039 sTrial Compare
EVO1-LIBERO · VLASolved278 / 5203 minTrial Compare
VLA-JEPA-LIBERO · VLASolved282 / 52023 minTrial Compare
pi0.5-LIBERO (LeRobot) · VLASolved266 / 52046 sTrial Compare
pi0-LIBERO · VLASolved279 / 5203 minTrial Compare
pi0-FAST-LIBERO (LeRobot) · VLASolved371 / 52072 sTrial Compare
pi0-LIBERO (LeRobot) · VLASolved508 / 52075 sTrial Compare
MolmoAct2-LIBERO · VLASolved253 / 5202 minTrial Compare
Kimi K3 · Claude CodeNot solved518 / 5209 minTrial Compare
GLM-5.3 · CodexNot solved520 / 5203 minTrial Compare
SmolVLA-LIBERO · VLANot solved519 / 52070 sTrial Compare
Opus 5.5 · Claude CodeStopped, not scored··Trial Compare