Coder Social home page Coder Social logo

mcfs's Introduction

MCFS

This repository is the implementation of the unified version of Connected Fermat Spiral and the Multi-Robot Connected Fermat Spiral with its two optimizations from the following paper:

Jingtao Tang and Hang Ma. "Multi-Robot Connected Fermat Spiral Coverage." ICAPS 2024 (to appear). [paper], [simulation], [project]

Please cite this paper if you use this code for the multi-robot coverage path planning problem.

Installation

pip install -r requirements.txt

Usage

python main.py [-h] [--aug AUG] [--ref REF] [--read_mmrtc_sol READ_MMRTC_SOL] [--write_sol WRITE_SOL] [--draw DRAW] istc
  • Required:
    • istc: the instance name stored in directory 'data/instances'.
  • Optional:
    • --aug AUG: Is using optimization of isograph augmentation (default=True)
    • --ref REF: Is using optimization of MMRTC solution refinement (default=True)
    • --read_mmrtc_sol READ_MMRTC_SOL: Is reading prerun MMRTC solution (default=True)
    • --write_sol WRITE_SOL: Is writing the MMRTC and MCPP solutions (default=False)
    • --draw DRAW: Is drawing the MCPP solution (default=False)

File Structure

  • main.py: main function
  • exp_ablation_study.ipynb: code for ablation study
  • exp_case_study.ipynb: code for case study
  • exp_comparison.ipynb: code for performance evaluation with two other baseline methods
  • MIP-MCPP: repo of the work "Mixed Integer Programming for Time-Optimal Multi-Robot Coverage Path Planning With Efficient Heuristics"
  • MCFS/
    • isograph.py: the isograph class representing the set of contouring isolines
    • isolines.py: two classes of the individual isoline and set of layered contouring isolines
    • MMRTC.py: wrappers of Gurobi and SCIP solvers for MMRTC models
    • planning.py: the unified version of CFS and a simple A* pathfinder
    • selector.py: the class of stitching tuple selectors for the unified version of CFS
    • solution_refinement.py: the second optimization of MMRTC solution refinement, including the main algorithm and the two subroutines of add_improving_repetition and pairwise_isovertices_splitting
    • stitching_tuple.py: the class of individual stitching tuple and the set $O$ of stitching tuples
  • data/
    • instances: metadata of the MCPP instances
    • polygons: the respective shapely polygon objects of the MCPP instances (for MCFS)
    • rectilinearified: the rectilinearized grid approximations of the MCPP instances (for the two comparing baselines)
    • solutions: MMRTC and MCPP solutions for MCFS w/ two optimizations of isograph augmentation and solution refinement

License

MCFS is released under the GPL version 3. See LICENSE.txt for further details.

mcfs's People

Contributors

reso1 avatar

Stargazers

 avatar  avatar  avatar  avatar Zipeng Dai avatar

Watchers

 avatar

mcfs's Issues

关于data中polygons中的图形

   请问polygons文件中的关于多边形的文件,比如A.plg,是怎么得到的呢?拜读了这篇代码但仍然找不到答案,希望作者百忙之中能回答我的问题,将感激不尽!

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.