Generalized Task Allocation and Route Planning for Multiple Robots with Multiple Depots in Indoor Building Environments
This project is comprised of four main files, with the following functionality:
- robotTourUtil.py: contains necessary operations in mTSP and MmTSP. and the functions themselves
- mTSP.py: contains an example of mTSP
- fMmTSP.py: contains an example of fMmTSP
- depotOptimizer.py: utilizes fMmTSP to find the optimal depots, given the number of depots, and number of robots per depot
Among the four files, three can be independently ran by itself. More details of such files are provided in the sections below. Note, all these function run on a given graph, defined in robotTourUtil.py. If you want to change it, you will have to modify the variable, "matrix_input".
The "mTSP_main" function (contained in mTSP.py) requires one parameter - the number of robots. Currently, when running the mTSP.py file, it will return the optimal tour, given two robots in starting point 0, under 100 iterations. You can modify the starting point and number of iterations by changing the variable: "source_node_number" for starting point, and "number_of_iterations" for the number of iterations. To modify the number of robots in one depot, change the parameter of the "mTSP_main" function.
The fMmTSP.py file provides an example using the MmTSP function defined in robotTourUtil.py. Such function requires four parameters:
- list_of_nodes: essentially an array containing all nodes in the graph, G
- depots_node: an array containing the starting nodes (must exist in graph, G)
- number_of_robots: an array containing number of robots in each node; the nodes are referred via index (index J in number_of_robots refers to the number of robots in depot J in depots_node)
- G: the graph itself
This file finds the optimal depot, given the number of depots and number of robots in each depot. The file, when run, requires users to input the number of depots, and the number of iterations. To modify the number of robots per depot, modify the variable "number_of_robots" in the source code. Note, there will also be different iterations when running each mTSP. To change that, go to robotTourUtil.py and change "number_of_iterations" in the MmTSP function.