JAXMAPP: JAX-based Library for Multi-Agent Path Planning in Continuous Spaces

Overview

JAXMAPP: JAX-based Library for Multi-Agent Path Planning in Continuous Spaces

gallery roadmap metrics

JAXMAPP is a JAX-based library for multi-agent path planning (MAPP) in continuous spaces, with a particular emphasis on roadmap construction and evaluation. With JAXMAPP, You can:

  • Create MAPP problem instances with homogeneous/heterogeneous agents
  • Construct roadmaps and perform prioritized planning to solve MAPP
  • Develop and evaluate your own roadmap construction methods

Main contributors: Ryo Yonetani (@yonetaniryo), Keisuke Okumura (@Kei18)

Installation

The code has been tested on Ubuntu 16.04 and 18.04, as well as WSL2 (Ubuntu 20.04) on Windows 11. Planning can be performed only on the CPU, and the use of GPUs is also supported for training/evaluating machine-learning models. We also provide Dockerfile to replicate our setup.

venv

$ python -m venv .venv
$ source .venv/bin/activate
(.venv) $ make

Docker container

$ docker-compose build
$ docker-compose up -d dev
$ docker-compose exec dev bash

Docker container with CUDA enabled

$ docker-compose up -d dev-gpu
$ docker-compose exec dev-gpu bash

and update JAX modules in the container...

# pip install "jax[cuda]==0.2.25" -f https://storage.googleapis.com/jax-releases/jax_releases.html

Tutorials

Citation

