Robots and extensions#
A robot in wbc-mjlab is a registered entity — not a folder you drop into
env/. The core ships one built-in id (g1) as a reference; every other
platform must register before train, play, or wbc-mjlab-data-to-npz will work.
Why registration#
Registration connects four things the CLI needs:
Registered item |
Used for |
|---|---|
|
|
|
Train and play env builders |
|
Forward kinematics for data conversion |
|
Extension-owned |
wbc-mjlab-list-envs merges tasks from core + all installed extensions.
Robot entity vs extension package#
Approach |
When |
|---|---|
In-tree ( |
Reference platform shipped with core — study, don’t copy-paste for new hardware |
Extension package |
New robot — separate repo, |
Extensions typically ship:
<robot>_base_cfg()— MJCF, sensors, body tuplesOne or more
WbcTaskConfigentries (oftenapply_wbconly)data/<robot_id>/motion libraries underproject_root
Tasks belong to robots#
Every WbcTaskConfig sets robot_id so the CLI knows which entity and data paths
to use. Task ids (Wbc-H2, Wbc-G1-Zest, …) are names for preset stacks on
a specific registered robot — not global env forks.
Build your own#
Step-by-step extension layout, WbcRobotSpec, and H2 reference walkthrough:
Robot entity wiring checklist: The robot entity.