Lift#

Task key: lift.

lift is a single-arm baseline task. A cube is spawned inside the robot workspace and the agent must lift it to a fixed target height.

../../_images/placeholder_env.svg

Goal#

  • Lift the cube until it reaches the goal height.

  • Keep the cube’s XY position close to the goal marker.

Quickstart#

import dexsuite as ds

env = ds.make(
    "lift",
    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 rigid cube that starts on the table.

  • goal: a fixed, non-colliding sphere placed above the cube spawn.

Observations#

Observations follow the DexSuite convention:

  • obs["state"] is a nested dict of torch tensors (robot state + task state).

  • obs["cameras"] is a dict of rendered camera outputs (if cameras are enabled).

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

  • cube_pos (shape (n_envs, 3))

  • cube_quat (shape (n_envs, 4), wxyz convention)

  • target_pos (shape (n_envs, 3))

The base environment also adds:

  • other["action"] and other["last_action"] (flat action tensors)

Actions#

DexSuite uses a single, flat action tensor:

  • Single env: shape (D,)

  • Batched envs: shape (n_envs, D)

D depends on your robot + controller choices. Use env.action_space.shape to inspect it.

env.step(...) accepts a torch tensor, a NumPy array, or a Python sequence. Inputs are converted to a float32 torch tensor on the environment device.

Termination#

  • Success: cube reaches the target height (within tolerance) and its XY position is within 5 cm of the target.

  • Failure: the tool center point (TCP) leaves the workspace AABB.

  • Truncation: the episode reaches the horizon.

Simulation Settings#

The lift baseline uses:

  • SIM_DT = 0.01

  • SUBSTEPS = 1

  • HORIZON = 600 control steps

SimOptions.control_hz controls the control frequency; physics steps run at SIM_DT with SUBSTEPS substeps per physics step.

Source#

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