task_name: OpenBox category_name: Articulated tool_keypoint_name_list: [tool_head, tool_tail, tool_side] object_keypoint_name_list: [articulated_object_head, articulated_object_tail] constraint_list: # make sure the robot gripper hits the box lid - keypoint_name: tool_tail target_keypoint_name: articulated_object_head tolerance: 0.0001 type: point2point_constraint # ensure surface of the gripper to be parallel to the box lid - axis_from_keypoint_name: tool_head axis_to_keypoint_name: tool_side target_axis: [1.0, 0, 0] target_axis_frame: object tolerance: 0.01 target_inner_product: 1 type: frame_axis_parallel - axis_from_keypoint_name: tool_head axis_to_keypoint_name: tool_tail target_axis_from_keypoint_name: articulated_object_head target_axis_to_keypoint_name: articulated_object_tail tolerance: 0.01 target_inner_product: -1 type: keypoint_axis_parallel # ensure gripper to point directly to the direction of the box - axis_from_keypoint_name: tool_head axis_to_keypoint_name: tool_side target_axis_from_keypoint_name: articulated_object_head target_axis_to_keypoint_name: articulated_object_tail tolerance: 0.01 target_inner_product: 0 type: keypoint_axis_orthogonal - axis_from_keypoint_name: tool_head axis_to_keypoint_name: tool_tail target_axis: [1.0, 0, 0] target_axis_frame: object tolerance: 0.01 target_inner_product: 0 type: frame_axis_orthogonal # for pre-actuation and post-actuation poses relative to the tool. # Z axis positive points from gripper to fingers and X axis points to the front direction. # Each pose is represented in the [[x,y,z,roll,pitch,yaw]] format # Units are in meters and radians respectively. # pre-actuation notion list. pre_actuation_motions: [["translate_x", -0.05], ["translate_z", -0.15]] # [move gripper below lid, adjust gripper direction and approach] # post-actuation motion list. pushing down post_actuation_motions: [["rotate", -0.5]] # [lift lid up] # trajectory time actuation_time: 24 # time to reach task goal pose pre_actuation_times: [16, 20] post_actuation_times: [32]