This node runs on a server (rather than on a robot). Of course, in this project, both server and robot are located on the same computer, but later, if we switch to real robots, this can be important. It overlooks all robots, assigns tasks and if necessary, provides summary and video feedback for the human operator.
Currently, I am only going to add some very basic functionality, in future, it can be modified to carry more advanced tasks.
So, Coordinator manages an array of robots. It also listens to some messages, in parallel with robots, which allows it to draw a map with robots' positions on it and so on.
What commands should it send to robots? In our simple case, it is very straightforward. At the very beginning (and only once per session) it tells each robot to plan the A* Grid based path to some goal points. And it shows this path on the 2.5D map. That's all. It doesn't tell robots to move - yet, I will do it later.