mirror of
https://github.com/illiumst/marl-factory-grid.git
synced 2025-05-23 07:16:44 +02:00
first step towards simple make interface
This commit is contained in:
parent
ea4582a59e
commit
f9c05dc3bf
@ -1,27 +1,20 @@
|
|||||||
def rooms(n_agents=1):
|
def make(env_str, n_agents=1, pomdp_r=2, max_steps=400):
|
||||||
|
import yaml
|
||||||
|
from pathlib import Path
|
||||||
from environments.factory.factory_dirt_item import DirtItemFactory
|
from environments.factory.factory_dirt_item import DirtItemFactory
|
||||||
from environments.factory.factory_item import ItemFactory, ItemProperties
|
from environments.factory.factory_item import ItemFactory, ItemProperties
|
||||||
from environments.factory.factory_dirt import DirtProperties, DirtFactory
|
from environments.factory.factory_dirt import DirtProperties, DirtFactory
|
||||||
from environments.utility_classes import MovementProperties, ObservationProperties, AgentRenderOptions
|
from environments.utility_classes import MovementProperties, ObservationProperties, AgentRenderOptions
|
||||||
|
|
||||||
obs_props = ObservationProperties(render_agents=AgentRenderOptions.NOT,
|
with (Path(__file__).parent / 'levels' / 'parameters' / f'{env_str}.yaml').open('r') as stream:
|
||||||
omit_agent_self=True,
|
dictionary = yaml.load(stream, Loader=yaml.FullLoader)
|
||||||
additional_agent_placeholder=None,
|
|
||||||
frames_to_stack=0,
|
obs_props = ObservationProperties(render_agents=AgentRenderOptions.COMBINED, frames_to_stack=0, pomdp_r=pomdp_r)
|
||||||
pomdp_r=2
|
|
||||||
)
|
factory_kwargs = dict(n_agents=n_agents, max_steps=max_steps, obs_prop=obs_props,
|
||||||
move_props = MovementProperties(allow_diagonal_movement=True,
|
mv_prop=MovementProperties(**dictionary['movement_props']),
|
||||||
allow_square_movement=True,
|
dirt_prop=DirtProperties(**dictionary['dirt_props']),
|
||||||
allow_no_op=False)
|
record_episodes=False, verbose=False, **dictionary['factory_props']
|
||||||
dirt_props = DirtProperties(initial_dirt_ratio=0.35, initial_dirt_spawn_r_var=0.1,
|
|
||||||
clean_amount=0.34,
|
|
||||||
max_spawn_amount=0.1, max_global_amount=20,
|
|
||||||
max_local_amount=1, spawn_frequency=0, max_spawn_ratio=0.05,
|
|
||||||
dirt_smear_amount=0.0, agent_can_interact=True)
|
|
||||||
factory_kwargs = dict(n_agents=n_agents, max_steps=400, parse_doors=True,
|
|
||||||
level_name='rooms', record_episodes=False, doors_have_area=False,
|
|
||||||
verbose=False,
|
|
||||||
mv_prop=move_props,
|
|
||||||
obs_prop=obs_props
|
|
||||||
)
|
)
|
||||||
return DirtFactory(dirt_props=dirt_props, **factory_kwargs)
|
|
||||||
|
return DirtFactory(**factory_kwargs)
|
||||||
|
19
environments/factory/levels/parameters/DirtyFactory-v0.yaml
Normal file
19
environments/factory/levels/parameters/DirtyFactory-v0.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
movement_props:
|
||||||
|
allow_diagonal_movement: True
|
||||||
|
allow_square_movement: True
|
||||||
|
allow_no_op: False
|
||||||
|
dirt_props:
|
||||||
|
initial_dirt_ratio: 0.35
|
||||||
|
initial_dirt_spawn_r_var : 0.1
|
||||||
|
clean_amount: 0.34
|
||||||
|
max_spawn_amount: 0.1
|
||||||
|
max_global_amount: 20
|
||||||
|
max_local_amount: 1
|
||||||
|
spawn_frequency: 0
|
||||||
|
max_spawn_ratio: 0.05
|
||||||
|
dirt_smear_amount: 0.0
|
||||||
|
agent_can_interact: True
|
||||||
|
factory_props:
|
||||||
|
parse_doors: True
|
||||||
|
level_name: "rooms"
|
||||||
|
doors_have_area: False
|
@ -1,11 +1,12 @@
|
|||||||
from environments.factory import rooms
|
from environments.factory import make
|
||||||
import random
|
import random
|
||||||
from gym.wrappers import FrameStack
|
from gym.wrappers import FrameStack
|
||||||
|
|
||||||
env = rooms(n_agents=2)
|
n_agents = 4
|
||||||
|
env = make('DirtyFactory-v0', n_agents=n_agents)
|
||||||
env = FrameStack(env, num_stack=3)
|
env = FrameStack(env, num_stack=3)
|
||||||
state, *_ = env.reset()
|
state, *_ = env.reset()
|
||||||
|
|
||||||
for i in range(1000):
|
for i in range(1000):
|
||||||
state, *_ = env.step([random.randint(0, 9), random.randint(0, 9)])
|
state, *_ = env.step([env.unwrapped.action_space.sample() for _ in range(n_agents)])
|
||||||
env.render()
|
env.render()
|
Loading…
x
Reference in New Issue
Block a user