Stack#

Task key: stack.

stack is a single-arm baseline task. Three cubes are spawned and the agent must stack them into a tower: A (red) at the bottom, B (blue) in the middle, and C (green) on top.

../../_images/placeholder_env.svg

Goal#

  • Stack the three cubes into a stable tower (A, then B, then C).

Quickstart#

import dexsuite as ds

env = ds.make(
    "stack",
    manipulator="franka",
    gripper="robotiq",
    arm_control="osc_pose",
    gripper_control="joint_position",
    render_mode="human",
)

obs, info = env.reset()
obs, reward, terminated, truncated, info = env.step(env.action_space.sample())

env.close()

Task Entities#

  • cube_a: bottom cube (red).

  • cube_b: middle cube (blue).

  • cube_c: top cube (green).

Extra Observations#

Stack adds (under obs["state"]["other"]):

  • cube_a_pos, cube_b_pos, cube_c_pos (each shape (n_envs, 3))

  • cube_a_quat, cube_b_quat, cube_c_quat (each shape (n_envs, 4), wxyz)

Termination#

  • Success: cube B is placed on cube A, and cube C is placed on cube B (within tolerances).

  • Failure: none beyond horizon truncation.

  • Truncation: episode reaches the horizon.

Simulation Settings#

  • SIM_DT = 0.01

  • SUBSTEPS = 1

  • HORIZON = 600 control steps

Source#

  • Dexsuite/dexsuite/environments/single/baselines/stack.py