Git Product home page Git Product logo

hetero-mapf's Introduction

Hetero-MAPF

Overview

Solve MAPF problem when the agents are heterogeneous.

Source Code

Requirement

sudo apt-get install g++ cmake libboost-program-options-dev libyaml-cpp-dev \
clang-tidy clang-format python3-matplotlib libompl-dev libeigen3-dev

Note: Please make sure your matplotlib version is above 2.0, otherwise it may show weird image while visualization. You can upgrade it by pip3 install -U matplotlib.

Build

mkdir build 
cd build
cmake -DCMAKE_BUILD_TYPE=Release  ..
make -j8
  • make: Build Hetero-MAPF code
  • make clang-format: Re-format all source files
  • make all: Build all three targets above

Todo: Prepare for doxygen.

Run example instances

# make sure your are in build folder
# default 5 agent in a batch
./planner -i ../maps/random.yaml -o output.yaml 
# or compute 10 agents in a whole batch
./planner -i ../maps/random.yaml -o output.yaml -b 10

The maps folder also contains a warehouse map for test.

Visualize Results

# make sure your are in build folder
python3 ../src/visualize.py -m ../maps/random.yaml -s output.yaml 

Agent Configuration

The agent configurations, including the size, the kinematic constraints, and penalty functions can be changed in src/config.yaml.

License

The code is provided under the MIT License.

hetero-mapf's People

Contributors

zijinoier avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hetero-mapf's Issues

Add Python environment setup

Description

This feature involves adding a requirements.txt file with appropriate libraries needed for the visualization script.
Additional info will be needed in the README.md to setup Python correctly.

Proposals

Given that it is a very simple script and only used for visualization, having a virtual environment is not necessary and the few libraries needed (numpy, matplotlib, and PyQt5) can be directly installed from the requirements.txt file.

The step length of Holonomic model is fixed

Description

Currently the basic step length for holonomic model is fixed and won't change when the agent size is not default. The step length should relate to the size of agent so that the single-planner can search properly.
The ackermann model doesn't have this bug.

Proposal

Modify the construction function in HolonomicModel.

Low-level planner parallelization

Description

Although there is no good idea to parallelize the high-level body conflict tree for the time being, it is feasible to parallelize the low-level planner.
It will not only speed up at the root node when we plan for all the agents with no constraints. Also, we can now popped up more than one node a time to extend the search tree, since the single planner is parallelized. This will certainly increase the search speed of our algorithm.
The impact of this modification on the algorithm's completeness remains to be examined.

Proposal

To be decided.

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.