Lift the box onto the step with both hands
t1-box-onto-stephumanoidUnitree G1Manipulationmedium
Instruction
You control a Booster T1 humanoid (1.18 m; MuJoCo Menagerie booster_t1, Apache-2.0). Each 4-joint arm ends in a rigid round hand (6 cm across, no fingers). The robot is mounted on a support stand (its trunk is welded to the stand), leaning 20 degrees forward over a low table: it does not balance or walk and its legs hold a standing pose. The arms and the neck move. World frame in metres: +x points forward from the robot, +y to the robot's left, +z up; the floor is at z = 0 and the origin is on the floor below the robot's pelvis. A small box (10 x 14 x 10 cm, 0.3 kg) stands on the table in front of the robot and a green step, 6 cm high, stands further forward. The hands cannot grasp: lift the box by squeezing it between both hands. All positions and sizes are listed under scene and objects in robo observe. Knocking an object onto the floor is a safety event and fails the task. Each hand's control point is the tip of its round hand. The arms have four joints, so the hand's angle follows from where the tip is. Objects are pushed with the hand or squeezed between both hands; each hand works on its own side of the table (it reaches only a few centimetres past the midline y = 0).
Task
Put the box on top of the green step.
Success: the box sits flat (tilt at most 8 degrees) with its centre over the step top, resting on it, and the robot does not touch it; and no safety event. Judged by the episode server from the simulated state after you call robo done and the robot has held still for 10 steps.
Controls. robo act LDX LDY LDZ RDX RDY RDZ HYAW HPITCH, each in [-1, 1]. LDX LDY LDZ and RDX RDY RDZ move the goal point of the left and right hand by up to 2 cm per step along world x, y, z; an arm controller (inverse kinematics and joint servos) moves the hand after its goal, stops when the hand is blocked and keeps the goal within reach. Zero keeps the goal where it is, so an all-zero action holds the robot still. HYAW turns the head left (+) or right (-) and HPITCH tilts it down (+) or up (-), by up to 3 degrees per step; the head camera moves with the head. One step is 40 ms; --repeat N applies an action N times. Skills (robo info lists them with their arguments): reach SIDE X Y Z [TOL] (move one hand's control point in a straight line to a point; reports whether it arrived, was blocked or hit the edge of its reach, and what the hand touches), reach_both XL YL ZL XR YR ZR [TOL] (both hands at once, for bimanual holds), home (both hands back to their start points), wait [STEPS], look_at X Y Z (turn the head camera toward a point). Skills do not plan around obstacles.
Observation. robo observe reports robot.hands.left / robot.hands.right (pos: the control point, goal: its current goal, touching: what the hand touches) and robot.head (neck yaw and pitch); objects (each free object's centre pos, tilt_deg from upright, touched_by_robot, and its size); scene (the table and every fixture and target zone, with positions); progress where the task tracks something; and safety_events. Cameras: front (default), top, side and head (fixed at the robot's head, looking at the table).
The step budget is 600 steps (24 s of robot time).
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 # the robot, its sensors, action groups, skills and step budget
robo observe # robot and scene state as numbers
robo observe --image [--camera C] # also saves a camera image and prints its path (open it to look)
robo act V1 V2 ... [--repeat N] # one low-level action (the action groups under Controls), applied N times (N <= 50)
robo skill NAME ARG ... # run a skill listed by `robo info`; it runs until it finishes and reports the result
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 (+z up); angles are in degrees unless a field says otherwise.
- The episode has a fixed step budget (see
robo info); every simulated control step counts, including the steps a skill runs. - Skills are ordinary controllers: they can fail, stop early or be blocked by the scene. Read what they report and re-observe.
- Success is judged about 10 steps after you call
robo done, with the robot holding still (each action group's hold value: zero for velocity and delta commands, full brake for a car), so the goal must still be true when the robot stops. - Call
robo doneexactly once when finished.
Run this task
bench eval run \
-d benchflow/humanoid@0.1 \
--registry https://robouse.ai/hub/registry.json \
--agent oracle \
--include t1-box-onto-stepPinned to robohub commit bcd0d002b9df. The verifier and the reference solution are not published.