Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

marmotlab/PRIMAL2

Repository files navigation

PRIMAL_2: Pathfinding via Reinforcement and Imitation Multi_agent Learning - Lifelong

Setting up Code

  • cd into the od_mstar3 folder.
  • python3 setup.py build_ext --inplace
  • Check by going back to the root of the git folder, running python3 and "import cpp_mstar"

Running Code

  • Pick appropriate number of meta agents via variables NUM_META_AGENTS and NUM_IL_META_AGENTS in parameters.py
  • The number of RL meta-agents is implicity defined by the difference between total meta-agents and IL meta-agents (NUM_RL_META_AGENTS = NUM_META_AGENTS - NUM_IL_META_AGENTS)
  • Name training run via training_version in parameters.py
  • call python driver.py

Frequently asked questions

  1. I got pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to "None" when running on a server.

Running your code starting with xvfb-run will solve the problem. You may refer to https://stackoverflow.com/questions/60922076/pyglet-canvas-xlib-nosuchdisplayexception-cannot-connect-to-none-only-happens and relevant issues on StackFlow for help.

  1. In one-shot environment, why agent turns black after reaching a goal?

In the one-shot scenario, agent will 'disappear'(i.e., removed from the env). For visualization we keep it as black. Removal of agent who has achieved its goal is necessary, since a lot of narrow corridors in the map could cause unsolvable block and collision. One-shot scenario per se is just a way to test the optimality of the planner. By contrast we do not remove any agents for any reason in continuous env.

Key Files

  • parameters.py - Training parameters.
  • driver.py - Driver of program. Holds global network for A3C.
  • Runner.py - Compute node for training. Maintains a single meta agent.
  • Worker.py - A single agent in a simulation environment. Majority of episode computation, including gradient calculation, occurs here.
  • Ray_ACNet.py - Defines network architecture.
  • Env_Builder.py - Defines the lower level structure of the Lifelong MAPF environment for PRIMAL2, including the world and agents class.
  • PRIMAL2Env.py - Defines the high level environment class.
  • Map_Generator2.py - Algorithm used to generate worlds, parameterized by world size, obstacle density and wall components.
  • PRIMAL2Observer.py - Defines the decentralized observation of each PRIMAL2 agent.
  • Obsever_Builder.py - The high level observation class

Other Links

Authors

Mehul Damani

Zhiyao Luo

Emerson Wenzel

Guillaume Sartoretti

About

Training code PRIMAL2 - Public Repo

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors