Skip to content

Commit a80594e

Browse files
authored
Merge pull request #49 from dfki-ric/fix/compatibility
Add render_mode keyword
2 parents 11d8f69 + 50d92c7 commit a80594e

13 files changed

+39
-43
lines changed

deformable_gym/envs/base_env.py

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import abc
24
from typing import Any
35

@@ -7,7 +9,6 @@
79
import pybullet as pb
810
import pytransform3d.rotations as pr
911
from gymnasium import spaces
10-
from pybullet_utils import bullet_client as bc
1112

1213
from ..envs.bullet_simulation import BulletSimulation
1314
from ..helpers.pybullet_helper import MultibodyPose
@@ -36,24 +37,25 @@ class BaseBulletEnv(gym.Env, abc.ABC):
3637
robot: BulletRobot
3738
observation_space: spaces.Box
3839
action_space: spaces.Box
40+
metadata = {"render_modes": ["human"]}
3941

4042
def __init__(
4143
self,
42-
gui: bool = True,
4344
real_time: bool = False,
4445
horizon: int = 100,
4546
soft: bool = False,
4647
verbose: bool = False,
4748
time_delta: float = 0.001,
4849
verbose_dt: float = 10.00,
4950
pybullet_options: str = "",
51+
render_mode: str | None = None,
5052
):
5153

52-
self.gui = gui
5354
self.verbose = verbose
5455
self.horizon = horizon
56+
self.render_mode = render_mode
5557

56-
mode = pb.GUI if gui else pb.DIRECT
58+
mode = pb.GUI if render_mode == "human" else pb.DIRECT
5759