@misc{jaxmapp_2022,
author = {Yonetani, Ryo and Okumura, Keisuke},
month = {2},
title = {JAXMAPP: JAX-based Library for Multi-Agent Path Planning in Continuous Spaces},
url = {https://github.com/omron-sinicx/jaxmapp},
year = {2022}
}


@inproceedings{okumura2022ctrm,
title={CTRMs: Learning to Construct Cooperative Timed Roadmaps for Multi-agent Path Planning in Continuous Spaces},
author={Okumura, Keisuke and Yonetani, Ryo and Nishimura, Mai and Kanezaki, Asako},
booktitle={Proceedings of the International Conference on Autonomous Agents and Multiagent Systems (AAMAS)},
year={2022}
}
You might also like...
Multi-task Multi-agent Soft Actor Critic for SMAC

Multi-task Multi-agent Soft Actor Critic for SMAC Overview The CARE formulti-task: Multi-Task Reinforcement Learning with Context-based Representation

A library of multi-agent reinforcement learning components and systems
A library of multi-agent reinforcement learning components and systems

Mava: a research framework for distributed multi-agent reinforcement learning Table of Contents Overview Getting Started Supported Environments System

A parallel framework for population-based multi-agent reinforcement learning.
A parallel framework for population-based multi-agent reinforcement learning.

MALib: A parallel framework for population-based multi-agent reinforcement learning MALib is a parallel framework of population-based learning nested

Pytorch modules for paralel models with same architecture. Ideal for multi agent-based systems
Pytorch modules for paralel models with same architecture. Ideal for multi agent-based systems

WideLinears Pytorch parallel Neural Networks A package of pytorch modules for fast paralellization of separate deep neural networks. Ideal for agent-b

[ICML 2020] Prediction-Guided Multi-Objective Reinforcement Learning for Continuous Robot Control
[ICML 2020] Prediction-Guided Multi-Objective Reinforcement Learning for Continuous Robot Control

PG-MORL This repository contains the implementation for the paper Prediction-Guided Multi-Objective Reinforcement Learning for Continuous Robot Contro

PyTorch implementation for Stochastic Fine-grained Labeling of Multi-state Sign Glosses for Continuous Sign Language Recognition.

Stochastic CSLR This is the PyTorch implementation for the ECCV 2020 paper: Stochastic Fine-grained Labeling of Multi-state Sign Glosses for Continuou

Information-Theoretic Multi-Objective Bayesian Optimization with Continuous Approximations

Information-Theoretic Multi-Objective Bayesian Optimization with Continuous Approximations Requirements The code is implemented in Python and requires

MPViT:Multi-Path Vision Transformer for Dense Prediction
MPViT:Multi-Path Vision Transformer for Dense Prediction

MPViT : Multi-Path Vision Transformer for Dense Prediction This repository inlcu

JAX-based neural network library

Haiku: Sonnet for JAX Overview | Why Haiku? | Quickstart | Installation | Examples | User manual | Documentation | Citing Haiku What is Haiku? Haiku i

Comments
  • fix bug of valid_linear_move

    fix bug of valid_linear_move

    Current valid_linear_move in jaxmapp.roadmap.utils incorrectly evaluate the validity when (1) agent is much smaller compared to its max_speed and (2) there is an obstacle around the destination of the movement. This is due to the fixed number of evaluations (num_max_steps=20) starting from the src point. Fix this problem by using jax.lax.while_loop.

    opened by yonetaniryo 0
  • Update build system

    Update build system

    This PR includes:

    • Update build system such that the whole jaxmapp package can be installed via pip, i.e., without additional make to compile cython module (@denkiwakame )
    • Minor fixes to support the latest version of jax (@yonetaniryo )
    opened by yonetaniryo 0
  • Separate dataset

    Separate dataset

    This PR separates data directory into a separate repository (omron-sinicx/jaxmapp-datasets) and allows user to download them, in addition to training data that requires a lot of time to create from scratch.

    opened by yonetaniryo 0
  • jax.numpy.nonzero() is very slow in jax>=0.2.26

    jax.numpy.nonzero() is very slow in jax>=0.2.26

    Found that jax.numpy.nonzero becomes very slow in from jax>=0.2.26, significantly impacting the runtime when trying to update the version of jax.

    Right now nonzero function is used in generate_from_nontimed_roadmap and generate_from_timed_roadmap in TimedRoadmap, e.g. https://github.com/omron-sinicx/jaxmapp/blob/109c9b71a13fad59788a5ed34e663d4430da8563/jaxmapp/roadmap/timed_roadmap.py#L107

    Replacing this with np.argwhere (acceptable because these two functions are not jit-compiled) would resolve the problem.

    opened by yonetaniryo 0
Owner
OMRON SINIC X
OMRON SINIC X
Predicting path with preference based on user demonstration using Maximum Entropy Deep Inverse Reinforcement Learning in a continuous environment

Preference-Planning-Deep-IRL Introduction Check my portfolio post Dependencies Gym stable-baselines3 PyTorch Usage Take Demonstration python3 record.

Tianyu Li 9 Oct 26, 2022
An all-in-one application to visualize multiple different local path planning algorithms

Table of Contents Table of Contents Local Planner Visualization Project (LPVP) Features Installation/Usage Local Planners Probabilistic Roadmap (PRM)

Abdur Javaid 47 Dec 30, 2022
MLOps will help you to understand how to build a Continuous Integration and Continuous Delivery pipeline for an ML/AI project.

page_type languages products description sample python azure azure-machine-learning-service azure-devops Code which demonstrates how to set up and ope

null 1 Nov 1, 2021
GAN JAX - A toy project to generate images from GANs with JAX

GAN JAX - A toy project to generate images from GANs with JAX This project aims to bring the power of JAX, a Python framework developped by Google and

Valentin Goldité 14 Nov 29, 2022
Mini-hmc-jax - A simple implementation of Hamiltonian Monte Carlo in JAX

mini-hmc-jax This is a simple implementation of Hamiltonian Monte Carlo in JAX t

Martin Marek 6 Mar 3, 2022
CLOOB training (JAX) and inference (JAX and PyTorch)

cloob-training Pretrained models There are two pretrained CLOOB models in this repo at the moment, a 16 epoch and a 32 epoch ViT-B/16 checkpoint train

Katherine Crowson 64 Nov 27, 2022
This project uses reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can learn to read tape. The project is dedicated to hero in life great Jesse Livermore.

Reinforcement-trading This project uses Reinforcement learning on stock market and agent tries to learn trading. The goal is to check if the agent can

Deepender Singla 1.4k Dec 22, 2022
An example showing how to use jax to train resnet50 on multi-node multi-GPU

jax-multi-gpu-resnet50-example This repo shows how to use jax for multi-node multi-GPU training. The example is adapted from the resnet50 example in d

Yangzihao Wang 20 Jul 4, 2022
A lightweight Python-based 3D network multi-agent simulator. Uses a cell-based congestion model. Calculates risk, loudness and battery capacities of the agents. Suitable for 3D network optimization tasks.

AMAZ3DSim AMAZ3DSim is a lightweight python-based 3D network multi-agent simulator. It uses a cell-based congestion model. It calculates risk, battery

Daniel Hirsch 13 Nov 4, 2022
A multi-entity Transformer for multi-agent spatiotemporal modeling.

baller2vec This is the repository for the paper: Michael A. Alcorn and Anh Nguyen. baller2vec: A Multi-Entity Transformer For Multi-Agent Spatiotempor

Michael A. Alcorn 56 Nov 15, 2022