Your first task
New tasks usually begin with the YAML template and a small Python entry point.
cp script/templates/task_config_template.yaml script/my_task.yaml
cp script/templates/task_my_task.py script/my_task.py
Fill in the robot URDF/SRDF, object models, grippers, handles, joint bounds, and valid grasp pairs. The task lifecycle then follows a stable contract:
- load robots and objects into a shared scene;
- create placement, pre-grasp, and motion constraints;
- build the manipulation graph;
- construct the measured initial configuration;
- generate targets and plan the sequence.
task = MyTask.from_yaml("script/my_task.yaml")
task.setup()
result = task.run()
Use the bimanual script/twin/task_lift_ball.py example as the smallest real reference. The standalone usage guide covers backend selection, interactive sequence building, replay, and checkpoints.