Coordination of car-like robots

The goal is to design a program to compute coordinated paths for several car-like robots in a polygonal environment. The inputs are: i) a description of the environment in terms of convex polygons; ii) convex polygonal descriptions of three robots; iii) initial and goal configurations for the robots. The outputs are three paths and trajectories that coordinate the motions of the robots such that the robots reach their goals, avoid collisions, and obey the car-like motion constraints.

The project is organized into 5 steps:
  1. Compute local-minima-free potential in a 2D workspace: Write a program computes the NF1 or NF2 potential field, given a rectangular workspace with convex polygonal obstacles (that may overlap) and a point goal position in the 2D workspace.
  2. Implement a collision checker: Write a program that generates the convex C-obstacle, given a convex polygonal translating robot and a convex polygonal obstacle. Extend this program to compute a 3D bitmap representation of the C-obstacle for a polygonal robot that translates and rotates. Implement a binary-valued function that test whether the configuration $(x,y,\theta)$ produces a collision.
  3. Plan holonomic paths: Write a potential-field path planner that uses best-first search for plan a path for a single robot that can translate (in any direction) or rotate in a workspace that has polygonal obstacles.
  4. Plan nonholonomic paths: Transform a path generated by the holonomic planner into a path that satisfies the nonholonomic constraints, using Reeds and Shepp curves.
  5. Coordinate nonholonomic paths: Use coordination space techniques to compute trajectories that coordinate three robots such that collisions between the robots are avoided and the robots use paths produced by the nonholonomic planner.

Related paper: "A Fast Path Planner for a Car-Like Indoor Mobile Robot", by J.-C. Latombe. In Proc. Ninth National Conference on Artificial Intelligence (AAAI), pages 659-665, 1991.