Public API Supplement#
This page lists module exports declared through __all__ that are not
covered by a more focused API-reference page. Prefer curated pages for APIs
that need deeper explanations or examples. Sphinx obtains signatures and
summaries here from the canonical Python docstrings.
embodichain.agents.mllm.task_program#
Strict MLLM entry points that inject host-owned integration settings before decoding and compiling the constrained Task Program schema surface.
|
Decode and compile a model response through the existing environment path. |
|
Decode one untrusted model response into the canonical program config. |
embodichain.data.assets.planner_assets#
|
Download a neural planner checkpoint from HuggingFace. |
embodichain.data.assets.solver_assets#
|
Download a neural IK solver checkpoint from HuggingFace. |
embodichain.data_pipeline.depth_video#
|
Convert a string or number to a floating point number, if possible. |
|
Convert a string or number to a floating point number, if possible. |
|
Convert a string or number to a floating point number, if possible. |
|
bool(x) -> bool |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
int([x]) -> integer int(x, base=10) -> integer |
embodichain.gen_sim.env#
|
Return the configured shared |
|
Return the repository containing the installed GenSim source tree. |
|
Load missing variables from the shared GenSim |
embodichain.gen_sim.gradio_ui.app_articraft#
embodichain.gen_sim.gradio_ui.app_asset_engine#
embodichain.gen_sim.gradio_ui.app_commands#
embodichain.gen_sim.gradio_ui.app_env#
|
int([x]) -> integer int(x, base=10) -> integer |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Path subclass for non-Windows systems. |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Path subclass for non-Windows systems. |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Path subclass for non-Windows systems. |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Built-in immutable sequence. |
|
int([x]) -> integer int(x, base=10) -> integer |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
int([x]) -> integer int(x, base=10) -> integer |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Resolve the explicit static and generated roots Gradio may serve. |
|
Resolve repository metadata and dotenv paths Gradio must never serve. |
|
Disable proxy inheritance for local pipeline and Gradio processes. |
|
Map app-level SimReady settings to the upstream CLI's environment. |
|
Return the network environment captured before Gradio forces direct access. |
|
Validate deployment exposure and return Gradio credentials. |
|
Reject an artifact setting broad enough to expose the repository. |
embodichain.gen_sim.gradio_ui.app_media#
embodichain.gen_sim.gradio_ui.app_processes#
embodichain.gen_sim.gradio_ui.app_services#
embodichain.gen_sim.gradio_ui.app_state#
embodichain.gen_sim.gradio_ui.app_ui#
embodichain.gen_sim.gradio_ui.app_workflows#
embodichain.gen_sim.gradio_ui.gradio_app#
embodichain.gen_sim.scene_engine.core.scene_edit_plan#
|
One normalized edit operation produced from an LLM edit draft. |
|
Validated operations against one immutable pre-edit scene state. |
embodichain.gen_sim.scene_engine.pipeline.editing.scene_edit_asset_preparation#
|
Prepare and return SimReady assets required by add operations. |
embodichain.gen_sim.simready_pipeline.cli.start#
|
Ingest one asset directory. |
|
Run the SimReady asset pipeline CLI. |
embodichain.lab.gym.envs.base_env#
embodichain.lab.gym.envs.demo#
|
Per-frame annotation keys stored in expert rollout buffers. |
|
Current version of the segment-aware demonstration metadata schema. |
Collector-owned settings for demonstration persistence. |
|
Result of executing all planned segments for one batched episode. |
|
Supported persistence layouts for one demonstration execution. |
|
One semantic subtask inside a demonstration episode. |
|
Stable, first-failure-phase outcome for one program segment row. |
|
Execution result and half-open frame range for one segment. |
|
|
Plan and execute every segment in one environment episode. |
|
Resolve a task's segment plan with legacy single-action-list fallback. |
embodichain.lab.gym.envs.embodied_env#
Configuration for Embodied AI environments. |
|
Embodied AI environment that is used to simulate the Embodied AI tasks. |
embodichain.lab.task_program.integrations.simulation.handover#
Resolve a hand-over delivery target from immutable configuration. |
embodichain.lab.gym.envs.managers.action_manager#
Base class for action terms. |
|
Manager for processing actions sent to the environment. |
embodichain.lab.gym.envs.managers.actions#
Delta joint position action: current_qpos + scale * action -> qpos. |
|
Absolute joint position action: scale * action -> qpos. |
|
Normalized action in [range[0], range[1]] -> denormalize to joint limits -> qpos. |
|
Normalize action from qpos limits -> [range[0], range[1]]. |
|
End-effector pose (6D or 7D) -> IK -> qpos. |
|
Joint velocity action: scale * action -> qvel. |
|
Joint force/torque action: scale * action -> qf. |
embodichain.lab.gym.envs.wrapper.replay#
Replay a recorded environment trajectory. |
embodichain.lab.gym.utils#
|
alias of |
|
alias of |
|
Capture restorable simulation state into a trajectory state view. |
|
Restore one trajectory timestep into an environment scene. |
embodichain.lab.gym.utils.gym_utils#
|
Built-in mutable sequence. |
|
Add common environment launcher arguments to an existing argparse parser. |
|
Assign data to a TensorDict using a '/' separated key. |
|
Adds one dimension in front of everything. |
|
Build environment configuration from command-line arguments. |
|
Concatenate tensors along a new dimension specified by dim, using the provided ids to index into the tensors. |
|
Clip action to [-1, 1] and scale according to a range [low, high]. |
|
Parser configuration file into cfgs for env initialization. |
|
Convert observation to OpenAI gym observation space (recursively). |
|
Convert arrays in a dictionary to torch tensors in-place. |
|
Fetch data from a nested dictionary using a '/' separated key. |
|
Flatten a dictionary containing states recursively. |
|
Gets the min and max values of a given numpy type |
|
Get all registered manager modules (built-in + extensions). |
|
Initialize a rollout buffer based on the environment configuration. |
|
Initialize a rollout buffer based on the observation and action spaces. |
|
Map qpos to end-effector pose. |
|
Merge command-line arguments with gym configuration. |
|
Register additional manager modules for functor resolution. |
|
Maps any given sequence to a torch tensor on the CPU. |
|
Maps any given sequence to a torch tensor on the CPU/GPU. |
embodichain.lab.gym.utils.profiler#
|
alias of |
|
alias of |
embodichain.lab.gym.utils.trajectory_state#
|
Capture restorable simulation state into a trajectory state view. |
|
Restore one trajectory timestep into an environment scene. |
embodichain.lab.scripts.analyze_workspace#
|
Build a SimulationManagerCfg from CLI arguments. |
|
Build a RobotCfg from either a URDF/USD asset or a predefined robot. |
|
Build a RobotCfg from a predefined EmbodiChain robot preset. |
|
Build a WorkspaceAnalyzerConfig from CLI arguments. |
|
Visualize cached workspace data beside its robot in EmbodiChain. |
|
Parse workspace-analysis CLI arguments. |
|
Run the workspace analysis end-to-end. |
|
Command-line interface for workspace analysis. |
embodichain.lab.scripts.preview_asset#
|
Build a SimulationManagerCfg from CLI arguments. |
|
Command-line interface for asset preview. |
|
Load one or more assets into the simulation. |
|
Orchestrate: create simulation, load asset, optionally preview, destroy. |
|
Enter interactive preview mode. |
embodichain.lab.scripts.preview_joint_control#
|
Expose scalar articulation joints and hold commanded preview poses. |
embodichain.lab.scripts.preview_lerobot_data#
|
Human-readable episode summary and validation result. |
|
Summary of one contiguous demonstration segment. |
|
Build and validate a preview from already loaded LeRobot samples. |
|
Run the preview through the unified |
|
Load one episode through LeRobot and return its validated preview. |
|
Run the preview CLI and return a process exit code. |
|
Resolve a dataset root, optionally selecting the newest child dataset. |
embodichain.lab.scripts.run_env#
|
Command-line interface for environment runner. |
|
Execute one legacy planner result through the common episode executor. |
|
Generate, execute, and commit one demonstration collection batch. |
|
Run the selected workflow without taking ownership of |
|
Run the following code to create a demonstration and perform env steps. |
embodichain.lab.sim#
|
Configuration for visual material with PBR properties for rasterization and ray tracing. |
|
Visual material definition in the simulation environment. |
|
Instance of a visual material in the simulation environment. |
|
Reuse state for one render-body segment of a parsed object. |
|
Abstract base class for batch entity in the simulation engine. |
|
Global Embodied AI simulation manager. |
|
Global robot simulation configuration. |
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
embodichain.lab.sim.atomic_actions#
|
Engine-scoped registry of planning services used by atomic actions. |
|
Base class for affordance data. |
|
Antipodal grasp affordance for parallel-jaw grippers. |
|
Affordance describing how an assemble object fits onto a base object. |
|
Built-in immutable sequence. |
|
Per-invocation coordinated pickup behavior. |
|
Per-invocation coordinated placement behavior. |
|
Policy for consuming a live dynamic collision world. |
|
Scene entity state addressable by a stable entity identifier. |
|
alias of |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Per-invocation pick-up, handover, and placement behavior. |
|
Batch of 3D interaction points on an object surface. |
|
Per-invocation behavior for |
|
Per-invocation held-object transport behavior. |
|
Per-invocation behavior for |
|
Shared semantic-object goal contract for object-centric skills. |
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
|
Per-invocation pickup behavior. |
|
Per-invocation placement behavior. |
|
Represent a PEP 604 union type |
|
Close the end effector, contact a rigid object, and push it in-plane. |
|
Push one rigid object toward a target pose on the target support plane. |
|
Per-invocation planar pushing behavior. |
|
End-effector calibration selected by a bound motion control part. |
|
Observe simulation rigid objects and maintain scene revisions. |
|
Material-pose thresholds used to advance scene revisions. |
|
alias of |
|
Produce scene snapshots correlated with execution environments. |
|
alias of |
embodichain.lab.sim.atomic_actions.affordance#
|
Base class for affordance data. |
|
Antipodal grasp affordance for parallel-jaw grippers. |
|
Antipodal grasp affordance with an object-local alignment axis. |
|
Target-local antipodal grasp and parent-joint translation geometry. |
|
Target-local contact point and parent-joint pressing geometry. |
|
Target-local grasp point and parent-joint rotation geometry. |
|
Batch of 3D interaction points on an object surface. |
|
Affordance describing how an assemble object fits onto a base object. |
Classes:
|
Base class for affordance data. |
|
Antipodal grasp affordance for parallel-jaw grippers. |
|
Affordance describing how an assemble object fits onto a base object. |
|
Antipodal grasp affordance with an object-local alignment axis. |
|
Batch of 3D interaction points on an object surface. |
|
Target-local handle geometry and a resolved hinge axis. |
|
Target-local contact point and parent-joint pressing geometry. |
|
Target-local antipodal grasp and parent-joint translation geometry. |
|
Target-local grasp point and parent-joint rotation geometry. |
- class embodichain.lab.sim.atomic_actions.affordance.Affordance[source]
Base class for affordance data.
Represents an object’s interaction possibilities. Subclasses carry whatever typed fields they need (mesh tensors, interaction points, etc.); the base class only carries an object label and a free-form custom_config dict.
Methods:
__init__([object_label, custom_config])get_batch_size()Return the batch size of this affordance data.
get_custom_config(key[, default])Get a custom affordance configuration value.
resolve_from_object_geometry(geometry)Resolve geometry-derived fields after object semantics are assembled.
set_custom_config(key, value)Set a custom affordance configuration value.
Attributes:
custom_configUser-defined configuration payload.
object_labelLabel of the object this affordance belongs to.
- __init__(object_label='', custom_config=<factory>)
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_batch_size()[source]
Return the batch size of this affordance data.
- Return type:
int
- get_custom_config(key, default=None)[source]
Get a custom affordance configuration value.
- Return type:
Any
-
object_label:
str= '' Label of the object this affordance belongs to.
- resolve_from_object_geometry(geometry)[source]
Resolve geometry-derived fields after object semantics are assembled.
Subclasses may override this hook when their derived semantic values require metadata owned by
ObjectSemantics.geometry.- Parameters:
geometry (
Mapping[str,Any]) – Non-affordance object geometry metadata.- Return type:
None
- set_custom_config(key, value)[source]
Set a custom affordance configuration value.
- Return type:
None
- class embodichain.lab.sim.atomic_actions.affordance.AntipodalAffordance[source]
Antipodal grasp affordance for parallel-jaw grippers.
The affordance owns only target-local triangle-mesh data. Simulator entity handles and live poses belong to scene grounding, not semantic geometry.
Attributes:
MAX_SURFACE_POINT_COUNTMaximum point-cloud size used for geometry-distribution analysis.
custom_configUser-defined configuration payload.
mesh_trianglesObject mesh triangle indices, shape [M, 3].
mesh_verticesObject mesh vertices, shape [N, 3].
Methods:
__init__([object_label, custom_config, ...])get_object_longest_axis(obj_poses, *[, ...])Return the widest surface-point distribution axis in world space.
sample_surface_points([max_points])Deterministically sample target-local mesh-surface points.
-
MAX_SURFACE_POINT_COUNT:
ClassVar[int] = 1000 Maximum point-cloud size used for geometry-distribution analysis.
- __init__(object_label='', custom_config=<factory>, mesh_vertices=None, mesh_triangles=None)
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_object_longest_axis(obj_poses, *, max_points=1000)[source]
Return the widest surface-point distribution axis in world space.
- Return type:
Tensor
-
mesh_triangles:
Tensor|None= None Object mesh triangle indices, shape [M, 3].
-
mesh_vertices:
Tensor|None= None Object mesh vertices, shape [N, 3].
- sample_surface_points(max_points=1000)[source]
Deterministically sample target-local mesh-surface points.
- Parameters:
max_points (
int) – Requested point cap in[1, 1000].- Return type:
Tensor- Returns:
Target-local surface points with shape
(N, 3).
-
MAX_SURFACE_POINT_COUNT:
- class embodichain.lab.sim.atomic_actions.affordance.AssembleAffordance[source]
Affordance describing how an assemble object fits onto a base object.
The affordance stores the relative assembly relation. Planning supplies the base object’s snapshot pose through
AssembleGoal.base_pose. The assemble object’s target pose isbase_pose @ assemble_to_base_pose.Methods:
__init__([object_label, custom_config, ...])get_assemble_object_pose(base_pose)Return the assemble-object target pose for a given base-object pose.
Attributes:
assemble_to_base_posePose of the assemble object relative to the base object frame, shape
(4, 4)or(num_envs, 4, 4).custom_configUser-defined configuration payload.
- __init__(object_label='', custom_config=<factory>, assemble_to_base_pose=<factory>)
-
assemble_to_base_pose:
Tensor Pose of the assemble object relative to the base object frame, shape
(4, 4)or(num_envs, 4, 4).
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_assemble_object_pose(base_pose)[source]
Return the assemble-object target pose for a given base-object pose.
The assemble object is placed at
base_pose @ assemble_to_base_pose.- Parameters:
base_pose (
Tensor) – Base-object pose with shape(4, 4)or(num_envs, 4, 4).- Return type:
Tensor- Returns:
Assemble-object target pose with shape
(num_envs, 4, 4).- Raises:
TypeError – If either pose value is not a tensor.
ValueError – If either pose has an unsupported shape or batch size.
- class embodichain.lab.sim.atomic_actions.affordance.AxisAlignAffordance[source]
Antipodal grasp affordance with an object-local alignment axis.
Methods:
__init__([object_label, custom_config, ...])Attributes:
custom_configUser-defined configuration payload.
internal_axisAxis expressed in the target object's local frame.
- __init__(object_label='', custom_config=<factory>, mesh_vertices=None, mesh_triangles=None, internal_axis=<factory>)
-
custom_config:
dict[str,Any] User-defined configuration payload.
-
internal_axis:
Tensor Axis expressed in the target object’s local frame.
- class embodichain.lab.sim.atomic_actions.affordance.InteractionPoints[source]
Batch of 3D interaction points on an object surface.
Methods:
__init__([object_label, custom_config, ...])get_approach_direction(point_idx)Get recommended approach direction for a given point.
get_batch_size()Return the number of interaction points in this affordance.
get_points_by_type(point_type)Get points by their interaction type.
Attributes:
custom_configUser-defined configuration payload.
normalsOptional surface normals at each interaction point with shape [B, 3].
point_typesOptional labels for each point's interaction type.
pointsBatch of 3D interaction points with shape [B, 3].
- __init__(object_label='', custom_config=<factory>, points=<factory>, normals=None, point_types=<factory>)
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_approach_direction(point_idx)[source]
Get recommended approach direction for a given point.
- Return type:
Tensor
- get_batch_size()[source]
Return the number of interaction points in this affordance.
- Return type:
int
- get_points_by_type(point_type)[source]
Get points by their interaction type.
- Return type:
Tensor|None
-
normals:
Tensor|None= None Optional surface normals at each interaction point with shape [B, 3].
-
point_types:
list[str] Optional labels for each point’s interaction type.
-
points:
Tensor Batch of 3D interaction points with shape [B, 3].
- class embodichain.lab.sim.atomic_actions.affordance.OpenDoorAffordance[source]
Target-local handle geometry and a resolved hinge axis.
Use
from_articulation()to start from a graspable handle link. The factory consumes the articulation’s public parent-joint chain, skips only fixed joints, and automatically accepts one unambiguous active revolute ancestor. Ambiguous mechanisms require an explicit hinge joint name. The resulting affordance owns no simulator entity or live pose.Methods:
__init__([object_label, custom_config, ...])from_articulation(articulation, link_name, *)Build handle semantics from a parent revolute joint.
Attributes:
axis_originResolved point on the hinge axis in the handle-link frame.
custom_configUser-defined configuration payload.
joint_limitsOptional lower and upper hinge limits in radians.
joint_nameStable name of the resolved parent revolute joint.
opening_directionJoint-coordinate direction from the closed limit toward the open limit.
rotation_axisResolved hinge axis expressed in the handle-link frame.
- __init__(object_label='', custom_config=<factory>, joint_limits=None, opening_direction=1, *, mesh_vertices, mesh_triangles, rotation_axis, axis_origin, joint_name)
-
axis_origin:
tuple[float,float,float] Resolved point on the hinge axis in the handle-link frame.
-
custom_config:
dict[str,Any] User-defined configuration payload.
- classmethod from_articulation(articulation, link_name, *, hinge_joint_name=None, opening_direction=1)[source]
Build handle semantics from a parent revolute joint.
Automatic resolution skips only fixed joints. It succeeds when the handle chain contains exactly one active ancestor and that joint is revolute. A chain with multiple active ancestors can represent a latch, handle joint, or another mechanism and therefore requires an explicit
hinge_joint_name. Hinge geometry is converted from the joint frame into the requested handle-link frame using current public link poses.- Parameters:
articulation (Articulation) – Articulation containing the graspable handle link.
link_name (str) – Graspable handle link from which to start the traversal.
hinge_joint_name (str | None) – Optional explicit revolute ancestor. Required when more than one active ancestor makes automatic resolution ambiguous.
opening_direction (int) – Joint-coordinate direction from the closed legal endpoint toward the open endpoint. Defaults to increasing qpos.
- Return type:
OpenDoorAffordance
- Returns:
Pure target-local handle and hinge semantics.
- Raises:
TypeError – If a supplied name is not a string.
ValueError – If the link or explicit joint is unknown, automatic resolution is ambiguous, the selected joint is not revolute, or the resolved joint geometry is invalid.
-
joint_limits:
tuple[float,float] |None= None Optional lower and upper hinge limits in radians.
-
joint_name:
str Stable name of the resolved parent revolute joint.
-
opening_direction:
int= 1 Joint-coordinate direction from the closed limit toward the open limit.
-
rotation_axis:
Tensor Resolved hinge axis expressed in the handle-link frame.
- class embodichain.lab.sim.atomic_actions.affordance.PressAffordance[source]
Target-local contact point and parent-joint pressing geometry.
Methods:
__init__([object_label, custom_config, ...])get_press_pose(target_pose[, press_position])Construct a press pose at the configured surface point.
resolve_from_object_geometry(geometry)Resolve the target-local prismatic axis, sign, and contact point.
Attributes:
custom_configUser-defined configuration payload.
press_axisParent prismatic-joint axis, signed toward articulation geometry.
press_positionLocal contact point; inferred from articulation geometry when omitted.
- __init__(object_label='', custom_config=<factory>, press_axis=<factory>, *, press_position=None)
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_press_pose(target_pose, press_position=None)[source]
Construct a press pose at the configured surface point.
The end-effector z-axis follows
press_axisin world space. An adaptive reference produces an orthonormal, right-handed frame.- Parameters:
target_pose (
Tensor) – Current target world pose with shape(B, 4, 4).press_position (
tuple[float,float,float] |None) – Optional per-call exact local-frame press position. It overridespress_position.
- Return type:
Tensor- Returns:
Batched world-frame press poses with shape
(B, 4, 4).- Raises:
ValueError – If an input has an invalid shape or value.
-
press_axis:
Tensor Parent prismatic-joint axis, signed toward articulation geometry.
-
press_position:
tuple[float,float,float] |None= None Local contact point; inferred from articulation geometry when omitted.
- resolve_from_object_geometry(geometry)[source]
Resolve the target-local prismatic axis, sign, and contact point.
- Return type:
None
- class embodichain.lab.sim.atomic_actions.affordance.SlideAffordance[source]
Target-local antipodal grasp and parent-joint translation geometry.
The positive translation-axis direction denotes approaching and pushing the articulated part closed. Pulling moves in the opposite direction. The mesh describes the actual graspable contact surface. The target pose is supplied separately by
SceneEntityPoseor a pose snapshot.Methods:
__init__([object_label, custom_config, ...])resolve_from_object_geometry(geometry)Resolve the target-local prismatic axis and neighborhood sign.
Attributes:
custom_configUser-defined configuration payload.
joint_limitsOptional lower and upper translation limits in metres.
joint_nameOptional stable prismatic-joint name associated with the link.
translation_axisParent prismatic-joint axis, signed toward articulation geometry.
- __init__(object_label='', custom_config=<factory>, translation_axis=<factory>, joint_name=None, joint_limits=None, *, mesh_vertices, mesh_triangles)
-
custom_config:
dict[str,Any] User-defined configuration payload.
-
joint_limits:
tuple[float,float] |None= None Optional lower and upper translation limits in metres.
-
joint_name:
str|None= None Optional stable prismatic-joint name associated with the link.
- resolve_from_object_geometry(geometry)[source]
Resolve the target-local prismatic axis and neighborhood sign.
- Return type:
None
-
translation_axis:
Tensor Parent prismatic-joint axis, signed toward articulation geometry.
- class embodichain.lab.sim.atomic_actions.affordance.TwistAffordance[source]
Target-local grasp point and parent-joint rotation geometry.
Methods:
__init__([object_label, custom_config, ...])get_grasp_pose(target_pose)Construct a deterministic world grasp pose from local geometry.
require_axis_origin()Return the explicit or geometry-derived local rotation-axis point.
resolve_from_object_geometry(geometry)Resolve the target-local revolute axis, sign, and joint origin.
Attributes:
axis_originFallback axis point, overridden by revolute-joint origin metadata.
custom_configUser-defined configuration payload.
grasp_positionExplicit target-local center of the gripper contact region.
joint_limitsOptional lower and upper angular limits in radians.
joint_nameOptional stable articulation-joint name associated with the axis.
twist_axisParent revolute-joint axis, signed toward articulation geometry.
- __init__(object_label='', custom_config=<factory>, twist_axis=<factory>, joint_name=None, joint_limits=None, *, grasp_position, axis_origin=None)
-
axis_origin:
tuple[float,float,float] |None= None Fallback axis point, overridden by revolute-joint origin metadata.
-
custom_config:
dict[str,Any] User-defined configuration payload.
- get_grasp_pose(target_pose)[source]
Construct a deterministic world grasp pose from local geometry.
The pose z-axis follows
twist_axis. The remaining axes are formed with an adaptive reference so the result is always in SO(3).- Return type:
Tensor- Returns:
Batched world-frame grasp poses with shape
(B, 4, 4).- Raises:
ValueError – If
target_poseis not a batched pose tensor.
-
grasp_position:
tuple[float,float,float] Explicit target-local center of the gripper contact region.
-
joint_limits:
tuple[float,float] |None= None Optional lower and upper angular limits in radians.
-
joint_name:
str|None= None Optional stable articulation-joint name associated with the axis.
- require_axis_origin()[source]
Return the explicit or geometry-derived local rotation-axis point.
- Return type:
tuple[float,float,float]- Returns:
Resolved target-local rotation-axis origin.
- Raises:
ValueError – If neither a fallback nor articulation geometry supplied the rotation-axis origin.
- resolve_from_object_geometry(geometry)[source]
Resolve the target-local revolute axis, sign, and joint origin.
- Return type:
None
-
twist_axis:
Tensor Parent revolute-joint axis, signed toward articulation geometry.
embodichain.lab.sim.atomic_actions.bindings#
Engine-owned generic endpoint bindings for one atomic action call. |
|
One action-local endpoint resolved to a runtime controller target. |
|
Joint-position destination backed by one robot control part. |
|
Stable controller destination produced by an endpoint adapter. |
embodichain.lab.sim.atomic_actions.control#
Per-invocation semantic commands keyed by slot and endpoint. |
|
Immutable-by-ownership command associated with one control part. |
|
Reusable semantic commands for one named robot control part. |
|
|
Conventional semantic command for an object-holding end effector. |
A semantic command represented by one or batched joint positions. |
|
|
Conventional semantic command for an open end effector. |
embodichain.lab.sim.atomic_actions.core#
Side-effect-free planner for one semantically meaningful robot skill. |
|
Shallow-frozen semantic information about an interaction object. |
|
Machine-readable metadata for one registered atomic skill. |
|
|
Resolve an indexless CUDA device to the active concrete GPU index. |
embodichain.lab.sim.atomic_actions.effects#
Expected task-state changes that require post-execution verification. |
embodichain.lab.sim.atomic_actions.engine#
Own planning resources and coordinate side-effect-free atomic actions. |
embodichain.lab.sim.atomic_actions.execution#
One timestamped execution or recovery event. |
|
Structured event categories emitted by |
|
Owned inspection snapshot for one installed action plan. |
|
Execute grounded invocations incrementally with bounded local recovery. |
|
Lifecycle status of an execution session. |
|
Result returned after one closed-loop execution update. |
embodichain.lab.sim.atomic_actions.verification#
|
Current-observation outcome for one physical state expectation. |
Typed boundary describing a physical effect awaiting verification. |
|
Correlated per-environment update for one effect boundary. |
|
|
Describe the next in-flight command boundary for held-object checks. |
|
Correlated in-flight held-object loss and recovery decision. |
|
Correlate a blocking physical-effect check with a segment entry. |
|
Current-observation decision for one blocking segment-entry gate. |
embodichain.lab.sim.atomic_actions.goals#
|
Shared semantic-object goal contract for object-centric skills. |
|
Explicit pose tensor or a pose resolved from the latest scene snapshot. |
Late-bound pose derived from a versioned scene entity. |
|
|
Collect stable scene entity identifiers referenced by a goal value. |
|
Resolve a pose goal against a planning context. |
|
Validate an explicit or late-bound pose goal. |
|
Validate the environment-independent part of a pose goal. |
Goal contracts shared by atomic actions.
Classes:
|
Shared semantic-object goal contract for object-centric skills. |
Late-bound pose derived from a versioned scene entity. |
Data:
|
Explicit pose tensor or a pose resolved from the latest scene snapshot. |
Functions:
|
Collect stable scene entity identifiers referenced by a goal value. |
|
Resolve a pose goal against a planning context. |
|
Validate an explicit or late-bound pose goal. |
|
Validate the environment-independent part of a pose goal. |
- class embodichain.lab.sim.atomic_actions.goals.ObjectActionGoal[source]
Shared semantic-object goal contract for object-centric skills.
Methods:
__init__(semantics)Attributes:
semanticsSemantic and geometric description of the object.
- __init__(semantics)
-
semantics:
ObjectSemantics Semantic and geometric description of the object.
- embodichain.lab.sim.atomic_actions.goals.PoseGoalValue = torch.Tensor | embodichain.lab.sim.atomic_actions.goals.SceneEntityPose
Explicit pose tensor or a pose resolved from the latest scene snapshot.
- class embodichain.lab.sim.atomic_actions.goals.SceneEntityPose[source]
Late-bound pose derived from a versioned scene entity.
The semantic request remains stable while each call to
AtomicAction.plan()resolves the latest scene pose. This is the bridge used by an execution session to replan moving goals.Methods:
__init__(entity_id[, relative_pose, ...])snapshot()Return an independently owned late-bound pose value.
Attributes:
entity_idStable scene entity identifier.
minimum_confidenceMinimum accepted perception confidence.
relative_poseOptional transform applied as
entity_pose @ relative_pose.- __init__(entity_id, relative_pose=None, minimum_confidence=0.0)
-
entity_id:
str Stable scene entity identifier.
-
minimum_confidence:
float Minimum accepted perception confidence.
-
relative_pose:
Tensor|None Optional transform applied as
entity_pose @ relative_pose.
- snapshot()[source]
Return an independently owned late-bound pose value.
- Return type:
- Returns:
Exact scene reference with an owned relative-pose tensor.
- embodichain.lab.sim.atomic_actions.goals.collect_scene_dependencies(value)[source]
Collect stable scene entity identifiers referenced by a goal value.
- Return type:
tuple[str,...]
- embodichain.lab.sim.atomic_actions.goals.resolve_pose_goal(value, context, *, name)[source]
Resolve a pose goal against a planning context.
- Parameters:
value (
Tensor|SceneEntityPose) – Explicit tensor or scene-entity reference.context (
PlanningContext) – Latest observed planning context.name (
str) – Field name used in validation errors.
- Return type:
Tensor- Returns:
Explicit pose tensor. Scene references always return shape
(B, 4, 4).
- embodichain.lab.sim.atomic_actions.goals.validate_pose_goal(value, name, *, allow_waypoints)[source]
Validate an explicit or late-bound pose goal.
- Return type:
None
- embodichain.lab.sim.atomic_actions.goals.validate_pose_tensor(value, name, *, allow_waypoints)[source]
Validate the environment-independent part of a pose goal.
- Parameters:
value (
Tensor) – Pose tensor to validate.name (
str) – Field name used in validation errors.allow_waypoints (
bool) – Whether a batched waypoint dimension is accepted.
- Raises:
TypeError – If
valueis not a tensor.ValueError – If the tensor shape is not a supported pose shape.
- Return type:
None
embodichain.lab.sim.atomic_actions.invocation#
One fully typed and endpoint-bound atomic skill request. |
|
Marker base for immutable, skill-specific runtime options. |
|
|
Type variable. |
|
Type variable. |
|
Require physical-effect evidence before one trajectory segment starts. |
Engine-owned immutable planning snapshot for one invocation revision. |
embodichain.lab.sim.atomic_actions.plans#
Scene-bound planning result for one grounded atomic action invocation. |
|
|
Offline compilation result for a sequence of action invocations. |
Explicit physical-effect verification independent of symbolic state. |
|
|
Planner metadata retained for debugging and recovery decisions. |
Stable planning-failure classification used by recovery policy. |
|
Full-robot joint trajectory with per-environment timing metadata. |
|
|
Named half-open waypoint range inside an action trajectory. |
|
Normalize a scalar or batched success value to |
embodichain.lab.sim.atomic_actions.policies#
|
Policy for consuming a live dynamic collision world. |
Immutable motion-generation policy for one action invocation. |
|
Bounded local recovery policy used by the execution runtime. |
embodichain.lab.sim.atomic_actions.primitives#
|
Built-in action implementations instantiated once per action engine. |
embodichain.lab.sim.atomic_actions.requirements#
|
Capability for resolving batched inverse kinematics for an endpoint. |
|
Capability for planning and executing Cartesian-pose motion. |
Require selected slots to have pairwise-disjoint physical claims. |
|
Require selected endpoints within one participant to be disjoint. |
|
|
Capability for resolving forward kinematics for an endpoint. |
|
Capability for commanding a grasping end effector. |
|
Capability for resolving inverse kinematics for an endpoint. |
|
Capability for planning and executing joint-position motion. |
Complete robot-independent binding contract for one atomic skill. |
|
Capabilities and commands required from one slot-local endpoint. |
|
One skill-local participant selected as an indivisible resource unit. |
embodichain.lab.sim.atomic_actions.runner#
Outcome reported by a command transport or controller. |
|
Synchronous acknowledgement returned by a |
|
Auditable record of one controller operation and acknowledgement. |
|
Command-sink operation recorded by an execution runner. |
|
Controller boundary used by |
|
|
Synchronous verifier called on a fresh due-cycle observation. |
Clock abstraction used for deterministic and simulation scheduling. |
|
Connect an execution session to observation, controller, and time ports. |
|
Transport and scheduling policy for an |
|
|
Synchronous phase-aware held-object verifier for one due command cycle. |
Wall-clock implementation backed by |
|
Source of fresh planning contexts for feedback-driven execution. |
|
|
Synchronous verifier for one blocking trajectory-segment entry gate. |
Lifecycle status owned by an |
|
Result of one non-blocking execution-runner update. |
|
|
Optional observer called after every blocking runner-loop iteration. |
embodichain.lab.sim.atomic_actions.runtime#
|
Engine-scoped registry of planning services used by atomic actions. |
embodichain.lab.sim.atomic_actions.runtime_commands#
One transport-compatible payload addressed to one runtime target. |
|
Batched joint-position targets for the built-in robot transport. |
|
Synchronized endpoint commands for one batched runtime instant. |
|
Immutable-by-ownership payload submitted to one runtime transport. |
|
Ordered runtime command frames for one stable environment batch. |
embodichain.lab.sim.atomic_actions.scene#
|
Produce scene snapshots correlated with execution environments. |
embodichain.lab.sim.atomic_actions.sim_adapter#
|
Create an engine whose initial context observes selected rigid objects. |
|
Observe simulation rigid objects and maintain scene revisions. |
|
Material-pose thresholds used to advance scene revisions. |
|
Callback that returns the latest scene snapshot for a simulation timestamp. |
Adapt a simulation robot to observation, command, and clock protocols. |
embodichain.lab.sim.atomic_actions.state#
|
Scene entity state addressable by a stable entity identifier. |
Observed or projected relation between an object and one manipulator. |
|
Complete side-effect-free input to |
|
Measured robot state used as the start of planning or replanning. |
|
Versioned scene state used to ground dynamic goals and obstacles. |
|
Symbolic task state, separate from measured robot state. |
Observed robot state, symbolic task state, and scene snapshots.
Classes:
|
Verified symbolic state for one named articulation joint. |
|
Observed or projected relation for an object held by two manipulators. |
|
Scene entity state addressable by a stable entity identifier. |
Observed or projected relation between an object and one manipulator. |
|
|
Live measured state for one scene articulation joint. |
Complete side-effect-free input to |
|
Measured robot state used as the start of planning or replanning. |
|
Versioned scene state used to ground dynamic goals and obstacles. |
|
Symbolic task state, separate from measured robot state. |
- class embodichain.lab.sim.atomic_actions.state.ArticulationJointState[source]
Verified symbolic state for one named articulation joint.
Methods:
__init__(position[, env_mask])Attributes:
env_maskRows for which the verified state is present.
positionJoint positions with shape
(J,)or(B, J).- __init__(position, env_mask=None)
-
env_mask:
Tensor|None Rows for which the verified state is present.
-
position:
Tensor Joint positions with shape
(J,)or(B, J).
- class embodichain.lab.sim.atomic_actions.state.CoordinatedHeldObjectState[source]
Observed or projected relation for an object held by two manipulators.
Methods:
__init__(semantics, left_object_to_eef, ...)- __init__(semantics, left_object_to_eef, right_object_to_eef, left_grasp_xpos, right_grasp_xpos, env_mask=None)
- class embodichain.lab.sim.atomic_actions.state.EntityState[source]
Scene entity state addressable by a stable entity identifier.
Methods:
__init__(pose[, confidence])- __init__(pose, confidence=1.0)
- class embodichain.lab.sim.atomic_actions.state.HeldObjectState[source]
Observed or projected relation between an object and one manipulator.
Methods:
__init__(semantics, object_to_eef, grasp_xpos)Attributes:
env_maskEnvironments in which the relation is active.
grasp_xposEnd-effector grasp pose.
object_to_eefObject-to-end-effector transform.
semanticsSemantics of the held object.
- __init__(semantics, object_to_eef, grasp_xpos, env_mask=None)
-
env_mask:
Tensor|None Environments in which the relation is active.
-
grasp_xpos:
Tensor End-effector grasp pose.
-
object_to_eef:
Tensor Object-to-end-effector transform.
-
semantics:
ObjectSemantics Semantics of the held object.
- class embodichain.lab.sim.atomic_actions.state.ObservedArticulationJointState[source]
Live measured state for one scene articulation joint.
Methods:
__init__(position[, valid_mask])snapshot()Return an independently owned observation value.
Attributes:
positionMeasured joint position with shape
(J,)or(B, J).valid_maskOptional row-validity mask for a batched observation.
- __init__(position, valid_mask=None)
-
position:
Tensor Measured joint position with shape
(J,)or(B, J).
- snapshot()[source]
Return an independently owned observation value.
- Return type:
ObservedArticulationJointState
-
valid_mask:
Tensor|None Optional row-validity mask for a batched observation.
- class embodichain.lab.sim.atomic_actions.state.PlanningContext[source]
Complete side-effect-free input to
AtomicAction.plan().Methods:
__init__(robot, task, scene, env_ids[, ...])get_articulation_joint_state(...)Return verified state for one canonical articulation joint.
get_coordinated_held_object(first_resource, ...)Return a coordinated held-object relation, if any.
get_held_object(resource)Return the object held by
resource, if any.project(*, qpos, task)Create the hypothetical context used to compile a following action.
require_control_dt()Return the explicit command period required for interpolation.
Attributes:
articulation_jointsVerified articulation-joint states.
batch_sizeNumber of environments in this planning request.
control_dtExplicit command period used by action-owned interpolation.
coordinated_held_objectsCoordinated held-object relations.
held_objectsSingle-resource held-object relations.
last_qposMeasured joint positions used as the planning start state.
- __init__(robot, task, scene, env_ids, control_dt=None)
- property articulation_joints: Mapping[tuple[str, str], ArticulationJointState]
Verified articulation-joint states.
- property batch_size: int
Number of environments in this planning request.
-
control_dt:
float|None Explicit command period used by action-owned interpolation.
- property coordinated_held_objects: Mapping[tuple[str, str], CoordinatedHeldObjectState]
Coordinated held-object relations.
- get_articulation_joint_state(articulation_id, joint_id)[source]
Return verified state for one canonical articulation joint.
- Return type:
ArticulationJointState|None
- get_coordinated_held_object(first_resource, second_resource)[source]
Return a coordinated held-object relation, if any.
- Return type:
CoordinatedHeldObjectState|None
- get_held_object(resource)[source]
Return the object held by
resource, if any.- Return type:
HeldObjectState|None
- property held_objects: Mapping[str, HeldObjectState]
Single-resource held-object relations.
- property last_qpos: Tensor
Measured joint positions used as the planning start state.
- project(*, qpos, task)[source]
Create the hypothetical context used to compile a following action.
- Parameters:
qpos (
Tensor) – Projected terminal joint positions.task (
TaskState) – Task state after applying expected effects.
- Return type:
- Returns:
New context. No measured state or simulator state is mutated.
- require_control_dt()[source]
Return the explicit command period required for interpolation.
- Raises:
ValueError – If the caller did not provide
control_dt.- Return type:
float
- class embodichain.lab.sim.atomic_actions.state.RobotObservation[source]
Measured robot state used as the start of planning or replanning.
Methods:
__init__(timestamp, qpos, qvel[, qeffort, ...])with_qpos(qpos)Create a projected observation with a new position and zero velocity.
Attributes:
batch_sizeNumber of represented vectorized environments.
robot_dofNumber of robot joint-position columns.
- __init__(timestamp, qpos, qvel, qeffort=None, root_pose=None, root_twist=None)
- property batch_size: int
Number of represented vectorized environments.
- property robot_dof: int
Number of robot joint-position columns.
- with_qpos(qpos)[source]
Create a projected observation with a new position and zero velocity.
- Parameters:
qpos (
Tensor) – Projected joint positions with the same shape as this observation.- Return type:
- Returns:
New observation suitable for compiling the next action.
- class embodichain.lab.sim.atomic_actions.state.SceneSnapshot[source]
Versioned scene state used to ground dynamic goals and obstacles.
Methods:
__init__(timestamp, version[, entities, ...])collision_obstacle_poses(*, batch_size, ...)Return collision obstacle poses in planning batch order.
collision_world_revisions(batch_size)Expand the collision revision to one value per environment.
empty()Create an empty initial scene snapshot.
get_articulation_joint_state(...)Return an owned live joint observation for a canonical address.
Attributes:
articulation_jointsLive physical joint observations keyed by articulation and joint ID.
collision_entity_idsEntity IDs whose poses update a planner's dynamic collision world.
collision_world_revisionGlobal or per-environment collision-world revision.
- __init__(timestamp, version, entities=<factory>, collision_world_revision=0, collision_entity_ids=(), articulation_joints=<factory>)
-
articulation_joints:
Mapping[tuple[str,str],ObservedArticulationJointState] Live physical joint observations keyed by articulation and joint ID.
-
collision_entity_ids:
tuple[str,...] Entity IDs whose poses update a planner’s dynamic collision world.
- collision_obstacle_poses(*, batch_size, device, dtype)[source]
Return collision obstacle poses in planning batch order.
- Parameters:
batch_size (
int) – Number of planning environments.device (
device) – Planner tensor device.dtype (
dtype) – Planner tensor dtype.
- Return type:
Mapping[str,Tensor]- Returns:
Mapping from configured collision entity ID to
(B, 4, 4)pose.
-
collision_world_revision:
int|tuple[int,...] Global or per-environment collision-world revision.
- collision_world_revisions(batch_size)[source]
Expand the collision revision to one value per environment.
- Parameters:
batch_size (
int) – Number of environments represented by the planning context.- Return type:
tuple[int,...]- Returns:
Per-environment monotonic revision tuple.
- Raises:
ValueError – If an explicit revision tuple does not match the batch.
- classmethod empty()[source]
Create an empty initial scene snapshot.
- Return type:
- get_articulation_joint_state(articulation_id, joint_id)[source]
Return an owned live joint observation for a canonical address.
- Return type:
ObservedArticulationJointState|None
- class embodichain.lab.sim.atomic_actions.state.TaskState[source]
Symbolic task state, separate from measured robot state.
Methods:
__init__(batch_size, device[, held_objects, ...])empty(batch_size, device)Create an empty symbolic state.
exclusive_held_object_mask(resource)Return environments where only
resourceholds its object.get_articulation_joint_state(...)Return verified state for one canonical articulation joint.
get_coordinated_held_object(first_resource, ...)Return the relation for an ordered resource pair, if any.
get_held_object(resource)Return the object held by
resource, if any.held_object_mask(resource)Return environments where
resourceholds an object.Attributes:
articulation_jointsVerified articulation states keyed by canonical articulation and joint IDs.
batch_sizeNumber of vectorized environments represented by the state.
coordinated_held_objectsCoordinated relations keyed by ordered logical task-state resource pairs.
deviceDevice used by per-environment masks and relation tensors.
held_objectsSingle-manipulator held-object relations keyed by control resource.
- __init__(batch_size, device, held_objects=<factory>, coordinated_held_objects=<factory>, articulation_joints=<factory>)
-
articulation_joints:
Mapping[tuple[str,str],ArticulationJointState] Verified articulation states keyed by canonical articulation and joint IDs.
-
batch_size:
int Number of vectorized environments represented by the state.
-
coordinated_held_objects:
Mapping[tuple[str,str],CoordinatedHeldObjectState] Coordinated relations keyed by ordered logical task-state resource pairs.
-
device:
device|str Device used by per-environment masks and relation tensors.
- classmethod empty(batch_size, device)[source]
Create an empty symbolic state.
- Parameters:
batch_size (
int) – Number of represented environments.device (
device|str) – Tensor device used by the state.
- Return type:
- Returns:
Empty task state with explicit batch metadata.
- exclusive_held_object_mask(resource)[source]
Return environments where only
resourceholds its object.Object identity is established by the exact semantic record or by a shared non-null simulation entity. Labels and structural equality are deliberately ignored because distinct physical objects may look alike.
- Parameters:
resource (
str) – Manipulator control-resource name.- Return type:
Tensor- Returns:
Owned boolean mask with shape
(batch_size,).
- get_articulation_joint_state(articulation_id, joint_id)[source]
Return verified state for one canonical articulation joint.
- Return type:
ArticulationJointState|None
- get_coordinated_held_object(first_resource, second_resource)[source]
Return the relation for an ordered resource pair, if any.
- Return type:
CoordinatedHeldObjectState|None
- get_held_object(resource)[source]
Return the object held by
resource, if any.- Return type:
HeldObjectState|None
- held_object_mask(resource)[source]
Return environments where
resourceholds an object.- Parameters:
resource (
str) – Manipulator control-resource name.- Return type:
Tensor- Returns:
Owned boolean mask with shape
(batch_size,). Missing resources produce an all-false mask.
-
held_objects:
Mapping[str,HeldObjectState] Single-manipulator held-object relations keyed by control resource.
embodichain.lab.sim.atomic_actions.trajectory_ops#
|
Build exact Cartesian translation targets along one world-space axis. |
|
Convert batched joint targets into the planner's waypoint representation. |
|
Convert batched pose targets into the planner's waypoint representation. |
|
Interpolate hand joint positions between two semantic commands. |
|
Interpolate a joint path through one or more exact target waypoints. |
|
Validate and copy a joint target onto the planning device. |
|
Validate and copy an end-effector target onto the planning device. |
|
Split a sample budget into motion, hand, and motion segments. |
|
Embed a controlled-joint plan into a timed full-robot trajectory. |
|
Translate batched poses by a world-frame offset. |
embodichain.lab.sim.atomic_actions.transports#
Route generic endpoint operations to exact registered transports. |
|
Backend that owns one kind of runtime endpoint command. |
embodichain.lab.sim.objects.articulation#
GPU data manager for articulation. |
|
Articulation represents a batch of articulations in the simulation. |
|
Backend-neutral kinematic description of one articulation joint. |
embodichain.lab.sim.objects.cloth_object#
Data manager for cloth. |
|
ClothObject represents a batch of cloth body in the simulation. |
|
|
Configuration for a cloth body asset in the simulation. |
embodichain.lab.sim.objects.constraint#
Batch of fixed constraints linking two |
embodichain.lab.sim.objects.gizmo#
Native robot targets use DexSim’s controller with Newton IK by default.
Set GizmoCfg.ik_solver="embodichain" to reuse the robot control part’s
configured solver, including PinkSolver; Viser uses the same solver adapter.
embodichain.lab.sim.objects.rigid_object#
Data manager for rigid body with body type of dynamic or kinematic. |
|
RigidObject represents a batch of rigid body in the simulation. |
|
|
Configuration for a rigid body asset in the simulation. |
embodichain.lab.sim.objects.rigid_object_group#
Data manager for rigid body group with body type of dynamic or kinematic. |
|
RigidObjectGroup represents a batch of rigid bodies in the simulation. |
|
|
Configuration for a rigid object group asset in the simulation. |
embodichain.lab.sim.objects.robot#
|
Represents a group of controllable joints in a robot. |
A class representing a batch of robots in the simulation environment. |
embodichain.lab.sim.objects.soft_object#
Data manager for soft body |
|
SoftObject represents a batch of soft body in the simulation. |
|
|
Configuration for a soft body asset in the simulation. |
embodichain.lab.sim.motion.planners.base_planner#
BasePlannerCfg(robot_uid: 'str' = <factory>, planner_type: 'str' = <factory>) |
|
|
Describe one planner's collision-world integration contract. |
|
PlanOptions() |
Base class for trajectory planners. |
|
|
Decorator (factory) that validates the |
embodichain.lab.sim.motion.planners.curobo.curobo_planner#
|
Auto-generation of the cuRobo robot YAML from the robot's URDF. |
|
Per-plan options for |
|
cuRobo V2 collision-aware motion-planning backend. |
|
Configuration for the cuRobo V2 planner backend. |
|
Static collision-world configuration for the cuRobo backend. |
embodichain.lab.sim.motion.planners.curobo.curobo_yaml#
|
Fit collision spheres to each robot link's mesh and write a cuRobo robot YAML. |
|
Generate a cuRobo V2 scene (world) YAML from live |
embodichain.lab.sim.motion.planners.neural_planner#
|
Neural motion planner based on an APG waypoint transformer policy. |
|
NeuralPlannerCfg(robot_uid: 'str' = <factory>, planner_type: 'str' = <factory>, checkpoint_path: 'str' = <factory>, control_part: 'str | None' = <factory>, max_steps: 'int | None' = <factory>, action_scale: 'float' = <factory>, num_arm_joints: 'int' = <factory>, pos_eps: 'float | None' = <factory>, rot_eps: 'float | None' = <factory>, dt: 'float' = <factory>) |
|
NeuralPlanOptions(control_part: 'str | None' = <factory>, start_qpos: 'torch.Tensor | None' = <factory>, max_steps: 'int | None' = <factory>) |
embodichain.lab.sim.motion.planners.toppra_planner#
Time-optimal joint-space planner backed by TOPPRA. |
|
ToppraPlannerCfg(robot_uid: 'str' = <factory>, planner_type: 'str' = <factory>, max_workers: 'int | None' = <factory>, mp_context: 'str | None' = <factory>) |
|
|
ToppraPlanOptions(constraints: 'dict' = <factory>, sample_method: 'TrajectorySampleMethod' = <factory>, sample_interval: 'float | int' = <factory>) |
embodichain.lab.sim.motion.planners.utils#
Enumeration for different trajectory sampling methods. |
|
Enumeration for different robot parts to move. |
|
Enumeration for different types of movements. |
|
Data class representing the state for a motion plan (env-batched). |
|
Data class representing the result of a motion plan (env-batched). |
|
|
Normalize a scalar or batched success value to |
|
Calculate interpolation points for each segment with vectorized tensor ops. |
|
Interpolate between two poses using vectorized Slerp + linear translation. |
|
Batched pose interpolation. |
embodichain.lab.sim.robots.cobotmagic#
CobotMagicCfg(uid: 'str | None' = <factory>, init_pos: 'tuple[float, float, float]' = <factory>, init_rot: 'tuple[float, float, float]' = <factory>, init_local_pose: 'np.ndarray | None' = <factory>, fpath: 'str' = <factory>, drive_pros: 'JointDrivePropertiesCfg' = <factory>, body_scale: 'tuple | list' = <factory>, attrs: 'RigidBodyAttributesCfg' = <factory>, link_attrs: 'dict[str, LinkPhysicsOverrideCfg] | None' = <factory>, fix_base: 'bool' = <factory>, disable_self_collision: 'bool' = <factory>, enable_gravity: 'bool' = <factory>, init_qpos: 'torch.Tensor | np.ndarray | Sequence[float]' = <factory>, qpos_limits: 'torch.Tensor | np.ndarray | Sequence[float] | Dict[str, List[float]] | None' = <factory>, sleep_threshold: 'float' = <factory>, min_position_iters: 'int' = <factory>, min_velocity_iters: 'int' = <factory>, build_pk_chain: 'bool' = <factory>, compute_uv: 'bool' = <factory>, use_usd_properties: 'bool' = <factory>, control_parts: 'Dict[str, List[str]] | None' = <factory>, urdf_cfg: 'URDFCfg' = <factory>, solver_cfg: "Dict[str, 'SolverCfg'] | None" = <factory>, workspace_cfg: 'Dict[str, RobotWorkspaceCfg] | None' = <factory>) |
embodichain.lab.sim.robots.dexforce_w1.hand_specs#
|
Side-specific asset metadata for one hand release. |
|
A hand release independent of the W1 body/arm version. |
|
Return the explicitly selected default release for a hand brand. |
|
Return an explicitly registered hand release. |
|
Normalize optional side-keyed hand configuration mappings. |
embodichain.lab.sim.robots.dexforce_w1.specs#
|
Asset layout and calibrated defaults belonging to one W1 revision. |
|
embodichain.lab.sim.robots.dexforce_w1.types#
|
Released version of the W1 robot body and arms. |
|
Released version of an external W1 hand or gripper asset. |
|
Arm side for DexforceW1: left or right. |
|
Component type for DexforceW1. |
|
embodichain.lab.sim.robots.dexforce_w1.utils#
|
|
|
|
|
|
|
|
|
|
|
|
|
Assemble DexforceW1 robot urdf configuration. |
embodichain.lab.sim.robots.dual_arm#
Configuration for a dual-manipulator composed from a single-arm robot. |
|
|
Build a dual-arm cfg from a single-arm robot cfg. |
|
Resolve a mount config into left/right 4x4 transforms. |
embodichain.lab.sim.robots.franka_panda#
Configuration for the Franka Emika Panda robot with Panda hand. |
embodichain.lab.sim.robots.ur_robot#
Configuration for the UR family of robots. |
embodichain.lab.sim.sensors.camera#
embodichain.lab.sim.sim_manager#
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
|
Path subclass for non-Windows systems. |
embodichain.lab.task_program.semantics.calls#
|
Represent a PEP 604 union type |
Pick up, transfer, and place an object with two robot resources. |
|
Pick one registered object using an optional explicit grasp affordance. |
|
Place a held object at exactly one semantic destination. |
|
|
Represent a PEP 604 union type |
Safe value payload for a catalog-registered semantic extension. |
|
Immutable discovery catalog separated from engine installation. |
|
Static catalog metadata for one semantic call kind. |
|
Base value contract shared by every declarative semantic call. |
|
Object-space pose expressed as position and a WXYZ quaternion. |
|
|
Build the curated catalog for installed manipulation primitives. |
Immutable, robot-independent semantic call specifications.
Classes:
Pick up, transfer, and place an object with two robot resources. |
|
Pick one registered object using an optional explicit grasp affordance. |
|
Place a held object at exactly one semantic destination. |
|
Safe value payload for a catalog-registered semantic extension. |
|
Immutable discovery catalog separated from engine installation. |
|
Static catalog metadata for one semantic call kind. |
|
Base value contract shared by every declarative semantic call. |
|
Object-space pose expressed as position and a WXYZ quaternion. |
Functions:
|
Build the curated catalog for installed manipulation primitives. |
- class embodichain.lab.task_program.semantics.calls.HandOver[source]
Pick up, transfer, and place an object with two robot resources.
- Parameters:
object (
SceneObjectRef) – Authoritative scene-object reference. The object must not already be held when the unified action starts.final_target (
SemanticPose|None) – Optional final object-space delivery pose.resources (
Mapping[str,str]) – Optional skill-local resource overrides. Select the second candidate with thedestinationslot when needed.
Methods:
__init__(object[, final_target, resources])- __init__(object, final_target=None, *, resources=<factory>)
- class embodichain.lab.task_program.semantics.calls.Pick[source]
Pick one registered object using an optional explicit grasp affordance.
- Parameters:
object (
SceneObjectRef) – Authoritative semantic object reference.grasp (
SceneAffordanceRef|None) – Optional explicit grasp affordance. Omission requests deterministic registry selection.resources (
Mapping[str,str]) – Optional skill-local resource overrides.
Methods:
__init__(object[, grasp, resources])- __init__(object, grasp=None, *, resources=<factory>)
- class embodichain.lab.task_program.semantics.calls.Place[source]
Place a held object at exactly one semantic destination.
- Parameters:
object (
SceneObjectRef) – Authoritative held-object reference.at (
SemanticPose|None) – Absolute object-space pose.on (
SceneObjectRef|SceneAffordanceRef|None) – Object or affordance supporting anonrelation.inside (
SceneObjectRef|SceneAffordanceRef|None) – Object or affordance supporting aninsiderelation.resources (
Mapping[str,str]) – Optional skill-local resource overrides.
Methods:
__init__(object[, at, on, inside, resources])- __init__(object, at=None, on=None, inside=None, *, resources=<factory>)
- class embodichain.lab.task_program.semantics.calls.RegisteredSemanticCall[source]
Safe value payload for a catalog-registered semantic extension.
- Parameters:
call_id (
str) – Stable extension identifier discovered in a semantic catalog.arguments (
Mapping[str,None|bool|int|float|str|SceneEntityRef|SemanticPose|tuple[None|bool|int|float|str|SceneEntityRef|SemanticPose|tuple[DeclarativeValue,...] |Mapping[str, DeclarativeValue],...] |Mapping[str,None|bool|int|float|str|SceneEntityRef|SemanticPose|tuple[DeclarativeValue,...] |Mapping[str, DeclarativeValue]]]) – Nested declarative data. Executable or live values are rejected at construction.resources (
Mapping[str,str]) – Optional skill-local resource overrides.
Methods:
__init__(call_id[, arguments, resources])Attributes:
semantic_idReturn the registered extension identifier.
- __init__(call_id, arguments=<factory>, *, resources=<factory>)
- property semantic_id: str
Return the registered extension identifier.
- class embodichain.lab.task_program.semantics.calls.SemanticCallCatalog[source]
Immutable discovery catalog separated from engine installation.
Methods:
__init__(descriptors)discover(call)Discover metadata without installing or executing an implementation.
with_descriptor(descriptor)Return a new catalog containing one additional descriptor.
Attributes:
descriptorsReturn immutable descriptors keyed by exact semantic ID.
- __init__(descriptors)[source]
- property descriptors: Mapping[str, SemanticCallDescriptor]
Return immutable descriptors keyed by exact semantic ID.
- discover(call)[source]
Discover metadata without installing or executing an implementation.
- Parameters:
call (
str|SemanticCallSpec) – Exact semantic ID or a call value.- Return type:
- Returns:
Matching immutable descriptor.
- Raises:
KeyError – If the exact call ID is unknown.
TypeError – If the call type disagrees with its descriptor.
- with_descriptor(descriptor)[source]
Return a new catalog containing one additional descriptor.
- Return type:
- class embodichain.lab.task_program.semantics.calls.SemanticCallDescriptor[source]
Static catalog metadata for one semantic call kind.
- Parameters:
call_id (
str) – Stable semantic call identifier.spec_type (
type[SemanticCallSpec]) – Exact public call value type.target_descriptor (
SkillDescriptor|None) – Exact atomic goal/options/resource contract. It is inferred and non-overridable for curated calls and required for registered extensions.
Methods:
__init__(call_id, spec_type[, target_descriptor])Attributes:
binding_contractReturn the resource contract from the canonical target descriptor.
skill_idReturn the atomic skill ID from the canonical target descriptor.
- __init__(call_id, spec_type, target_descriptor=None)
- property binding_contract: SkillBindingContract
Return the resource contract from the canonical target descriptor.
- property skill_id: str
Return the atomic skill ID from the canonical target descriptor.
- class embodichain.lab.task_program.semantics.calls.SemanticCallSpec[source]
Base value contract shared by every declarative semantic call.
- Parameters:
resources (
Mapping[str,str]) – Optional skill-local slot to robot-resource overrides.
Methods:
__init__(*[, resources])to_metadata()Return this semantic call as deterministic JSON-safe data.
Attributes:
semantic_idReturn the stable catalog identifier for this call.
- __init__(*, resources=<factory>)
- property semantic_id: str
Return the stable catalog identifier for this call.
- to_metadata()[source]
Return this semantic call as deterministic JSON-safe data.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.calls.SemanticPose[source]
Object-space pose expressed as position and a WXYZ quaternion.
The value owns normalized tensor snapshots and never exposes its internal tensors directly. A single pose or an environment batch is accepted.
- Parameters:
position (
Tensor|tuple[float,float,float] |list[float]) – Shape(3,)or(B, 3).quaternion_wxyz (
Tensor|tuple[float,float,float,float] |list[float]) – Shape(4,)or(B, 4). Finite, non-zero quaternions are normalized at construction.
Methods:
__init__(position, quaternion_wxyz)snapshot()Return an independently owned pose value.
to_matrix()Convert the semantic pose to a homogeneous transform.
to_metadata()Return the pose as deterministic JSON-safe semantic data.
Attributes:
batch_sizeReturn the explicit batch size, or
Nonefor one broadcast pose.positionReturn an independent position tensor.
quaternion_wxyzReturn an independent normalized quaternion tensor.
- __init__(position, quaternion_wxyz)[source]
- property batch_size: int | None
Return the explicit batch size, or
Nonefor one broadcast pose.
- property position: Tensor
Return an independent position tensor.
- property quaternion_wxyz: Tensor
Return an independent normalized quaternion tensor.
- snapshot()[source]
Return an independently owned pose value.
- Return type:
- to_matrix()[source]
Convert the semantic pose to a homogeneous transform.
- Return type:
Tensor- Returns:
Shape
(4, 4)for an unbatched pose or(B, 4, 4)for a batched pose.
- to_metadata()[source]
Return the pose as deterministic JSON-safe semantic data.
- Return type:
dict[str,object]
- embodichain.lab.task_program.semantics.calls.builtin_semantic_call_catalog()[source]
Build the curated catalog for installed manipulation primitives.
- Return type:
- Returns:
A fresh immutable catalog. Atomic implementations remain uninstalled; callers bind them to an engine through the separate runtime path.
embodichain.lab.task_program.semantics.integration#
|
Factory-owned call linked to one installed engine/profile combination. |
|
Provider-free static link result for one semantic call. |
|
Represent a PEP 604 union type |
Provider-free static scene declaration using canonical registry metadata. |
|
Immutable provider-free scene catalog used before simulation starts. |
|
Structured deterministic semantic-integration diagnostic. |
|
Static scene/profile/catalog declaration validated before execution. |
|
Raise one structured error at a static or live integration boundary. |
Two-phase static and live semantic integration validation.
Classes:
|
Factory-owned call linked to one installed engine/profile combination. |
|
Live-installed, still side-effect-free semantic integration link. |
|
Provider-free static link result for one semantic call. |
Provider-free static scene declaration using canonical registry metadata. |
|
Immutable provider-free scene catalog used before simulation starts. |
|
Structured deterministic semantic-integration diagnostic. |
|
Static scene/profile/catalog declaration validated before execution. |
Exceptions:
Raise one structured error at a static or live integration boundary. |
- class embodichain.lab.task_program.semantics.integration.BoundSemanticCall[source]
Factory-owned call linked to one installed engine/profile combination.
Methods:
__init__(*args, **kwargs)Reject construction outside
BoundSemanticIntegration.Attributes:
robot_profileReturn the exact bound profile that produced this call.
- __init__(*args, **kwargs)[source]
Reject construction outside
BoundSemanticIntegration.
- property robot_profile: BoundRobotSkillProfile
Return the exact bound profile that produced this call.
- class embodichain.lab.task_program.semantics.integration.BoundSemanticIntegration[source]
Live-installed, still side-effect-free semantic integration link.
Methods:
__init__(*, manifest, scene_registry, ...)link_call(call, *[, path])Resolve one call against exact installed skills, resources, and preset.
Attributes:
engineReturn the engine whose used call targets are validated at link time.
manifestReturn the static integration declaration.
robot_profileReturn the validated live robot profile.
scene_registryReturn the validated live scene registry.
- __init__(*, manifest, scene_registry, robot_profile, engine)[source]
- property engine: AtomicActionEngine
Return the engine whose used call targets are validated at link time.
- link_call(call, *, path=('call',))[source]
Resolve one call against exact installed skills, resources, and preset.
- Return type:
BoundSemanticCall
- property manifest: SemanticIntegrationManifest
Return the static integration declaration.
- property robot_profile: BoundRobotSkillProfile
Return the validated live robot profile.
- property scene_registry: SceneRegistry
Return the validated live scene registry.
- class embodichain.lab.task_program.semantics.integration.LinkedSemanticCall[source]
Provider-free static link result for one semantic call.
Methods:
__init__(call, descriptor, preset_id[, ...])- __init__(call, descriptor, preset_id, affordances=<factory>)
- class embodichain.lab.task_program.semantics.integration.SceneEntityManifest[source]
Provider-free static scene declaration using canonical registry metadata.
Methods:
__init__(ref[, aliases, parent, ...])from_metadata(metadata)Copy one canonical provider-free registry metadata value.
- __init__(ref, aliases=(), parent=None, native_name=None, dynamics=SceneDynamics.UNKNOWN, collision_role=SceneCollisionRole.NONE, semantic_type=None, affordance_capabilities=frozenset({}), default_affordances=<factory>, affordance_payload_type=None, affordance_revision=None, relative_pose=None)
- classmethod from_metadata(metadata)[source]
Copy one canonical provider-free registry metadata value.
- Return type:
- class embodichain.lab.task_program.semantics.integration.SceneManifest[source]
Immutable provider-free scene catalog used before simulation starts.
Methods:
__init__([entries, collision_world_mode])from_registry(registry)Project a live registry without observing any dynamic provider.
lookup(identifier, *[, expected_type, path])Return one static entry after canonical typed resolution.
resolve(identifier, *[, expected_type, path])Resolve one canonical or alias reference with pathful diagnostics.
resolve_affordance(parent, *, capability[, ...])Resolve one affordance using the same strict rule as SceneRegistry.
validate_registry(registry, *[, path])Require a live registry to match this provider-free declaration.
Attributes:
entriesReturn immutable provider-free entries in declaration order.
- __init__(entries=(), *, collision_world_mode=None)[source]
- property entries: tuple[SceneEntityManifest, ...]
Return immutable provider-free entries in declaration order.
- classmethod from_registry(registry)[source]
Project a live registry without observing any dynamic provider.
- Return type:
- lookup(identifier, *, expected_type=<class 'embodichain.lab.task_program.semantics.scene.SceneEntityRef'>, path=())[source]
Return one static entry after canonical typed resolution.
- Return type:
- resolve(identifier, *, expected_type=<class 'embodichain.lab.task_program.semantics.scene.SceneEntityRef'>, path=())[source]
Resolve one canonical or alias reference with pathful diagnostics.
- Return type:
TypeVar(RefT, bound=SceneEntityRef)
- resolve_affordance(parent, *, capability, explicit=None, path=())[source]
Resolve one affordance using the same strict rule as SceneRegistry.
- Return type:
- validate_registry(registry, *, path=('integration', 'scene_registry'))[source]
Require a live registry to match this provider-free declaration.
- Return type:
None
- class embodichain.lab.task_program.semantics.integration.SemanticDiagnostic[source]
Structured deterministic semantic-integration diagnostic.
- Parameters:
code (
str) – Stable machine-readable failure code.path (
tuple[str|int,...]) – Complete configuration or program path.message (
str) – Human-readable explanation.candidates (
tuple[str,...]) – Canonical candidate IDs, sorted when applicable.
Methods:
__init__(code, path, message[, candidates])Attributes:
rendered_pathReturn the path in dotted/indexed notation.
- __init__(code, path, message, candidates=())
- property rendered_path: str
Return the path in dotted/indexed notation.
- class embodichain.lab.task_program.semantics.integration.SemanticIntegrationManifest[source]
Static scene/profile/catalog declaration validated before execution.
- Parameters:
scene (
SceneManifest) – Provider-free scene manifest.robot_profile (
RobotSkillProfile) – Declarative robot resource/profile snapshot.call_catalog (
SemanticCallCatalog) – Discoverable semantic call descriptors.runtime_preset (
str|None) – Optional integration-wide policy preset override.
Methods:
__init__(scene, robot_profile, call_catalog)bind(scene_registry, engine, *[, ...])Validate live scene and robot bindings without observing or planning.
link_call(call, *[, path])Resolve static refs, affordances, and declared resource structure.
- __init__(scene, robot_profile, call_catalog, runtime_preset=None)
- bind(scene_registry, engine, *, endpoint_adapters=None)[source]
Validate live scene and robot bindings without observing or planning.
- Return type:
BoundSemanticIntegration
- link_call(call, *, path=('call',))[source]
Resolve static refs, affordances, and declared resource structure.
This method never observes scene providers, constructs an engine, samples a grasp, or runs a planner.
- Return type:
LinkedSemanticCall
embodichain.lab.task_program.semantics.effects#
Backend-neutral semantic-effect contracts, evidence, and monitors.
Classes:
|
Symbolic articulation-joint postcondition. |
|
Raw contact or constraint-state condition. |
|
Raw per-row contact or constraint-state observations. |
|
Raw boolean evidence channel. |
|
Stateful conjunction monitor over typed physical evidence clauses. |
|
Strict hysteresis policy for typed pose/binary/scalar/joint clauses. |
|
Factory for the built-in typed-clause monitor. |
|
Provider-neutral robot control-part observation address. |
|
Typed removal of one coordinated held-object relation. |
|
Immutable observation address, deliberately separate from command targets. |
|
Versioned provider route plus one immutable observation address. |
|
Per-row outcome for one physical state expectation. |
Stateful verifier owned by one grounded semantic call. |
|
|
Uncorrelated aggregate and per-expectation monitor decision. |
|
Versioned constructor for independent semantic-effect monitors. |
Versioned, declarative reference to an effect-monitor factory. |
|
|
Immutable exact-ID/revision registry of monitor factories. |
|
Expected symbolic held-object state at an effect boundary. |
|
Typed individual held-object postcondition. |
|
Raw articulation/robot joint-position target condition. |
|
Raw per-row joint position/velocity observations. |
|
Object-to-endpoint pose condition with monitor-owned tolerances. |
|
Raw object-to-endpoint transform observations. |
|
Expected relationship to a grounded pose baseline. |
|
Raw force/wrench magnitude condition with monitor-owned thresholds. |
|
Raw per-row force or wrench-magnitude observations. |
|
Raw scalar physical evidence channel. |
|
Expected high/low magnitude band for scalar evidence. |
|
Trace-level semantic effect category; clause types define behavior. |
Grounded typed physical clauses and symbolic postconditions for one call. |
|
|
Typed mapping domains owned by |
|
Provider-free key for one exact symbolic |
Data:
|
Stable ID of the built-in typed-clause monitor. |
|
Exact behavior/configuration revision of the built-in monitor. |
|
Stable provider ID used by generic control-part evidence addresses. |
|
Exact contract revision of control-part evidence addresses. |
|
Recursively immutable, non-executable monitor configuration value. |
- class embodichain.lab.task_program.semantics.effects.ArticulationJointStateExpectation[source]
Symbolic articulation-joint postcondition.
Methods:
__init__(expectation_id, articulation_id, ...)snapshot()Return an independently owned articulation expectation.
- __init__(expectation_id, articulation_id, joint_id, target_position)
- snapshot()[source]
Return an independently owned articulation expectation.
- Return type:
ArticulationJointStateExpectation
- class embodichain.lab.task_program.semantics.effects.BinaryEffectClause[source]
Raw contact or constraint-state condition.
Methods:
__init__(clause_id, expectation_id, source, ...)snapshot()Return an independently owned binary clause.
- __init__(clause_id, expectation_id, source, evidence_kind, expected)
- snapshot()[source]
Return an independently owned binary clause.
- Return type:
BinaryEffectClause
- class embodichain.lab.task_program.semantics.effects.BinaryEffectEvidenceBatch[source]
Raw per-row contact or constraint-state observations.
Methods:
__init__(evidence_id, evidence_kind, values, ...)snapshot()Return an independently owned evidence batch.
to_metadata()Return raw binary evidence as JSON-safe trace metadata.
- __init__(evidence_id, evidence_kind, values, valid, acquisition_errors, timestamp, env_ids, observation_revision)
- snapshot()[source]
Return an independently owned evidence batch.
- Return type:
BinaryEffectEvidenceBatch
- to_metadata()[source]
Return raw binary evidence as JSON-safe trace metadata.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.BinaryEvidenceKind[source]
Raw boolean evidence channel.
Methods:
__new__(value)- __new__(value)
- embodichain.lab.task_program.semantics.effects.COMPOSITE_EFFECT_MONITOR_ID = 'builtin.composite_effect'
Stable ID of the built-in typed-clause monitor.
- embodichain.lab.task_program.semantics.effects.COMPOSITE_EFFECT_MONITOR_REVISION = '1'
Exact behavior/configuration revision of the built-in monitor.
- embodichain.lab.task_program.semantics.effects.CONTROL_PART_EVIDENCE_PROVIDER_ID = 'builtin.control_part'
Stable provider ID used by generic control-part evidence addresses.
- embodichain.lab.task_program.semantics.effects.CONTROL_PART_EVIDENCE_PROVIDER_REVISION = '1'
Exact contract revision of control-part evidence addresses.
- class embodichain.lab.task_program.semantics.effects.CompositeEffectMonitor[source]
Stateful conjunction monitor over typed physical evidence clauses.
Methods:
__init__(spec, cfg)observe(request, evidence)Update typed-clause hysteresis and decide current request rows.
Attributes:
resolved_paramsReturn all effective typed-clause thresholds, including defaults.
specReturn an independently owned effect contract.
- __init__(spec, cfg)[source]
- observe(request, evidence)[source]
Update typed-clause hysteresis and decide current request rows.
- Return type:
EffectMonitorDecision
- property resolved_params: Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[EffectMonitorParam, ...] | Mapping[str, EffectMonitorParam], ...] | Mapping[str, None | bool | int | float | str | tuple[EffectMonitorParam, ...] | Mapping[str, EffectMonitorParam]]]
Return all effective typed-clause thresholds, including defaults.
- property spec: SemanticEffectSpec
Return an independently owned effect contract.
- class embodichain.lab.task_program.semantics.effects.CompositeEffectMonitorCfg[source]
Strict hysteresis policy for typed pose/binary/scalar/joint clauses.
Methods:
__init__([attached_translation_threshold, ...])from_params(params)Decode strict declarative factory parameters.
to_metadata()Return every resolved hysteresis threshold as JSON-safe data.
- __init__(attached_translation_threshold=0.02, attached_rotation_threshold=0.2, detached_translation_threshold=0.05, detached_rotation_threshold=0.5, force_absent_threshold=0.2, force_present_threshold=1.0, joint_success_tolerance=0.02, joint_failure_tolerance=0.1, consecutive_samples=2)
- classmethod from_params(params)[source]
Decode strict declarative factory parameters.
- Return type:
CompositeEffectMonitorCfg
- to_metadata()[source]
Return every resolved hysteresis threshold as JSON-safe data.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.CompositeEffectMonitorFactory[source]
Factory for the built-in typed-clause monitor.
Methods:
create(spec, ref)Create one independently stateful typed-clause monitor.
validate_ref(ref)Validate exact built-in selection and typed thresholds.
- create(spec, ref)[source]
Create one independently stateful typed-clause monitor.
- Return type:
CompositeEffectMonitor
- validate_ref(ref)[source]
Validate exact built-in selection and typed thresholds.
- Return type:
None
- class embodichain.lab.task_program.semantics.effects.ControlPartEvidenceAddress[source]
Provider-neutral robot control-part observation address.
Methods:
__init__(control_part, channel)Attributes:
address_fingerprintReturn the channel-scoped control-part observation address.
- __init__(control_part, channel)
- property address_fingerprint: Hashable
Return the channel-scoped control-part observation address.
- class embodichain.lab.task_program.semantics.effects.CoordinatedHeldObjectCleanupExpectation[source]
Typed removal of one coordinated held-object relation.
Methods:
__init__(expectation_id, task_state_keys)snapshot()Return an independently constructed cleanup expectation.
- __init__(expectation_id, task_state_keys)
- snapshot()[source]
Return an independently constructed cleanup expectation.
- Return type:
CoordinatedHeldObjectCleanupExpectation
- class embodichain.lab.task_program.semantics.effects.EffectEvidenceAddress[source]
Immutable observation address, deliberately separate from command targets.
Attributes:
address_fingerprintReturn a stable, hashable physical observation address.
Methods:
snapshot()Return an independently owned address of the exact same type.
- abstract property address_fingerprint: Hashable
Return a stable, hashable physical observation address.
- snapshot()[source]
Return an independently owned address of the exact same type.
- Return type:
EffectEvidenceAddress
- class embodichain.lab.task_program.semantics.effects.EffectEvidenceSourceRef[source]
Versioned provider route plus one immutable observation address.
Methods:
__init__(provider_id, revision, address)snapshot()Return an independently owned source reference.
to_metadata()Return the versioned physical observation address as JSON-safe data.
Attributes:
source_fingerprintReturn the provider-scoped source address fingerprint.
- __init__(provider_id, revision, address)
- snapshot()[source]
Return an independently owned source reference.
- Return type:
EffectEvidenceSourceRef
- property source_fingerprint: Hashable
Return the provider-scoped source address fingerprint.
- to_metadata()[source]
Return the versioned physical observation address as JSON-safe data.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.EffectExpectationDecision[source]
Per-row outcome for one physical state expectation.
Rows absent from both
satisfied_maskandcontradicted_maskremain unresolved.inverse_satisfied_maskis deliberately stronger than contradiction: it requires every clause in the expectation group to have reached its explicit inverse band for the configured consecutive-sample window. This distinction lets failure reconciliation retain a relation only from complete inverse evidence rather than from one contradictory clause.Methods:
__init__(expectation_id, satisfied_mask, ...)snapshot()Return an independently owned expectation outcome.
- __init__(expectation_id, satisfied_mask, contradicted_mask, inverse_satisfied_mask)
- snapshot()[source]
Return an independently owned expectation outcome.
- Return type:
EffectExpectationDecision
- class embodichain.lab.task_program.semantics.effects.EffectMonitor[source]
Stateful verifier owned by one grounded semantic call.
Methods:
observe(request, evidence)Consume one synchronized raw observation and decide requested rows.
Attributes:
resolved_paramsReturn all resolved monitor thresholds for trace metadata.
specReturn an independently owned effect contract.
- abstract observe(request, evidence)[source]
Consume one synchronized raw observation and decide requested rows.
- Return type:
EffectMonitorDecision
- abstract property resolved_params: Mapping[str, None | bool | int | float | str | tuple[None | bool | int | float | str | tuple[EffectMonitorParam, ...] | Mapping[str, EffectMonitorParam], ...] | Mapping[str, None | bool | int | float | str | tuple[EffectMonitorParam, ...] | Mapping[str, EffectMonitorParam]]]
Return all resolved monitor thresholds for trace metadata.
- abstract property spec: SemanticEffectSpec
Return an independently owned effect contract.
- class embodichain.lab.task_program.semantics.effects.EffectMonitorDecision[source]
Uncorrelated aggregate and per-expectation monitor decision.
When
expectation_decisionsis non-empty, the aggregate masks are authoritative reductions of that current observation: success is the conjunction of every satisfied mask and failure is the union of every contradicted mask. This prevents callers from combining expectation outcomes observed on different ticks.Methods:
__init__(success_mask, failure_mask[, ...])- __init__(success_mask, failure_mask, expectation_decisions=())
- class embodichain.lab.task_program.semantics.effects.EffectMonitorFactory[source]
Versioned constructor for independent semantic-effect monitors.
Methods:
create(spec, ref)Create one independent monitor for
specandref.validate_ref(ref)Validate one reference without providers or state creation.
- abstract create(spec, ref)[source]
Create one independent monitor for
specandref.- Return type:
- abstract validate_ref(ref)[source]
Validate one reference without providers or state creation.
- Return type:
None
- embodichain.lab.task_program.semantics.effects.EffectMonitorParam: TypeAlias = None | bool | int | float | str | tuple['EffectMonitorParam', ...] | collections.abc.Mapping[str, 'EffectMonitorParam']
Recursively immutable, non-executable monitor configuration value.
- class embodichain.lab.task_program.semantics.effects.EffectMonitorRef[source]
Versioned, declarative reference to an effect-monitor factory.
Methods:
__init__(monitor_id, revision[, params])snapshot()Return an independently owned declarative reference.
to_metadata()Return a deterministic JSON-safe monitor selection.
- __init__(monitor_id, revision, params=<factory>)
- snapshot()[source]
Return an independently owned declarative reference.
- Return type:
- to_metadata()[source]
Return a deterministic JSON-safe monitor selection.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.EffectMonitorRegistry[source]
Immutable exact-ID/revision registry of monitor factories.
Methods:
__init__([factories])create(spec, ref)Create one independent monitor through exact factory lookup.
resolve(ref)Resolve the exact factory named by a declarative reference.
validate_ref(ref)Validate a reference provider-free through its exact factory.
Attributes:
factoriesReturn the immutable exact-key factory mapping.
- __init__(factories=())[source]
- create(spec, ref)[source]
Create one independent monitor through exact factory lookup.
- Return type:
- property factories: Mapping[tuple[str, str], EffectMonitorFactory]
Return the immutable exact-key factory mapping.
- resolve(ref)[source]
Resolve the exact factory named by a declarative reference.
- Return type:
EffectMonitorFactory
- validate_ref(ref)[source]
Validate a reference provider-free through its exact factory.
- Return type:
None
- class embodichain.lab.task_program.semantics.effects.HeldObjectRelation[source]
Expected symbolic held-object state at an effect boundary.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.HeldObjectStateExpectation[source]
Typed individual held-object postcondition.
Methods:
__init__(expectation_id, relation, ...)snapshot()Return an independently constructed state expectation.
- __init__(expectation_id, relation, object_id, slot_id, resource_id, task_state_key)
- snapshot()[source]
Return an independently constructed state expectation.
- Return type:
HeldObjectStateExpectation
- class embodichain.lab.task_program.semantics.effects.JointStateEffectClause[source]
Raw articulation/robot joint-position target condition.
Methods:
__init__(clause_id, expectation_id, source, ...)snapshot()Return an independently owned joint-state clause.
- __init__(clause_id, expectation_id, source, target_position)
- snapshot()[source]
Return an independently owned joint-state clause.
- Return type:
JointStateEffectClause
- class embodichain.lab.task_program.semantics.effects.JointStateEvidenceBatch[source]
Raw per-row joint position/velocity observations.
Methods:
__init__(evidence_id, positions, velocities, ...)snapshot()Return an independently owned evidence batch.
to_metadata()Return raw joint-state evidence as JSON-safe trace metadata.
- __init__(evidence_id, positions, velocities, valid, acquisition_errors, timestamp, env_ids, observation_revision)
- snapshot()[source]
Return an independently owned evidence batch.
- Return type:
JointStateEvidenceBatch
- to_metadata()[source]
Return raw joint-state evidence as JSON-safe trace metadata.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.PoseRelationClause[source]
Object-to-endpoint pose condition with monitor-owned tolerances.
Methods:
__init__(clause_id, expectation_id, source, ...)snapshot()Return an independently owned pose clause.
- __init__(clause_id, expectation_id, source, expectation, baseline_object_to_endpoint=None)
- snapshot()[source]
Return an independently owned pose clause.
- Return type:
PoseRelationClause
- class embodichain.lab.task_program.semantics.effects.PoseRelationEvidenceBatch[source]
Raw object-to-endpoint transform observations.
Methods:
__init__(evidence_id, object_to_endpoint, ...)snapshot()Return an independently owned evidence batch.
to_metadata()Return raw pose evidence as JSON-safe trace metadata.
- __init__(evidence_id, object_to_endpoint, valid, acquisition_errors, timestamp, env_ids, observation_revision)
- snapshot()[source]
Return an independently owned evidence batch.
- Return type:
PoseRelationEvidenceBatch
- to_metadata()[source]
Return raw pose evidence as JSON-safe trace metadata.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.PoseRelationExpectation[source]
Expected relationship to a grounded pose baseline.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.ScalarEffectClause[source]
Raw force/wrench magnitude condition with monitor-owned thresholds.
Methods:
__init__(clause_id, expectation_id, source, ...)snapshot()Return an independently owned scalar clause.
- __init__(clause_id, expectation_id, source, evidence_kind, expectation)
- snapshot()[source]
Return an independently owned scalar clause.
- Return type:
ScalarEffectClause
- class embodichain.lab.task_program.semantics.effects.ScalarEffectEvidenceBatch[source]
Raw per-row force or wrench-magnitude observations.
Methods:
__init__(evidence_id, evidence_kind, values, ...)snapshot()Return an independently owned evidence batch.
to_metadata()Return raw scalar evidence as JSON-safe trace metadata.
- __init__(evidence_id, evidence_kind, values, valid, acquisition_errors, timestamp, env_ids, observation_revision)
- snapshot()[source]
Return an independently owned evidence batch.
- Return type:
ScalarEffectEvidenceBatch
- to_metadata()[source]
Return raw scalar evidence as JSON-safe trace metadata.
- Return type:
dict[str,object]
- class embodichain.lab.task_program.semantics.effects.ScalarEvidenceKind[source]
Raw scalar physical evidence channel.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.ScalarExpectation[source]
Expected high/low magnitude band for scalar evidence.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.SemanticEffectKind[source]
Trace-level semantic effect category; clause types define behavior.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.SemanticEffectSpec[source]
Grounded typed physical clauses and symbolic postconditions for one call.
Methods:
__init__(semantic_id, effect_kind, skill_id, ...)snapshot()Return an independently owned grounded effect contract.
state_expectation(expectation_id)Return an owned state expectation by effect-local ID.
to_metadata()Return this grounded effect contract as deterministic JSON-safe data.
validate_request(request)Validate execution identity and typed symbolic postconditions.
- __init__(semantic_id, effect_kind, skill_id, invocation_id, invocation_revision, env_ids, state_expectations, clauses)
- snapshot()[source]
Return an independently owned grounded effect contract.
- Return type:
- state_expectation(expectation_id)[source]
Return an owned state expectation by effect-local ID.
- Return type:
HeldObjectStateExpectation|CoordinatedHeldObjectCleanupExpectation|ArticulationJointStateExpectation
- to_metadata()[source]
Return this grounded effect contract as deterministic JSON-safe data.
- Return type:
dict[str,object]
- validate_request(request)[source]
Validate execution identity and typed symbolic postconditions.
- Return type:
None
- class embodichain.lab.task_program.semantics.effects.SymbolicStateDomain[source]
Typed mapping domains owned by
TaskState.Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.effects.SymbolicStateKey[source]
Provider-free key for one exact symbolic
TaskStatewrite.The domain makes otherwise similar string and pair addresses impossible to conflate during static parallel analysis. This contract intentionally describes only exact keys; dynamic or opaque effects must not manufacture a guessed key.
Methods:
__init__(domain, address)articulation_joint(articulation_id, joint_id)Build one articulation-joint mapping key.
coordinated_held_object(...)Build one ordered coordinated-held-object mapping key.
held_object(task_state_key)Build one held-object mapping key.
Attributes:
renderedReturn a deterministic domain-qualified diagnostic form.
- __init__(domain, address)
- classmethod articulation_joint(articulation_id, joint_id)[source]
Build one articulation-joint mapping key.
- Return type:
SymbolicStateKey
- classmethod coordinated_held_object(first_task_state_key, second_task_state_key)[source]
Build one ordered coordinated-held-object mapping key.
- Return type:
SymbolicStateKey
- classmethod held_object(task_state_key)[source]
Build one held-object mapping key.
- Return type:
SymbolicStateKey
- property rendered: str
Return a deterministic domain-qualified diagnostic form.
embodichain.lab.task_program.semantics.evidence#
Backend-neutral acquisition ports for typed semantic-effect evidence.
Classes:
|
Query for one raw contact or constraint boolean. |
|
Callback-owned raw binary values with explicit row validity. |
|
Minimal simulation robot API used by the built-in provider. |
|
Built-in simulation acquisition for control-part evidence addresses. |
|
One synchronized acquisition tick shared by all effect clauses. |
Dispatch and normalize a synchronized observation for one effect spec. |
|
|
Versioned backend port that acquires a group of exact-source queries. |
|
Immutable exact-ID/revision registry of live evidence providers. |
|
Typed request for the raw evidence of exactly one effect clause. |
|
Query for current joint positions and optional velocities. |
|
Callback-owned raw joint state with explicit row validity. |
|
Query for an object's pose relative to a resource endpoint. |
|
Query for one raw force or wrench magnitude. |
|
Callback-owned raw scalar values with explicit row validity. |
|
Typed adapter for scene-articulation joint-state observations. |
Data:
|
Closed set of typed clause queries accepted by evidence providers. |
Functions:
|
Build one independently owned typed query per effect clause. |
- class embodichain.lab.task_program.semantics.evidence.BinaryEffectEvidenceQuery[source]
Query for one raw contact or constraint boolean.
Methods:
__init__(clause, _expectation)snapshot()Return an independently owned binary query.
Attributes:
evidence_idReturn the source clause ID.
expectationReturn an owned correlated expectation.
sourceReturn an owned source route.
- __init__(clause, _expectation)
- property evidence_id: str
Return the source clause ID.
- property expectation: HeldObjectStateExpectation | CoordinatedHeldObjectCleanupExpectation | ArticulationJointStateExpectation
Return an owned correlated expectation.
- snapshot()[source]
Return an independently owned binary query.
- Return type:
BinaryEffectEvidenceQuery
- property source: EffectEvidenceSourceRef
Return an owned source route.
- class embodichain.lab.task_program.semantics.evidence.BinaryEffectObservation[source]
Callback-owned raw binary values with explicit row validity.
Methods:
__init__(values[, valid, acquisition_errors])- __init__(values, valid=None, acquisition_errors=())
- class embodichain.lab.task_program.semantics.evidence.ControlPartRobotEvidenceSource[source]
Minimal simulation robot API used by the built-in provider.
Methods:
__init__(*args, **kwargs)compute_fk(qpos[, name, env_ids, to_matrix])Return the selected endpoint pose for current joint positions.
get_qpos([name, target])Return current robot or control-part joint positions.
get_qvel([name, target])Return current robot or control-part joint velocities.
- __init__(*args, **kwargs)
- compute_fk(qpos, name=None, env_ids=None, to_matrix=False)[source]
Return the selected endpoint pose for current joint positions.
- Return type:
Tensor
- get_qpos(name=None, target=False)[source]
Return current robot or control-part joint positions.
- Return type:
Tensor
- get_qvel(name=None, target=False)[source]
Return current robot or control-part joint velocities.
- Return type:
Tensor
- class embodichain.lab.task_program.semantics.evidence.ControlPartSimulationEvidenceProvider[source]
Built-in simulation acquisition for control-part evidence addresses.
Pose evidence is computed as
inverse(object_pose) @ endpoint_posefrom one scene snapshot andRobot.compute_fk(). Joint evidence reads the control part’s measured positions and velocities. Contact, constraint, force, and wrench signals are backend-specific, so callers inject raw observation callbacks. An omitted callback yields explicit invalid rows; the effect monitor can then retry until its normal deadline.Methods:
__init__(robot, *[, scene_provider, ...])collect(queries, context)Acquire all supplied control-part queries at one observation tick.
- __init__(robot, *, scene_provider=None, contact_observer=None, constraint_observer=None, force_observer=None, wrench_observer=None)[source]
- collect(queries, context)[source]
Acquire all supplied control-part queries at one observation tick.
- Return type:
Mapping[str,PoseRelationEvidenceBatch|BinaryEffectEvidenceBatch|ScalarEffectEvidenceBatch|JointStateEvidenceBatch]
- class embodichain.lab.task_program.semantics.evidence.EffectEvidenceCollectionContext[source]
One synchronized acquisition tick shared by all effect clauses.
- Parameters:
timestamp (
float) – Non-negative backend observation time.observation_revision (
int) – Monotonic revision chosen by the runtime port.env_ids (
Tensor) – Ordered environment correlation IDs to observe.
Methods:
__init__(timestamp, observation_revision, ...)snapshot()Return an independently owned acquisition context.
- __init__(timestamp, observation_revision, env_ids)
- snapshot()[source]
Return an independently owned acquisition context.
- Return type:
EffectEvidenceCollectionContext
- class embodichain.lab.task_program.semantics.evidence.EffectEvidenceCollector[source]
Dispatch and normalize a synchronized observation for one effect spec.
Methods:
__init__(registry)collect(spec, *, timestamp, observation_revision)Acquire and strictly synchronize evidence for every effect clause.
Attributes:
registryReturn the immutable provider registry.
- __init__(registry)[source]
- collect(spec, *, timestamp, observation_revision, env_ids=None)[source]
Acquire and strictly synchronize evidence for every effect clause.
- Parameters:
spec (
SemanticEffectSpec) – Grounded semantic effect contract.timestamp (
float) – Backend observation time for this acquisition tick.observation_revision (
int) – Runtime-owned observation revision.env_ids (
Tensor|None) – Optional ordered subset ofspec.env_ids. Acquisition failures must remain present as rows withvalid=False.
- Return type:
Mapping[str,PoseRelationEvidenceBatch|BinaryEffectEvidenceBatch|ScalarEffectEvidenceBatch|JointStateEvidenceBatch]- Returns:
Immutable mapping keyed exactly by effect clause ID.
- property registry: EffectEvidenceProviderRegistry
Return the immutable provider registry.
- class embodichain.lab.task_program.semantics.evidence.EffectEvidenceProvider[source]
Versioned backend port that acquires a group of exact-source queries.
Methods:
collect(queries, context)Acquire one synchronized batch for every supplied query.
- abstract collect(queries, context)[source]
Acquire one synchronized batch for every supplied query.
- Return type:
Mapping[str,PoseRelationEvidenceBatch|BinaryEffectEvidenceBatch|ScalarEffectEvidenceBatch|JointStateEvidenceBatch]
- class embodichain.lab.task_program.semantics.evidence.EffectEvidenceProviderRegistry[source]
Immutable exact-ID/revision registry of live evidence providers.
Methods:
__init__([providers])resolve(source)Resolve the exact provider selected by
source.Attributes:
providersReturn the immutable exact-key provider mapping.
- __init__(providers=())[source]
- property providers: Mapping[tuple[str, str], EffectEvidenceProvider]
Return the immutable exact-key provider mapping.
- resolve(source)[source]
Resolve the exact provider selected by
source.- Parameters:
source (
EffectEvidenceSourceRef) – Versioned evidence route from one effect clause.- Return type:
EffectEvidenceProvider- Returns:
Registered provider with the exact ID and revision.
- Raises:
KeyError – If no exact provider version is installed.
- class embodichain.lab.task_program.semantics.evidence.EffectEvidenceQuery[source]
Typed request for the raw evidence of exactly one effect clause.
Attributes:
evidence_idReturn the clause-local evidence identifier.
expectationReturn an owned symbolic expectation related to this query.
sourceReturn an owned exact provider route and physical address.
Methods:
snapshot()Return an independently owned query of the exact same type.
- abstract property evidence_id: str
Return the clause-local evidence identifier.
- abstract property expectation: HeldObjectStateExpectation | CoordinatedHeldObjectCleanupExpectation | ArticulationJointStateExpectation
Return an owned symbolic expectation related to this query.
- abstract snapshot()[source]
Return an independently owned query of the exact same type.
- Return type:
EffectEvidenceQuery
- abstract property source: EffectEvidenceSourceRef
Return an owned exact provider route and physical address.
- embodichain.lab.task_program.semantics.evidence.EffectEvidenceQueryValue: TypeAlias = embodichain.lab.task_program.semantics.evidence.PoseRelationEvidenceQuery | embodichain.lab.task_program.semantics.evidence.BinaryEffectEvidenceQuery | embodichain.lab.task_program.semantics.evidence.ScalarEffectEvidenceQuery | embodichain.lab.task_program.semantics.evidence.JointStateEvidenceQuery
Closed set of typed clause queries accepted by evidence providers.
- class embodichain.lab.task_program.semantics.evidence.JointStateEvidenceQuery[source]
Query for current joint positions and optional velocities.
Methods:
__init__(clause, _expectation)snapshot()Return an independently owned joint-state query.
Attributes:
evidence_idReturn the source clause ID.
expectationReturn an owned correlated expectation.
sourceReturn an owned source route.
- __init__(clause, _expectation)
- property evidence_id: str
Return the source clause ID.
- property expectation: HeldObjectStateExpectation | CoordinatedHeldObjectCleanupExpectation | ArticulationJointStateExpectation
Return an owned correlated expectation.
- snapshot()[source]
Return an independently owned joint-state query.
- Return type:
JointStateEvidenceQuery
- property source: EffectEvidenceSourceRef
Return an owned source route.
- class embodichain.lab.task_program.semantics.evidence.JointStateObservation[source]
Callback-owned raw joint state with explicit row validity.
Methods:
__init__(positions[, velocities, valid, ...])- __init__(positions, velocities=None, valid=None, acquisition_errors=())
- class embodichain.lab.task_program.semantics.evidence.PoseRelationEvidenceQuery[source]
Query for an object’s pose relative to a resource endpoint.
Methods:
__init__(clause, _expectation)snapshot()Return an independently owned pose query.
Attributes:
evidence_idReturn the source clause ID.
expectationReturn an owned correlated expectation.
sourceReturn an owned source route.
- __init__(clause, _expectation)
- property evidence_id: str
Return the source clause ID.
- property expectation: HeldObjectStateExpectation | CoordinatedHeldObjectCleanupExpectation | ArticulationJointStateExpectation
Return an owned correlated expectation.
- snapshot()[source]
Return an independently owned pose query.
- Return type:
PoseRelationEvidenceQuery
- property source: EffectEvidenceSourceRef
Return an owned source route.
- class embodichain.lab.task_program.semantics.evidence.ScalarEffectEvidenceQuery[source]
Query for one raw force or wrench magnitude.
Methods:
__init__(clause, _expectation)snapshot()Return an independently owned scalar query.
Attributes:
evidence_idReturn the source clause ID.
expectationReturn an owned correlated expectation.
sourceReturn an owned source route.
- __init__(clause, _expectation)
- property evidence_id: str
Return the source clause ID.
- property expectation: HeldObjectStateExpectation | CoordinatedHeldObjectCleanupExpectation | ArticulationJointStateExpectation
Return an owned correlated expectation.
- snapshot()[source]
Return an independently owned scalar query.
- Return type:
ScalarEffectEvidenceQuery
- property source: EffectEvidenceSourceRef
Return an owned source route.
- class embodichain.lab.task_program.semantics.evidence.ScalarEffectObservation[source]
Callback-owned raw scalar values with explicit row validity.
Methods:
__init__(values[, valid, acquisition_errors])- __init__(values, valid=None, acquisition_errors=())
- class embodichain.lab.task_program.semantics.evidence.SceneArticulationEvidenceProvider[source]
Typed adapter for scene-articulation joint-state observations.
Integrations inject either a direct observer or a
SceneProviderwhose snapshot containsObservedArticulationJointStatevalues. The adapter never discovers live simulator objects from an environment. Repeated clauses share one synchronized snapshot and one sample per exact physical address.Methods:
__init__([observer, scene_provider])collect(queries, context)Collect synchronized joint state for exact scene addresses.
- __init__(observer=None, *, scene_provider=None)[source]
- collect(queries, context)[source]
Collect synchronized joint state for exact scene addresses.
- Return type:
Mapping[str,PoseRelationEvidenceBatch|BinaryEffectEvidenceBatch|ScalarEffectEvidenceBatch|JointStateEvidenceBatch]
- embodichain.lab.task_program.semantics.evidence.build_effect_evidence_queries(spec)[source]
Build one independently owned typed query per effect clause.
- Parameters:
spec (
SemanticEffectSpec) – Grounded semantic effect contract.- Return type:
tuple[PoseRelationEvidenceQuery|BinaryEffectEvidenceQuery|ScalarEffectEvidenceQuery|JointStateEvidenceQuery,...]- Returns:
Queries in the contract’s deterministic clause order.
embodichain.lab.task_program.semantics.profiles#
Raised when multiple assignments remain without a complete default. |
|
Robot- and engine-validated view of a |
|
One named execution endpoint backed by a robot control part. |
|
Resolve joint-backed |
|
Authority used to advance semantic state after command completion. |
|
Adapter-produced runtime destination and claim metadata for one endpoint. |
|
Raised when a robot skill profile disagrees with its engine or robot. |
|
Extensible execution endpoint in a robot resource graph. |
|
Resolve one endpoint kind without coupling profiles to its controller. |
|
Robot-validated resource with concrete endpoint joint IDs and claim. |
|
Endpoint declaration resolved by one registered adapter. |
|
One generic resource assignment lowered for the current action core. |
|
Generic mapping from skill-local slots to robot resource IDs. |
|
Physical leaf and joint claim used for deterministic conflict checks. |
|
Generic leaf or composite resource in one robot's resource DAG. |
|
Reusable declarative skill integration for one robot embodiment. |
|
Policies and typed semantic-call option templates. |
|
Raised when no robot-resource assignment can satisfy a skill. |
|
|
Bound workflow-level recovery for curated semantic effect failures. |
embodichain.lab.task_program.semantics.scene#
Raised when compatible affordances lack one explicitly scoped default. |
|
|
Capability for an affordance usable by object pickup or handover. |
|
Capability for an affordance that defines an |
|
Capability for an affordance that defines an |
Stateful scene provider derived from an immutable registry. |
|
Reference to one registered interaction affordance. |
|
Reference to one articulation registered in the semantic scene. |
|
How an entity participates in the planner collision world. |
|
Batch-sharing policy for a dynamic planner collision world. |
|
Physical mobility classification owned by a scene registration. |
|
Typed reference to one authoritative scene-registry entity. |
|
Provider-free semantic metadata projected from one registration. |
|
Immutable integration metadata for one authoritative scene entity. |
|
Observe one registered entity for an ordered environment batch. |
|
Provide one entity's planner-facing collision geometry descriptor. |
|
Reference to one registered articulation link. |
|
Reference to one object registered in the semantic scene. |
|
Immutable authoritative catalog of semantic scene entities. |
|
Raised when a parent has no affordance for a required capability. |
Authoritative scene identity and registration value contracts.
Exceptions:
Raised when compatible affordances lack one explicitly scoped default. |
|
Raised when a parent has no affordance for a required capability. |
Classes:
|
Canonical scene articulation and joint observation address. |
|
Typed target frame for placing an object's origin inside a container. |
Stateful scene provider derived from an immutable registry. |
|
Reference to one registered interaction affordance. |
|
|
Observe canonical joints for one registered scene articulation. |
Reference to one articulation registered in the semantic scene. |
|
How an entity participates in the planner collision world. |
|
Batch-sharing policy for a dynamic planner collision world. |
|
Physical mobility classification owned by a scene registration. |
|
Provider-free semantic metadata projected from one registration. |
|
Typed reference to one authoritative scene-registry entity. |
|
Immutable integration metadata for one authoritative scene entity. |
|
Observe one registered entity for an ordered environment batch. |
|
Provide one entity's planner-facing collision geometry descriptor. |
|
Reference to one registered articulation link. |
|
Reference to one object registered in the semantic scene. |
|
Immutable authoritative catalog of semantic scene entities. |
|
|
Typed target frame for placing an object's origin on a support surface. |
Data:
|
Capability for an affordance usable by object pickup or handover. |
|
Schema revision for built-in support/container object-target frames. |
|
Capability for an affordance that defines an |
|
Capability for an affordance that defines an |
|
Stable route for explicitly injected articulation-joint observations. |
|
Exact contract revision for articulation-joint evidence addresses. |
- exception embodichain.lab.task_program.semantics.scene.AmbiguousSceneAffordanceError[source]
Raised when compatible affordances lack one explicitly scoped default.
- class embodichain.lab.task_program.semantics.scene.ArticulationJointEvidenceAddress[source]
Canonical scene articulation and joint observation address.
Methods:
__init__(articulation_id, joint_id)Attributes:
address_fingerprintReturn the exact provider-independent joint address.
- __init__(articulation_id, joint_id)
- property address_fingerprint: Hashable
Return the exact provider-independent joint address.
- class embodichain.lab.task_program.semantics.scene.ContainerAffordance[source]
Typed target frame for placing an object’s origin inside a container.
The registered affordance pose is the desired object pose, expressed relative to its parent scene entity. The optional confidence threshold is enforced whenever that late-bound target pose is resolved.
- Parameters:
minimum_confidence (
float) – Minimum confidence accepted while resolving the late-bound target pose.
Methods:
__init__([object_label, custom_config, ...])- __init__(object_label='', custom_config=<factory>, minimum_confidence=0.0)
- embodichain.lab.task_program.semantics.scene.GRASP_AFFORDANCE_CAPABILITY = 'affordance.grasp'
Capability for an affordance usable by object pickup or handover.
- embodichain.lab.task_program.semantics.scene.PLACEMENT_TARGET_AFFORDANCE_REVISION = '1'
Schema revision for built-in support/container object-target frames.
- embodichain.lab.task_program.semantics.scene.PLACE_IN_AFFORDANCE_CAPABILITY = 'affordance.place.in'
Capability for an affordance that defines an
insideplacement relation.
- embodichain.lab.task_program.semantics.scene.PLACE_ON_AFFORDANCE_CAPABILITY = 'affordance.place.on'
Capability for an affordance that defines an
onplacement relation.
- class embodichain.lab.task_program.semantics.scene.RegistrySceneProvider[source]
Stateful scene provider derived from an immutable registry.
Instances are created by
SceneRegistry.make_scene_provider(); each instance owns its revision counters and material-pose baselines.- Parameters:
registry (
SceneRegistry) – Immutable catalog that owns entity registrations.translation_threshold (
float) – Accumulated translation needed to publish a material scene change.rotation_threshold (
float) – Accumulated rotation needed to publish a material scene change.batch_size (
int|None) – Optional fixed execution batch size. Factory-created planning providers bind this value before their first observation.
Methods:
__init__(registry, *, translation_threshold, ...)snapshot(*, timestamp, env_ids)Observe all canonical entities and advance material revisions.
Attributes:
collision_world_modeReturn the configured or first-snapshot-resolved collision mode.
- __init__(registry, *, translation_threshold, rotation_threshold, batch_size=None)[source]
- property collision_world_mode: SceneCollisionWorldMode | None
Return the configured or first-snapshot-resolved collision mode.
- snapshot(*, timestamp, env_ids)[source]
Observe all canonical entities and advance material revisions.
- Parameters:
timestamp (
float) – Non-negative monotonic observation timestamp.env_ids (
Tensor) – Stable ordered correlation IDs for every environment row.
- Return type:
- Returns:
An immutable snapshot keyed only by canonical registry IDs.
- embodichain.lab.task_program.semantics.scene.SCENE_ARTICULATION_EVIDENCE_PROVIDER_ID = 'builtin.scene_articulation'
Stable route for explicitly injected articulation-joint observations.
- embodichain.lab.task_program.semantics.scene.SCENE_ARTICULATION_EVIDENCE_PROVIDER_REVISION = '1'
Exact contract revision for articulation-joint evidence addresses.
- class embodichain.lab.task_program.semantics.scene.SceneAffordanceRef[source]
Reference to one registered interaction affordance.
Methods:
__init__(entity_id)- __init__(entity_id)
- class embodichain.lab.task_program.semantics.scene.SceneArticulationJointStateProvider[source]
Observe canonical joints for one registered scene articulation.
Methods:
__init__(*args, **kwargs)observe_joints(*, timestamp, env_ids)Return live joint observations whose rows follow
env_ids.- __init__(*args, **kwargs)
- observe_joints(*, timestamp, env_ids)[source]
Return live joint observations whose rows follow
env_ids.- Return type:
Mapping[str,ObservedArticulationJointState]
- class embodichain.lab.task_program.semantics.scene.SceneArticulationRef[source]
Reference to one articulation registered in the semantic scene.
Methods:
__init__(entity_id)- __init__(entity_id)
- class embodichain.lab.task_program.semantics.scene.SceneCollisionRole[source]
How an entity participates in the planner collision world.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.scene.SceneCollisionWorldMode[source]
Batch-sharing policy for a dynamic planner collision world.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.scene.SceneDynamics[source]
Physical mobility classification owned by a scene registration.
Methods:
__new__(value)- __new__(value)
- class embodichain.lab.task_program.semantics.scene.SceneEntityMetadata[source]
Provider-free semantic metadata projected from one registration.
- Parameters:
ref (
SceneEntityRef) – Canonical typed entity reference.aliases (
tuple[str,...]) – Boundary aliases, compared as an order-independent set.parent (
SceneEntityRef|None) – Canonical parent for links and affordances.native_name (
str|None) – Backend-local child name.dynamics (
SceneDynamics) – Physical mobility classification.collision_role (
SceneCollisionRole) – Planner collision classification.semantic_type (
str|None) – Optional application semantic type.affordance_capabilities (
frozenset[str]) – Open capabilities of an affordance.default_affordances (
Mapping[str,SceneAffordanceRef]) – Capability-scoped direct-child defaults.affordance_payload_type (
type[Affordance] |None) – Exact registered affordance value type.affordance_revision (
str|None) – Integrator-owned payload revision or fingerprint.relative_pose (
tuple[float,...] |None) – Flattened parent-relative 4x4 pose, when declared.
Methods:
__init__(ref[, aliases, parent, ...])from_registration(registration)Project semantic metadata without copying a live payload/provider.
- __init__(ref, aliases=(), parent=None, native_name=None, dynamics=SceneDynamics.UNKNOWN, collision_role=SceneCollisionRole.NONE, semantic_type=None, affordance_capabilities=frozenset({}), default_affordances=<factory>, affordance_payload_type=None, affordance_revision=None, relative_pose=None)
- classmethod from_registration(registration)[source]
Project semantic metadata without copying a live payload/provider.
- Return type:
- class embodichain.lab.task_program.semantics.scene.SceneEntityRef[source]
Typed reference to one authoritative scene-registry entity.
- Parameters:
entity_id (
str) – Globally stable canonical registry identifier.
Methods:
__init__(entity_id)Attributes:
entity_idGlobally stable authoritative registry identifier.
- __init__(entity_id)
-
entity_id:
str Globally stable authoritative registry identifier.
- class embodichain.lab.task_program.semantics.scene.SceneEntityRegistration[source]
Immutable integration metadata for one authoritative scene entity.
Parent relationships, simulator-native names, pose sources, geometry, and affordances belong to the registry registration rather than the lightweight reference copied into semantic calls.
- Parameters:
ref (
SceneEntityRef) – Canonical typed reference.state_provider (
SceneEntityStateProvider|None) – Optional dynamic pose/confidence source.joint_state_provider (
SceneArticulationJointStateProvider|None) – Optional live articulation-joint source.aliases (
tuple[str,...]) – External names normalized at the registry boundary.parent (
SceneEntityRef|None) – Canonical parent for a link or affordance.native_name (
str|None) – Backend-local member name underparent.dynamics (
SceneDynamics) – Physical mobility classification.geometry_provider (
SceneGeometryProvider|None) – Planner-facing collision geometry source.collision_role (
SceneCollisionRole) – Static, dynamic, or no planner collision role.semantic_type (
str|None) – Optional application semantic type.affordance (
Affordance|None) – Affordance value for an affordance registration.affordance_capabilities (
frozenset[str]) – Open semantic operations supported by an affordance registration.default_affordances (
Mapping[str,SceneAffordanceRef]) – Capability-to-child mapping owned by a parent object, articulation, or link registration.affordance_revision (
str|None) – Stable integrator-owned revision or fingerprint for capability-bearing affordance payload data.relative_pose (
Tensor|None) – Optional parent-relative affordance transform.
Methods:
__init__(ref[, state_provider, aliases, ...])Attributes:
affordanceAffordance value owned by a
SceneAffordanceRefregistration.affordance_capabilitiesOpen semantic capabilities declared by an affordance registration.
affordance_revisionStable payload revision required by capability-bearing affordances.
aliasesExternal names normalized once at the registry boundary.
collision_roleStatic/dynamic planner-obstacle role, or
none.default_affordancesCapability-scoped child affordances selected when multiple are valid.
dynamicsStatic, kinematic, dynamic, or unknown mobility classification.
geometry_providerCollision geometry source required for planner collision roles.
joint_state_providerExplicit live joint source for an articulation registration.
native_nameBackend-local link or affordance name under
parent.parentCanonical parent reference for a link or affordance.
refCanonical typed reference owned by the registry.
relative_poseOptional parent-relative pose when no explicit state provider exists.
semantic_typeOptional application semantic type such as
containerortool.state_providerExplicit dynamic pose/confidence source.
- __init__(ref, state_provider=None, aliases=(), parent=None, native_name=None, dynamics=SceneDynamics.UNKNOWN, geometry_provider=None, collision_role=SceneCollisionRole.NONE, semantic_type=None, affordance=None, affordance_capabilities=frozenset({}), default_affordances=<factory>, affordance_revision=None, relative_pose=None, joint_state_provider=None)
-
affordance:
Affordance|None Affordance value owned by a
SceneAffordanceRefregistration.
-
affordance_capabilities:
frozenset[str] Open semantic capabilities declared by an affordance registration.
-
affordance_revision:
str|None Stable payload revision required by capability-bearing affordances.
-
aliases:
tuple[str,...] External names normalized once at the registry boundary.
-
collision_role:
SceneCollisionRole Static/dynamic planner-obstacle role, or
none.
-
default_affordances:
Mapping[str,SceneAffordanceRef] Capability-scoped child affordances selected when multiple are valid.
-
dynamics:
SceneDynamics Static, kinematic, dynamic, or unknown mobility classification.
-
geometry_provider:
SceneGeometryProvider|None Collision geometry source required for planner collision roles.
-
joint_state_provider:
SceneArticulationJointStateProvider|None Explicit live joint source for an articulation registration.
-
native_name:
str|None Backend-local link or affordance name under
parent.
-
parent:
SceneEntityRef|None Canonical parent reference for a link or affordance.
-
ref:
SceneEntityRef Canonical typed reference owned by the registry.
-
relative_pose:
Tensor|None Optional parent-relative pose when no explicit state provider exists.
-
semantic_type:
str|None Optional application semantic type such as
containerortool.
-
state_provider:
SceneEntityStateProvider|None Explicit dynamic pose/confidence source.
- class embodichain.lab.task_program.semantics.scene.SceneEntityStateProvider[source]
Observe one registered entity for an ordered environment batch.
Methods:
__init__(*args, **kwargs)observe(*, timestamp, env_ids)Return the entity state whose rows follow
env_ids.- __init__(*args, **kwargs)
- observe(*, timestamp, env_ids)[source]
Return the entity state whose rows follow
env_ids.- Parameters:
timestamp (
float) – Observation timestamp supplied by the integration.env_ids (
Tensor) – Stable ordered environment correlation IDs.
- Return type:
EntityState- Returns:
Current pose and confidence for the registered entity.
- class embodichain.lab.task_program.semantics.scene.SceneGeometryProvider[source]
Provide one entity’s planner-facing collision geometry descriptor.
Methods:
__init__(*args, **kwargs)get_geometry()Return the planner-facing geometry descriptor.
- __init__(*args, **kwargs)
- get_geometry()[source]
Return the planner-facing geometry descriptor.
- Return type:
object- Returns:
Backend-consumable geometry or a live simulation entity.
- class embodichain.lab.task_program.semantics.scene.SceneLinkRef[source]
Reference to one registered articulation link.
Methods:
__init__(entity_id)- __init__(entity_id)
- class embodichain.lab.task_program.semantics.scene.SceneObjectRef[source]
Reference to one object registered in the semantic scene.
Methods:
__init__(entity_id)- __init__(entity_id)
- class embodichain.lab.task_program.semantics.scene.SceneRegistry[source]
Immutable authoritative catalog of semantic scene entities.
Canonical identifiers occupy one flat, globally unique namespace. Aliases are accepted only at lookup and integration boundaries and always resolve to a canonical typed reference before they leave the registry.
- Parameters:
registrations (
Iterable[SceneEntityRegistration]) – Complete scene registrations. The iterable is copied and cannot be extended after construction.collision_world_mode (
SceneCollisionWorldMode|None) – Explicit dynamic-collision batch policy. It may be omitted for a single environment, which resolves toshared. A multi-environment dynamic world must select a mode explicitly.
Methods:
__init__([registrations, collision_world_mode])affordances(parent, *, capability)Return compatible direct-child affordances without selecting one.
collision_geometry_by_id([role])Materialize planner geometry under canonical registry IDs.
from_simulation(simulation, *[, ...])Opt explicitly selected simulation entities into a registry.
lookup(identifier, *[, expected_type])Return an owned registration after canonical typed resolution.
make_planning_scene_provider(...[, ...])Create a provider after complete planner/registry validation.
make_scene_provider(*[, ...])Create an independent provider without planner cross-validation.
object_semantics(object_ref, *, affordance)Build one owned atomic-action semantic snapshot.
resolve(identifier, *[, expected_type])Resolve a canonical ID or alias to a typed canonical reference.
resolve_affordance(parent, *, capability[, ...])Select one compatible affordance with strict scoped-default rules.
resolve_collision_world_mode(*, batch_size)Resolve the configured collision mode for an execution batch.
validate_collision_integration(...[, ...])Validate registry/planner agreement before dynamic planning.
Attributes:
aliasesReturn the immutable alias-to-canonical-ID index.
collision_world_entity_idsReturn every canonical ID represented in the planner world.
dynamic_collision_entity_idsReturn canonical IDs whose planner poses update dynamically.
entity_metadataReturn provider-free metadata without copying affordance payloads.
entity_refsReturn canonical typed references in registration order.
registrationsReturn structurally independent registration values.
static_collision_entity_idsReturn canonical IDs baked into the static planner world.
- __init__(registrations=(), *, collision_world_mode=None)[source]
- affordances(parent, *, capability)[source]
Return compatible direct-child affordances without selecting one.
- Parameters:
parent (
str|SceneEntityRef) – Canonical ID, alias, or typed parent reference.capability (
str) – Required open affordance capability.
- Return type:
tuple[SceneAffordanceRef,...]- Returns:
Compatible canonical references sorted by canonical ID.
- property aliases: Mapping[str, str]
Return the immutable alias-to-canonical-ID index.
- collision_geometry_by_id(role=None)[source]
Materialize planner geometry under canonical registry IDs.
- Parameters:
role (
SceneCollisionRole|None) – Optional exact collision-role filter. Without a filter, all static and dynamic collision registrations are included. Registrations whose role isSceneCollisionRole.NONEnever enter the planner collision world.- Return type:
Mapping[str,object]- Returns:
Fresh immutable canonical-ID-to-geometry mapping.
- property collision_world_entity_ids: tuple[str, ...]
Return every canonical ID represented in the planner world.
- property dynamic_collision_entity_ids: tuple[str, ...]
Return canonical IDs whose planner poses update dynamically.
- property entity_metadata: tuple[SceneEntityMetadata, ...]
Return provider-free metadata without copying affordance payloads.
- property entity_refs: tuple[SceneEntityRef, ...]
Return canonical typed references in registration order.
- classmethod from_simulation(simulation, *, rigid_objects=None, articulations=None, collision_roles=None, geometry_providers=None, collision_world_mode=None)[source]
Opt explicitly selected simulation entities into a registry.
rigid_objectsandarticulationsmap authoritative registry IDs to simulation UIDs. UIDs become aliases automatically; unlisted simulation entities are never imported. Collision participation defaults toSceneCollisionRole.NONE.- Parameters:
simulation (
SimulationManager) – Simulation manager used only for explicit UID lookup.rigid_objects (
Mapping[str,str] |None) – Canonical object IDs mapped to simulation UIDs.articulations (
Mapping[str,str] |None) – Canonical articulation IDs mapped to simulation UIDs.collision_roles (
Mapping[str,SceneCollisionRole] |None) – Optional collision roles keyed by canonical ID.geometry_providers (
Mapping[str,SceneGeometryProvider] |None) – Optional geometry overrides keyed by canonical ID. Selected rigid objects otherwise expose their live handles.collision_world_mode (
SceneCollisionWorldMode|None) – Optional dynamic collision batch-sharing mode.
- Return type:
- Returns:
Immutable registry containing only the explicitly selected entities.
- lookup(identifier, *, expected_type=<class 'embodichain.lab.task_program.semantics.scene.SceneEntityRef'>)[source]
Return an owned registration after canonical typed resolution.
- Parameters:
identifier (
str|SceneEntityRef) – Canonical ID, alias, or typed canonical reference.expected_type (
type[TypeVar(RefT, bound= SceneEntityRef)]) – Required reference class.
- Return type:
- Returns:
A structurally independent copy of the matching registration.
- make_planning_scene_provider(motion_generator, *, batch_size, translation_threshold=0.0001, rotation_threshold=0.001)[source]
Create a provider after complete planner/registry validation.
- Parameters:
motion_generator (
MotionGenerator) – Motion generator that will consume dynamic poses.batch_size (
int) – Number of execution environments.translation_threshold (
float) – Accumulated translation needed to publish a material scene change.rotation_threshold (
float) – Accumulated rotation needed to publish a material scene change.
- Return type:
- Returns:
A new independently stateful, planner-validated scene provider.
- make_scene_provider(*, translation_threshold=0.0001, rotation_threshold=0.001, batch_size=None)[source]
Create an independent provider without planner cross-validation.
This factory is intended for perception and direct-core consumers. The canonical planning path must use
make_planning_scene_provider()so planner IDs, capabilities, and collision-world mode cannot drift.- Parameters:
translation_threshold (
float) – Accumulated translation needed to publish a material scene change.rotation_threshold (
float) – Accumulated rotation needed to publish a material scene change.batch_size (
int|None) – Optional fixed integration batch size. Supplying it validates the collision-world mode immediately and binds the provider to that row count.
- Return type:
- Returns:
A new provider with independent revisions and published baselines.
- object_semantics(object_ref, *, affordance)[source]
Build one owned atomic-action semantic snapshot.
- Parameters:
object_ref (
str|SceneObjectRef) – Canonical object ID, alias, or typed reference.affordance (
str|SceneAffordanceRef) – Registered direct-child affordance for the object.
- Return type:
- Returns:
Object semantics with an owned affordance payload and canonical ID.
- Raises:
ValueError – If the affordance does not belong to the object.
- property registrations: tuple[SceneEntityRegistration, ...]
Return structurally independent registration values.
- resolve(identifier, *, expected_type=<class 'embodichain.lab.task_program.semantics.scene.SceneEntityRef'>)[source]
Resolve a canonical ID or alias to a typed canonical reference.
- Parameters:
identifier (
str|SceneEntityRef) – Canonical ID, alias, or already typed canonical ref.expected_type (
type[TypeVar(RefT, bound= SceneEntityRef)]) – Required reference class for typed lookup.
- Return type:
TypeVar(RefT, bound= SceneEntityRef)- Returns:
Registry-owned canonical reference.
- Raises:
KeyError – If the canonical ID or alias is unknown.
TypeError – If the supplied or resolved reference has the wrong type.
- resolve_affordance(parent, *, capability, explicit=None)[source]
Select one compatible affordance with strict scoped-default rules.
- Parameters:
parent (
str|SceneEntityRef) – Entity that directly owns the affordance.capability (
str) – Required semantic affordance capability.explicit (
str|SceneAffordanceRef|None) – Optional explicit affordance ID or typed reference.
- Return type:
- Returns:
One canonical compatible affordance reference.
- Raises:
UnsupportedSceneAffordanceError – If no compatible affordance exists or an explicit affordance has the wrong parent/capability.
AmbiguousSceneAffordanceError – If multiple candidates exist without a scoped default.
- resolve_collision_world_mode(*, batch_size)[source]
Resolve the configured collision mode for an execution batch.
- Parameters:
batch_size (
int) – Number of execution environments.- Return type:
SceneCollisionWorldMode|None- Returns:
The effective mode, or
Nonewhen no dynamic collision entity is registered.
- property static_collision_entity_ids: tuple[str, ...]
Return canonical IDs baked into the static planner world.
- validate_collision_integration(motion_generator, *, batch_size, scene_provider=None)[source]
Validate registry/planner agreement before dynamic planning.
- Parameters:
motion_generator (
MotionGenerator) – Motion generator whose planner consumes obstacles.batch_size (
int) – Number of execution environments.scene_provider (
SceneProvider|None) – Optional external perception or hardware provider. Its concretecollision_entity_idsmust agree exactly with the registry and planner declarations.
- Return type:
SceneCollisionWorldMode|None- Returns:
Effective dynamic collision mode, or
Nonewithout dynamic IDs.
- class embodichain.lab.task_program.semantics.scene.SupportSurfaceAffordance[source]
Typed target frame for placing an object’s origin on a support surface.
The registered affordance pose is the desired object pose, expressed relative to its parent scene entity. The optional confidence threshold is enforced whenever that late-bound target pose is resolved.
- Parameters:
minimum_confidence (
float) – Minimum confidence accepted while resolving the late-bound target pose.
Methods:
__init__([object_label, custom_config, ...])- __init__(object_label='', custom_config=<factory>, minimum_confidence=0.0)
- exception embodichain.lab.task_program.semantics.scene.UnsupportedSceneAffordanceError[source]
Raised when a parent has no affordance for a required capability.
embodichain.lab.sim.motion.solvers.neural_ik_solver#
Configuration for the neural network IK solver. |
|
IK solver using a trained neural network policy. |
embodichain.lab.sim.motion.solvers.null_space_posture_task#
|
Pink-based task that adds a posture objective that is in the null space projection of other tasks. |
embodichain.lab.sim.motion.solvers.pink_solver#
Iterative task-space IK with adaptive damping and convergence checks. |
|
Configure the Pink task-space IK solver. |
embodichain.lab.sim.motion.solvers.srs_solver#
SRS inverse kinematics (IK) controller. |
|
Configuration for SRS inverse kinematics controller. |
embodichain.lab.sim.utility.render_utils#
|
Select the default renderer backend based on the detected GPU. |
embodichain.lab.sim.motion.workspace.caches.cache_utils#
|
Clean all cache sessions. |
|
Clean a specific cache session. |
|
Format bytes to human-readable size. |
|
Get the root cache directory. |
|
Calculate total size of a directory in bytes. |
|
List all cache sessions. |
|
Run the backward-compatible workspace analyzer cache CLI. |
|
Show detailed information about a cache session. |
|
Show total cache size. |
embodichain.lab.sim.motion.workspace.caches.results_cache#
|
str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str |
Disk cache for workspace results, keyed by robot and parameters. |
|
|
Compute a stable, readable key for analysis inputs. |
|
Split an analysis results dict into array and meta parts. |
|
Reconstruct an analysis results dict from arrays and metadata. |
embodichain.lab.sim.motion.workspace.constraints.base_constraint#
Interface for constraint checkers. |
|
Abstract base class for workspace constraint checkers. |
embodichain.lab.sim.motion.workspace.constraints.workspace_constraint#
Workspace constraint checker for robotic workspace analysis. |
embodichain.lab.sim.motion.workspace.samplers.base_sampler#
Interface for all samplers. |
|
Abstract base class for all samplers. |
embodichain.lab.sim.motion.workspace.samplers.gaussian_sampler#
|
Gaussian (Normal distribution) sampler. |
embodichain.lab.sim.motion.workspace.samplers.halton_sampler#
Halton sequence sampler using quasi-random low-discrepancy sequences. |
embodichain.lab.sim.motion.workspace.samplers.importance_sampler#
|
Importance sampler using weighted distribution. |
embodichain.lab.sim.motion.workspace.samplers.iniform_sampler#
Uniform grid sampler. |
embodichain.lab.sim.motion.workspace.samplers.lhs_sampler#
Latin Hypercube Sampler (LHS) for stratified sampling. |
embodichain.lab.sim.motion.workspace.samplers.random_sampler#
Random sampler using uniform distribution. |
embodichain.lab.sim.motion.workspace.samplers.sobol_sampler#
Sobol sequence sampler using quasi-random low-discrepancy sequences. |
embodichain.lab.sim.motion.workspace.visualizers.axis_visualizer#
Visualizer for coordinate axes/frames at specified poses. |
embodichain.lab.sim.motion.workspace.visualizers.base_visualizer#
Interface for all visualizers. |
|
Abstract base class for all visualizers. |
embodichain.lab.sim.motion.workspace.visualizers.point_cloud_visualizer#
Point cloud visualizer using SimulationManager, Viser, or local tools. |
embodichain.lab.sim.motion.workspace.visualizers.sphere_visualizer#
Sphere-based visualizer using Open3D or matplotlib. |
embodichain.lab.sim.motion.workspace.visualizers.visualizer_factory#
Factory class for creating visualizers (Singleton pattern). |
|
|
Convenience function to create a visualizer. |
embodichain.lab.sim.motion.workspace.visualizers.voxel_visualizer#
Voxel grid visualizer using Open3D or matplotlib. |
embodichain.lab.visualization.backends#
|
Lifecycle and publishing contract for live visualization backends. |
|
Map backend-neutral scene snapshots onto a Viser server. |
embodichain.lab.visualization.backends.base#
|
Lifecycle and publishing contract for live visualization backends. |
embodichain.lab.visualization.backends.viser#
|
Map backend-neutral scene snapshots onto a Viser server. |
embodichain.lab.visualization.cfg#
Configure live scene visualization. |
|
Configure the local Viser HTTP/WebSocket server. |
embodichain.lab.visualization.cli#
|
Add the standard EmbodiChain Viser command-line options. |
|
Build visualization configuration from parsed CLI arguments. |
embodichain.lab.visualization.picker#
Browser picking caches triangle geometry and returns the closest node hit by a world-space ray. The Viser worker pairs this geometry with poses from the same scene revision before producing a pick command.
Resolve a world-space ray to the closest hit scene node. |
- class embodichain.lab.visualization.picker.ScenePicker[source]#
Resolve a world-space ray to the closest hit scene node.
Geometry is cached per
geometry_idin local coordinates. Each pick transforms the ray into every instance’s local frame (so cached triangle data is reused across instances and across frames) and runs a vectorized Möller-Trumbore test, keeping the smallest positive ray parameter.- Parameters:
epsilon (
float) – Lower bound for accepted ray parameters, in world length units.
Methods:
__init__([epsilon])clear()Drop all cached geometry.
pick(ray_origin, ray_direction, instances)Return the node id of the closest instance hit by the ray.
remove_geometry(geometry_id)Drop one cached geometry.
set_geometry(geometry_id, vertices, faces)Cache one geometry's triangle data in local coordinates.
- pick(ray_origin, ray_direction, instances)[source]#
Return the node id of the closest instance hit by the ray.
Each instance is a
(node_id, geometry_id, position, wxyz)tuple, wherepositionis the world-space translation andwxyzis the normalized[w, x, y, z]quaternion. The ray is transformed into each instance’s local frame so the cached local geometry can be reused.- Parameters:
ray_origin (
ndarray) – World-space ray origin with shape(3,).ray_direction (
ndarray) – World-space ray direction with shape(3,). It is normalized internally so the returned hit distance is in world length units.instances (
Iterable[tuple[str,str,ndarray,ndarray]]) – Iterable of scene instances to test.
- Return type:
str|None- Returns:
The closest hit
node_id, orNoneif the ray misses every instance.
- set_geometry(geometry_id, vertices, faces)[source]#
Cache one geometry’s triangle data in local coordinates.
- Parameters:
geometry_id (
str) – Stable geometry identifier from the scene manifest.vertices (
ndarray) – Triangle mesh vertices with shape(V, 3).faces (
ndarray) – Triangle indices intoverticeswith shape(F, 3).
- Return type:
None
embodichain.lab.visualization.protocol#
|
int([x]) -> integer int(x, base=10) -> integer |
One detached RGB image associated with a manifest camera. |
|
Low-frequency RGB images captured at one simulation timestamp. |
|
Static pinhole-camera parameters for one environment instance. |
|
Detached vertex positions for one deformable scene node. |
|
Coordinate frame overlay. |
|
Immutable browser drag command consumed on the simulation thread. |
|
Static description of one simulation Gizmo exposed by a backend. |
|
Authoritative world pose and visibility of one simulation Gizmo. |
|
Immutable browser joint command consumed on the simulation thread. |
|
Simulation-thread source of optional articulation joint controls. |
|
Static description of one scalar articulation joint control. |
|
Authoritative value and command acknowledgement for one joint control. |
|
Backend-neutral triangle mesh stored in local coordinates. |
|
Immutable browser click-pick command consumed on the simulation thread. |
|
Point cloud overlay with per-cloud or per-point RGB colors. |
|
Dynamic poses and overlays for one simulation sample. |
|
Static scene topology and geometry for one scene revision. |
|
One mesh-bearing logical node in a scene manifest. |
|
All optional overlays attached to a dynamic frame. |
|
Target pose overlay rendered as a coordinate frame. |
|
Polyline trajectory overlay. |
|
|
Estimate NumPy image bytes retained by a camera image frame. |
|
Estimate NumPy payload bytes retained by a frame. |
|
Estimate binary geometry bytes retained by a manifest. |
|
Split pose arrays into positions and normalized wxyz quaternions. |
embodichain.lab.visualization.runtime#
Bounded command queue that coalesces high-rate drag updates. |
|
Bounded queue that keeps only the newest value for each joint control. |
|
A one-slot queue where producers replace an unconsumed old frame. |
|
Current visualization runtime health and connection state. |
|
Snapshot of scene and camera-image capture/upload telemetry. |
|
Run scene capture and a visualization backend without blocking simulation. |
embodichain.lab.visualization.scene_exporter#
Captured RGB images and the time spent rendering and copying them. |
|
A captured frame and the time spent copying scene data. |
|
Capture backend-neutral scene data from a |
|
|
Compute a stable content identifier for local mesh geometry and color. |
|
Encode an arbitrary identifier as one stable Viser path component. |
embodichain.learning.rl.algo.apg#
embodichain.learning.rl.algo.base#
Base class for RL algorithms. |
|
Rollout semantics required by an algorithm. |
embodichain.learning.rl.algo.common#
|
Compute GAE over a rollout stored as [num_envs, time + 1]. |
embodichain.learning.rl.algo.grpo#
embodichain.learning.rl.algo.ppo#
embodichain.learning.rl.collector.base#
Base class for rollout collectors. |
embodichain.learning.rl.collector.differentiable#
Collect graph-preserving rollouts without a preallocated buffer. |
|
An immutable sequence of graph-preserving transitions. |
|
One graph-preserving environment transition. |
embodichain.learning.rl.collector.sync_collector#
Synchronously collect rollouts from a vectorized environment. |
embodichain.learning.rl.experimental.newton#
|
Batched differentiable two-link reach environment using Newton FK. |
|
Configuration for the temporary two-link Newton reach environment. |
embodichain.learning.rl.experimental.newton.planar_reach#
|
Batched differentiable two-link reach environment using Newton FK. |
|
Configuration for the temporary two-link Newton reach environment. |
embodichain.learning.rl.experimental.newton.train_planar_reach#
|
Configuration for random-target Newton APG training. |
|
Train on random reaches and evaluate on held-out samples. |
embodichain.learning.rl.models.actor_critic#
Actor-Critic with learnable log_std for Gaussian policy. |
embodichain.learning.rl.models.actor_only#
Actor-only policy for algorithms that do not use a value function (e.g., GRPO). |
embodichain.learning.rl.models.policy#
Abstract base class that all RL policies must implement. |
embodichain.learning.rl.utils.optimizer#
|
Fill |
|
Build a scheduler, or |
|
|
|
|
|
|
|
|
|
|
|
embodichain.toolkits.acd#
|
embodichain.toolkits.acd.cli#
|
Generate convex collision meshes and an updated URDF. |
embodichain.toolkits.acd.urdf_modifider#
|
embodichain.toolkits.graspkit.pg_grasp.antipodal_sampler#
Configuration for AntipodalSampler. |
|
AntipodalSampler samples antipodal point pairs on a given mesh. |
embodichain.toolkits.graspkit.pg_grasp.collision_checker#
Configuration for ConvexCollisionChecker. |
|
ConvexCollisionChecker performs efficient collision checking between a batch of query point clouds and a convex decomposition of a mesh. |
embodichain.toolkits.graspkit.pg_grasp.gripper_collision_checker#
Configuration for the GripperCollisionChecker. |
|
|
Generate grid-sampled points on the surface of an axis-aligned box. |
embodichain.toolkits.graspkit.scripts.annotate_grasp#
|
Command-line interface for grasp pose annotation. |
embodichain.toolkits.urdf_assembly.component#
|
Registry for storing and retrieving URDFComponent objects. |
|
Represents a URDF component with its configuration and transformation. |
|
Responsible for loading, renaming, and processing meshes for a single component. |
embodichain.toolkits.urdf_assembly.connection#
|
Responsible for managing connection rules between components and sensor attachments. |
embodichain.toolkits.urdf_assembly.file_writer#
|
Responsible for formatting XML and writing URDF files with proper headers. |
embodichain.toolkits.urdf_assembly.logging_utils#
|
URDF Assembly module-specific logger manager |
embodichain.toolkits.urdf_assembly.mesh#
|
Responsible for copying, renaming, and handling dependencies of mesh files. |
embodichain.toolkits.urdf_assembly.sensor#
|
Registry for storing and retrieving SensorAttachment objects. |
|
Represents a sensor attachment configuration to a robot component. |
|
Responsible for loading, processing, and managing sensor attachments. |
embodichain.toolkits.urdf_assembly.signature#
|
Simple MD5-based signature manager for URDF assemblies without persistent cache. |
embodichain.toolkits.urdf_assembly.urdf_assembly_manager#
A class to manage the assembly of URDF files and their components. |
embodichain_tasks.classic_control.cart_pole#
Cart-pole environment registration under the task-first import path.
|
CartPole balancing task for reinforcement learning. |
embodichain_tasks.classic_control.point_mass#
Differentiable lightweight point-mass task and learning-environment registration.
|
Navigate a damped point mass to a goal while avoiding two obstacles. |
embodichain_tasks.configs#
|
Return an installed official-task config path. |
embodichain_tasks.manipulation.push_cube#
|
Push cube task for reinforcement learning. |
embodichain_tasks.manipulation.tableware.blocks_ranking_rgb#
|
Arrange the red and blue blocks around the stationary green block. |
embodichain_tasks.manipulation.tableware.blocks_ranking_size#
|
embodichain_tasks.manipulation.tableware.match_object_container#
|
embodichain_tasks.manipulation.tableware.place_object_drawer#
|
embodichain_tasks.manipulation.tableware.scoop_ice#
|
Scoop-ice expert task restricted to one simulation environment. |
embodichain_tasks.manipulation.tableware.stack_blocks_two#
|
Pick up |
embodichain_tasks.manipulation.tableware.stack_cups#
|
embodichain_tasks.special.simple_task#
|
A demo environment with sinusoidal trajectory |
embodichain_tasks.special.stay_still_save#
|
Robot holds still for 100 steps while a camera records. |
embodichain_tasks.utils.importer#
|
Recursively import all modules below package_name. |