Built-in Robots & Datasets
Robot descriptions and datasets live in the HuggingFace dataset openrobokit/robokit.
Assets are under their own licenses; see license files and outstanding gaps.
Consuming
Import a named asset module and use its static Path symbols. Required files are downloaded and cached automatically. Use fetch() for paths without static symbols:
from robokit.assets import fetch from robokit.assets.robots.humanoids import unitree_g1 unitree_g1.URDF_PATH unitree_g1.COLLISION_SPHERE_PATH fetch(["datasets/sfu/**"]) / "datasets/sfu/0005/x.npz"
from robokit.assets import fetch from robokit.assets.robots.humanoids import unitree_g1 unitree_g1.URDF_PATH unitree_g1.COLLISION_SPHERE_PATH fetch(["datasets/sfu/**"]) / "datasets/sfu/0005/x.npz" assert unitree_g1.URDF_PATH.is_file()
Files are pinned to one dataset commit and cached under ~/.robokit/, so imports work offline.
Self-collision ignore sets
Each robot lists the link pairs that always touch, so self-collision terms skip them. Each geometry representation has its own set. Match it to your SelfCollisionTask representation (sphere by default):
robot = Robot.load(
xhand.URDF_PATH_RIGHT,
load_collision_spheres=True,
collision_spheres_path=xhand.COLLISION_SPHERE_PATH_RIGHT,
self_collision_ignore_path=xhand.SPHERE_SELF_COLLISION_IGNORE_PATH_RIGHT, # or CAPSULE_...
)from robokit.robo import Robot
from robokit.assets.robots.end_effectors import xhand
robot = Robot.load(
xhand.URDF_PATH_RIGHT,
load_collision_spheres=True,
collision_spheres_path=xhand.COLLISION_SPHERE_PATH_RIGHT,
self_collision_ignore_path=xhand.SPHERE_SELF_COLLISION_IGNORE_PATH_RIGHT, # or CAPSULE_...
)
assert robot.spec.has_collision_spheresMJCF variants have only MJ_CAPSULE_... sets. Robots without collision spheres have no sphere set.
For asset layout and authoring, see the Development Guide.
Robots
Licenses are upstream. — means unavailable or unspecified. A side, such as (right), means only that side is available.
Arms
| Name | Format | Source | License | Collision spheres | Self-collision ignore |
|---|---|---|---|---|---|
franka_panda | URDF | ManiSkill | Apache-2.0 | YAML (NVIDIA non-commercial) | ✓ |
| MJCF | Menagerie | Apache-2.0 | — | ✓ | |
xarm6 | URDF | UFACTORY | BSD-3-Clause | YAML | ✓ |
xarm7 | URDF | UFACTORY / SAPIEN | BSD-3-Clause + — | — | ✓ |
| MJCF | Menagerie | BSD-3-Clause | — | ✓ | |
yumi | YAML | — | — | YAML | ✓ |
End effectors
| Name | Format | Source | License | Collision spheres | Self-collision ignore |
|---|---|---|---|---|---|
ability_hand | URDF | PSYONIC | MIT | YAML (right) | ✓ (right) |
allegro_hand | URDF | SimLab | BSD-style | YAML (right) | ✓ (right) |
arx_x5_gripper | URDF | RoboDojo | MIT | YAML | ✓ |
barrett_hand | URDF | Barrett Technology | BSD-style | YAML | ✓ |
dclaw_gripper | URDF | ROBEL | Apache-2.0 | YAML | ✓ |
inspire_hand | URDF | Inspire Robots | CC-BY-NC-SA-4.0 | YAML | ✓ |
leap_hand | URDF | Ananye Agarwal | MIT | YAML (right) | ✓ (right) |
mano_hand | URDF (right) | MANO | MANO | YAML (right) | ✓ (right) |
orcahand | URDF (right) | ORCA | MIT | YAML (right) | ✓ (right) |
paxini_hand | URDF | PaXini | — | YAML (right) | ✓ (right) |
robotiq_2f85 | URDF | a-price | BSD | YAML | ✓ |
schunk_hand | URDF | SCHUNK | GPLv3 | YAML (right) | ✓ (right) |
shadow_hand | URDF | Shadow Robot | BSD-3-Clause + Apache-2.0 | YAML (right) | ✓ (right) |
| MJCF (right) | Menagerie / DexGraspNet | Apache-2.0 + CC-BY-NC-4.0 | YAML (right) | — | |
sharpa_hand | URDF | Sharpa Robotics | Apache-2.0 | YAML | ✓ |
umi_gripper | MJCF | Menagerie | MIT | — | — |
xhand | URDF | RobotEra | — | YAML (right) | ✓ (right) |
| MJCF (right) | RobotEra | — | — | ✓ | |
wuji_hand (Hand 1) | URDF | Wuji Technology | MIT | YAML | ✓ |
| MJCF | Wuji Technology | MIT | — | — | |
wuji_hand_2_2 (Hand 2.2) | URDF | Wuji Technology | MIT | YAML | ✓ |
| MJCF | Wuji Technology | MIT | — | — | |
yam_gripper | URDF | I2RT | MIT | YAML | ✓ |
| MJCF | I2RT | MIT | — | ✓ |
Humanoids
| Name | Format | Source | License | Collision spheres | Self-collision ignore |
|---|---|---|---|---|---|
berkeley_humanoid_lite | URDF | Hybrid Robotics | CC-BY-SA-4.0 | YAML | ✓ |
booster_k1 | URDF | Booster | BSD-3-Clause | YAML | ✓ |
booster_t1 | URDF | Booster | BSD-3-Clause | YAML | ✓ |
engineai_pm01 | URDF | EngineAI | BSD-3-Clause | YAML | ✓ |
fourier_gr3 | URDF | Fourier | GPLv3 | YAML | ✓ |
pal_talos | URDF | PAL Robotics / Stack of Tasks | LGPL-3.0 | YAML | ✓ |
pnd_adam_lite | URDF | PNDbotics | BSD-3-Clause | YAML | ✓ |
tienkung_lite | URDF | X-Humanoid | OpenAtom Open Hardware 1.0 | YAML | ✓ |
toddlerbot_2xc | URDF | ToddlerBot | MIT | YAML | ✓ |
unitree_g1 | URDF | Unitree | BSD-3-Clause | YAML | ✓ |
unitree_h1 | URDF | Unitree | BSD-3-Clause | YAML | ✓ |
unitree_h1_2 | URDF | Unitree | BSD-3-Clause | YAML | ✓ |
Datasets
| Name | Format | Source | License |
|---|---|---|---|
climb | NPY, OBJ | OmniRetarget / Holosoma | Apache-2.0 |
dex_retargeting | PKL | dex-retargeting / DexYCB | CC-BY-NC-4.0 |
dexmachina | NPZ | DexMachina / ARCTIC | ARCTIC |
dexycb | NPZ, JSON, OBJ | DexYCB | CC-BY-NC-4.0 |
gigahands | NPZ | GigaHands | CC-BY-NC-4.0 |
nist_assembly | XML, NPZ | AssembleNIST / UW Lab | MIT |
oakink2 | NPZ | OakInk-v2 | CC-BY-SA-4.0 |
omomo | PT, PKL, OBJ | OMOMO / InterMimic | — |
parahome | PKL, JSON, OBJ | ParaHome | CC-BY-NC-SA-4.0 |
User-provided body models
Download MANO or SMPL-X from its official website after accepting its license. Put the files you need under ~/.robokit/body_models/, or set ROBOKIT_BODY_MODELS to another folder:
mano/MANO_RIGHT.pklormano/MANO_LEFT.pklsmplx/SMPLX_NEUTRAL.npz,smplx/SMPLX_MALE.npz, orsmplx/SMPLX_FEMALE.npz
from robokit.smplx import load_mano, load_smplx
hand = load_mano() # or load_mano("/path/to/MANO_RIGHT.pkl")
body = load_smplx()from robokit.smplx import load_mano, load_smplx
hand = load_mano() # or load_mano("/path/to/MANO_RIGHT.pkl")
body = load_smplx()
assert hand is not None and body is not NoneNPZs load directly. PKLs convert once beside the originals, so the folder must be writable. RoboKit never downloads body models.