VMAS Environment Wrapper#
Vectorized Multi-Agent Simulator (VMAS) is a vectorized differentiable simulator designed for efficient Multi-Agent Reinforcement Learning benchmarking. It is comprised of a vectorized 2D physics engine written in PyTorch and a set of challenging multi-robot scenarios. Additional scenarios can be implemented through a simple and modular interface.
[1] proroklab/VectorizedMultiAgentSimulator
[18]:
from prt_rl.env.interface import MultiAgentEnvParams
from prt_rl.env.wrappers import VmasWrapper
from prt_rl.utils.runners import Runner
from prt_rl.utils.recorders import GifRecorder
from prt_rl.utils.policy import RandomPolicy
[19]:
env = VmasWrapper(
scenario='discovery',
num_envs=1,
max_steps=100,
render_mode='rgb_array',
)
print(env.get_parameters())
MultiAgentEnvParams(num_agents=5, agent=EnvParams(action_shape=(2,), action_continuous=True, action_min=[-1.0, -1.0], action_max=[1.0, 1.0], observation_shape=(19,), observation_continuous=True, observation_min=[-inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf, -inf], observation_max=[inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf, inf]))
[20]:
policy = RandomPolicy(env_params=env.get_parameters())
[21]:
runner = Runner(
env=env,
policy=policy,
recorder=GifRecorder(
filename="vmas_wrapper.gif",
fps=10,
),
)
[22]:
runner.run()