Bimanual Lift#
Task key: bimanual_lift.
bimanual_lift is a two-arm baseline task. Each arm must lift its own cube
to a target height above the spawn position.
Goal#
Lift both cubes to the goal height and keep them aligned with their goal markers.
Quickstart#
import dexsuite as ds
env = ds.make(
"bimanual_lift",
manipulator=("franka", "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_left/cube_right: rigid cubes spawned on opposite sides.goal_left/goal_right: fixed, non-colliding spheres above each cube.
Extra Observations#
Bimanual-lift adds (under obs["state"]["other"]):
cube_left_pos,cube_right_pos(each shape(n_envs, 3))cube_left_quat,cube_right_quat(each shape(n_envs, 4), wxyz)target_left_pos,target_right_pos(each shape(n_envs, 3))
Termination#
Success: both cubes reach the target height and are close to their targets in XY.
Failure: either TCP leaves the workspace AABB.
Truncation: episode reaches the horizon.
Simulation Settings#
SIM_DT = 0.01SUBSTEPS = 1HORIZON = 600control steps
Source#
Dexsuite/dexsuite/environments/bimanual/baselines/bimanual_lift.py