5860
self.simulation = BulletSimulation(
5961
soft=soft,
@@ -129,7 +131,7 @@ def render(self, mode: str = "human"):
129131
:param mode: Render mode. Only 'human' is allowed.
130132
"""
131133
if mode == "human":
132-
assert self.gui
134+
assert self.render_mode == "human"
133135
else:
134136
raise NotImplementedError(f"Render mode {mode} not supported")
135137

examples/floating_mia_example.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
Floating Mia Example
88
=========
99
10-
This is an example of how to use the FloatingMiaGraspEnv. A random policy is
10+
This is an example of how to use the FloatingMiaGraspEnv. A random policy is
1111
then used to generate ten episodes.
1212
1313
"""
1414

15-
env = gymnasium.make("FloatingMiaGraspInsole-v0")
15+
env = gymnasium.make("FloatingMiaGraspInsole-v0", render_mode="human")
1616

1717
obs, info = env.reset()
1818
episode_return = 0

examples/floating_shadow_example.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
Floating Shadow Example
88
=========
99
10-
This is an example of how to use the FloatingShadowGraspEnv. A random policy is then
11-
used to generate ten episodes.
10+
This is an example of how to use the FloatingShadowGraspEnv. A random policy is then
11+
used to generate ten episodes.
1212
1313
"""
1414

15-
env = gymnasium.make("FloatingShadowGraspInsole-v0")
15+
env = gymnasium.make("FloatingShadowGraspInsole-v0", render_mode="human")
1616

1717

1818
obs, info = env.reset()

examples/parallel_floating_mia_example.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
SEED = 0
66

7-
env = gymnasium.make("FloatingMiaGraspInsole-v0", gui=False)
8-
env2 = gymnasium.make("FloatingMiaGraspInsole-v0", gui=False)
7+
env = gymnasium.make("FloatingMiaGraspInsole-v0")
8+
env2 = gymnasium.make("FloatingMiaGraspInsole-v0")
99

1010
obs, info = env.reset(seed=SEED)
1111
num_steps = 0

examples/uniform_initialisation_example.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
Floating Mia Example
99
=========
1010
11-
This is an example of how to use the FloatingMiaGraspEnv. A random policy is
11+
This is an example of how to use the FloatingMiaGraspEnv. A random policy is
1212
then used to generate ten episodes.
1313
1414
"""
@@ -23,7 +23,9 @@
2323
sampler = UniformSampler(low, high, seed=0)
2424

2525
env = gymnasium.make(
26-
"FloatingMiaGraspInsole-v0", initial_state_sampler=sampler, gui=True
26+
"FloatingMiaGraspInsole-v0",
27+
initial_state_sampler=sampler,
28+
render_mode="human",
2729
)
2830

2931
obs, info = env.reset()

examples/ur10_shadow_grasp_example.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
1111
"""
1212

13-
env = UR10ShadowGraspEnv(gui=True, object_name="insole")
13+
env = UR10ShadowGraspEnv(object_name="insole")
1414

1515
env.reset()
1616
episode_return = 0

examples/ur5_mia_grasp_example.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
1111
"""
1212

13-
env = UR5MiaGraspEnv(gui=True, object_name="insole2")
13+
env = UR5MiaGraspEnv(object_name="insole2")
1414

1515
env.reset()
1616
episode_return = 0

setup.py

+17-15
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,20 @@
44
with open("README.md", "r") as f:
55
long_description = f.read()
66

7-
setup(name='deformable_gym',
8-
version="0.3.3",
9-
maintainer='Melvin Laux',
10-
maintainer_email='[email protected]',
11-
description='Gym environments for grasping deformable objects',
12-
long_description=long_description,
13-
long_description_content_type="text/markdown",
14-
license='BSD-3-Clause',
15-
packages=["deformable_gym"],
16-
install_requires=[
17-
"pybullet",
18-
"gymnasium",
19-
"numpy>=1.23.5,<2.0.0",
20-
"pytransform3d"
21-
])
7+
setup(
8+
name="deformable_gym",
9+
version="0.3.4",
10+
maintainer="Melvin Laux",
11+
maintainer_email="[email protected]",
12+
description="Gym environments for grasping deformable objects",
13+
long_description=long_description,
14+
long_description_content_type="text/markdown",
15+
license="BSD-3-Clause",
16+
packages=["deformable_gym"],
17+
install_requires=[
18+
"pybullet",
19+
"gymnasium",
20+
"numpy>=1.23.5,<2.0.0",
21+
"pytransform3d",
22+
],
23+
)

tests/envs/test_floating_mia_grasp_env.py

-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
@pytest.fixture
88
def env():
99
return FloatingMiaGraspEnv(
10-
gui=False,
1110
verbose=False,
1211
horizon=10,
1312
object_name="insole_on_conveyor_belt/back",
14-
# observable_object_pos=True,
1513
)
1614

1715

@@ -59,7 +57,6 @@ def test_episode_reproducibility(env: FloatingMiaGraspEnv):
5957
env = FloatingMiaGraspEnv(
6058
verbose=False,
6159
horizon=3,
62-
gui=False,
6360
object_name="insole_on_conveyor_belt/back",
6461
)
6562

tests/envs/test_floating_shadow_grasp_env.py

-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
@pytest.fixture
88
def env():
99
return FloatingShadowGraspEnv(
10-
gui=False,
1110
verbose=False,
1211
horizon=10,
1312
object_name="insole",
@@ -60,7 +59,6 @@ def test_episode_reproducibility(env: FloatingShadowGraspEnv):
6059
env = FloatingShadowGraspEnv(
6160
verbose=False,
6261
horizon=3,
63-
gui=False,
6462
object_name="insole_on_conveyor_belt/back",
6563
)
6664

tests/envs/test_parallel_envs.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55

66
def test_parallel_envs():
7-
env = gymnasium.make("FloatingMiaGraspInsole-v0", gui=False, horizon=10)
8-
env2 = gymnasium.make("FloatingMiaGraspInsole-v0", gui=False, horizon=10)
7+
env = gymnasium.make("FloatingMiaGraspInsole-v0", horizon=10)
8+
env2 = gymnasium.make("FloatingMiaGraspInsole-v0", horizon=10)
99

1010
obs, info = env.reset(seed=SEED)
1111
num_steps = 0

tests/envs/test_ur10_shadow_grasp_env.py

-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
@pytest.fixture
88
def env():
99
return UR10ShadowGraspEnv(
10-
gui=False,
1110
verbose=False,
1211
horizon=10,
1312
object_name="insole",
@@ -61,7 +60,6 @@ def test_episode_reproducibility(env: UR10ShadowGraspEnv):
6160
env = UR10ShadowGraspEnv(
6261
verbose=False,
6362
horizon=3,
64-
gui=False,
6563
object_name="insole_on_conveyor_belt/back",
6664
)
6765

tests/envs/test_ur5_mia_grasp_env.py

-3
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
@pytest.fixture
88
def env():
99
return UR5MiaGraspEnv(
10-
gui=False,
1110
verbose=False,
1211
horizon=10,
1312
object_name="insole",
14-
# observable_object_pos=True,
1513
)
1614

1715

@@ -43,7 +41,6 @@ def test_episode_reproducibility(env: UR5MiaGraspEnv):
4341
env = UR5MiaGraspEnv(
4442
verbose=False,
4543
horizon=3,
46-
gui=False,
4744
object_name="insole_on_conveyor_belt/back",
4845
)
4946

0 commit comments

Comments
 (0)