Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
embodichain.gen_sim.task_engine
================================

The Task Engine turns instructions and generated-scene evidence into immutable
semantic task graphs. Its execution workflow delegates Semantic Calls to the
canonical Task Program runtime; it does not ground atomic goals or issue robot
commands itself.

Public facade
-------------

.. automodule:: embodichain.gen_sim.task_engine
:members:
:imported-members:
:no-index:

Interpretation and planning contracts
-------------------------------------

.. automodule:: embodichain.gen_sim.task_engine.agent
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.cli
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.config
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.contracts
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.interpretation
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.ontology
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.state_machine
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.workflow_contracts
:members:
:no-index:

Scene orchestration
-------------------

These modules preserve canonical scene identity while separating generated
authoring data, conservative planning evidence, and live simulator bindings.

.. automodule:: embodichain.gen_sim.task_engine.orchestration
:members:
:imported-members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.artifacts
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.contracts
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.coordinator
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.legacy_scene
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.scene_adapter
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.orchestration.scene_source
:members:
:no-index:

Scene analysis and inspection
-----------------------------

.. automodule:: embodichain.gen_sim.task_engine.scene
:members:
:imported-members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene.conservative_graph
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene.contracts
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene.feasibility
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene.final_inspection
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene.scene_engine_v1
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.scene_backend
:members:
:no-index:

Execution workflow
------------------

The workflow owns run directories, bounded orchestration attempts, and
tensor-free reports. Physical execution remains behind the configured Task
Program subprocess boundary.

.. automodule:: embodichain.gen_sim.task_engine.run_directory
:members:
:no-index:

.. automodule:: embodichain.gen_sim.task_engine.workflow
:members:
:no-index:
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ embodichain.lab.task_program.compiler

CompiledArticulationJointPositionValidator
CompiledBarrier
CompiledObjectNearRelativeTargetValidator
CompiledObjectNearTargetValidator
CompiledParallelBlock
CompiledParallelBranch
Expand All @@ -26,4 +27,3 @@ embodichain.lab.task_program.compiler
CompiledTaskProgramValidator
TaskProgramCompileError
TaskProgramCompiler

Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ embodichain.lab.task_program
BarrierCfg
WaitStablePostCfg
ObjectNearTargetValidatorCfg
ObjectNearRelativeTargetValidatorCfg
ArticulationJointPositionValidatorCfg
TaskProgramCompiler
CompiledTaskProgram
Expand Down Expand Up @@ -98,6 +99,9 @@ Schema
.. autoclass:: ObjectNearTargetValidatorCfg
:members:

.. autoclass:: ObjectNearRelativeTargetValidatorCfg
:members:

.. autoclass:: ArticulationJointPositionValidatorCfg
:members:

Expand Down
1 change: 1 addition & 0 deletions docs/source/api_reference/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -79,4 +79,5 @@ documentation. CI runs this same checker after style checks and before tests.
.. toctree::
:maxdepth: 1

embodichain/embodichain.gen_sim.task_engine
public_api
130 changes: 130 additions & 0 deletions docs/source/api_reference/public_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,125 @@ embodichain.gen_sim.gradio_ui.gradio_app

main

embodichain.gen_sim.task_engine.orchestration.grounding
--------------------------------------------------------

Task-conditioned grounding selects canonical scene UIDs from a redacted
semantic inventory. It does not construct physical goals or action
invocations.

.. currentmodule:: embodichain.gen_sim.task_engine.orchestration.grounding

.. autosummary::

GroundingCaller
GroundingResult
ground_scene_references

embodichain.gen_sim.task_engine.orchestration.scene_assets
-----------------------------------------------------------

Generated GLB assets are normalized into renderer-safe runtime geometry while
the source files and their provenance remain unchanged.

.. currentmodule:: embodichain.gen_sim.task_engine.orchestration.scene_assets

.. autosummary::

normalize_scene_assets

embodichain.gen_sim.task_engine.orchestration.scene_inventory
--------------------------------------------------------------

The structural inventory preserves source semantics and validates only
explicit task/scene compatibility. It deliberately avoids language matching
and physical goal grounding.

.. currentmodule:: embodichain.gen_sim.task_engine.orchestration.scene_inventory

.. autosummary::

SceneEntity
SceneInventory
validate_source_compatibility
validate_target_compatibility

embodichain.gen_sim.task_engine.orchestration.source_scene
-----------------------------------------------------------

Source-scene utilities resolve supported exports and normalize their stable
identities, paths, transforms, and conservative physics metadata for Task
Engine planning and simulator loading.

.. currentmodule:: embodichain.gen_sim.task_engine.orchestration.source_scene

.. autosummary::

