Skip to content

Commit 75a4c9f

Browse files
authored
Merge pull request #724 from ARISE-Initiative/env_seeding
Env seeding
2 parents 3cacd1d + bd14c5e commit 75a4c9f

File tree

24 files changed

+220
-39
lines changed

24 files changed

+220
-39
lines changed

robosuite/environments/manipulation/door.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ def __init__(
170170
camera_segmentations=None, # {None, instance, class, element}
171171
renderer="mjviewer",
172172
renderer_config=None,
173+
seed=None,
173174
):
174175
# settings for table top (hardcoded since it's not an essential part of the environment)
175176
self.table_full_size = (0.8, 0.3, 0.05)
@@ -212,6 +213,7 @@ def __init__(
212213
camera_segmentations=camera_segmentations,
213214
renderer=renderer,
214215
renderer_config=renderer_config,
216+
seed=seed,
215217
)
216218

217219
def reward(self, action=None):
@@ -312,6 +314,7 @@ def _load_model(self):
312314
ensure_object_boundary_in_range=False,
313315
ensure_valid_placement=True,
314316
reference_pos=self.table_offset,
317+
rng=self.rng,
315318
)
316319

317320
# task includes arena, robot, and objects of interest

robosuite/environments/manipulation/lift.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ def __init__(
175175
camera_segmentations=None, # {None, instance, class, element}
176176
renderer="mjviewer",
177177
renderer_config=None,
178+
seed=None,
178179
):
179180
# settings for table top
180181
self.table_full_size = table_full_size
@@ -217,6 +218,7 @@ def __init__(
217218
camera_segmentations=camera_segmentations,
218219
renderer=renderer,
219220
renderer_config=renderer_config,
221+
seed=seed,
220222
)
221223

222224
def reward(self, action=None):
@@ -312,6 +314,7 @@ def _load_model(self):
312314
size_max=[0.022, 0.022, 0.022], # [0.018, 0.018, 0.018])
313315
rgba=[1, 0, 0, 1],
314316
material=redwood,
317+
rng=self.rng,
315318
)
316319

317320
# Create placement initializer
@@ -329,6 +332,7 @@ def _load_model(self):
329332
ensure_valid_placement=True,
330333
reference_pos=self.table_offset,
331334
z_offset=0.01,
335+
rng=self.rng,
332336
)
333337

334338
# task includes arena, robot, and objects of interest

robosuite/environments/manipulation/nut_assembly.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ def __init__(
189189
camera_segmentations=None, # {None, instance, class, element}
190190
renderer="mjviewer",
191191
renderer_config=None,
192+
seed=None,
192193
):
193194
# task settings
194195
self.single_object_mode = single_object_mode
@@ -242,6 +243,7 @@ def __init__(
242243
camera_segmentations=camera_segmentations,
243244
renderer=renderer,
244245
renderer_config=renderer_config,
246+
seed=seed,
245247
)
246248

247249
def reward(self, action=None):
@@ -424,6 +426,7 @@ def _load_model(self):
424426
ensure_valid_placement=True,
425427
reference_pos=self.table_offset,
426428
z_offset=0.02,
429+
rng=self.rng,
427430
)
428431
)
429432
# Reset sampler before adding any new samplers / objects
@@ -597,7 +600,7 @@ def _reset_internal(self):
597600
# Move objects out of the scene depending on the mode
598601
nut_names = {nut.name for nut in self.nuts}
599602
if self.single_object_mode == 1:
600-
self.obj_to_use = random.choice(list(nut_names))
603+
self.obj_to_use = self.rng.choice(list(nut_names))
601604
for nut_type, i in self.nut_to_id.items():
602605
if nut_type.lower() in self.obj_to_use.lower():
603606
self.nut_id = i

robosuite/environments/manipulation/pick_place.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ def __init__(
211211
camera_segmentations=None, # {None, instance, class, element}
212212
renderer="mjviewer",
213213
renderer_config=None,
214+
seed=None,
214215
):
215216
# task settings
216217
self.single_object_mode = single_object_mode
@@ -267,6 +268,7 @@ def __init__(
267268
camera_segmentations=camera_segmentations,
268269
renderer=renderer,
269270
renderer_config=renderer_config,
271+
seed=seed,
270272
)
271273

272274
def reward(self, action=None):
@@ -446,6 +448,7 @@ def _get_placement_initializer(self):
446448
ensure_valid_placement=True,
447449
reference_pos=self.bin1_pos,
448450
z_offset=self.z_offset,
451+
rng=self.rng,
449452
)
450453
)
451454

@@ -484,6 +487,7 @@ def _get_placement_initializer(self):
484487
ensure_valid_placement=False,
485488
reference_pos=self.bin1_pos,
486489
z_offset=self.bin2_pos[2] - self.bin1_pos[2],
490+
rng=self.rng,
487491
)
488492
)
489493
index += 1
@@ -711,7 +715,7 @@ def _reset_internal(self):
711715
# Move objects out of the scene depending on the mode
712716
obj_names = {obj.name for obj in self.objects}
713717
if self.single_object_mode == 1:
714-
self.obj_to_use = random.choice(list(obj_names))
718+
self.obj_to_use = self.rng.choice(list(obj_names))
715719
for obj_type, i in self.object_to_id.items():
716720
if obj_type.lower() in self.obj_to_use.lower():
717721
self.object_id = i

robosuite/environments/manipulation/stack.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ def __init__(
175175
camera_segmentations=None, # {None, instance, class, element}
176176
renderer="mjviewer",
177177
renderer_config=None,
178+
seed=None,
178179
):
179180
# settings for table top
180181
self.table_full_size = table_full_size
@@ -217,6 +218,7 @@ def __init__(
217218
camera_segmentations=camera_segmentations,
218219
renderer=renderer,
219220
renderer_config=renderer_config,
221+
seed=seed,
220222
)
221223

