embodichain.lab.task_program.integrations.simulation#
Simulation bindings and factories for Task Program integrations.
These immutable declarations bind canonical Task Program scene and robot contracts to explicitly selected simulation entities and control parts.
Build one antipodal grasp affordance from a selected rigid-object mesh. |
|
Declare one exact object target frame inside a container parent. |
|
Named one-dimensional joint commands for one exact control part. |
|
Profile endpoint backed by one explicit robot control part. |
|
Joint-backed robot resource containing control-part endpoints. |
|
Build a root-frame grasp mesh from one rigidized articulation link. |
|
Explicit binding for one simulation articulation. |
|
Explicit canonical link backed by one native articulation link. |
|
Bind one locked, floating articulation as a semantic object. |
|
Explicit binding for one simulation rigid object. |
|
Build a profile from typed resources with strict native validation. |
|
Build one authoritative registry from explicit simulation bindings. |
|
Declare one exact object target frame on a support parent. |
Classes:
Build one antipodal grasp affordance from a selected rigid-object mesh. |
|
Declare one exact object target frame inside a container parent. |
|
Named one-dimensional joint commands for one exact control part. |
|
Profile endpoint backed by one explicit robot control part. |
|
Joint-backed robot resource containing control-part endpoints. |
|
Build a root-frame grasp mesh from one rigidized articulation link. |
|
Explicit binding for one simulation articulation. |
|
Explicit canonical link backed by one native articulation link. |
|
Explicit binding for one simulation rigid object. |
|
Bind one locked, floating articulation as a semantic object. |
|
Build a profile from typed resources with strict native validation. |
|
Build one authoritative registry from explicit simulation bindings. |
|
Declare one exact object target frame on a support parent. |
- class embodichain.lab.task_program.integrations.simulation.AntipodalGraspAffordanceBinding[source]#
Build one antipodal grasp affordance from a selected rigid-object mesh.
internal_axisupgrades the payload toAxisAlignAffordancewhile preserving the same antipodal grasp capability. The axis is expressed in the rigid object’s local frame and can be reused by held-object skills such asPour.Methods:
__init__(entity_id, object_id, native_name, ...)Attributes:
- __init__(entity_id, object_id, native_name, revision, aliases=(), relative_pose=(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0), mesh_env_id=0, internal_axis=None)#
-
aliases:
tuple[str,...]#
-
entity_id:
str#
-
internal_axis:
tuple[float,float,float] |None#
-
mesh_env_id:
int#
-
native_name:
str#
-
object_id:
str#
-
relative_pose:
tuple[float,...]#
-
revision:
str#
- class embodichain.lab.task_program.integrations.simulation.ContainerAffordanceBinding[source]#
Declare one exact object target frame inside a container parent.
- Parameters:
entity_id (
str) – Canonical ID of the placement affordance.parent_id (
str) – Canonical object, articulation, or link parent ID.native_name (
str) – Stable native name of this target frame.aliases (
tuple[str,...]) – Optional non-authoritative lookup aliases.object_target_pose (
tuple[float,...]) – Desired object pose relative to the parent.object_target_frame (
str) –parentcomposes the parent transform;world_axesuses its position with world-oriented target axes.minimum_confidence (
float) – Minimum parent/affordance observation confidence.is_default (
bool) – Whether this is the parent’s defaultPlace(inside=...)frame.
Methods:
__init__(entity_id, parent_id, native_name)Attributes:
- __init__(entity_id, parent_id, native_name, aliases=(), object_target_pose=(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0), minimum_confidence=0.0, is_default=False, object_target_frame='parent')#
-
aliases:
tuple[str,...]#
-
entity_id:
str#
-
is_default:
bool#
-
minimum_confidence:
float#
-
native_name:
str#
-
object_target_frame:
str#
-
object_target_pose:
tuple[float,...]#
-
parent_id:
str#
- class embodichain.lab.task_program.integrations.simulation.ControlPartCommandPreset[source]#
Named one-dimensional joint commands for one exact control part.
Methods:
__init__(preset_id, control_part, commands)build(*, control_dof)Build a command profile after validating the native control width.
declare()Build a provider-free command profile from declared tuple widths.
Attributes:
- __init__(preset_id, control_part, commands)#
- build(*, control_dof)[source]#
Build a command profile after validating the native control width.
- Return type:
-
commands:
Mapping[str,tuple[float,...]]#
-
control_part:
str#
-
preset_id:
str#
- class embodichain.lab.task_program.integrations.simulation.ControlPartEndpointBinding[source]#
Profile endpoint backed by one explicit robot control part.
Methods:
__init__(endpoint_id, control_part, capabilities)build(robot)Build a joint-backed endpoint after native control-part validation.
declare()Return the endpoint contract without reading a robot.
Attributes:
- __init__(endpoint_id, control_part, capabilities, command_preset=None)#
- build(robot)[source]#
Build a joint-backed endpoint after native control-part validation.
- Return type:
-
capabilities:
frozenset[str]#
-
command_preset:
str|None#
-
control_part:
str#
-
endpoint_id:
str#
- class embodichain.lab.task_program.integrations.simulation.ControlPartResourceBinding[source]#
Joint-backed robot resource containing control-part endpoints.
Methods:
__init__(resource_id[, endpoints, members])build(robot)Build a resource containing strictly validated control-part endpoints.
declare()Return the resource graph without reading native control parts.
Attributes:
- __init__(resource_id, endpoints=(), members=())#
- build(robot)[source]#
Build a resource containing strictly validated control-part endpoints.
- Return type:
-
endpoints:
tuple[ControlPartEndpointBinding,...]#
-
members:
tuple[str,...]#
-
resource_id:
str#
- class embodichain.lab.task_program.integrations.simulation.RigidizedArticulationAntipodalGraspBinding[source]#
Build a root-frame grasp mesh from one rigidized articulation link.
- Parameters:
entity_id (
str) – Canonical affordance ID.object_id (
str) – Parent rigidized-articulation object ID.grasp_link (
str) – Native link supplying the grasp mesh.native_name (
str) – Stable native name for the affordance.revision (
str) – Affordance payload revision.aliases (
tuple[str,...]) – Optional non-authoritative lookup aliases.relative_pose (
tuple[float,...]) – Flattened affordance-to-object SE(3) transform.
Methods:
__init__(entity_id, object_id, grasp_link, ...)Attributes:
- __init__(entity_id, object_id, grasp_link, native_name, revision, aliases=(), relative_pose=(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0))#
-
aliases:
tuple[str,...]#
-
entity_id:
str#
-
grasp_link:
str#
-
native_name:
str#
-
object_id:
str#
-
relative_pose:
tuple[float,...]#
-
revision:
str#
- class embodichain.lab.task_program.integrations.simulation.SimulationArticulationBinding[source]#
Explicit binding for one simulation articulation.
Methods:
__init__(entity_id, simulation_uid[, ...])Attributes:
- __init__(entity_id, simulation_uid, aliases=(), dynamics=SceneDynamics.UNKNOWN, collision_role=SceneCollisionRole.NONE, semantic_type=None, geometry_provider=None)#
-
aliases:
tuple[str,...]#
-
collision_role:
SceneCollisionRole#
-
dynamics:
SceneDynamics#
-
entity_id:
str#
-
geometry_provider:
SceneGeometryProvider|None#
-
semantic_type:
str|None#
-
simulation_uid:
str#
- class embodichain.lab.task_program.integrations.simulation.SimulationArticulationLinkBinding[source]#
Explicit canonical link backed by one native articulation link.
Methods:
__init__(entity_id, articulation_id, ...[, ...])Attributes:
- __init__(entity_id, articulation_id, native_link_name, aliases=(), dynamics=SceneDynamics.UNKNOWN, semantic_type=None)#
-
aliases:
tuple[str,...]#
-
articulation_id:
str#
-
dynamics:
SceneDynamics#
-
entity_id:
str#
-
native_link_name:
str#
-
semantic_type:
str|None#
- class embodichain.lab.task_program.integrations.simulation.SimulationRigidObjectBinding[source]#
Explicit binding for one simulation rigid object.
Methods:
__init__(entity_id, simulation_uid[, ...])Attributes:
- __init__(entity_id, simulation_uid, aliases=(), dynamics=SceneDynamics.UNKNOWN, collision_role=SceneCollisionRole.NONE, semantic_type=None, default_grasp_affordance=None, geometry_provider=None)#
-
aliases:
tuple[str,...]#
-
collision_role:
SceneCollisionRole#
-
default_grasp_affordance:
str|None#
-
dynamics:
SceneDynamics#
-
entity_id:
str#
-
geometry_provider:
SceneGeometryProvider|None#
-
semantic_type:
str|None#
-
simulation_uid:
str#
- class embodichain.lab.task_program.integrations.simulation.SimulationRigidizedArticulationObjectBinding[source]#
Bind one locked, floating articulation as a semantic object.
- Parameters:
entity_id (
str) – Canonical scene object ID.simulation_uid (
str) – Explicit native articulation UID.locked_qpos (
Mapping[str,float]) – Exact locked position for every native joint.aliases (
tuple[str,...]) – Optional non-authoritative lookup aliases.dynamics (
SceneDynamics) – Semantic dynamics classification.collision_role (
SceneCollisionRole) – Collision-world participation role.semantic_type (
str|None) – Optional semantic object classification.default_grasp_affordance (
str|None) – Optional default grasp affordance ID.geometry_provider (
SceneGeometryProvider|None) – Optional planner-facing collision geometry provider.joint_position_tolerance (
float) – Positive joint-state tolerance no greater than1e-3. Configured limit coincidence uses a separate fixed epsilon.link_transform_tolerance (
float) – Positive cross-arena transform tolerance no greater than1e-5.
Attention
Live configured assembly accepts only floating roots whose native joint limits are finite and coincident at every declared lock position. The coincidence proof uses a fixed safety epsilon and cannot be weakened by an authoring tolerance.
Methods:
__init__(entity_id, simulation_uid, locked_qpos)Attributes:
- __init__(entity_id, simulation_uid, locked_qpos, aliases=(), dynamics=SceneDynamics.UNKNOWN, collision_role=SceneCollisionRole.NONE, semantic_type=None, default_grasp_affordance=None, geometry_provider=None, joint_position_tolerance=0.001, link_transform_tolerance=1e-05)#
-
aliases:
tuple[str,...]#
-
collision_role:
SceneCollisionRole#
-
default_grasp_affordance:
str|None#
-
dynamics:
SceneDynamics#
-
entity_id:
str#
-
geometry_provider:
SceneGeometryProvider|None#
-
joint_position_tolerance:
float#
-
link_transform_tolerance:
float#
-
locked_qpos:
Mapping[str,float]#
-
semantic_type:
str|None#
-
simulation_uid:
str#
- class embodichain.lab.task_program.integrations.simulation.SimulationRobotSkillProfileBinding[source]#
Build a profile from typed resources with strict native validation.
Methods:
__init__(profile_id, resources[, ...])build(robot)Build the existing profile after validating every typed resource.
declare()Project the complete provider-free robot skill profile.
Attributes:
- __init__(profile_id, resources, command_presets=(), defaults=<factory>, presets=(), default_preset=None, skill_presets=<factory>, grounding_providers=<factory>)#
- build(robot)[source]#
Build the existing profile after validating every typed resource.
- Parameters:
robot (
Robot) – Live robot selected by the simulation factory.- Return type:
- Returns:
Reusable, engine-independent robot skill profile.
-
command_presets:
tuple[ControlPartCommandPreset,...]#
-
default_preset:
str|None#
-
defaults:
Mapping[str,Mapping[str,str]]#
-
grounding_providers:
Mapping[str,str]#
-
presets:
tuple[SkillPolicyPreset,...]#
-
profile_id:
str#
-
resources:
tuple[ControlPartResourceBinding|RobotResource,...]#
-
skill_presets:
Mapping[str,str]#
- class embodichain.lab.task_program.integrations.simulation.SimulationSceneBinding[source]#
Build one authoritative registry from explicit simulation bindings.
Methods:
__init__(registry_id[, rigid_objects, ...])build(simulation)Build the existing authoritative scene registry.
declare()Project the complete provider-free scene declaration.
Attributes:
- __init__(registry_id, rigid_objects=(), articulations=(), links=(), antipodal_grasps=(), support_surfaces=(), containers=(), collision_world_mode=None, *, rigidized_articulations=(), rigidized_articulation_grasps=())#
-
antipodal_grasps:
tuple[AntipodalGraspAffordanceBinding,...]#
-
articulations:
tuple[SimulationArticulationBinding,...]#
- build(simulation)[source]#
Build the existing authoritative scene registry.
- Parameters:
simulation (
SimulationManager) – Live simulation used only for explicitly named lookups.- Return type:
- Returns:
Immutable registry with typed roots, links, and affordances.
-
collision_world_mode:
SceneCollisionWorldMode|None#
-
containers:
tuple[ContainerAffordanceBinding,...]#
-
links:
tuple[SimulationArticulationLinkBinding,...]#
-
registry_id:
str#
-
rigid_objects:
tuple[SimulationRigidObjectBinding,...]#
-
rigidized_articulation_grasps:
tuple[RigidizedArticulationAntipodalGraspBinding,...]#
-
rigidized_articulations:
tuple[SimulationRigidizedArticulationObjectBinding,...]#
-
support_surfaces:
tuple[SupportSurfaceAffordanceBinding,...]#
- class embodichain.lab.task_program.integrations.simulation.SupportSurfaceAffordanceBinding[source]#
Declare one exact object target frame on a support parent.
- Parameters:
entity_id (
str) – Canonical ID of the placement affordance.parent_id (
str) – Canonical object, articulation, or link parent ID.native_name (
str) – Stable native name of this target frame.aliases (
tuple[str,...]) – Optional non-authoritative lookup aliases.object_target_pose (
tuple[float,...]) – Desired object pose relative to the parent.object_target_frame (
str) –parentcomposes the complete parent transform;world_axesadds its translation to the parent position while keeping the declared orientation and offset in world axes.minimum_confidence (
float) – Minimum parent/affordance observation confidence.is_default (
bool) – Whether this is the parent’s defaultPlace(on=...)frame.
Methods:
__init__(entity_id, parent_id, native_name)Attributes:
- __init__(entity_id, parent_id, native_name, aliases=(), object_target_pose=(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0), minimum_confidence=0.0, is_default=False, object_target_frame='parent')#
-
aliases:
tuple[str,...]#
-
entity_id:
str#
-
is_default:
bool#
-
minimum_confidence:
float#
-
native_name:
str#
-
object_target_frame:
str#
-
object_target_pose:
tuple[float,...]#
-
parent_id:
str#
Scene preparation and workspace#
Scene proposal contracts remain in lab.sim.scene.expansion. These adapters
connect them to the current robot and the Gym reset lifecycle: