|
| 1 | +""" |
| 2 | +Task configuration for **nav_to_table**. |
| 3 | +
|
| 4 | +Scene : Rs_int (Tiago primitives-style) |
| 5 | +Robot : Tiago (tiago0) |
| 6 | +Damage: mechanical only (task objects of interest) |
| 7 | +""" |
| 8 | + |
| 9 | +from oopsiebench.envs.behavior1k.base import TaskConfig |
| 10 | + |
| 11 | +ROBOT_NAME = "tiago0" |
| 12 | +ROBOT_TYPE = "Tiago" |
| 13 | + |
| 14 | + |
| 15 | +# ── Task objects ──────────────────────────────────────────────────────── |
| 16 | + |
| 17 | +TASK_OBJECTS = { |
| 18 | + "pedestal_table": { |
| 19 | + "type": "DatasetObject", |
| 20 | + "name": "pedestal_table", |
| 21 | + "category": "pedestal_table", |
| 22 | + "model": "djflkd", |
| 23 | + "position": [-0.5, 0.0, 0.10], |
| 24 | + "orientation": [0.0, 0.0, 0.0, 1.0], |
| 25 | + "scale": [0.5, 0.5, 1.0], |
| 26 | + }, |
| 27 | + "vase": { |
| 28 | + "type": "DatasetObject", |
| 29 | + "name": "vase", |
| 30 | + "category": "vase", |
| 31 | + "model": "uuypot", |
| 32 | + "position": [-0.5, -1.0, 0.10], |
| 33 | + "orientation": [0.0, 0.0, 0.0, 1.0], |
| 34 | + "scale": [0.5, 0.5, 0.5], |
| 35 | + }, |
| 36 | + "swivel_chair": { |
| 37 | + "type": "DatasetObject", |
| 38 | + "name": "swivel_chair", |
| 39 | + "category": "swivel_chair", |
| 40 | + "model": "pkpcew", |
| 41 | + "position": [-0.5, 1.0, 0.50], |
| 42 | + "orientation": [0.0, 0.0, 0.0, 1.0], |
| 43 | + "scale": [1.0, 1.0, 1.0], |
| 44 | + }, |
| 45 | +} |
| 46 | + |
| 47 | + |
| 48 | +# ── Cameras ───────────────────────────────────────────────────────────── |
| 49 | + |
| 50 | +VIEWER_CAMERA_POS = [ |
| 51 | + 1.5345655679702759, |
| 52 | + -2.3398592472076416, |
| 53 | + 1.3116816282272339, |
| 54 | +] |
| 55 | +VIEWER_CAMERA_ORN = [ |
| 56 | + 0.605172872543335, |
| 57 | + 0.14635765552520752, |
| 58 | + 0.18393288552761078, |
| 59 | + 0.7606010437011719, |
| 60 | +] |
| 61 | + |
| 62 | +EXTERNAL_CAMERA_CONFIGS = { |
| 63 | + "external_sensor_0": { |
| 64 | + "position": [0.4859, -1.8219, 1.1402], |
| 65 | + "orientation": [0.5857, -0.0093, -0.0129, 0.8103], |
| 66 | + "horizontal_aperture": 10.0, |
| 67 | + }, |
| 68 | + "external_sensor_1": { |
| 69 | + "position": [0.2522, 0.0470, 1.0696], |
| 70 | + "orientation": [0.1991, -0.1991, -0.6785, 0.6785], |
| 71 | + "horizontal_aperture": 30.0, |
| 72 | + }, |
| 73 | + "external_sensor_2": { |
| 74 | + "position": [-0.7765, -0.8203, 0.9939], |
| 75 | + "orientation": [0.4566, -0.3285, -0.4831, 0.6710], |
| 76 | + "horizontal_aperture": 30.0, |
| 77 | + }, |
| 78 | + "external_sensor_3": { |
| 79 | + "position": [1.7508, -0.0198, 1.1778], |
| 80 | + "orientation": [0.3821, 0.4173, 0.6080, 0.5570], |
| 81 | + "horizontal_aperture": 20.0, |
| 82 | + }, |
| 83 | +} |
| 84 | + |
| 85 | + |
| 86 | +# ── Public entry point ────────────────────────────────────────────────── |
| 87 | + |
| 88 | + |
| 89 | +def get_task_config() -> TaskConfig: |
| 90 | + """ |
| 91 | + Build a TaskConfig for nav_to_table that matches the older Tiago teleop |
| 92 | + setup closely enough for use with scripts/teleop_b1k.py. |
| 93 | + """ |
| 94 | + return TaskConfig( |
| 95 | + task_name="nav_to_table", |
| 96 | + # OG macros |
| 97 | + use_gpu_dynamics=True, |
| 98 | + enable_transition_rules=False, |
| 99 | + # Scene: Tiago primitives-style indoor scene |
| 100 | + scene_config={ |
| 101 | + "type": "InteractiveTraversableScene", |
| 102 | + "scene_model": "Rs_int", |
| 103 | + "include_robots": False, |
| 104 | + "load_object_categories": ["floors", "walls", "breakfast_table"], |
| 105 | + }, |
| 106 | + # Robot |
| 107 | + robot_name=ROBOT_NAME, |
| 108 | + robot_type=ROBOT_TYPE, |
| 109 | + robot_config={ |
| 110 | + "type": ROBOT_TYPE, |
| 111 | + "name": ROBOT_NAME, |
| 112 | + "position": [0.0, 0.0, 0.0], |
| 113 | + "orientation": [0.0, 0.0, 0.0, 1.0], |
| 114 | + "default_arm_pose": "horizontal", |
| 115 | + "grasping_mode": "assisted", |
| 116 | + "obs_modalities": ["rgb", "depth"], |
| 117 | + "action_normalize": False, |
| 118 | + "self_collisions": True, |
| 119 | + "controller_config": { |
| 120 | + "arm_left": { |
| 121 | + "name": "InverseKinematicsController", |
| 122 | + "command_input_limits": None, |
| 123 | + }, |
| 124 | + "gripper_left": { |
| 125 | + "name": "MultiFingerGripperController", |
| 126 | + "command_input_limits": (0.0, 1.0), |
| 127 | + "mode": "smooth", |
| 128 | + }, |
| 129 | + "arm_right": { |
| 130 | + "name": "InverseKinematicsController", |
| 131 | + "command_input_limits": None, |
| 132 | + }, |
| 133 | + "gripper_right": { |
| 134 | + "name": "MultiFingerGripperController", |
| 135 | + "command_input_limits": (0.0, 1.0), |
| 136 | + "mode": "smooth", |
| 137 | + }, |
| 138 | + }, |
| 139 | + "exclude_sensor_names": ["left_eef_link", "right_eef_link"], |
| 140 | + }, |
| 141 | + # Objects |
| 142 | + task_objects=TASK_OBJECTS, |
| 143 | + # Cameras |
| 144 | + viewer_camera_pos=VIEWER_CAMERA_POS, |
| 145 | + viewer_camera_orn=VIEWER_CAMERA_ORN, |
| 146 | + external_camera_configs=EXTERNAL_CAMERA_CONFIGS, |
| 147 | + # Visualization: track only task objects (robot damage not the focus) |
| 148 | + target_objects_health_with_links=[ |
| 149 | + "pedestal_table@base_link", |
| 150 | + "vase@base_link", |
| 151 | + "swivel_chair@base_link", |
| 152 | + ], |
| 153 | + target_objects_health=[ |
| 154 | + "pedestal_table", |
| 155 | + "vase", |
| 156 | + "swivel_chair", |
| 157 | + ], |
| 158 | + target_objects_forces=[ |
| 159 | + "pedestal_table@base_link", |
| 160 | + "vase@base_link", |
| 161 | + "swivel_chair@base_link", |
| 162 | + ], |
| 163 | + force_keys=["filtered_qs_forces", "impact_forces"], |
| 164 | + # Default paths (Behavior1k-style layout) |
| 165 | + default_collect_hdf5="demos/behavior1k/teleop_data/nav_to_table.hdf5", |
| 166 | + default_playback_hdf5="demos/behavior1k/playback_data/nav_to_table_playback.hdf5", |
| 167 | + default_video_dir="demos/behavior1k/playback_videos/nav_to_table", |
| 168 | + ) |
| 169 | + |
0 commit comments