embodichain.data#
Dataset resolution, asset-download helpers, preset asset registries, and shared constants/enums used by simulation tasks and training pipelines.
Data Package Overview#
The embodichain.data package centralizes dataset resolution, asset download
helpers, preset asset registries, and shared constants/enums used by simulation
tasks and training pipelines.
Submodules
Asset Registry#
Preset configuration objects for scene assets (robots, end-effectors, objects, materials, sensors, planners, solvers, demo scenes) ready to reference from task configs.
Preset configuration objects for scene assets (robots, end-effectors, objects, materials, sensors, planners, solvers, demo scenes) ready to reference from task configs.
Robot Asset Datasets#
Robot dataset classes register the prefixes used by get_data_path() and
embodichain data. Most fetch their pinned archives on first construction.
FlexivRizon4S downloads its versioned official URDF, meshes, license and
provenance archive from the configured asset source, with Hugging Face as a
fallback, into the standard revision-specific cache. Asset lookup and robot
configuration share that same data.
Classes:
Dataset class for the ABB robot. |
|
Dataset class for the ARX5 robot. |
|
Dataset class for the Agile robots. |
|
Dataset class for the Aloha Mini robot. |
|
Dataset class for the Aubo robots. |
|
Dataset class for the CartPole. |
|
Dataset class for the Cobot Magic Arm robot. |
|
Dataset class for the Fanuc robot. |
|
Download the Apache-2.0 Flexiv Rizon 4S description from Hugging Face. |
|
Dataset class for the Franka robots. |
|
Dataset class for the Hans robots. |
|
Dataset class for the KUKA robot. |
|
Dataset class for the Motoman robot. |
|
Dataset class for the Aubo robots. |
|
Dataset class for the RidgeBack wheeled robot. |
|
Dataset class for the Rokae robots. |
|
Dataset class for the Tianji Marvin robot. |
|
Dataset class for the Unitree H1 robot. |
|
Dataset class for the Unitree H1 robot USD version. |
|
Dataset class for the Universal Robots. |
- class embodichain.data.assets.robot_assets.ABB[source]#
Bases:
EmbodiChainDatasetDataset class for the ABB robot.
- Reference:
- Directory structure:
- ABB/
IRB1200_5_90/IRB1200_5_90.urdf IRB2600_12_165/IRB2600_12_165.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import ABB >>> dataset = ABB() or >>> from embodichain.data import get_data_path >>> print(get_data_path("ABB/IRB1200_5_90/IRB1200_5_90.urdf")) >>> print(get_data_path("ABB/IRB2600_12_165/IRB2600_12_165.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.ARX5[source]#
Bases:
EmbodiChainDatasetDataset class for the ARX5 robot.
- Reference:
- Directory structure:
- ARX5/
X5A.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import ARX5 >>> dataset = ARX5() or >>> from embodichain.data import get_data_path >>> print(get_data_path("ARX5/X5A.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Agile[source]#
Bases:
EmbodiChainDatasetDataset class for the Agile robots.
- Reference:
- Directory structure:
- Agile/
Diana7/Diana7.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Agile >>> dataset = Agile() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Agile/Diana7/Diana7.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.AlohaMini[source]#
Bases:
EmbodiChainDatasetDataset class for the Aloha Mini robot.
- Reference:
- Directory structure:
- AlohaMini/
alohamini2pro.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import AlohaMini >>> dataset = AlohaMini() or >>> from embodichain.data import get_data_path >>> print(get_data_path("AlohaMini/alohamini2pro.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Aubo[source]#
Bases:
EmbodiChainDatasetDataset class for the Aubo robots.
- Reference:
- Directory structure:
- Aubo/
i5/i5.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Aubo >>> dataset = Aubo() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Aubo/i5/i5.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.CartPole[source]#
Bases:
EmbodiChainDatasetDataset class for the CartPole.
- Directory structure:
- cart_pole/
cart_pole.urdf cart.mtl cart.obj pole.mtl pole.obj slide_bar.mtl slide_bar.obj
- Example usage:
>>> from embodichain.data.robot_dataset import CartPole >>> dataset = CartPole() or >>> from embodichain.data import get_data_path >>> print(get_data_path("CartPole/cart_pole.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.CobotMagicArm[source]#
Bases:
EmbodiChainDatasetDataset class for the Cobot Magic Arm robot.
- Reference:
- Directory structure:
- CobotMagicArm/
CobotMagicNoGripper.urdf CobotMagicWithGripperV70.urdf CobotMagicWithGripperV70NewUV.urdf CobotMagicWithGripperV70NoMaterial.urdf CobotMagicWithGripperV100.urdf CobotMagicWithGripperV100NewUV.urdf CobotMagicWithGripperV100NoMaterial.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import CobotMagicArm >>> dataset = CobotMagicArm() or >>> from embodichain.data import get_data_path >>> print(get_data_path("CobotMagicArm/CobotMagicWithGripperV100.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Fanuc[source]#
Bases:
EmbodiChainDatasetDataset class for the Fanuc robot.
- Reference:
- Directory structure:
- Fanuc/
M_20iA/M_20iA.urdf R_2000iC_165F/R_2000iC_165F.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Fanuc >>> dataset = Fanuc() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Fanuc/KR6_R700_sixx/KR6_R700_sixx.urdf")) >>> print(get_data_path("Fanuc/KR6_R900_sixx/KR6_R900_sixx.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.FlexivRizon4S[source]#
Bases:
EmbodiChainDatasetDownload the Apache-2.0 Flexiv Rizon 4S description from Hugging Face.
The pinned official URDF, meshes, original parameter files, license and provenance share the standard locked download and extraction cache. The normal data registry resolves
FlexivRizon4S/rizon4s.urdf.- Parameters:
data_root (
str|None) – Optional root for the standard locked asset cache.
Methods:
__init__([data_root])Attributes:
Revision-specific extraction identity used by the data CLI.
-
cache_prefix:
ClassVar[str] = 'FlexivRizon4S_v1'# Revision-specific extraction identity used by the data CLI.
- class embodichain.data.assets.robot_assets.Franka[source]#
Bases:
EmbodiChainDatasetDataset class for the Franka robots.
- Reference:
- Directory structure:
- Franka/
- Panda/
Panda.urdf PandaWithHand.urdf
- FR3/
fr3.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Franka >>> dataset = Franka() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Franka/Panda/Panda.urdf")) >>> print(get_data_path("Franka/PandaWithHand/PandaWithHand.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Hans[source]#
Bases:
EmbodiChainDatasetDataset class for the Hans robots.
- Reference:
- Directory structure:
- Hans/
E05/E05.urdf E10/E10.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Hans >>> dataset = Hans() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Hans/E05/E05.urdf")) >>> print(get_data_path("Hans/E10/E10.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.KUKA[source]#
Bases:
EmbodiChainDatasetDataset class for the KUKA robot.
- Reference:
- Directory structure:
- KUKA/
KUKA/KR6_R700_sixx/KR6_R700_sixx.urdf KUKA/KR6_R900_sixx/KR6_R900_sixx.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import ABB >>> dataset = ABB() or >>> from embodichain.data import get_data_path >>> print(get_data_path("KUKA/KR6_R700_sixx/KR6_R700_sixx.urdf")) >>> print(get_data_path("KUKA/KR6_R900_sixx/KR6_R900_sixx.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Motoman[source]#
Bases:
EmbodiChainDatasetDataset class for the Motoman robot.
- Reference:
- Directory structure:
- Motoman/
GP7/GP7.urdf GP12/GP12.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Motoman >>> dataset = Motoman() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Motoman/GP7/GP7.urdf")) >>> print(get_data_path("Motoman/GP12/GP12.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.RainbowY1[source]#
Bases:
EmbodiChainDatasetDataset class for the Aubo robots.
- Reference:
- Directory structure:
- RainbowY1/
RainbowY1.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import RainbowY1 >>> dataset = RainbowY1() or >>> from embodichain.data import get_data_path >>> print(get_data_path("RainbowY1/RainbowY1.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.RidgeBack[source]#
Bases:
EmbodiChainDatasetDataset class for the RidgeBack wheeled robot.
- Reference:
https://clearpathrobotics.com/ridgeback-indoor-robot-platform/
- Directory structure:
- RidgeBack/
RidgeBack.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import RidgeBack >>> dataset = RidgeBack() or >>> from embodichain.data import get_data_path >>> print(get_data_path("RidgeBack/RidgeBack.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.Rokae[source]#
Bases:
EmbodiChainDatasetDataset class for the Rokae robots.
- Reference:
- Directory structure:
- Rokae/
SR3/SR3.urdf SR5/SR5.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import Rokae >>> dataset = Rokae() or >>> from embodichain.data import get_data_path >>> print(get_data_path("Rokae/SR3/SR3.urdf")) >>> print(get_data_path("Rokae/SR5/SR5.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.TianjiMarvin[source]#
Bases:
EmbodiChainDatasetDataset class for the Tianji Marvin robot.
- Directory structure:
- TianjiMarvin/
robot_acd.urdf robot_with_ee_acd.urdf
- Example usage:
>>> from embodichain.data.assets.robot_assets import TianjiMarvin >>> dataset = TianjiMarvin() or >>> from embodichain.data import get_data_path >>> print(get_data_path("TianjiMarvin/robot_with_ee_acd.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.UnitreeH1[source]#
Bases:
EmbodiChainDatasetDataset class for the Unitree H1 robot.
- Reference:
- Directory structure:
- UnitreeH1/
UnitreeH1.urdf UnitreeH1WithWrist.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import UnitreeH1 >>> dataset = UnitreeH1() or >>> from embodichain.data import get_data_path >>> print(get_data_path("UnitreeH1/UnitreeH1.urdf")) >>> print(get_data_path("UnitreeH1/UnitreeH1WithWrist.urdf"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.UnitreeH1Usd[source]#
Bases:
EmbodiChainDatasetDataset class for the Unitree H1 robot USD version.
- Directory structure:
- UnitreeH1Usd/H1_usd
h1.usd h1.usda
- Example usage:
>>> from embodichain.data.robot_dataset import UnitreeH1Usd >>> dataset = UnitreeH1Usd() or >>> from embodichain.data import get_data_path >>> print(get_data_path("UnitreeH1Usd/H1_usd/h1.usd")) >>> print(get_data_path("UnitreeH1Usd/H1_usd/h1.usda"))
Methods:
__init__([data_root])
- class embodichain.data.assets.robot_assets.UniversalRobots[source]#
Bases:
EmbodiChainDatasetDataset class for the Universal Robots.
V4 corrects the legacy UR3/UR3e material palette without changing robot geometry, collision meshes, kinematics or inertial properties.
- Reference:
- Directory structure:
- UniversalRobots/
UR3/UR3.urdf UR3e/UR3e.urdf UR5/UR5.urdf UR5e/UR5e.urdf UR10/UR10.urdf UR10e/UR10e.urdf
- Example usage:
>>> from embodichain.data.robot_dataset import UniversalRobots >>> dataset = UniversalRobots() or >>> from embodichain.data import get_data_path >>> print(get_data_path("UniversalRobots/UR3/UR3.urdf")) >>> print(get_data_path("UniversalRobots/UR3e/UR3e.urdf")) >>> print(get_data_path("UniversalRobots/UR5/UR5.urdf")) >>> print(get_data_path("UniversalRobots/UR5e/UR5e.urdf")) >>> print(get_data_path("UniversalRobots/UR10/UR10.urdf")) >>> print(get_data_path("UniversalRobots/UR10e/UR10e.urdf"))
Methods:
__init__([data_root])
SO101FollowerAssets resolves the official follower URDF, STLs and motor
reference directly from a pinned The Robot Studio revision. File SHA256 checks
and the shared dataset lock protect the complete dependency cache. The original
license and source reference files are retained alongside the meshes.
Compatible public imports for robot-owned assets.
Classes:
Download the official follower URDF and its dependencies at a fixed revision. |
- class embodichain.data.assets.so101_assets.SO101FollowerAssets[source]#
Bases:
EmbodiChainDatasetDownload the official follower URDF and its dependencies at a fixed revision.
The original Apache-2.0 license, CAD inertials, joint frames, limits and yellow/black URDF materials are preserved. Each source file is checked against its pinned SHA256, including when repairing an existing cache.
- Parameters:
data_root (
str|None) – Optional asset cache root. Omission usesEMBODICHAIN_DATA_ROOTthrough the shared data constants.
Methods:
__init__([data_root])
Constants#
Dataset Resolution#
Classes:
Functions:
|
Resolve a dataset class from the shared asset catalog or extra modules. |
|
Get the absolute path of the data file. |
- class embodichain.data.dataset.EmbodiChainDataset[source]#
Bases:
DownloadDatasetMethods:
__init__(self, prefix, data_descriptor[, ...])calculate_md5(file_path[, chunk_size])Calculate the MD5 checksum of a file.
check_zip(prefix, data_descriptor, path)Check the integrity of the zip file and its extracted contents.
- embodichain.data.dataset.get_data_class(dataset_name, extra_modules=None)[source]#
Resolve a dataset class from the shared asset catalog or extra modules.
- Parameters:
dataset_name (str) – The name of the dataset class.
extra_modules (list[str] | None) – Optional list of additional module names to search for the dataset class.
- Returns:
The dataset class.
- Return type:
type
- Raises:
AttributeError – If the dataset class is not found in any module.
- embodichain.data.dataset.get_data_path(data_path_in_config)[source]#
Get the absolute path of the data file.
- Resolution order:
If
data_path_in_configis an absolute path, return it directly.If a matching file/directory exists under
EMBODICHAIN_DEFAULT_DATA_ROOT(which can be overridden via theEMBODICHAIN_DATA_ROOTenvironment variable), return that path.Otherwise, resolve via the registered data-class download mechanism.
- Parameters:
data_path_in_config (str) – The dataset name, optionally followed by a subpath in the format
"dataset_name/subpath".- Returns:
The absolute path of the data file.
- Return type:
str
Asset Download CLI#
CLI tool for pre-downloading EmbodiChain data assets.
Usage:
# List all available assets
embodichain data list
# List assets in a specific category
embodichain data list --category robot
# Download a specific asset by name
embodichain data download --name CobotMagicArm
# Download all assets in a category
embodichain data download --category robot
# Download everything
embodichain data download --all
Functions:
|
Download assets by name, category, or everything. |
|
List available assets. |
|
Instantiate an asset class to trigger download, then ensure extraction. |
|
Find an asset class by name (case-insensitive) across all categories. |
List asset classes from core modules and installed asset catalogs. |
|
|
Run the data asset CLI. |
- embodichain.data.download.cmd_download(args)[source]#
Download assets by name, category, or everything.
- Return type:
None
- embodichain.data.download.download_asset(cls_name, cls)[source]#
Instantiate an asset class to trigger download, then ensure extraction.
- Return type:
bool
- embodichain.data.download.find_asset_class(name, registry)[source]#
Find an asset class by name (case-insensitive) across all categories.
- Return type:
tuple[str,type] |None
- embodichain.data.download.get_registry()[source]#
List asset classes from core modules and installed asset catalogs.
- Return type:
dict[str,list[tuple[str,type]]]- Returns:
Fresh category lists containing public asset IDs and their classes. Classes are resolved without constructing datasets or downloading files.
Enums#
Classes:
LeRobot standard field keys - official LeRobot dataset format. |
|
SemanticMask is an enumeration representing different semantic regions in an image or scene. |
- class embodichain.data.enum.ActionMode[source]#
Bases:
EnumAttributes:
- ABSOLUTE = ''#
- RELATIVE = 'delta_'#
- class embodichain.data.enum.ControlParts[source]#
Bases:
EnumAttributes:
- HEAD = 'head'#
- LEFT_ARM = 'left_arm'#
- LEFT_EEF = 'left_eef'#
- RIGHT_ARM = 'right_arm'#
- RIGHT_EEF = 'right_eef'#
- WAIST = 'waist'#
- class embodichain.data.enum.EefExecute[source]#
Bases:
EnumAttributes:
- CLOSE = 'execute_close'#
- OPEN = 'execute_open'#
- class embodichain.data.enum.EndEffector[source]#
Bases:
EnumAttributes:
- DEXTROUSHAND = 'hand'#
- GRIPPER = 'gripper'#
- class embodichain.data.enum.Hints[source]#
Bases:
EnumAttributes:
- ARM = ('left_arm', 'right_arm')#
- EEF = ('left_eef', 'right_eef', 'gripper', 'hand')#
- class embodichain.data.enum.LeRobotKey[source]#
Bases:
EnumLeRobot standard field keys - official LeRobot dataset format.
Attributes:
- ACTION = 'action'#
- ACTION_PREFIX = 'action.'#
- ACTION_TOKENS = 'action.tokens'#
- ACTION_TOKEN_MASK = 'action.token_mask'#
- DONE = 'next.done'#
- INFO = 'info'#
- OBS_ENV_STATE = 'observation.environment_state'#
- OBS_IMAGE = 'observation.image'#
- OBS_IMAGES = 'observation.images'#
- OBS_LANGUAGE = 'observation.language'#
- OBS_LANGUAGE_ATTENTION_MASK = 'observation.language.attention_mask'#
- OBS_LANGUAGE_SUBTASK = 'observation.subtask'#
- OBS_LANGUAGE_SUBTASK_ATTENTION_MASK = 'observation.subtask.attention_mask'#
- OBS_LANGUAGE_SUBTASK_TOKENS = 'observation.subtask.tokens'#
- OBS_LANGUAGE_TOKENS = 'observation.language.tokens'#
- OBS_PREFIX = 'observation.'#
- OBS_QF = 'observation.qf'#
- OBS_QVEL = 'observation.qvel'#
- OBS_STATE = 'observation.state'#
- OBS_STR = 'observation'#
- REWARD = 'next.reward'#
- TRUNCATED = 'next.truncated'#
- class embodichain.data.enum.SemanticMask[source]#
Bases:
IntEnumSemanticMask is an enumeration representing different semantic regions in an image or scene.
- BACKGROUND#
Represents the background region (value: 0).
- Type:
int
- FOREGROUND#
Represents the foreground objects (value: 1).
- Type:
int
- ROBOT_LEFT#
Represents the left robot region (value: 2).
- Type:
int
- ROBOT_RIGHT#
Represents the right robot region (value: 3).
- Type:
int
Attributes:
Methods:
__new__(value)- BACKGROUND = 0#
- FOREGROUND = 1#
- ROBOT_LEFT = 2#
- ROBOT_RIGHT = 3#
- __new__(value)#