VMAS Environment Wrapper

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()
VMAS Wrapper