Robo Use

Suites

A suite is a folder of tasks in the package: a subfolder of robouse tasks --path. Run one with robouse run-many --tasks "$(robouse tasks --path)/SUITE".

robouse 0.4.0 bundles 692 tasks in 31 suites. "Needs" is what a suite needs beyond pip install 'robouse[sim]', if anything. The last two columns count the tasks that scored 1 with the reference solution and with the no-op control.

SuiteTasksNeedsReference solutionNo-op control
adroitAdroit hand12[gymrobotics]12/120/12
arc-styleARC-style rules on a table1111/110/11
composedComposed from components48robouse fetch-assets --all48/480/48
crazyflieCrazyflie 2, one or three7robouse fetch-assets --all7/70/7
cubepickCube pick-and-reach55/50/5
dexhandShadow Hand, LEAP Hand7robouse fetch-assets --all7/70/7
dexjocoDexJoCo: Allegro hand tool use14own virtualenv (below)14/140/14
dmcontroldm_control: Control Suite, Jaco arm17own virtualenv (below)17/170/17
drivingMetaDrive car in traffic7own virtualenv (below)7/70/7
droneSkydio X2 over a town10robouse fetch-assets10/100/10
gymroboticsGymnasium-Robotics: Fetch, PointMaze12[gymrobotics]12/120/12
hardLow-level control, uncalibrated cameras2525/250/25
humanoidUnitree G1 and H1, Apollo, Booster T19robouse fetch-assets --all9/90/9
humanoidbenchHumanoidBench: H1 with two hands7the hub only7/70/7
kitchenFranka Kitchen10[gymrobotics]10/100/10
liberoLIBERO: Spatial, Object, Goal, Long40LIBERO setup40/400/40
libero-90LIBERO-9090LIBERO setup90/900/90
libero-styleLIBERO-like tabletop scenes1212/120/12
maniskillManiSkill3 on the CPU12the hub only12/120/12
menagerieDual Franka Panda, ALOHA 215robouse fetch-assets15/150/15
metaworldMeta-World MT5050[metaworld]50/500/50
mobile-manipStretch 3, TIAGo, Google Robot10robouse fetch-assets --all10/100/10
myosuiteMyoSuite: muscle-driven arm and hand15own virtualenv (below)15/150/15
navObject-goal navigation in homes4040/400/40
quadrupedUnitree Go2 and Go1, Spot, ANYmal C11robouse fetch-assets --all11/110/11
robo-use-familiesRobo Use task families88/80/8
robocasaRoboCasa kitchens24the hub only24/240/24
roboharm10 harm scenarios, 4 configurations80robouse fetch-assets80/800/80
robosuiterobosuite 1.5, five arms21[robosuite]21/210/21
safetyHarmful requests and benign twins88/80/8
visionCamera images, no coordinates55[metaworld]55/550/55

robouse fetch-assets downloads the MuJoCo Menagerie robot models for menagerie, roboharm and drone; robouse fetch-assets --all adds every robot the other suites and composed tasks use (about 390 MB). Each file is checked by SHA-256. Results of models on these suites: Runs.

LIBERO

LIBERO pins robosuite 1.4, so it needs a virtual environment of its own:

python3.12 -m venv .venv-libero && source .venv-libero/bin/activate
pip install 'robouse[sim]' 'mujoco==3.3.0'
pip install --no-deps hf-libero==0.1.4 robosuite==1.4.0 bddl==1.0.1
pip install numba scipy opencv-python-headless termcolor easydict \
  huggingface_hub h5py fsspec tqdm matplotlib future cloudpickle gymnasium
pip install torch --index-url https://download.pytorch.org/whl/cpu
robouse run \
  --task libero-object-0 \
  --harness oracle \
  --out runs/try

The first episode downloads LIBERO's scene assets (about 400 MB) into ~/.cache/libero/assets. In a new environment the first start can take more than two minutes, and robouse run may stop with TimeoutError: episode server did not start; run it again.

Suites with their own virtualenv

These simulators pin versions that conflict with the main environment. The episode server runs each in a virtualenv of its own, started as a subprocess; set the environment variable to use another interpreter.

# dexjoco (ROBOUSE_DEXJOCO_PYTHON); also pip install 'robouse[dexjoco]'
git clone --depth 1 https://github.com/brave-eai/dexjoco.git \
  ~/.cache/robouse/dexjoco
uv venv -p 3.11 ~/.cache/robouse/dexjoco-venv
VIRTUAL_ENV=~/.cache/robouse/dexjoco-venv uv pip install \
  -e ~/.cache/robouse/dexjoco/dexjoco \
  "numcodecs<0.16"

# driving (ROBOUSE_METADRIVE_PYTHON)
uv venv -p 3.11 ~/.cache/robouse/metadrive-venv
uv pip install \
  -p ~/.cache/robouse/metadrive-venv/bin/python \
  metadrive-simulator==0.4.3

# dmcontrol (ROBOUSE_DMCONTROL_PYTHON)
uv venv -p 3.12 ~/.cache/robouse/dmcontrol-venv
uv pip install \
  -p ~/.cache/robouse/dmcontrol-venv/bin/python \
  dm-control==1.0.47

# myosuite (ROBOUSE_MYOSUITE_PYTHON)
uv venv -p 3.11 ~/.cache/robouse/myosuite-venv
uv pip install \
  -p ~/.cache/robouse/myosuite-venv/bin/python \
  myosuite==2.12.2 scipy==1.16.2

humanoidbench, maniskill and robocasa run from the hub, with bench eval run -d.

Robot models

The Menagerie-based suites use MuJoCo Menagerie commit 8161bba2; the models are downloaded, not bundled.

RobotLicenceSuite
Unitree Go2, Go1, G1, H1BSD-3-Clausequadruped, humanoid
Boston Dynamics Spot, ANYbotics ANYmal CBSD-3-Clausequadruped
Apptronik Apollo, Booster T1Apache-2.0humanoid
Hello Robot Stretch 3, PAL TIAGo, Google RobotApache-2.0mobile-manip
Shadow Hand E3M5Apache-2.0dexhand
LEAP Hand, Bitcraze Crazyflie 2MITdexhand, crazyflie

The driving suite uses MetaDrive 0.4.3 (Apache-2.0).

Not in the package

These suites run their simulators in environments built from the upstream projects' own pinned stacks (RLE-Bench's robosuite and RoboCasa commits; CaP-X's robosuite forks, LIBERO-PRO and PyRoKi), so they are not in the package: they run in those simulator images.

SuiteTasksReference solutionNo-op control
rle-benchRLE-Bench family 03, tabletop reasoning: tower, cantilever, balance, hidden centre of mass66/60/6
capxCaP-X's robosuite tasks, code as policy with CaP-X's privileged API (simulator object poses, no perception)3535/350/35
capx-liberoCaP-X on LIBERO-PRO's object-swap tasks, code as policy with CaP-X's privileged LIBERO API88/80/8