Task Program#

Task Program lets you customize an expert demonstration by describing what objects to pick, where to place them, and in what order. Reuse an existing scene and robot, edit a YAML program, and run it through the normal environment launcher. You do not need to write a motion planner or an integration to start.

Start with Customize your first expert trajectory: run a Franka example, change two moves, check the cube’s resting position, and save one trajectory.

What can I make?#

The official repeated Pick/Place program moves a cube between two targets. Its repeat node chooses A → B → A; each repetition contains a Pick segment and a Place segment. You can change the repetition count, targets, step order, and language descriptions in one local program.yaml. An existing deployment supplies the scene, robot, available calls and execution settings.

The Customize your first expert trajectory uses repeated_pick_place/task.franka.yaml, a single Franka Panda in the Default physics environment, without trajectory expansion. The complete original file is available as a download.

What do I need?#

  • An installed SDK and compatible DexSim/GPU environment: Installation.

  • The selected deployment’s robot assets: Data Assets.

  • A text editor and a directory for your program and outputs.

The tutorial uses an installed package reference for the deployment. A source checkout is only needed for the separate maintainer checks.

Choose a route#

Your goal

Start here

Continue with

Customize a trajectory in an existing task

Customize your first expert trajectory

Common program changes, then Troubleshooting

Learn the language without starting simulation

Authoring a Task Program in Python

Task Program architecture

Bind a new scene, robot or skill

Configure and Run an Embodied Task Program

Scene registry, Robot skill profiles

Understand the compiler and runtime

Task Program architecture

embodichain.lab.task_program

How do I know it worked?#

Command execution completed means the requested motion finished. Measured checks passed means the observed state satisfied the checks you wrote. They are different results: the example’s projected policy updates expected task state after motion, without measuring every grasp or release.

In the Quickstart you add a wait for stability and a position check after each Place. Inspect those results as well as episode completion, and confirm that the saved episode can be read. Passing these checks establishes position and stability for that run; it does not establish every possible physical property. See assurance and acceptance.

What stays with the integration?#

Programs can only name objects and calls supported by their selected integration. Changing an instruction changes the description and language annotation; the structured calls determine the actions. A new object, robot, unregistered call or different motion policy needs integration/deployment work. Follow Configure and Run an Embodied Task Program for those changes.

For later workflows, see Validate, split, and recover expert datasets for recording and consumption, Running Tasks with run-task for expansion and launcher options, and Generative Simulation for scene generation. These are optional follow-ups.

Previous architecture sections#

The implementation reference has moved to Task Program architecture. Existing section links remain available below.

Ownership boundaries

Semantic layer

Program schema

Load and compile

Configure a simulation environment

Runtime lifecycle

Effect assurance is mandatory

Parallel programs

Registered calls

Reference tasks

Recommended change sites

Focused validation

Further reading

Embodied Task Program architecture