Skip to content

Commit d459c0e

Browse files
committed
wipe counter and pick egg env - still need to fix force tracking for continuous gripper control
1 parent a0c9ea5 commit d459c0e

17 files changed

Lines changed: 2398 additions & 12 deletions

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ build/
1717
demos/
1818
tmp/
1919

20+
resources/videos/
21+
oopsiebench/envs/behavior1k/teleop_videos/
22+

damagesim/omnigibson/params/damage_params.py

Lines changed: 85 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,23 @@
2424
"add_firewood": {
2525
"categories": ["agent"],
2626
"names": [],
27-
}
27+
},
28+
"nav_to_table": {
29+
"categories": ["vase", "pedestal_table", "swivel_chair"],
30+
"names": [],
31+
},
32+
"place_bowl": {
33+
"categories": ["bowl", "agent"],
34+
"names": [],
35+
},
36+
"place_plate": {
37+
"categories": ["plate", "agent"],
38+
"names": [],
39+
},
40+
"pick_egg": {
41+
"categories": ["egg", "agent"],
42+
"names": [],
43+
},
2844
}
2945

3046
PARAMS = {
@@ -42,7 +58,7 @@
4258
# ── Robots (OG category = "agent") ──────────────────────────────────
4359
"agent": {
4460
# TODO: Add mechanical damage evaluator back, need to debug mech damage params
45-
"damage_evaluators": ["mechanical", "thermal"],
61+
"damage_evaluators": ["mechanical","thermal", "electrical"],
4662
# dict_keys(['panda_link0', 'panda_link1', 'panda_link2', 'panda_link3', 'panda_link4', 'panda_link5', 'panda_link6', 'panda_link7', 'panda_hand', 'panda_leftfinger', 'panda_rightfinger', 'eef_link'])
4763
"damageablefrankapanda_damageable_links": [
4864
"panda_link0", "panda_link1", "panda_link2", "panda_link3", "panda_link4", "panda_link5", "panda_link6", "panda_link7", "panda_hand", "panda_leftfinger", "panda_rightfinger", "eef_link"
@@ -68,6 +84,15 @@
6884
"right_gripper_link", "right_gripper_finger_link1",
6985
"right_gripper_finger_link2", "right_realsense_link",
7086
],
87+
"electrical": {
88+
"damage_threshold": 20.0,
89+
"scale": 5.0,
90+
"water_system_name": "water",
91+
"link_thresholds": {
92+
"screen": {"damage_threshold": 50.0, "scale": 10.0},
93+
"keyboard": {"damage_threshold": 50.0, "scale": 8.0},
94+
},
95+
},
7196
"mechanical": {
7297
"impact_damage_sensitivity": 0.01,
7398
"qs_damage_sensitivity": 1.0,
@@ -157,6 +182,35 @@
157182
"damage_scale": 100.0,
158183
},
159184
},
185+
"vase": {
186+
"damage_evaluators": ["mechanical"],
187+
"mechanical": {
188+
"impact_damage_sensitivity": 1.0,
189+
"qs_damage_sensitivity": 0.5,
190+
"damage_threshold": 20.0,
191+
"damage_scale": 100.0,
192+
},
193+
},
194+
"pedestal_table": {
195+
"damage_evaluators": ["mechanical"],
196+
"mechanical": {
197+
# Very robust: only extreme impacts will register damage
198+
"impact_damage_sensitivity": 0.01,
199+
"qs_damage_sensitivity": 0.1,
200+
"damage_threshold": 300.0,
201+
"damage_scale": 1.0,
202+
},
203+
},
204+
"swivel_chair": {
205+
"damage_evaluators": ["mechanical"],
206+
"mechanical": {
207+
# Also robust: collisions with the robot should almost never matter
208+
"impact_damage_sensitivity": 0.02,
209+
"qs_damage_sensitivity": 0.1,
210+
"damage_threshold": 250.0,
211+
"damage_scale": 1.0,
212+
},
213+
},
160214
"bottle_of_beer": {
161215
"damage_evaluators": ["mechanical"],
162216
"mechanical": {
@@ -232,6 +286,35 @@
232286
"damage_scale": 1.0,
233287
},
234288
},
289+
"egg": {
290+
"damage_evaluators": ["mechanical"],
291+
"mechanical": {
292+
"impact_damage_sensitivity": 2.0,
293+
"qs_damage_sensitivity": 2.0,
294+
"damage_threshold": 20.0,
295+
"damage_scale": 2.0,
296+
},
297+
},
298+
"bowl": {
299+
"damage_evaluators": ["mechanical"],
300+
"mechanical": {
301+
# Moderately fragile: drops register damage, gentle bumps don't
302+
"impact_damage_sensitivity": 1.0,
303+
"qs_damage_sensitivity": 0.5,
304+
"damage_threshold": 60.0,
305+
"damage_scale": 100.0,
306+
},
307+
},
308+
"place_mat": {
309+
"damage_evaluators": ["mechanical"],
310+
"mechanical": {
311+
# Very robust — it's a mat, essentially indestructible
312+
"impact_damage_sensitivity": 0.01,
313+
"qs_damage_sensitivity": 0.01,
314+
"damage_threshold": 500.0,
315+
"damage_scale": 1.0,
316+
},
317+
},
235318
"log": {
236319
"damage_evaluators": ["mechanical"],
237320
"mechanical": {
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
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

Comments
 (0)