Robo Use

Fetch the cup from the study

stretch-fetch-cupmobile-manipHello Robot Stretch 3Manipulationmedium

Reference solution, 2,159 of 4,000 steps.

Instruction

You control a Hello Robot Stretch 3 (MuJoCo Menagerie hello_robot_stretch_3, Apache-2.0): a differential-drive base 0.34 m wide, a lift that moves along a vertical mast, and a telescoping arm that sticks out to the robot's right (the -y side of the robot frame) with a wrist (yaw, pitch) and a two-finger gripper with rubber fingertips (opens to about 16 cm). The arm works in the vertical plane through the base centre perpendicular to the heading: to reach something, park with the robot's right side towards it, 0.40 to 0.91 m away (grasp heights 0.11 to 1.21 m). The upstream model's wheel speed limit is raised from 0.1 to 0.25 m/s, close to the real robot's driving speed; everything else (masses, joints, actuators) is upstream.

The robot is in a small apartment simulated with MuJoCo physics. World frame in metres: +x east, +y north, +z up, floor at z = 0; headings in degrees counter-clockwise from +x (90 = facing north). The apartment spans x -4..4 and y -2.5..2.5, with 2 m high walls. The living room (x 0..4) is in the east, the kitchen (x -4..0, y 0..2.5) in the north-west and the study (x -4..0, y -2.5..0) in the south-west. The wall at x = 0 has two 1 m wide doorways: into the kitchen centred at (0, 1.4) and into the study centred at (0, -1.4). A solid wall at y = 0 separates the kitchen from the study, so going between them means passing through the living room. Furniture: the dining table (top 1.0 x 0.7 m, 0.75 m high, centred at (2.0, 1.3)), a sofa along the living room's south wall, a bookshelf against the east wall (x 3.55..3.95, y -0.45..0.45, open towards the west, shelves at z = 0.40 and 0.80), a waste bin (0.4 x 0.4 m, 0.35 m high, centred at (3.3, -1.0)); in the kitchen a counter along the north wall (front face at y = 1.85, top at z = 0.90) with a drawer in it (a vertical bar handle at (-2.0, 1.78, 0.77) when closed; pull it towards -y, it slides out up to 0.40 m) and a kitchen table (0.7 x 0.5 m, 0.75 m high, centred at (-3.35, 0.55)); in the study a desk against the south wall (1.2 x 0.6 m, 0.74 m high, centred at (-2.4, -2.15)). robo observe lists every room, doorway and piece of furniture with exact numbers under apartment, and the task objects under objects. Everything is solid and simulated: the base, the arm and anything carried collide with walls and furniture, and objects are held only by friction between the fingers. The robot starts at (1, -0.6) in the living room, facing west, with its arm stowed.

Task

A blue cup stands on the desk in the study. Bring it to the dining table in the living room and leave it standing there.

Success: the cup stands on the dining table: it touches that surface, its centre is above it, it is upright (tilted less than 20 degrees) and the robot does not touch it; no safety event happened: a hard collision (a contact force above 150 N between a wall, furniture or the drawer and the robot's base or body (wheels, mast or torso, head), or above 400 N between them and the arm or gripper; the fingers are exempt only on the drawer, which they may grip and pull), a task object touching the floor, a can, cup or bottle knocked over on a table, shelf or counter, or the base tilting more than 12 degrees; safety_events in robo observe lists them. 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 V WZ DLIFT DEXT DYAW DPITCH POSE G (8 values, each in [-1, 1]; one step is 50 ms; --repeat N holds it for N steps). base.twist V, WZ: forward speed (x 0.25 m/s) and turn rate (x 60 deg/s, positive = counter-clockwise); the wheel speeds follow from the wheel radius and track, and the base moves by wheel-floor friction. arm.lift DLIFT: sets the lift target to its current height + DLIFT x 2 cm; arm.extend DEXT: sets the telescope target to its current extension + DEXT x 4 cm (0 to 0.52 m); wrist DYAW, DPITCH: wrist yaw and pitch targets = current angle + value x 15 deg (yaw 0 and pitch 0 point the gripper straight along the arm, fingers closing horizontally). arm.posture POSE: above 0.5 starts the move to the ready pose (wrist straight, gripper open), below -0.5 to the stowed pose (wrist folded in); the move runs by itself unless another arm command interrupts it. gripper G: > 0 closes, < 0 opens (1 = 10 % of the stroke per step); closing stops squeezing at a bounded force when the fingers meet something. Zero holds everything (the base brakes). Skills (robo info lists their arguments): drive_to X Y [YAW_DEG] [TOL] (turns towards the point, drives there in a straight line, then turns to YAW_DEG; it does not plan around walls or furniture, so give it waypoints through the doorways, and it stops if the base is blocked), turn YAW_DEG, reach X Y Z (moves the grasp point, between the fingertips, to a world point: sets the lift height, drives the base forward or back along its heading to put the point on the arm's line, then extends; it fails if the point is not 0.40 to 0.91 m to the robot's right), grasp, open_gripper, ready and stow.

Observation. robo observe reports robot (base x, y, yaw_deg; base_velocity; gripper with pos (the grasp point between the fingertips), opening (0 closed to 1 open), holding (objects touched by both fingers) and touching; arm_posture; and arm with the lift height, extension and wrist angles), objects (per object: kind, colour, centre position, tilt from upright, resting_on, size and mass), apartment (rooms, doorways, furniture with positions and sizes, the drawer's current opening_m and handle position) and safety_events. Cameras (robo observe --image --camera NAME): chase (default, above and behind the robot, looking north), robot/head (the head camera), robot/wrist (the gripper camera), overview (the whole apartment from above, north up), living_room_cam, kitchen_cam and study_cam.

The step budget is 4000 steps (200 s of simulated 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 done exactly once when finished.

Run this task

bench eval run \
  -d benchflow/mobile-manip@0.1 \
  --registry https://robouse.ai/hub/registry.json \
  --agent oracle \
  --include stretch-fetch-cup

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

No trials yet.