Skip to content

MDP-Group-16/TMSTC_Star

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TMSTC-Star

A Turn-minimizing Algorithm For Multi-robot Coverage Path Planning

Fork changes

This fork was only tested with ROS Noetic.

A reworked version of the original TMSTC_Star package was implemented as a service that takes a map, initial robot positions, and the cleaning tool width and returns a list of paths. Mostly identical to original results, however, the grid resizing is now done using the grid_map package and uses opencv.

I have also completely removed the turtlebot simulation since this was not needed here and should be decoupled from TMSTC* in a demo package.

Description

It partitions the map with a minimum number of bricks as spanning tree’s branches, greedily connects bricks to form a complete spanning tree and then applies the greedy strategy of MSTC* to find the optimal equilibrium division on the topological loops around the spanning tree, thus averaging the weights of each robot coverage path. In addition, it incorporates turn cost into the weights of the paths.

1. Build package on ROS

    cd ~/catkin_ws/src
    git clone https://github.com/MDP-Group-16/TMSTC-Star.git
    cd ../
    rosdep install --from-paths src --ignore-src -r -y
    catkin_make
    source ~/catkin_ws/devel/setup.bash

(maybe you alsoe have to sudo apt-get install libopencv-dev before, not sure)

2. Run test visualisation

    roslaunch TMSTC_Star test.launch

3. Parameters Explanation (main.launch)

/allocate_method: "DARP", "MSTP" (broken) or "MSTC"

/MST_shape: "DFS_HORIZONTAL", "DFS_VERTICAL", "KRUSKAL", "ACO_OPT" (broken), "HEURISTIC", "OARP", "RECT_DIV" or "DINIC"

/useROSPlanner: use the ros planner for point to point navigation (currently only false works)

/coverAndReturn: let robots return to its depot or not, "true" or "false"

/free_threshold: at what point is a cell considered occupied (ie will not be cleaned) after interpolation (0-100, 100 is occupied)

If sets "MSTC" and "DINIC" at the same time, the planner will perform TMSTC*. Change main.launch to add more robots. If you want to use anotheor map, remember to modify image path in map/map.yaml as well.

4. Original Demos

mCPP on various environments:

indoor

random

Denver_2

NewYork_0

indoor_res

random_res

Denver_2_res

NewYork_0_res

About

Turn-minimizing Multi-robot Spanning Tree Coverage Path Planning

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.3%
  • CMake 6.7%