Coordination of Multiple Car-like Robots

Chirag Deepak Khopkar
Stanford, CA
chirag@cs.stanford.edu


Project Description

The goal of this project is to plan paths for multiple (here, 3) car-like robots in a 2-d polygonal environment. All the polygons are assumed to be simple and convex. The car-like robots have turning radius constraints but are allowed to reverse.

The project was written in 5 parts. A description of each part, including algorithms is included below:

  1. C-Obstacle Region Formation

    In this part the C-Obstacle region of the robot (which can translate and rotate) was computed, using a layering technique. First, an algorithm was developed using normals (the one discussed in class) to find the C-Obstacle region of a robot that can translate only. This algorithm was invoked repeatedly for various orientations of the robot in the range [0, 360), giving a layer of C-obstacle regions at discrete orientations. Finally, a C-sentence for each layer was produced to be used in later parts.

  2. 3-D Bitmap Formation

    A grid was layed over the 2d environment, and a 3-d bitmap representation of the C-obstacle region was computed and stored in this grid. The resolution of the grid varied from 20 x 20 x 36 for testing to 50 x 50 x 36 for solution generation.

  3. Potential Function Calculation

    A potential function was developed to be stored in the grid. Initially I used NF1 but later shifted to NF2 which produced better results. Note that this potential function was developed on the 3-d grid, not on the 2-d workspace.

  4. Holonomic Path Planning

    A best first search algorithm was used to trace a path from the initial configuration to the goal configuration in the 3-d grid. The path of steepest potential change was followed.

  5. Nonoholonomic Path Planning

    The holonomic path generated above was transformed using Reeds-Shepp curves into a nonholonomic one. In cases where the resolution was not fine enough to produce a feasible path, a linear interpolation between successive configurations of the input path was performed and then passed back to the Nonholonomic path planner.

  6. Coordination of Multiple Robots

    I used the path coordination technique described in Latombe's Robot Motion Planning to coordinate 2 robots. However, instead of using the scheduling algorithm, I performed a graph search to allow for the 3 robot case. Currently, this has not been tested since the time taken for even a simple world is enormous.

Project Problems

Motion Planning Examples

Sample worlds

  1. The car12.jmv file: This file contains coordination of 2 robots in a very simple world.
  2. The car2.mv file: This file displays nonholonomic planning for 2 robots (uncoordinated) in a more complex world. This file shows one bug I have that I forgot to fix -- keeping my cars from going outside the world.
  3. The car3.mv file: This file is the same as the car2.mv but here I prevent my cars from going outside the world by adding thin polygons around the boundary (these thus get automatically incorporated into my bitmap).

Source Code