### Task parameters DATA_DIR = '/scr2/moojink/data/aloha1/' TASK_CONFIGS = { # fold shorts 'fold_shorts':{ 'dataset_dir': DATA_DIR + '/fold_shorts', 'num_episodes': 20, 'episode_len': 1000, 'camera_names': ['cam_high', 'cam_left_wrist', 'cam_right_wrist'] }, # fold shirt 'fold_shirt':{ 'dataset_dir': DATA_DIR + '/fold_shirt', 'num_episodes': 30, 'episode_len': 1250, 'camera_names': ['cam_high', 'cam_left_wrist', 'cam_right_wrist'] }, # scoop X into bowl 'scoop_raisins_into_bowl':{ 'dataset_dir': DATA_DIR + '/scoop_raisins_into_bowl', 'num_episodes': 15, 'episode_len': 900, 'camera_names': ['cam_high', 'cam_left_wrist', 'cam_right_wrist'] }, 'scoop_almonds_and_green_M&Ms_into_bowl':{ 'dataset_dir': DATA_DIR + '/scoop_almonds_and_green_M&Ms_into_bowl', 'num_episodes': 15, 'episode_len': 900, 'camera_names': ['cam_high', 'cam_left_wrist', 'cam_right_wrist'] }, 'scoop_pretzels_into_bowl':{ 'dataset_dir': DATA_DIR + '/scoop_pretzels_into_bowl', 'num_episodes': 15, 'episode_len': 900, 'camera_names': ['cam_high', 'cam_left_wrist', 'cam_right_wrist'] }, # put X into pot 'put_red_pepper_into_pot':{ 'dataset_dir': DATA_DIR + '/put_red_pepper_into_pot', 'num_episodes': 100, 'episode_len': 400, 'camera_names': ['cam_high', 'cam_low', 'cam_left_wrist', 'cam_right_wrist'] }, 'put_yellow_corn_into_pot':{ 'dataset_dir': DATA_DIR + '/put_yellow_corn_into_pot', 'num_episodes': 100, 'episode_len': 400, 'camera_names': ['cam_high', 'cam_low', 'cam_left_wrist', 'cam_right_wrist'] }, 'put_green_pepper_into_pot':{ 'dataset_dir': DATA_DIR + '/put_green_pepper_into_pot', 'num_episodes': 100, 'episode_len': 400, 'camera_names': ['cam_high', 'cam_low', 'cam_left_wrist', 'cam_right_wrist'] }, } ### ALOHA fixed constants DT = 0.04 # 1 / 0.04 -> 25 Hz JOINT_NAMES = ["waist", "shoulder", "elbow", "forearm_roll", "wrist_angle", "wrist_rotate"] START_ARM_POSE = [0, -0.96, 1.16, 0, -0.3, 0, 0.02239, -0.02239, 0, -0.96, 1.16, 0, -0.3, 0, 0.02239, -0.02239] # Left finger position limits (qpos[7]), right_finger = -1 * left_finger MASTER_GRIPPER_POSITION_OPEN = 0.02417 MASTER_GRIPPER_POSITION_CLOSE = 0.01244 PUPPET_GRIPPER_POSITION_OPEN = 0.05800 PUPPET_GRIPPER_POSITION_CLOSE = 0.01844 # Gripper joint limits (qpos[6]) MASTER_GRIPPER_JOINT_OPEN = 0.3083 # For ALOHA 1 MASTER_GRIPPER_JOINT_CLOSE = -0.6842 # For ALOHA 1 # MASTER_GRIPPER_JOINT_OPEN = -0.8 # For ALOHA 2 # MASTER_GRIPPER_JOINT_CLOSE = -1.65 # For ALOHA 2 PUPPET_GRIPPER_JOINT_OPEN = 1.4910 PUPPET_GRIPPER_JOINT_CLOSE = -0.6213 ############################ Helper functions ############################ MASTER_GRIPPER_POSITION_NORMALIZE_FN = lambda x: (x - MASTER_GRIPPER_POSITION_CLOSE) / (MASTER_GRIPPER_POSITION_OPEN - MASTER_GRIPPER_POSITION_CLOSE) PUPPET_GRIPPER_POSITION_NORMALIZE_FN = lambda x: (x - PUPPET_GRIPPER_POSITION_CLOSE) / (PUPPET_GRIPPER_POSITION_OPEN - PUPPET_GRIPPER_POSITION_CLOSE) MASTER_GRIPPER_POSITION_UNNORMALIZE_FN = lambda x: x * (MASTER_GRIPPER_POSITION_OPEN - MASTER_GRIPPER_POSITION_CLOSE) + MASTER_GRIPPER_POSITION_CLOSE PUPPET_GRIPPER_POSITION_UNNORMALIZE_FN = lambda x: x * (PUPPET_GRIPPER_POSITION_OPEN - PUPPET_GRIPPER_POSITION_CLOSE) + PUPPET_GRIPPER_POSITION_CLOSE MASTER2PUPPET_POSITION_FN = lambda x: PUPPET_GRIPPER_POSITION_UNNORMALIZE_FN(MASTER_GRIPPER_POSITION_NORMALIZE_FN(x)) MASTER_GRIPPER_JOINT_NORMALIZE_FN = lambda x: (x - MASTER_GRIPPER_JOINT_CLOSE) / (MASTER_GRIPPER_JOINT_OPEN - MASTER_GRIPPER_JOINT_CLOSE) PUPPET_GRIPPER_JOINT_NORMALIZE_FN = lambda x: (x - PUPPET_GRIPPER_JOINT_CLOSE) / (PUPPET_GRIPPER_JOINT_OPEN - PUPPET_GRIPPER_JOINT_CLOSE) MASTER_GRIPPER_JOINT_UNNORMALIZE_FN = lambda x: x * (MASTER_GRIPPER_JOINT_OPEN - MASTER_GRIPPER_JOINT_CLOSE) + MASTER_GRIPPER_JOINT_CLOSE PUPPET_GRIPPER_JOINT_UNNORMALIZE_FN = lambda x: x * (PUPPET_GRIPPER_JOINT_OPEN - PUPPET_GRIPPER_JOINT_CLOSE) + PUPPET_GRIPPER_JOINT_CLOSE MASTER2PUPPET_JOINT_FN = lambda x: PUPPET_GRIPPER_JOINT_UNNORMALIZE_FN(MASTER_GRIPPER_JOINT_NORMALIZE_FN(x)) MASTER_GRIPPER_VELOCITY_NORMALIZE_FN = lambda x: x / (MASTER_GRIPPER_POSITION_OPEN - MASTER_GRIPPER_POSITION_CLOSE) PUPPET_GRIPPER_VELOCITY_NORMALIZE_FN = lambda x: x / (PUPPET_GRIPPER_POSITION_OPEN - PUPPET_GRIPPER_POSITION_CLOSE) MASTER_POS2JOINT = lambda x: MASTER_GRIPPER_POSITION_NORMALIZE_FN(x) * (MASTER_GRIPPER_JOINT_OPEN - MASTER_GRIPPER_JOINT_CLOSE) + MASTER_GRIPPER_JOINT_CLOSE MASTER_JOINT2POS = lambda x: MASTER_GRIPPER_POSITION_UNNORMALIZE_FN((x - MASTER_GRIPPER_JOINT_CLOSE) / (MASTER_GRIPPER_JOINT_OPEN - MASTER_GRIPPER_JOINT_CLOSE)) PUPPET_POS2JOINT = lambda x: PUPPET_GRIPPER_POSITION_NORMALIZE_FN(x) * (PUPPET_GRIPPER_JOINT_OPEN - PUPPET_GRIPPER_JOINT_CLOSE) + PUPPET_GRIPPER_JOINT_CLOSE PUPPET_JOINT2POS = lambda x: PUPPET_GRIPPER_POSITION_UNNORMALIZE_FN((x - PUPPET_GRIPPER_JOINT_CLOSE) / (PUPPET_GRIPPER_JOINT_OPEN - PUPPET_GRIPPER_JOINT_CLOSE)) MASTER_GRIPPER_JOINT_MID = (MASTER_GRIPPER_JOINT_OPEN + MASTER_GRIPPER_JOINT_CLOSE)/2