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 Fields5

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
retry_configRetryConfigoptionalnullGlobal 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.

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_timeoutfloatoptional3.0Timeout in seconds for waiting for the robot to stop
save_snapshotbooloptionalfalseWhether to save a scene snapshot before execution (for debugging/rollback)
snapshot_dirstringoptionalDirectory for snapshot files
retry_configRetryConfigoptionalnullPer-action retry config (overrides task-level); see RetryConfig
extra_parametersdictoptional{}Extra parameters for the specific stereotype, interpreted by the subclass (e.g. object_name, target_name)
classRetryConfigfastsim/extensions/common/action/action.py
FieldTypeRequiredDefaultDescription / Constraints
ruleslist[RetryRule]optional[]List of retry rules evaluated top-to-bottom; first match wins. Empty = no retry
classRetryRulefastsim/extensions/common/action/action.py
FieldTypeRequiredDefaultDescription / Constraints
conditionenumoptionalallFailure type that triggers this rule
all / goal_not_satisfied / execution_failed
reason_patternstringoptionalnullSubstring match against failure message (e.g. distinguish IK_FAIL vs COLLISION); null = match any
retry_timesintrequired0Max retry count for this rule
>= 0
retry_fromstringoptionalnullAction name to jump back to; null = retry self
rollback_statebooloptionalfalseWhether to restore snapshot taken before the retry target action
classVisualizationConfigfastsim/extensions/common/action/action.py
FieldTypeRequiredDefaultDescription / Constraints
simulatorenumoptionalisaaclabSimulator used for visualization
isaaclab / mujoco / pybullet
ee_pose_typeenumoptionalcoordinateEnd-effector pose visualization style
coordinate / axis
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 oriented bounding box (OBB)
enable_ee_trajectory_visualizationbooloptionalfalseVisualize the planned EE trajectory computed via FK
interact_pose_sample_numint | nulloptionalnullRandomly sample N interact poses for visualization; null = show all
classMoveTargetConfigfastsim/extensions/common/action/actions/low_level/move_action.py
FieldTypeRequiredDefaultDescription / Constraints
namestringoptionalTarget object name (movement reference)
linkstringoptionalLink/part name on articulated target objects (e.g. door handle)
is_rigidbooloptionaltrueWhether target is a rigid body (true → default scale 0.001, false → 1.0)
wait_stopped_timeoutfloatoptional3.0Timeout for waiting for target to stop (seconds)
classMovePoseConfigfastsim/extensions/common/action/actions/low_level/move_action.py
FieldTypeRequiredDefaultDescription / Constraints
sourceenumrequiredinlinePose source
inline / local / remote
datadict | stringrequired{}Pose data (dict for inline) or file path (string for local/remote)
frameenumrequiredworldPose reference frame
world / robot_base / target
ee_conventionstring | list[4]optionalzEE forward axis convention in the pose dataset. String for gripper axis (z / -x / etc.), quaternion [w,x,y,z] for dexterous hand
classMoveActionConfigstereotypemoveextendsActionConfigfastsim/extensions/common/action/actions/low_level/move_action.py
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringoptionalnullArm module name for ModularRobot; null uses the default ee_link_name
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
classNavigateActionConfigstereotypenavigateextendsActionConfigfastsim/extensions/common/action/actions/low_level/navigate_action.py
FieldTypeRequiredDefaultDescription / Constraints
target_positionlist[2]requiredTarget position [x, y] on ground plane
target_orientationfloatoptional0.0Target yaw angle in radians
timeoutfloatoptional60.0Navigation timeout in seconds
pos_tolerancefloatoptional0.05Position tolerance in meters
angle_tolerancefloatoptional0.1Angle tolerance in radians
Inherited fromActionConfig5
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"navigate"
namestringoptionalAction name
robot_namestringrequiredRobot instance name
goal_configGoalConfigoptionalImmediate validation goal
extra_parametersdictoptional{}Extra parameters
classGraspActionConfigstereotypegraspextendsActionConfigfastsim/extensions/common/action/actions/low_level/grasp_action.py
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name (matches key in modules.arms)
ee_timeoutfloatrequired6.0End-effector action timeout (seconds)
> 0
stuck_window_secfloatrequired0.3Time window (seconds) over which EE joints must stay within stuck_threshold to count as stopped
stuck_thresholdfloatrequired0.0035Max per-joint position range within stuck_window_sec to count as stopped. Unit: m for prismatic, rad for revolute
min_travelfloatrequired0.005Required |joint_pos - initial| before stuck detection activates (avoids tripping before EE starts moving)
empty_grasp_thresholdfloatrequired0After stuck detection, if EE is within this threshold of close position, treat as empty grasp (fail). Default 0 = disabled
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
arm_namestringrequiredArm module name (matches key in modules.arms)
release_timeoutfloatrequired6.0Release timeout (seconds)
> 0
wait_ee_openboolrequiredtrueWhether to wait for end-effector to fully open
position_thresholdfloatoptional0.02Position threshold below which the EE is considered fully open
force_open_eebooloptionalfalseForce send open command even if EE is already 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
classSafeReleaseActionConfigstereotypesafe_releaseextendsReleaseActionConfigfastsim/extensions/common/action/actions/high_level/safe_release_action.py
FieldTypeRequiredDefaultDescription / Constraints
partial_open_ratiofloatrequired0.4Pre-release opening ratio (0=closed, 1=fully open)
[0, 1]
partial_open_timeoutfloatoptional6.0Timeout to reach partial opening (seconds)
> 0
partial_open_thresholdfloatoptional0.02Position threshold for partial opening
> 0
retreat_distancefloatrequired0.05Retreat distance along negative current EE local Z (meters)
>= 0
Inherited fromReleaseActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name
release_timeoutfloatrequired6.0Full release timeout
force_open_eebooloptionalfalseForce open EE
Inherited fromActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"safe_release"
robot_namestringrequiredRobot instance name
classPlannerAttachConfigfastsim/extensions/common/action/actions/high_level/acquire_action.py
FieldTypeRequiredDefaultDescription / Constraints
target_link_namestringoptionalTarget link name on the object (required for articulated objects)
planner_link_namestringoptionalattached_objectPlanner link name for the attached object
position_offsetlist[3]optional[0, 0, 0]Attachment position offset [x, y, z] in meters
rotation_offsetlist[4]optional[1, 0, 0, 0]Attachment rotation offset (quaternion [w, x, y, z])
restore_offset_after_post_acquirebooloptionaltrueWhether to restore offset after post-acquire motion
enable_physics_attachbooloptionalfalseIf True, also create a PhysX FixedJoint between target_link_name and the grasped object so it cannot slip / drop. Detached automatically by ReleaseAction
classAcquireActionConfigstereotypeacquireextendsGraspActionConfig, MoveActionConfigfastsim/extensions/common/action/actions/high_level/acquire_action.py
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment configuration; see PlannerAttachConfig
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
robot_base / ee
wait_post_acquire_timeoutfloatrequired6.0Post-acquire wait timeout (seconds)
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name
ee_timeoutfloatrequired6.0End-effector action timeout
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
classContactSpecfastsim/extensions/common/action/alignment.py
FieldTypeRequiredDefaultDescription / Constraints
directionslist[list[3]]requiredList of contact direction vectors in object body frame. Single face: [[x,y,z]]. Multi-face: list of 3-vectors
positionslist[list[3]]optionalnullContact point list paired with directions by index. null = all at origin
classAlignmentConfigfastsim/extensions/common/action/alignment.py
FieldTypeRequiredDefaultDescription / Constraints
object_contactContactSpecrequiredContact spec on the held object
anchor_contactContactSpecrequiredContact spec on the anchor (target) object
sample_countintoptional36Free rotation samples per face pair. Total candidates = |object_faces| × |anchor_faces| × sample_count
classPlaceActionConfigstereotypeplaceextendsReleaseActionConfig, MoveActionConfigfastsim/extensions/common/action/actions/high_level/place_action.py
FieldTypeRequiredDefaultDescription / Constraints
held_objectHeldObjectConfigoptionalnullHeld object config
alignmentAlignmentConfigoptionalnullShared contact alignment config; when set, overrides pose and auto-computes placement
pre_place_distancefloatoptionalnullStandoff distance along negative anchor direction before placing; null = move directly
place_offsetlist[3]optional[0, 0, 0]Extra world-frame offset on the computed place position
grasped_target_namestringoptionalGrasped target name (legacy; prefer held_object)
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
arm_namestringrequiredArm module name
release_timeoutfloatrequired6.0Release timeout
wait_ee_openboolrequiredtrueWait for EE to fully open
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration
poseMovePoseConfigrequiredPose configuration (used when alignment is null)
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
classPourActionConfigstereotypepourextendsMoveActionConfigfastsim/extensions/common/action/actions/high_level/pour_action.py
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name
held_objectHeldObjectConfigrequiredHeld container config (object name required)
pour_trajectoryPourTrajectoryConfigrequiredPour trajectory parameters
Inherited fromMoveActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration
poseMovePoseConfigrequiredPose configuration
move_with_collision_checkboolrequiredtrueCollision checking
Inherited fromActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pour"
robot_namestringrequiredRobot instance name
extra_parametersdictoptional{}Extra parameters
classPourTrajectoryConfigfastsim/extensions/common/action/actions/high_level/pour_action.py
FieldTypeRequiredDefaultDescription / Constraints
alignmentAlignmentConfigrequiredPour contact alignment (shared AlignmentConfig); defines spout-to-anchor contact spec
pre_pour_distancefloatoptional0.15Standoff distance above target before pouring; null/0 = skip
interpolation_stepsintoptional50SLERP interpolation steps from upright to tilted
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 fromAcquireActionConfig5
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config; see PlannerAttachConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
pull_directionlist[3]optional[0, 0, -1]Unit direction vector to pull along
pull_frameenumoptionaleeReference frame for pull direction
ee / robot_base
Inherited fromAcquireActionConfig5
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config; see PlannerAttachConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
classRevoluteConfigfastsim/extensions/common/action/actions/high_level/pull_revolute_action.py
FieldTypeRequiredDefaultDescription / Constraints
joint_namestringrequiredRevolute joint name on the articulated object
joint_link_namestringrequiredLink name of the revolute joint (e.g. door_hinge_link)
pull_anglefloatrequiredRotation angle magnitude (radians); sign derived from initial_direction
Must not be 0
initial_directionlist[3]optional[0, -1, 0]Desired initial pull direction vector
pull_framestringoptionalrobot_baseReference frame for direction
robot_base / world / joint
waypoint_countintoptional10Number of interpolated waypoints along the arc
move_with_collision_checkbooloptionalfalseWhether to use motion planner for each waypoint (false = direct IK tracking)
use_mpcbooloptionalfalseUse realtime MPC to track the whole path (via MotionPlanController.start_realtime_tracking)
completion_tolerancefloatoptional0.1Joint position error tolerance (rad) for post-action completion check
> 0
classPullRevoluteActionConfigstereotypepull_revoluteextendsAcquireActionConfig, SafeReleaseActionConfigfastsim/extensions/common/action/actions/high_level/pull_revolute_action.py
FieldTypeRequiredDefaultDescription / Constraints
revoluteRevoluteConfigrequiredRevolute motion parameters; see RevoluteConfig
Inherited fromAcquireActionConfig5
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config; see PlannerAttachConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
move_with_collision_checkboolrequiredtrueCollision checking
planner_step_sizeintrequired1Planner step size
Inherited fromActionConfig9
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pull_revolute"
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
classPushRevoluteConfigfastsim/extensions/common/action/actions/high_level/push_revolute_action.py
FieldTypeRequiredDefaultDescription / Constraints
joint_namestringrequiredRevolute joint name on the articulated object
joint_link_namestringoptionalLink name of the joint (falls back to joint_name)
push_anglefloatrequiredRotation angle magnitude in radians; must not be 0
initial_directionlist[3]optionalDesired initial push direction vector (in push_frame)
push_framestringoptionalrobot_baseReference frame for direction
robot_base / world / joint
waypoint_countintoptional10Number of interpolated waypoints along the arc
>= 1
move_with_collision_checkbooloptionalfalseWhether to use motion planner for each waypoint
push_positionlist[3]optionalTarget EE position in joint frame (used when push_frame=joint)
use_mpcbooloptionalfalseUse MPC for push (declared but currently no-op in PushRevoluteAction implementation)
classPushRevoluteActionConfigstereotypepush_revoluteextendsAcquireActionConfigfastsim/extensions/common/action/actions/high_level/push_revolute_action.py
FieldTypeRequiredDefaultDescription / Constraints
revolutePushRevoluteConfigrequiredPush-revolute motion parameters; see PushRevoluteConfig
Inherited fromAcquireActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config
post_acquire_ee_position_offsetlist[3]required[0, 0, 0]Post-acquire EE position offset
ee_offset_frameenumrequiredrobot_baseOffset reference frame
Inherited fromGraspActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name
ee_timeoutfloatrequired6.0EE action timeout
Inherited fromMoveActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration
poseMovePoseConfigrequiredPose configuration
move_with_collision_checkboolrequiredtrueCollision checking
Inherited fromActionConfig3
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"push_revolute"
robot_namestringrequiredRobot instance name
extra_parametersdictoptional{}Extra parameters
classPickAndPlaceActionConfigstereotypepick_and_placeextendsActionConfigfastsim/extensions/common/action/actions/high_level/pick_and_place_action.py
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringoptionalArm module name (propagated to pick / place sub-actions)
pickPickActionConfigrequiredPick sub-action configuration
placePlaceActionConfigrequiredPlace sub-action configuration
Inherited fromActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pick_and_place"
robot_namestringrequiredRobot instance name
classPullAndPushRevoluteActionConfigstereotypepull_and_push_revoluteextendsAcquireActionConfig, SafeReleaseActionConfigfastsim/extensions/common/action/actions/high_level/pull_and_push_revolute_action.py
FieldTypeRequiredDefaultDescription / Constraints
revoluteRevoluteConfigrequiredPull-revolute motion parameters (joint, angle, waypoints)
push_revolutePushRevoluteConfigrequiredPush-revolute motion parameters
Inherited fromSafeReleaseActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
partial_open_ratiofloatrequired0.4Pre-release opening ratio
retreat_distancefloatrequired0.05Retreat distance (meters)
Inherited fromAcquireActionConfig1
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config
Inherited fromGraspActionConfig1
FieldTypeRequiredDefaultDescription / Constraints
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget configuration
poseMovePoseConfigrequiredPose configuration
Inherited fromActionConfig2
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"pull_and_push_revolute"
robot_namestringrequiredRobot instance name
classTwistActionConfigstereotypetwistextendsAcquireActionConfigfastsim/extensions/common/action/actions/high_level/twist_action.py
FieldTypeRequiredDefaultDescription / Constraints
twist_anglefloatrequired0Twist angle (radians)
Inherited fromAcquireActionConfig5
FieldTypeRequiredDefaultDescription / Constraints
planner_attach_configPlannerAttachConfigoptionalPlanner attachment config; see PlannerAttachConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
arm_namestringrequiredArm module name
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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
arm_namestringrequiredArm module name
release_timeoutfloatrequired6.0Release timeout
wait_ee_openboolrequiredtrueWait for EE open
Inherited fromMoveActionConfig4
FieldTypeRequiredDefaultDescription / Constraints
targetMoveTargetConfigoptionalTarget object configuration; see MoveTargetConfig
poseMovePoseConfigrequiredPose configuration; see MovePoseConfig
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: pose / on_top / inside / grasped / articulated_joint_state
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 = 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_paramsdictrequired{}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_sourceenumrequiredspawnablePose B source (values and meanings identical to pose_A_source)
ee / spawnable / pose
pose_B_paramsdictrequired{}Pose B lookup parameters (dispatched by source, same shape as pose_A_params)
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
classGraspedGoalConfigstereotypegraspedextendsGoalConfigfastsim/extensions/common/goal/goals/grasped_goal.py
FieldTypeRequiredDefaultDescription / Constraints
robot_namestringrequiredRobot holding the object
arm_namestringoptionalnullArm module name (for ModularRobot)
object_namestringrequiredObject expected to be grasped
max_distancefloatoptional0.08Max EE-to-object distance (meters); below this threshold = grasped
> 0
Inherited fromGoalConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"grasped"
namestringoptionalGoal name
descriptionstringoptionalGoal description
extra_parametersdictoptional{}Extra parameters
classArticulatedJointStateGoalConfigstereotypearticulated_joint_stateextendsGoalConfigfastsim/extensions/common/goal/goals/articulated_joint_state_goal.py
FieldTypeRequiredDefaultDescription / Constraints
object_namestringrequiredArticulated object name
joint_positionsdict[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
tolerancefloatoptional0.001Per-joint absolute tolerance (joint native unit), shared by all joints
>= 0
Inherited fromGoalConfig4
FieldTypeRequiredDefaultDescription / Constraints
stereotypestringrequired"articulated_joint_state"
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