YAML: taskclassTaskConfig

Task

Declares a complete task flow: a sequence of actions executed in order, then a set of goal conditions verified at the end.

sourcefastsim/task/task_cfg.py

Top-level Fields4

FieldTypeRequiredDefaultDescription / Constraints
namestringoptionalTask name
descriptionstringoptionalTask description
actionslist[ActionConfig]optional[]Action list executed in order; each action may carry an immediate validation goal via goal_config
goalslist[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.

classActionConfigfastsim/extensions/common/action/action.py
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequiredAction type (e.g. pick / place / move / grasp)
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringoptionalRobot instance name that executes this action (matches key in scene.robot_cfg_dict)
goal_configGoalConfigoptionalImmediate validation goal after this action (optional); failure aborts the task
visualization_configVisualizationConfigoptionalVisualization toggles (planned path, end-effector pose, target bounding box, etc.); see VisualizationConfig
wait_robot_stoppedbooloptionalfalseWhether to wait for the robot to fully stop before executing
wait_robot_stopped_timeoutfloatoptional5.0Timeout in seconds for waiting for the robot to stop
extra_parametersdictoptional{}Extra parameters for the specific stereotype, interpreted by the subclass (e.g. object_name, target_name)
classVisualizationConfigfastsim/extensions/common/action/action.py
FieldTypeRequiredDefaultDescription / Constraints
enable_ee_pose_visualizationbooloptionalfalseVisualize the end-effector pose frame in the simulator
enable_interact_pose_visualizationbooloptionalfalseVisualize the interaction pose
enable_planner_robot_representation_visualizationbooloptionalfalseVisualize the planner's robot collision model representation
enable_planner_world_representation_visualizationbooloptionalfalseVisualize the planner's world collision model representation
enable_target_bounding_box_visualizationbooloptionalfalseVisualize the target object bounding box
ee_pose_typeenumoptionalcoordinateEnd-effector pose visualization style
coordinate / axis
classMoveActionConfigstereotypemoveextendsActionConfigfastsim/extensions/common/action/actions/low_level/move_action.py
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name (movement reference)
pose_sourceenumrequiredinlinePose source
inline / goal / object
pose_datadict | stringrequired{}Pose data; format depends on pose_source
pose_frameenumrequiredworldPose reference frame
world / robot_base
wait_target_stopped_timeoutfloatrequired3.0Timeout for waiting for target to stop (seconds)
> 0
move_with_collision_checkboolrequiredtrueWhether to enable collision checking during movement
planner_step_sizeintrequired1Planner execution step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"move"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name that executes this action
goal_configGoalConfigoptionalImmediate validation goal after this action
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to fully stop before executing
wait_robot_stopped_timeoutfloatoptional3.0Timeout for waiting for robot to stop
extra_parametersdictoptional{}Extra parameters
classGraspActionConfigstereotypegraspextendsActionConfigfastsim/extensions/common/action/actions/low_level/grasp_action.py
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0End-effector action timeout (seconds)
> 0
ee_typeenumrequiredgripperEnd-effector type
gripper
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"grasp"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop before executing
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classReleaseActionConfigstereotypereleaseextendsActionConfigfastsim/extensions/common/action/actions/low_level/release_action.py
FieldTypeRequiredDefaultDescription / Constraints
ee_typeenumrequiredgripperEnd-effector type
gripper
release_timeoutfloatrequired6.0Release timeout (seconds)
> 0
wait_ee_openboolrequiredtrueWhether to wait for end-effector to fully open
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"release"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classAcquireActionConfigstereotypeacquireextendsGraspActionConfig, MoveActionConfigfastsim/extensions/common/action/actions/high_level/acquire_action.py
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_offset_positionlist[3]required[0, 0, 0.01]Planner attach offset position [x, y, z] in meters
planner_attach_offset_rotationlist[4]required[1, 0, 0, 0]Planner attach offset rotation (quaternion)
post_acquire_ee_position_offsetlist[3]required[0, 0, 0]End-effector position offset after acquire
post_acquire_ee_rotation_offsetlist[4]required[1, 0, 0, 0]End-effector rotation offset after acquire
ee_offset_frameenumrequiredrobot_baseOffset reference frame
world / robot_base
wait_post_acquire_timeoutfloatrequired6.0Post-acquire wait timeout (seconds)
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0End-effector action timeout
ee_typeenumrequiredgripperEnd-effector type
Inherited fromMoveActionConfig7
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose reference frame
wait_target_stopped_timeoutfloatrequired3.0Wait target stopped timeout
move_with_collision_checkboolrequiredtrueEnable collision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"acquire"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classPlaceActionConfigstereotypeplaceextendsReleaseActionConfig, MoveActionConfigfastsim/extensions/common/action/actions/high_level/place_action.py
FieldTypeRequiredDefaultDescription / Constraints
grasped_target_namestringoptionalGrasped target object name
wait_released_target_stoppedboolrequiredfalseWhether to wait for released target to stop
wait_released_target_stopped_timeoutfloatrequired6.0Wait for released target to stop timeout
Inherited fromReleaseActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
ee_typeenumrequiredgripperEnd-effector type
release_timeoutfloatrequired6.0Release timeout
wait_ee_openboolrequiredtrueWait for EE to fully open
Inherited fromMoveActionConfig7
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose reference frame
wait_target_stopped_timeoutfloatrequired3.0Wait target stopped timeout
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"place"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classPickActionConfigstereotypepickextendsAcquireActionConfigfastsim/extensions/common/action/actions/high_level/pick_action.py
FieldTypeRequiredDefaultDescription / Constraints
pick_up_distancefloatrequired0.02Pick-up distance (meters)
>= 0
pick_up_timeoutfloatrequired6.0Pick-up timeout (seconds)
Inherited fromAcquireActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_offset_positionlist[3]required[0, 0, 0.01]Planner attach offset position
planner_attach_offset_rotationlist[4]required[1, 0, 0, 0]Planner attach offset rotation
post_acquire_ee_position_offsetlist[3]required[0, 0, 0]Post-acquire EE position offset
post_acquire_ee_rotation_offsetlist[4]required[1, 0, 0, 0]Post-acquire EE rotation offset
ee_offset_frameenumrequiredrobot_baseOffset reference frame
wait_post_acquire_timeoutfloatrequired6.0Post-acquire timeout
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0EE action timeout
ee_typeenumrequiredgripperEE type
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose reference frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pick"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classPushActionConfigstereotypepushextendsGraspActionConfig, MoveActionConfigfastsim/extensions/common/action/actions/high_level/push_action.py
FieldTypeRequiredDefaultDescription / Constraints
push_distancefloatrequired0.02Push distance (meters)
>= 0
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0EE action timeout
ee_typeenumrequiredgripperEE type
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose reference frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"push"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalValidation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classPullActionConfigstereotypepullextendsAcquireActionConfigfastsim/extensions/common/action/actions/high_level/pull_action.py
FieldTypeRequiredDefaultDescription / Constraints
pull_distancefloatrequired0.02Pull distance (meters)
>= 0
Inherited fromAcquireActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_offset_positionlist[3]required[0, 0, 0.01]Planner attach offset position
planner_attach_offset_rotationlist[4]required[1, 0, 0, 0]Planner attach offset rotation
post_acquire_ee_position_offsetlist[3]required[0, 0, 0]Post-acquire EE position offset
post_acquire_ee_rotation_offsetlist[4]required[1, 0, 0, 0]Post-acquire EE rotation offset
ee_offset_frameenumrequiredrobot_baseOffset reference frame
wait_post_acquire_timeoutfloatrequired6.0Post-acquire timeout
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0EE action timeout
ee_typeenumrequiredgripperEE type
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose reference frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pull"
namestringoptionalAction name
descriptionstringoptionalAction description
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalValidation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
wait_robot_stopped_timeoutfloatoptional3.0Wait-for-stop timeout
extra_parametersdictoptional{}Extra parameters
classTwistActionConfigstereotypetwistextendsAcquireActionConfigfastsim/extensions/common/action/actions/high_level/twist_action.py
FieldTypeRequiredDefaultDescription / Constraints
twist_anglefloatrequired0Twist angle (radians)
Inherited fromAcquireActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_offset_positionlist[3]required[0, 0, 0.01]Planner attach offset position
planner_attach_offset_rotationlist[4]required[1, 0, 0, 0]Planner attach offset rotation
post_acquire_ee_position_offsetlist[3]required[0, 0, 0]Post-acquire EE offset
post_acquire_ee_rotation_offsetlist[4]required[1, 0, 0, 0]Post-acquire EE rotation offset
ee_offset_frameenumrequiredrobot_baseOffset reference frame
wait_post_acquire_timeoutfloatrequired6.0Post-acquire timeout
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0EE timeout
ee_typeenumrequiredgripperEE type
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig7
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"twist"
namestringoptionalAction name
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalValidation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
extra_parametersdictoptional{}Extra parameters
classClickActionConfigstereotypeclickextendsPushActionConfigfastsim/extensions/common/action/actions/high_level/click_action.py
FieldTypeRequiredDefaultDescription / Constraints
click_distancefloatrequired0.02Click distance (meters)
Inherited fromPushActionConfig1
FieldTypeRequiredDefaultDescription / Constraints
push_distancefloatrequired0.02Push distance
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
ee_timeoutfloatrequired6.0EE timeout
ee_typeenumrequiredgripperEE type
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig7
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"click"
namestringoptionalAction name
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalValidation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
extra_parametersdictoptional{}Extra parameters
classInsertActionConfigstereotypeinsertextendsPlaceActionConfigfastsim/extensions/common/action/actions/high_level/insert_action.py
Inherited fromPlaceActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
grasped_target_namestringoptionalGrasped target name
wait_released_target_stoppedboolrequiredfalseWait for released target to stop
wait_released_target_stopped_timeoutfloatrequired6.0Wait-for-released-target timeout
Inherited fromReleaseActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
ee_typeenumrequiredgripperEE type
release_timeoutfloatrequired6.0Release timeout
wait_ee_openboolrequiredtrueWait for EE open
Inherited fromMoveActionConfig6
FieldTypeRequiredDefaultDescription / Constraints
target_namestringoptionalTarget object name
pose_sourceenumrequiredinlinePose source
pose_datadict | stringrequired{}Pose data
pose_frameenumrequiredworldPose frame
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig7
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"insert"
namestringoptionalAction name
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalValidation goal
visualization_configVisualizationConfigoptionalVisualization toggles
wait_robot_stoppedbooloptionalfalseWait for robot to stop
extra_parametersdictoptional{}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().

classGoalConfigfastsim/extensions/common/goal/goal.py
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequiredGoal type (e.g. pose / on_top / inside / grasp_success)
namestringoptionalGoal name
descriptionstringoptionalGoal description
extra_parametersdictoptional{}Extra params specific to this stereotype (e.g. object_name, target_name, tolerance)
classPoseGoalConfigstereotypeposeextendsGoalConfigfastsim/extensions/common/goal/goals/pose_goal.py
FieldTypeRequiredDefaultDescription / Constraints
position_tolerancefloatoptionalPosition tolerance (meters); null skips position check
>= 0
rotation_tolerancefloatoptionalRotation tolerance (radians); null skips rotation check
>= 0
position_offsetlist[3]optional[0, 0, 0]Position offset [x, y, z]
rotation_offsetlist[4]optional[1, 0, 0, 0]Rotation offset (quaternion)
pose_A_sourceenumrequiredeePose A source
ee / spawnable
pose_A_paramsdictrequired{}Pose A parameters
pose_B_sourceenumrequiredspawnablePose B source
ee / spawnable
pose_B_paramsdictrequired{}Pose B parameters
Inherited fromGoalConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pose"
namestringoptionalGoal name
descriptionstringoptionalGoal description
extra_parametersdictoptional{}Extra parameters
classOnTopGoalConfigstereotypeon_topextendsGoalConfigfastsim/extensions/common/goal/goals/on_top_goal.py
FieldTypeRequiredDefaultDescription / Constraints
object_A_namestringrequiredObject A name (should be on top)
object_B_namestringrequiredObject B (target/container) name
max_horizontal_offsetfloatoptional0.01Max horizontal offset (meters)
max_vertical_offsetfloatoptional0.02Max vertical offset (meters)
Inherited fromGoalConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"on_top"
namestringoptionalGoal name
descriptionstringoptionalGoal description
extra_parametersdictoptional{}Extra parameters
classInsideGoalConfigstereotypeinsideextendsGoalConfigfastsim/extensions/common/goal/goals/inside_goal.py
FieldTypeRequiredDefaultDescription / Constraints
object_A_namestringrequiredObject A name (should be inside)
object_B_namestringrequiredContainer object name
max_offsetfloatoptional0.0Max offset (meters)
Inherited fromGoalConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"inside"
namestringoptionalGoal name
descriptionstringoptionalGoal description
extra_parametersdictoptional{}Extra parameters

Example

task blockYAML
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