Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ bin
trained_models
dist
requirements.resolved
.venv
build
8 changes: 5 additions & 3 deletions manual_control.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@
parser.add_argument("--seed", default=1, type=int, help="seed")
args = parser.parse_args()

if args.env_name and args.env_name.find("Duckietown") != -1:
if args.env_name and (args.env_name == 'MultiMap-v0' or args.env_name.find("Duckietown") != -1):
print(f'Using the environment: {args.env_name}')
env = gym.make(args.env_name)
else:
print(f'Using the map: {args.map_name}')
env = DuckietownEnv(
seed=args.seed,
map_name=args.map_name,
Expand All @@ -43,8 +47,6 @@
camera_rand=args.camera_rand,
dynamics_rand=args.dynamics_rand,
)
else:
env = gym.make(args.env_name)

env.reset()
env.render()
Expand Down
7 changes: 3 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@ def get_version(filename):
line = "daffy"

install_requires = [
"gym>=0.17.1",
"numpy>=1.10.0,<=1.20.0",
"pyglet",
# 'pyglet',
"gym>=0.17.1,<=0.23.1",
"numpy>=1.17.0,<1.24.0",
"pyglet==1.5.*",
"pyzmq>=16.0.0",
"opencv-python>=3.4",
"PyYAML>=3.11",
Expand Down
14 changes: 9 additions & 5 deletions src/gym_duckietown/envs/multimap_env.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@ class MultiMapEnv(gym.Env):
multi-taks learning
"""

def __init__(self, **kwargs):
def __init__(self, map_names=["straight_road", "4way", "udem1", "small_loop", "small_loop_cw", "zigzag_dists", "loop_obstacles", "loop_pedestrians"], **kwargs):
self.env_list = []

self.window = None
map_names = ["loop_only_duckies", "small_loop_only_duckies"]
# Try loading each of the available map files
for map_name in map_names:
env = DuckietownEnv(map_name=map_name, **kwargs)
env = gym.make(f'Duckietown-{map_name}-v0', **kwargs)

self.action_space = env.action_space
self.observation_space = env.observation_space
Expand Down Expand Up @@ -48,6 +47,11 @@ def reset(self):
env = self.env_list[self.cur_env_idx]
return env.reset()

@property
def frame_rate(self):
# Return the frame rate of the current environment
return self.env_list[self.cur_env_idx].frame_rate

def step(self, action):
env = self.env_list[self.cur_env_idx]

Expand All @@ -69,11 +73,11 @@ def render(self, mode="human", close=False):

# Make all environments use the same rendering window
if self.window is None:
ret = env.render(mode, close)
ret = env.render(mode=mode, close=close)
self.window = env.window
else:
env.window = self.window
ret = env.render(mode, close)
ret = env.render(mode=mode, close=close)

return ret

Expand Down
10 changes: 3 additions & 7 deletions src/gym_duckietown/randomization/randomizer.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import json

from numpy.random.mtrand import RandomState
from numpy.random import Generator

from .. import logger
from ..utils import get_file_path
Expand Down Expand Up @@ -33,11 +33,10 @@ def __init__(self, randomization_config_fp="default_dr.json", default_config_fp=
# Sorted list to generate parameters in the same order
self.keys = sorted(set(list(self.randomization_config.keys()) + list(self.default_config.keys())))

def randomize(self, rng: RandomState) -> dict:
def randomize(self, rng: Generator) -> dict:
"""Returns a dictionary of randomized parameters, with key: parameter name and value: randomized
value
"""
# assert isinstance(rng, RandomState)
randomization_settings = {}
# from numpy.random import Generator
# from numpy import __version__ as np_version
Expand All @@ -56,10 +55,7 @@ def randomize(self, rng: RandomState) -> dict:
except:
raise IndexError("Please check your randomization definition for: {}".format(k))

try:
setting = rng.randint(low=low, high=high, size=size)
except:
setting = rng.integers(low=low, high=high, size=size)
setting = rng.integers(low=low, high=high, size=size)

elif randomization_definition["type"] == "uniform":
try:
Expand Down
6 changes: 3 additions & 3 deletions src/gym_duckietown/simulator.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
from geometry import SE2value
from gym import spaces
from gym.utils import seeding
from numpy.random.mtrand import RandomState
from numpy.random import Generator, default_rng
from pyglet import gl, image, window

from duckietown_world import (
Expand Down Expand Up @@ -201,7 +201,7 @@ class Simulator(gym.Env):
grid_height: int
step_count: int
timestamp: float
np_random: RandomState
np_random: Generator
grid: List[TileDict]

def __init__(
Expand Down Expand Up @@ -1041,7 +1041,7 @@ def close(self):
pass

def seed(self, seed=None):
self.np_random, _ = seeding.np_random(seed)
self.np_random = default_rng(seed)
return [seed]

def _set_tile(self, i: int, j: int, tile: TileDict) -> None:
Expand Down