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.6.1 bundles 790 tasks in 34 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-proLIBERO-PRO: 73 of ASPIRE's 80 swap and task pairs73LIBERO setup73/730/73
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
one-demoOne demonstration, then another object1616/160/16
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
yamDual YAM: Dream Labs' station scene9own virtualenv (below)9/90/9

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.

The libero-pro suite runs in the same environment. Its tasks carry LIBERO-PRO's scene files; a seed other than a task's own (1) downloads LIBERO-PRO's init file for that task (a few kB) at first use.

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 init -q ~/.cache/robouse/dexjoco
git -C ~/.cache/robouse/dexjoco fetch --depth 1 \
  https://github.com/brave-eai/dexjoco.git \
  8d23b0fab23b17a58c4b55f3942e17013aaf8267
git -C ~/.cache/robouse/dexjoco checkout -q FETCH_HEAD
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 gymnasium==1.3.0

# 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 mujoco==3.14.0

# 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

# yam (ROBOUSE_YAM_PYTHON): Dream Labs' scene, from their wheel, without its other dependencies
uv venv -p 3.12 ~/.cache/robouse/yam-venv
uv pip install \
  -p ~/.cache/robouse/yam-venv/bin/python \
  mujoco==3.16.0 numpy pillow
uv pip install \
  -p ~/.cache/robouse/yam-venv/bin/python \
  --no-deps dreamlabs==1.0.0

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

chemlab is not in the package either: it runs on MuJoCo in the main environment, but the instrument models, contracts and data it downloads may not be used commercially (Licences). It runs from a checkout of the repository.

SuiteTasksNeedsReference solutionNo-op control
chemlabChemLab-Assets: fume hood, balance, hotplate, oven, moisture analyzer, shaker7robouse fetch-assets --chemlab (CC BY-NC 4.0)7/70/7
git clone https://github.com/benchflow-ai/robouse.git && cd robouse
python3.12 -m venv .venv && . .venv/bin/activate
pip install -e '.[sim]'
robouse fetch-assets --chemlab
robouse run \
  --task tasks/chemlab/chemlab-fume-hood-sash \
  --harness oracle \
  --out runs/chemlab

robouse fetch-assets --chemlab states the licence, then downloads the 493 files the tasks use (about 11 MB: each instrument's URDF, meshes and contract, and its behaviour runtime with its data) from a pinned revision of ChemLab-Assets on Hugging Face into ~/.cache/robouse/chemlab, checking each file's SHA-256.

Licences

Robo Use is licensed under Apache 2.0, and the NOTICE file lists the third-party code, data and assets in the package, each with its license: MIT for the vendored CaP-X, PyRoKi and RLE-Bench code, the LIBERO instructions, LIBERO-PRO's scene files and the DexJoCo demonstrations, and CC BY 4.0 for the Adroit demonstrations from D4RL. Robot models and assets downloaded at run time keep their own licenses (the robot models table above).

Some suites need software or data with stricter terms, which Robo Use does not include:

  • robodojo (not in the package): cuRobo (non-commercial research license) and NVIDIA Isaac Sim (NVIDIA EULA).
  • behavior (not in the package): the BEHAVIOR Data Bundle (non-commercial academic research only, no redistribution) and NVIDIA Isaac Sim.
  • gpu-isaaclab (not in the package): NVIDIA Isaac Sim.
  • chemlab (not in the package): ChemLab-Assets' instrument models, contracts and data (CC BY-NC 4.0), which robouse fetch-assets --chemlab downloads together with the release's behaviour runtimes (MIT).

robouse flora writes input files for NVIDIA's Flora models and reads their results; the models and NVIDIA's inference scripts are under the NVIDIA License (research or evaluation use only), and Robo Use neither includes nor downloads them (Annotate trials with Flora).

robodojo, behavior and chemlab cannot be run for commercial purposes, and robodojo, behavior and gpu-isaaclab need you to accept NVIDIA's Isaac Sim EULA. The llm and benchflow extras install litellm[proxy], which pulls in litellm-enterprise under a proprietary license. The robosuite extra pulls in GPL and LGPL packages (quadprog, qpsolvers, pynput, python-xlib), and the sim extra's imageio-ffmpeg wheel bundles a GPL build of ffmpeg; Robo Use does not redistribute them, but an image built with them must carry their licenses.

The suite images on this page are renders of each simulator's own scenes. The RoboCasa image shows RoboCasa's kitchen assets (robocasa/robocasa, CC BY 4.0).