Top-level Fields4
| Field | Type | Required | Default | Description / Constraints |
|---|
name | string | optional | — | Task name |
description | string | optional | — | Task description |
actions | list[ActionConfig] | optional | [] | Action list executed in order; each action may carry an immediate validation goal via goal_config |
goals | list[GoalConfig] | optional | [] | Final goal list evaluated after all actions complete; all must be satisfied for task success |
ActionConfig (actions[*])
Each action is typed by stereotype (e.g. pick, place, move) and instantiated by ActionController.execute_action(). VisualizationConfig is a nested config controlling simulator visualization.
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | Action type (e.g. pick / place / move / grasp) |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | optional | — | Robot instance name that executes this action (matches key in scene.robot_cfg_dict) |
goal_config | GoalConfig | optional | — | Immediate validation goal after this action (optional); failure aborts the task |
visualization_config | VisualizationConfig | optional | — | Visualization toggles (planned path, end-effector pose, target bounding box, etc.); see VisualizationConfig |
wait_robot_stopped | bool | optional | false | Whether to wait for the robot to fully stop before executing |
wait_robot_stopped_timeout | float | optional | 5.0 | Timeout in seconds for waiting for the robot to stop |
extra_parameters | dict | optional | {} | Extra parameters for the specific stereotype, interpreted by the subclass (e.g. object_name, target_name) |
| Field | Type | Required | Default | Description / Constraints |
|---|
enable_ee_pose_visualization | bool | optional | false | Visualize the end-effector pose frame in the simulator |
enable_interact_pose_visualization | bool | optional | false | Visualize the interaction pose |
enable_planner_robot_representation_visualization | bool | optional | false | Visualize the planner's robot collision model representation |
enable_planner_world_representation_visualization | bool | optional | false | Visualize the planner's world collision model representation |
enable_target_bounding_box_visualization | bool | optional | false | Visualize the target object bounding box |
ee_pose_type | enum | optional | coordinate | End-effector pose visualization style ⚠coordinate / axis |
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name (movement reference) |
pose_source | enum | required | inline | Pose source ⚠inline / goal / object |
pose_data | dict | string | required | {} | Pose data; format depends on pose_source |
pose_frame | enum | required | world | Pose reference frame ⚠world / robot_base |
wait_target_stopped_timeout | float | required | 3.0 | Timeout for waiting for target to stop (seconds) ⚠> 0 |
move_with_collision_check | bool | required | true | Whether to enable collision checking during movement |
planner_step_size | int | required | 1 | Planner execution step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "move" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name that executes this action |
goal_config | GoalConfig | optional | — | Immediate validation goal after this action |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to fully stop before executing |
wait_robot_stopped_timeout | float | optional | 3.0 | Timeout for waiting for robot to stop |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | End-effector action timeout (seconds) ⚠> 0 |
ee_type | enum | required | gripper | End-effector type ⚠gripper |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "grasp" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop before executing |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_type | enum | required | gripper | End-effector type ⚠gripper |
release_timeout | float | required | 6.0 | Release timeout (seconds) ⚠> 0 |
wait_ee_open | bool | required | true | Whether to wait for end-effector to fully open |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "release" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_offset_position | list[3] | required | [0, 0, 0.01] | Planner attach offset position [x, y, z] in meters |
planner_attach_offset_rotation | list[4] | required | [1, 0, 0, 0] | Planner attach offset rotation (quaternion) |
post_acquire_ee_position_offset | list[3] | required | [0, 0, 0] | End-effector position offset after acquire |
post_acquire_ee_rotation_offset | list[4] | required | [1, 0, 0, 0] | End-effector rotation offset after acquire |
ee_offset_frame | enum | required | robot_base | Offset reference frame ⚠world / robot_base |
wait_post_acquire_timeout | float | required | 6.0 | Post-acquire wait timeout (seconds) |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | End-effector action timeout |
ee_type | enum | required | gripper | End-effector type |
Inherited fromMoveActionConfig7
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose reference frame |
wait_target_stopped_timeout | float | required | 3.0 | Wait target stopped timeout |
move_with_collision_check | bool | required | true | Enable collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "acquire" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
grasped_target_name | string | optional | — | Grasped target object name |
wait_released_target_stopped | bool | required | false | Whether to wait for released target to stop |
wait_released_target_stopped_timeout | float | required | 6.0 | Wait for released target to stop timeout |
Inherited fromReleaseActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_type | enum | required | gripper | End-effector type |
release_timeout | float | required | 6.0 | Release timeout |
wait_ee_open | bool | required | true | Wait for EE to fully open |
Inherited fromMoveActionConfig7
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose reference frame |
wait_target_stopped_timeout | float | required | 3.0 | Wait target stopped timeout |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "place" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
pick_up_distance | float | required | 0.02 | Pick-up distance (meters) ⚠>= 0 |
pick_up_timeout | float | required | 6.0 | Pick-up timeout (seconds) |
Inherited fromAcquireActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_offset_position | list[3] | required | [0, 0, 0.01] | Planner attach offset position |
planner_attach_offset_rotation | list[4] | required | [1, 0, 0, 0] | Planner attach offset rotation |
post_acquire_ee_position_offset | list[3] | required | [0, 0, 0] | Post-acquire EE position offset |
post_acquire_ee_rotation_offset | list[4] | required | [1, 0, 0, 0] | Post-acquire EE rotation offset |
ee_offset_frame | enum | required | robot_base | Offset reference frame |
wait_post_acquire_timeout | float | required | 6.0 | Post-acquire timeout |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | EE action timeout |
ee_type | enum | required | gripper | EE type |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose reference frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pick" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
push_distance | float | required | 0.02 | Push distance (meters) ⚠>= 0 |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | EE action timeout |
ee_type | enum | required | gripper | EE type |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose reference frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "push" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
pull_distance | float | required | 0.02 | Pull distance (meters) ⚠>= 0 |
Inherited fromAcquireActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_offset_position | list[3] | required | [0, 0, 0.01] | Planner attach offset position |
planner_attach_offset_rotation | list[4] | required | [1, 0, 0, 0] | Planner attach offset rotation |
post_acquire_ee_position_offset | list[3] | required | [0, 0, 0] | Post-acquire EE position offset |
post_acquire_ee_rotation_offset | list[4] | required | [1, 0, 0, 0] | Post-acquire EE rotation offset |
ee_offset_frame | enum | required | robot_base | Offset reference frame |
wait_post_acquire_timeout | float | required | 6.0 | Post-acquire timeout |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | EE action timeout |
ee_type | enum | required | gripper | EE type |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose reference frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig9
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pull" |
name | string | optional | — | Action name |
description | string | optional | — | Action description |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
wait_robot_stopped_timeout | float | optional | 3.0 | Wait-for-stop timeout |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
twist_angle | float | required | 0 | Twist angle (radians) |
Inherited fromAcquireActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_offset_position | list[3] | required | [0, 0, 0.01] | Planner attach offset position |
planner_attach_offset_rotation | list[4] | required | [1, 0, 0, 0] | Planner attach offset rotation |
post_acquire_ee_position_offset | list[3] | required | [0, 0, 0] | Post-acquire EE offset |
post_acquire_ee_rotation_offset | list[4] | required | [1, 0, 0, 0] | Post-acquire EE rotation offset |
ee_offset_frame | enum | required | robot_base | Offset reference frame |
wait_post_acquire_timeout | float | required | 6.0 | Post-acquire timeout |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | EE timeout |
ee_type | enum | required | gripper | EE type |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig7
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "twist" |
name | string | optional | — | Action name |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
click_distance | float | required | 0.02 | Click distance (meters) |
Inherited fromPushActionConfig1
| Field | Type | Required | Default | Description / Constraints |
|---|
push_distance | float | required | 0.02 | Push distance |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_timeout | float | required | 6.0 | EE timeout |
ee_type | enum | required | gripper | EE type |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig7
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "click" |
name | string | optional | — | Action name |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
extra_parameters | dict | optional | {} | Extra parameters |
Inherited fromPlaceActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
grasped_target_name | string | optional | — | Grasped target name |
wait_released_target_stopped | bool | required | false | Wait for released target to stop |
wait_released_target_stopped_timeout | float | required | 6.0 | Wait-for-released-target timeout |
Inherited fromReleaseActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
ee_type | enum | required | gripper | EE type |
release_timeout | float | required | 6.0 | Release timeout |
wait_ee_open | bool | required | true | Wait for EE open |
Inherited fromMoveActionConfig6
| Field | Type | Required | Default | Description / Constraints |
|---|
target_name | string | optional | — | Target object name |
pose_source | enum | required | inline | Pose source |
pose_data | dict | string | required | {} | Pose data |
pose_frame | enum | required | world | Pose frame |
move_with_collision_check | bool | required | true | Collision checking |
planner_step_size | int | required | 1 | Planner step size |
Inherited fromActionConfig7
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "insert" |
name | string | optional | — | Action name |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Validation goal |
visualization_config | VisualizationConfig | optional | — | Visualization toggles |
wait_robot_stopped | bool | optional | false | Wait for robot to stop |
extra_parameters | dict | optional | {} | Extra parameters |
GoalConfig (goals[*] or goal_config)
Goal conditions are typed by stereotype (e.g. pose, on_top, inside, grasp_success) and evaluated via is_satisfied().
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | Goal type (e.g. pose / on_top / inside / grasp_success) |
name | string | optional | — | Goal name |
description | string | optional | — | Goal description |
extra_parameters | dict | optional | {} | Extra params specific to this stereotype (e.g. object_name, target_name, tolerance) |
| Field | Type | Required | Default | Description / Constraints |
|---|
position_tolerance | float | optional | — | Position tolerance (meters); null skips position check ⚠>= 0 |
rotation_tolerance | float | optional | — | Rotation tolerance (radians); null skips rotation check ⚠>= 0 |
position_offset | list[3] | optional | [0, 0, 0] | Position offset [x, y, z] |
rotation_offset | list[4] | optional | [1, 0, 0, 0] | Rotation offset (quaternion) |
pose_A_source | enum | required | ee | Pose A source ⚠ee / spawnable |
pose_A_params | dict | required | {} | Pose A parameters |
pose_B_source | enum | required | spawnable | Pose B source ⚠ee / spawnable |
pose_B_params | dict | required | {} | Pose B parameters |
Inherited fromGoalConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pose" |
name | string | optional | — | Goal name |
description | string | optional | — | Goal description |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
object_A_name | string | required | — | Object A name (should be on top) |
object_B_name | string | required | — | Object B (target/container) name |
max_horizontal_offset | float | optional | 0.01 | Max horizontal offset (meters) |
max_vertical_offset | float | optional | 0.02 | Max vertical offset (meters) |
Inherited fromGoalConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "on_top" |
name | string | optional | — | Goal name |
description | string | optional | — | Goal description |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
object_A_name | string | required | — | Object A name (should be inside) |
object_B_name | string | required | — | Container object name |
max_offset | float | optional | 0.0 | Max offset (meters) |
Inherited fromGoalConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "inside" |
name | string | optional | — | Goal name |
description | string | optional | — | Goal description |
extra_parameters | dict | optional | {} | Extra parameters |
Example
task:
name: pick_and_place
description: Pick the red cube and place it on the tray
actions:
- stereotype: pick
name: pick_cube
robot_name: arm
wait_robot_stopped: true
wait_robot_stopped_timeout: 5.0
extra_parameters:
object_name: cube
goal_config:
stereotype: grasp_success
name: grasp_check
extra_parameters: {}
visualization_config:
enable_ee_pose_visualization: false
enable_target_bounding_box_visualization: true
ee_pose_type: coordinate
- stereotype: place
name: place_cube_on_tray
robot_name: arm
extra_parameters:
target_name: tray
goals:
- stereotype: on_top
name: cube_on_tray
extra_parameters:
object_name: cube
target_name: tray
tolerance: 0.02