Multiple Robot Coordination
Com S 576 FINAL PROJECT - Spring 1998

Jeff Yakey


Project Description

This project's purpose is to coordinate multiple robots (2 or 3) so that they do not collide with one another. For various situations when multiple robots are coordinated, there can be many optimal solutions for scheduling the robots. This algorithm computes all of the optimal solutions and allows the user to determine which these is most appropriate for a particular situation. (An example of its usefulness is when a certain robot has a higher priority than the others, so that it should reach its goal first if possible). The algorithm presented takes a decoupled approach to coordinating the robots, which means that the paths of the robots are computed without taking any of the other robots into consideration. Some assumptions made are that the robots are convex, polygonal, and exist in a 2D plane. Also, it is assumed that the paths of the robots were previously computed, so there is no worry of collision with obstacles other than the remaining robots.

In this algorithm, the notion of a path coordination space is presented. This is simply a Cartesian product of the paths of the robots, where a path is defined to be a function from [0,1] to the free configuration space. . As a consequence, each robot added to the coordination adds another dimension to the path coordination space. This is the major difficulty with this approach to multiple robot coordination, and results in that the algorithm doesn't scale up well for a large number of robots. Basically, the algorithm computes a path in this space from the location [0,0] to [1,1] (or [0,0,0] to [1,1,1] in the three robot case). The algorithm also keeps track of the set of optimal paths (called strategies) in the coordination space.

In order to compute these paths, we start at the [1,1] or [1,1,1] location in the coordination space and work towards the starting location. We also need to check for collision in order to insure that no two robots collide. The following are the main components needed to implement the algorithm.

Improvements

The biggest problem with this implementation is that the data structure is not very efficient. Using C++ vectors may have been more efficient, but troubles integrating them with the LEDA package prevented me from using them. Also, the collision detector could possibly be improved by implementing an incremental approach similar to the one presented in class.

Computational Considerations

This algorithm works very well for cases involving only a few robots, but performs progressively worse as the number of robots increases. Another problem with this algorithm is that it is not complete. Since the the other robots are not considered when computing paths, possible solutions could be missed that would be found by using a centralized approach (at the expense of computation time). Example 3 illustrates this problem.

References

Optimal Motion Planning for Multiple Robots Having Independent Goals by Steven M. Lavalle and Seth A. Hutchinson

Computed Examples


Implementation Files

Source Code:

Input Data Files: