User Guide

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:

python
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"
Note

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):

python
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_...
)

MJCF 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

NameFormatSourceLicenseCollision spheresSelf-collision ignore
franka_pandaURDFManiSkillApache-2.0YAML (NVIDIA non-commercial)✓
MJCFMenagerieApache-2.0—✓
xarm6URDFUFACTORYBSD-3-ClauseYAML✓
xarm7URDFUFACTORY / SAPIENBSD-3-Clause + ——✓
MJCFMenagerieBSD-3-Clause—✓
yumiYAML——YAML✓

End effectors

NameFormatSourceLicenseCollision spheresSelf-collision ignore
ability_handURDFPSYONICMITYAML (right)✓ (right)
allegro_handURDFSimLabBSD-styleYAML (right)✓ (right)
arx_x5_gripperURDFRoboDojoMITYAML✓
barrett_handURDFBarrett TechnologyBSD-styleYAML✓
dclaw_gripperURDFROBELApache-2.0YAML✓
inspire_handURDFInspire RobotsCC-BY-NC-SA-4.0YAML✓
leap_handURDFAnanye AgarwalMITYAML (right)✓ (right)
mano_handURDF (right)MANOMANOYAML (right)✓ (right)
orcahandURDF (right)ORCAMITYAML (right)✓ (right)
paxini_handURDFPaXini—YAML (right)✓ (right)
robotiq_2f85URDFa-priceBSDYAML✓
schunk_handURDFSCHUNKGPLv3YAML (right)✓ (right)
shadow_handURDFShadow RobotBSD-3-Clause + Apache-2.0YAML (right)✓ (right)
MJCF (right)Menagerie / DexGraspNetApache-2.0 + CC-BY-NC-4.0YAML (right)—
sharpa_handURDFSharpa RoboticsApache-2.0YAML✓
umi_gripperMJCFMenagerieMIT——
xhandURDFRobotEra—YAML (right)✓ (right)
MJCF (right)RobotEra——✓
wuji_hand (Hand 1)URDFWuji TechnologyMITYAML✓
MJCFWuji TechnologyMIT——
wuji_hand_2_2 (Hand 2.2)URDFWuji TechnologyMITYAML✓
MJCFWuji TechnologyMIT——
yam_gripperURDFI2RTMITYAML✓
MJCFI2RTMIT—✓

Humanoids

NameFormatSourceLicenseCollision spheresSelf-collision ignore
berkeley_humanoid_liteURDFHybrid RoboticsCC-BY-SA-4.0YAML✓
booster_k1URDFBoosterBSD-3-ClauseYAML✓
booster_t1URDFBoosterBSD-3-ClauseYAML✓
engineai_pm01URDFEngineAIBSD-3-ClauseYAML✓
fourier_gr3URDFFourierGPLv3YAML✓
pal_talosURDFPAL Robotics / Stack of TasksLGPL-3.0YAML✓
pnd_adam_liteURDFPNDboticsBSD-3-ClauseYAML✓
tienkung_liteURDFX-HumanoidOpenAtom Open Hardware 1.0YAML✓
toddlerbot_2xcURDFToddlerBotMITYAML✓
unitree_g1URDFUnitreeBSD-3-ClauseYAML✓
unitree_h1URDFUnitreeBSD-3-ClauseYAML✓
unitree_h1_2URDFUnitreeBSD-3-ClauseYAML✓

Datasets

NameFormatSourceLicense
climbNPY, OBJOmniRetarget / HolosomaApache-2.0
dex_retargetingPKLdex-retargeting / DexYCBCC-BY-NC-4.0
dexmachinaNPZDexMachina / ARCTICARCTIC
dexycbNPZ, JSON, OBJDexYCBCC-BY-NC-4.0
gigahandsNPZGigaHandsCC-BY-NC-4.0
nist_assemblyXML, NPZAssembleNIST / UW LabMIT
oakink2NPZOakInk-v2CC-BY-SA-4.0
omomoPT, PKL, OBJOMOMO / InterMimic—
parahomePKL, JSON, OBJParaHomeCC-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.pkl or mano/MANO_LEFT.pkl
  • smplx/SMPLX_NEUTRAL.npz, smplx/SMPLX_MALE.npz, or smplx/SMPLX_FEMALE.npz
python
from robokit.smplx import load_mano, load_smplx

hand = load_mano()  # or load_mano("/path/to/MANO_RIGHT.pkl")
body = load_smplx()

NPZs load directly. PKLs convert once beside the originals, so the folder must be writable. RoboKit never downloads body models.