Top-level Fields5
| 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 |
retry_config | RetryConfig | optional | null | Global retry config applied to all actions; individual actions can override with their own retry_config |
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 | 3.0 | Timeout in seconds for waiting for the robot to stop |
save_snapshot | bool | optional | false | Whether to save a scene snapshot before execution (for debugging/rollback) |
snapshot_dir | string | optional | — | Directory for snapshot files |
retry_config | RetryConfig | optional | null | Per-action retry config (overrides task-level); see RetryConfig |
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 |
|---|
rules | list[RetryRule] | optional | [] | List of retry rules evaluated top-to-bottom; first match wins. Empty = no retry |
| Field | Type | Required | Default | Description / Constraints |
|---|
condition | enum | optional | all | Failure type that triggers this rule ⚠all / goal_not_satisfied / execution_failed |
reason_pattern | string | optional | null | Substring match against failure message (e.g. distinguish IK_FAIL vs COLLISION); null = match any |
retry_times | int | required | 0 | Max retry count for this rule ⚠>= 0 |
retry_from | string | optional | null | Action name to jump back to; null = retry self |
rollback_state | bool | optional | false | Whether to restore snapshot taken before the retry target action |
| Field | Type | Required | Default | Description / Constraints |
|---|
simulator | enum | optional | isaaclab | Simulator used for visualization ⚠isaaclab / mujoco / pybullet |
ee_pose_type | enum | optional | coordinate | End-effector pose visualization style ⚠coordinate / axis |
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 oriented bounding box (OBB) |
enable_ee_trajectory_visualization | bool | optional | false | Visualize the planned EE trajectory computed via FK |
interact_pose_sample_num | int | null | optional | null | Randomly sample N interact poses for visualization; null = show all |
| Field | Type | Required | Default | Description / Constraints |
|---|
name | string | optional | — | Target object name (movement reference) |
link | string | optional | — | Link/part name on articulated target objects (e.g. door handle) |
is_rigid | bool | optional | true | Whether target is a rigid body (true → default scale 0.001, false → 1.0) |
wait_stopped_timeout | float | optional | 3.0 | Timeout for waiting for target to stop (seconds) |
| Field | Type | Required | Default | Description / Constraints |
|---|
source | enum | required | inline | Pose source ⚠inline / local / remote |
data | dict | string | required | {} | Pose data (dict for inline) or file path (string for local/remote) |
frame | enum | required | world | Pose reference frame ⚠world / robot_base / target |
ee_convention | string | list[4] | optional | z | EE forward axis convention in the pose dataset. String for gripper axis (z / -x / etc.), quaternion [w,x,y,z] for dexterous hand |
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | optional | null | Arm module name for ModularRobot; null uses the default ee_link_name |
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
|---|
target_position | list[2] | required | — | Target position [x, y] on ground plane |
target_orientation | float | optional | 0.0 | Target yaw angle in radians |
timeout | float | optional | 60.0 | Navigation timeout in seconds |
pos_tolerance | float | optional | 0.05 | Position tolerance in meters |
angle_tolerance | float | optional | 0.1 | Angle tolerance in radians |
Inherited fromActionConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "navigate" |
name | string | optional | — | Action name |
robot_name | string | required | — | Robot instance name |
goal_config | GoalConfig | optional | — | Immediate validation goal |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | required | — | Arm module name (matches key in modules.arms) |
ee_timeout | float | required | 6.0 | End-effector action timeout (seconds) ⚠> 0 |
stuck_window_sec | float | required | 0.3 | Time window (seconds) over which EE joints must stay within stuck_threshold to count as stopped |
stuck_threshold | float | required | 0.0035 | Max per-joint position range within stuck_window_sec to count as stopped. Unit: m for prismatic, rad for revolute |
min_travel | float | required | 0.005 | Required |joint_pos - initial| before stuck detection activates (avoids tripping before EE starts moving) |
empty_grasp_threshold | float | required | 0 | After stuck detection, if EE is within this threshold of close position, treat as empty grasp (fail). Default 0 = disabled |
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 |
|---|
arm_name | string | required | — | Arm module name (matches key in modules.arms) |
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 |
position_threshold | float | optional | 0.02 | Position threshold below which the EE is considered fully open |
force_open_ee | bool | optional | false | Force send open command even if EE is already 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 |
|---|
partial_open_ratio | float | required | 0.4 | Pre-release opening ratio (0=closed, 1=fully open) ⚠[0, 1] |
partial_open_timeout | float | optional | 6.0 | Timeout to reach partial opening (seconds) ⚠> 0 |
partial_open_threshold | float | optional | 0.02 | Position threshold for partial opening ⚠> 0 |
retreat_distance | float | required | 0.05 | Retreat distance along negative current EE local Z (meters) ⚠>= 0 |
Inherited fromReleaseActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | required | — | Arm module name |
release_timeout | float | required | 6.0 | Full release timeout |
force_open_ee | bool | optional | false | Force open EE |
Inherited fromActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "safe_release" |
robot_name | string | required | — | Robot instance name |
| Field | Type | Required | Default | Description / Constraints |
|---|
target_link_name | string | optional | — | Target link name on the object (required for articulated objects) |
planner_link_name | string | optional | attached_object | Planner link name for the attached object |
position_offset | list[3] | optional | [0, 0, 0] | Attachment position offset [x, y, z] in meters |
rotation_offset | list[4] | optional | [1, 0, 0, 0] | Attachment rotation offset (quaternion [w, x, y, z]) |
restore_offset_after_post_acquire | bool | optional | true | Whether to restore offset after post-acquire motion |
enable_physics_attach | bool | optional | false | If True, also create a PhysX FixedJoint between target_link_name and the grasped object so it cannot slip / drop. Detached automatically by ReleaseAction |
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment configuration; see PlannerAttachConfig |
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 ⚠robot_base / ee |
wait_post_acquire_timeout | float | required | 6.0 | Post-acquire wait timeout (seconds) |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | required | — | Arm module name |
ee_timeout | float | required | 6.0 | End-effector action timeout |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
|---|
object_contact | ContactSpec | required | — | Contact spec on the held object |
anchor_contact | ContactSpec | required | — | Contact spec on the anchor (target) object |
sample_count | int | optional | 36 | Free rotation samples per face pair. Total candidates = |object_faces| × |anchor_faces| × sample_count |
| Field | Type | Required | Default | Description / Constraints |
|---|
held_object | HeldObjectConfig | optional | null | Held object config |
alignment | AlignmentConfig | optional | null | Shared contact alignment config; when set, overrides pose and auto-computes placement |
pre_place_distance | float | optional | null | Standoff distance along negative anchor direction before placing; null = move directly |
place_offset | list[3] | optional | [0, 0, 0] | Extra world-frame offset on the computed place position |
grasped_target_name | string | optional | — | Grasped target name (legacy; prefer held_object) |
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 |
|---|
arm_name | string | required | — | Arm module name |
release_timeout | float | required | 6.0 | Release timeout |
wait_ee_open | bool | required | true | Wait for EE to fully open |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration |
pose | MovePoseConfig | required | — | Pose configuration (used when alignment is null) |
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 |
|---|
arm_name | string | required | — | Arm module name |
held_object | HeldObjectConfig | required | — | Held container config (object name required) |
pour_trajectory | PourTrajectoryConfig | required | — | Pour trajectory parameters |
Inherited fromMoveActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration |
pose | MovePoseConfig | required | — | Pose configuration |
move_with_collision_check | bool | required | true | Collision checking |
Inherited fromActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pour" |
robot_name | string | required | — | Robot instance name |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
alignment | AlignmentConfig | required | — | Pour contact alignment (shared AlignmentConfig); defines spout-to-anchor contact spec |
pre_pour_distance | float | optional | 0.15 | Standoff distance above target before pouring; null/0 = skip |
interpolation_steps | int | optional | 50 | SLERP interpolation steps from upright to tilted |
| 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 fromAcquireActionConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config; see PlannerAttachConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
pull_direction | list[3] | optional | [0, 0, -1] | Unit direction vector to pull along |
pull_frame | enum | optional | ee | Reference frame for pull direction ⚠ee / robot_base |
Inherited fromAcquireActionConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config; see PlannerAttachConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
|---|
joint_name | string | required | — | Revolute joint name on the articulated object |
joint_link_name | string | required | — | Link name of the revolute joint (e.g. door_hinge_link) |
pull_angle | float | required | — | Rotation angle magnitude (radians); sign derived from initial_direction ⚠Must not be 0 |
initial_direction | list[3] | optional | [0, -1, 0] | Desired initial pull direction vector |
pull_frame | string | optional | robot_base | Reference frame for direction ⚠robot_base / world / joint |
waypoint_count | int | optional | 10 | Number of interpolated waypoints along the arc |
move_with_collision_check | bool | optional | false | Whether to use motion planner for each waypoint (false = direct IK tracking) |
use_mpc | bool | optional | false | Use realtime MPC to track the whole path (via MotionPlanController.start_realtime_tracking) |
completion_tolerance | float | optional | 0.1 | Joint position error tolerance (rad) for post-action completion check ⚠> 0 |
| Field | Type | Required | Default | Description / Constraints |
|---|
revolute | RevoluteConfig | required | — | Revolute motion parameters; see RevoluteConfig |
Inherited fromAcquireActionConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config; see PlannerAttachConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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_revolute" |
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 |
|---|
joint_name | string | required | — | Revolute joint name on the articulated object |
joint_link_name | string | optional | — | Link name of the joint (falls back to joint_name) |
push_angle | float | required | — | Rotation angle magnitude in radians; must not be 0 |
initial_direction | list[3] | optional | — | Desired initial push direction vector (in push_frame) |
push_frame | string | optional | robot_base | Reference frame for direction ⚠robot_base / world / joint |
waypoint_count | int | optional | 10 | Number of interpolated waypoints along the arc ⚠>= 1 |
move_with_collision_check | bool | optional | false | Whether to use motion planner for each waypoint |
push_position | list[3] | optional | — | Target EE position in joint frame (used when push_frame=joint) |
use_mpc | bool | optional | false | Use MPC for push (declared but currently no-op in PushRevoluteAction implementation) |
| Field | Type | Required | Default | Description / Constraints |
|---|
revolute | PushRevoluteConfig | required | — | Push-revolute motion parameters; see PushRevoluteConfig |
Inherited fromAcquireActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config |
post_acquire_ee_position_offset | list[3] | required | [0, 0, 0] | Post-acquire EE position offset |
ee_offset_frame | enum | required | robot_base | Offset reference frame |
Inherited fromGraspActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | required | — | Arm module name |
ee_timeout | float | required | 6.0 | EE action timeout |
Inherited fromMoveActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration |
pose | MovePoseConfig | required | — | Pose configuration |
move_with_collision_check | bool | required | true | Collision checking |
Inherited fromActionConfig3
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "push_revolute" |
robot_name | string | required | — | Robot instance name |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | optional | — | Arm module name (propagated to pick / place sub-actions) |
pick | PickActionConfig | required | — | Pick sub-action configuration |
place | PlaceActionConfig | required | — | Place sub-action configuration |
Inherited fromActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pick_and_place" |
robot_name | string | required | — | Robot instance name |
| Field | Type | Required | Default | Description / Constraints |
|---|
revolute | RevoluteConfig | required | — | Pull-revolute motion parameters (joint, angle, waypoints) |
push_revolute | PushRevoluteConfig | required | — | Push-revolute motion parameters |
Inherited fromSafeReleaseActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
partial_open_ratio | float | required | 0.4 | Pre-release opening ratio |
retreat_distance | float | required | 0.05 | Retreat distance (meters) |
Inherited fromAcquireActionConfig1
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config |
Inherited fromGraspActionConfig1
| Field | Type | Required | Default | Description / Constraints |
|---|
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig2
Inherited fromActionConfig2
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "pull_and_push_revolute" |
robot_name | string | required | — | Robot instance name |
| Field | Type | Required | Default | Description / Constraints |
|---|
twist_angle | float | required | 0 | Twist angle (radians) |
Inherited fromAcquireActionConfig5
| Field | Type | Required | Default | Description / Constraints |
|---|
planner_attach_config | PlannerAttachConfig | optional | — | Planner attachment config; see PlannerAttachConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
arm_name | string | required | — | Arm module name |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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 |
|---|
arm_name | string | required | — | Arm module name |
release_timeout | float | required | 6.0 | Release timeout |
wait_ee_open | bool | required | true | Wait for EE open |
Inherited fromMoveActionConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
target | MoveTargetConfig | optional | — | Target object configuration; see MoveTargetConfig |
pose | MovePoseConfig | required | — | Pose configuration; see MovePoseConfig |
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: pose / on_top / inside / grasped / articulated_joint_state |
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 = robot end-effector pose (params: robot_name, optional arm_name for ModularRobot; forced to world frame); spawnable = scene entity pose (params: spawnable_name; mobile robots auto-resolved via get_robot_navigation_pose); pose = literal pose built from params type/position/rotation ⚠ee / spawnable / pose |
pose_A_params | dict | required | {} | Pose A lookup parameters, dispatched by source: ee → { robot_name, arm_name? }; spawnable → { spawnable_name }; pose → { type, position, rotation } where type is one of quaternion / rotation_matrix / homogeneous_matrix / euler_xyz / rot6d |
pose_B_source | enum | required | spawnable | Pose B source (values and meanings identical to pose_A_source) ⚠ee / spawnable / pose |
pose_B_params | dict | required | {} | Pose B lookup parameters (dispatched by source, same shape as pose_A_params) |
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 |
| Field | Type | Required | Default | Description / Constraints |
|---|
robot_name | string | required | — | Robot holding the object |
arm_name | string | optional | null | Arm module name (for ModularRobot) |
object_name | string | required | — | Object expected to be grasped |
max_distance | float | optional | 0.08 | Max EE-to-object distance (meters); below this threshold = grasped ⚠> 0 |
Inherited fromGoalConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "grasped" |
name | string | optional | — | Goal name |
description | string | optional | — | Goal description |
extra_parameters | dict | optional | {} | Extra parameters |
| Field | Type | Required | Default | Description / Constraints |
|---|
object_name | string | required | — | Articulated object name |
joint_positions | dict[str, float] | required | {} | Joint name → target position map (must be non-empty). Units are joint-native: rad for revolute, m for prismatic ⚠Non-empty dict; keys must match exact joint names in USD/URDF |
tolerance | float | optional | 0.001 | Per-joint absolute tolerance (joint native unit), shared by all joints ⚠>= 0 |
Inherited fromGoalConfig4
| Field | Type | Required | Default | Description / Constraints |
|---|
stereotype | string | required | — | "articulated_joint_state" |
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