222224
def reward(self, action):
@@ -382,6 +384,7 @@ def _load_model(self):
382384
ensure_valid_placement=True,
383385
reference_pos=self.table_offset,
384386
z_offset=0.01,
387+
rng=self.rng,
385388
)
386389

387390
# task includes arena, robot, and objects of interest

robosuite/environments/manipulation/tool_hang.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ def __init__(
171171
camera_segmentations=None, # {None, instance, class, element}
172172
renderer="mjviewer",
173173
renderer_config=None,
174+
seed=None,
174175
):
175176
# settings for table top
176177
self.table_full_size = table_full_size
@@ -210,6 +211,7 @@ def __init__(
210211
camera_segmentations=camera_segmentations,
211212
renderer=renderer,
212213
renderer_config=renderer_config,
214+
seed=seed,
213215
)
214216

215217
def reward(self, action=None):
@@ -392,6 +394,7 @@ def _get_placement_initializer(self):
392394
ensure_valid_placement=False,
393395
reference_pos=self.table_offset,
394396
z_offset=z_offset,
397+
rng=self.rng,
395398
)
396399
)
397400

robosuite/environments/manipulation/two_arm_handover.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,7 @@ def __init__(
175175
camera_segmentations=None, # {None, instance, class, element}
176176
renderer="mjviewer",
177177
renderer_config=None,
178+
seed=None,
178179
):
179180
# Task settings
180181
self.prehensile = prehensile
@@ -223,6 +224,7 @@ def __init__(
223224
camera_segmentations=camera_segmentations,
224225
renderer=renderer,
225226
renderer_config=renderer_config,
227+
seed=seed,
226228
)
227229

228230
def reward(self, action=None):
@@ -347,7 +349,7 @@ def _load_model(self):
347349
)
348350

349351
# initialize objects of interest
350-
self.hammer = HammerObject(name="hammer")
352+
self.hammer = HammerObject(name="hammer", rng=self.rng)
351353

352354
# Create placement initializer
353355
if self.placement_initializer is not None:
@@ -366,6 +368,7 @@ def _load_model(self):
366368
ensure_object_boundary_in_range=False,
367369
ensure_valid_placement=True,
368370
reference_pos=self.table_offset,
371+
rng=self.rng,
369372
)
370373

371374
# task includes arena, robot, and objects of interest

robosuite/environments/manipulation/two_arm_lift.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@ def __init__(
172172
camera_segmentations=None, # {None, instance, class, element}
173173
renderer="mjviewer",
174174
renderer_config=None,
175+
seed=None,
175176
):
176177
# settings for table top
177178
self.table_full_size = table_full_size
@@ -214,6 +215,7 @@ def __init__(
214215
camera_segmentations=camera_segmentations,
215216
renderer=renderer,
216217
renderer_config=renderer_config,
218+
seed=seed,
217219
)
218220

219221
def reward(self, action=None):
@@ -350,6 +352,7 @@ def _load_model(self):
350352
ensure_valid_placement=True,
351353
reference_pos=self.table_offset,
352354
rotation=(np.pi + -np.pi / 3, np.pi + np.pi / 3),
355+
rng=self.rng,
353356
)
354357

355358
# task includes arena, robot, and objects of interest

robosuite/environments/manipulation/two_arm_peg_in_hole.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ def __init__(
192192
camera_segmentations=None, # {None, instance, class, element}
193193
renderer="mjviewer",
194194
renderer_config=None,
195+
seed=None,
195196
):
196197
# Assert that the gripper type is None
197198
assert gripper_types is None, "Tried to specify gripper other than None in TwoArmPegInHole environment!"
@@ -233,6 +234,7 @@ def __init__(
233234
camera_segmentations=camera_segmentations,
234235
renderer=renderer,
235236
renderer_config=renderer_config,
237+
seed=seed,
236238
)
237239

238240
def reward(self, action=None):
@@ -350,6 +352,7 @@ def _load_model(self):
350352
material=greenwood,
351353
rgba=[0, 1, 0, 1],
352354
joints=None,
355+
rng=self.rng,
353356
)
354357

355358
# Load hole object

robosuite/environments/manipulation/two_arm_transport.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ def __init__(
173173
camera_segmentations=None, # {None, instance, class, element}
174174
renderer="mjviewer",
175175
renderer_config=None,
176+
seed=None,
176177
):
177178
# settings for table top
178179
self.tables_boundary = tables_boundary
@@ -219,6 +220,7 @@ def __init__(
219220
camera_segmentations=camera_segmentations,
220221
renderer=renderer,
221222
renderer_config=renderer_config,
223+
seed=seed,
222224
)
223225

224226
def reward(self, action=None):
@@ -348,8 +350,9 @@ def _load_model(self):
348350
handle_density=150.0,
349351
handle_friction=4.0,
350352
head_density_ratio=1.5,
353+
rng=self.rng,
351354
)
352-
trash = BoxObject(name="trash", size=[0.02, 0.02, 0.02], material=redwood)
355+
trash = BoxObject(name="trash", size=[0.02, 0.02, 0.02], material=redwood, rng=self.rng)
353356
self.transport = TransportGroup(
354357
name="transport",
355358
payload=payload,
@@ -408,6 +411,7 @@ def _get_placement_initializer(self):
408411
ensure_valid_placement=False,
409412
reference_pos=table_pos,
410413
z_offset=0.001,
414+
rng=self.rng,
411415
)
412416
)
413417

0 commit comments

Comments
 (0)