Robo Use

Walk the Go1 9 m down a hall crossed by three blocks that slide back and forth

Walk the Go1 9 m down a hall crossed by three blocks that slide back and forth, without being touched by any of them

pg-go1-moving-gatesgpu-playgroundUnitree Go1 with a learned gaitManipulationhard

Reference solution, 33 of 200 steps.

Instruction

You control a Unitree Go1 quadruped (about 0.6 m long; footprint radius 0.32 m). Walk it from the start to the goal at the far end of the hall (within 0.4 m of goal). Three orange blocks slide back and forth across the hall along y (each moves along a fixed line x = x, up to 1.8 m to either side of the centre line, repeating every 8-12 s). The robot must not touch a block or the side walls, and must not fall.

Time only passes in the simulation while the robot acts (0.5 s per robo act step). robo observe gives each block's lane (x), size and current y_now, the walls and the goal; watch a block over a few steps to learn its motion.

The step budget is 200 steps: every robo act step and every robo skill call counts as one.

Scene and frames

World frame: x and y on the floor, z up, metres. The robot starts at the origin facing +x (yaw 0). yaw_deg is the heading measured counter-clockwise from +x.

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 high-level policy. The robot already knows how to walk: a learned locomotion policy (trained with reinforcement learning in MuJoCo Playground) turns your velocity command into leg motion 50 times a second. You act only through the robo command in your shell; you cannot read or change the simulator, the scoring, or other files to succeed.

robo info                              # command limits, skills, cameras, step budget
robo observe                           # base pose and velocity, fallen flag, contacts, and the task's map
robo observe --image [--camera C]      # also saves an image (cameras: chase, overview, head) and prints its path
robo act VX VY WZ                      # hold a body-frame velocity command for 0.5 s: VX forward m/s, VY left m/s, WZ turn rate rad/s (counter-clockwise)
robo act VX VY WZ --repeat N           # the same command for N x 0.5 s (N steps of the budget)
robo skill walk VX VY WZ SECONDS       # hold a command for up to 5 s; stops early if the robot touches something or falls (one step)
robo skill stand [SECONDS]             # stand still (zero command), default 1 s
robo done "short summary"              # end the episode and ask for scoring
robo give-up "reason"                  # end the episode without claiming success
  • The robot does not track commands perfectly: it accelerates over a few tenths of a second, drifts sideways, and turns a little while walking straight. Re-observe and correct.
  • Obstacles and walls are boxes given by their centre and half sizes in x and y. Collision is checked on the robot's footprint, a circle of robot_radius_m around its base: any overlap with an obstacle counts as a touch, and any touch fails the task (it is counted in obstacle_contacts; the episode goes on). If the robot falls (fallen: true) it cannot get up again.
  • Success is judged after you call robo done: the condition must hold at that moment. robo give-up, running out of steps or time, or stopping without robo done all score 0. Call robo done exactly once.

Run this task

robouse run \
  --task tasks/gpu-playground/pg-go1-moving-gates \
  --harness oracle \
  --out runs/pg-go1-moving-gates

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

No trials yet.