Git Product home page Git Product logo

primal2's Introduction

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

primal2's People

Contributors

gilesluo avatar gsartoretti avatar emerson-wenzel avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.