PreparedScene
ResolvedSceneSource
is_prompt2scene_export
prepare_scene
resolve_gym_config_path
resolve_source_scene

embodichain.gen_sim.task_engine.reporting
------------------------------------------

Tensor-free Task Engine reports retain the canonical Task Program runtime
result and its per-environment semantic outcomes without reconstructing
physical execution state.

.. currentmodule:: embodichain.gen_sim.task_engine.reporting

.. autosummary::

EXECUTION_REPORT_FILENAME
TASK_PROGRAM_EXECUTION_REPORT_SCHEMA
TaskProgramExecutionReport
validate_execution_report
write_execution_report

embodichain.gen_sim.task_engine.semantic_graph
-----------------------------------------------

Semantic task graphs are immutable, JSON-safe planning artifacts whose nodes
contain canonical Semantic Calls and exclude grounded action data.

.. currentmodule:: embodichain.gen_sim.task_engine.semantic_graph

.. autosummary::

SEMANTIC_TASK_GRAPH_SCHEMA
SemanticTaskGraph
semantic_task_graph_hash
validate_semantic_task_graph

embodichain.gen_sim.task_engine.semantic_planner
-------------------------------------------------

The semantic planner lowers validated Task Engine candidates and canonical
scene bindings into provider-free semantic task graphs.

.. currentmodule:: embodichain.gen_sim.task_engine.semantic_planner

.. autosummary::

SemanticTaskPlanner
UnsupportedSemanticCapabilityError

embodichain.gen_sim.task_engine.task_program_bundle
----------------------------------------------------

Bundle generation materializes and preflights a fingerprint-bound configured
Task Program deployment from a semantic task graph and prepared scene.

.. currentmodule:: embodichain.gen_sim.task_engine.task_program_bundle

.. autosummary::

TaskProgramBundlePaths
generate_task_program_bundle

embodichain.gen_sim.scene_engine.core.scene_edit_plan
-----------------------------------------------------

Expand Down Expand Up @@ -619,6 +738,7 @@ embodichain.lab.sim.atomic_actions.control
GRASP_COMMAND
JointPositionCommand
OPEN_COMMAND
PARK_COMMAND

embodichain.lab.sim.atomic_actions.core
---------------------------------------
Expand Down Expand Up @@ -1296,6 +1416,16 @@ embodichain.lab.sim.solvers.null_space_posture_task

NullSpacePostureTask

embodichain.lab.sim.solvers.pytorch_solver
------------------------------------------

.. currentmodule:: embodichain.lab.sim.solvers.pytorch_solver

.. autosummary::

PytorchSolverCfg
PytorchSolver

embodichain.lab.sim.solvers.pink_solver
---------------------------------------

Expand Down
15 changes: 10 additions & 5 deletions docs/source/overview/sim/atomic_actions/builtin_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,10 @@ control-part adapter resolves current joint-backed endpoints through
`Robot.control_parts`; custom adapters may instead return mobile, whole-body, or
other runtime targets.

`MoveJoints` is intentionally `agent_visible=False`: it is useful for home,
recovery, calibration, and scripted postures, but is not exposed to an Action
Agent by default.
`MoveJoints` is also the canonical implementation for home, recovery,
calibration, and other embodiment-named postures. Semantic callers should
constrain those uses through a registered call and keep the named target in the
robot profile.

## Shared goal and configuration rules

Expand All @@ -253,7 +254,11 @@ Explicit pose tensors use `(4, 4)` or `(B, 4, 4)`. Waypoint-capable fields in
`EndEffectorPoseGoal` and `PlaceGoal` also accept `(B, N, 4, 4)`.
`SceneEntityPose` resolves to the latest `(B, 4, 4)` pose from each
`SceneSnapshot`, checks optional perception confidence, and registers that
entity as a recovery dependency.
entity as a recovery dependency. `world_displacement` keeps a translation in
the world frame after local composition. `world_orientation` replaces the
tracked entity's rotation before applying `relative_pose`, allowing a target to
track a moving reference position while retaining a grounded world-frame
orientation.

| Skill / field | `SceneEntityPose` accepted | Automatic scene-motion replan |
|---|---:|---:|
Expand Down Expand Up @@ -379,7 +384,7 @@ than an EEF pose.
| Motion | joint planning/interpolation from observed qpos; supports joint waypoints |
| Completion | `JOINT_GOAL_REACHED` |
| Effect | none |
| Agent visibility | hidden by default (`agent_visible=False`) |
| Agent visibility | visible |

`target` accepts an explicit qpos tensor with shape `(control_dof,)`,
`(B, control_dof)`, or `(B, N, control_dof)`, or a non-empty string resolved
Expand Down
Loading