The Problem

  1. Line-Following: Implement robot line-following that will follow a line through sudden turns up to 90 degrees.
  2. Intersection-Finding: Implement robot line-following that will follow a line as in (1), but stop when it comes to an intersection of two or more lines.
  3. Intersection-Choosing: Implement robot line-following that will, beyond (1) and (2), exit the intersection at the nth spoke clockwise from the line it travelled.
  4. Intersection-Traversing: Implement robot line-following that will perform (3) in succession given n1, n2, n3, ...
  5. Search and Traverse: Implement robot line-following that, given a graph topology, its current intersection and heading, and its goal intersection and heading, will generate a sequence of moves and perform (4).
  6. Localize, Search, and Traverse: Implement robot line-following that, given all that is given in (4) except its current intersection and heading, will take action to ascertain its state (localize), and then perform (5).
  7. Explore, Search, and Traverse: Implement robot line-following that explores lines and intersections, forms a graph roadmap, and navigates to a graph intersection with the following property: Let d(i,j) be the minimum number of edges to travel to get from intersection i to intersection j. Let D(i) be max(d(i,j)) for all j. A goal intersection has the minimum D(i).