The Challenge
We were provided with seven different and progressively more difficult challenges which we could work toward. As this was the first time the NXT robotics system was used, we decided to work from the ground up and attempt to build the most basic functions of the robot in NXT. To do this, we made use of a modified brick, the control unit of the Mindstorms robot, that used a likewise modified version of the Java language called Lejos (LEgo Java Operating System). We set our goal at completing the first three or four challenges to create a more solid foundation for future teams hoping to accomplish the higher level challenges with the new software. This was especially true given the addition of, in our opinion, the more versatile behavior classes and subsumption architecture. We wanted to convert the behaviors achieved through standard means to a behavior-structured architecture. Below we have included the specific challenges listed, with our completed challenges italicized.
Challenge Tasks
- Challenge #1 - Line-Following: Design and implement a lego robot that will follow a line through sudden turns up to 90 degrees.
- Challenge #2 - Intersection-Finding: Design and implement a lego robot that will follow a line as in (1), but stop when it comes to an intersection of two or more lines.
- Challenge #3 - Intersection-Choosing: Design and implement a lego robot that will, beyond (1) and (2), exit the intersection at the nth spoke clockwise from the line it travelled.
- Challenge #4 - Intersection-Traversing: Design and implement a lego robot that will perform (3) in succession given n1, n2, n3, ...
- Challenge #5 - Search and Traverse: Design and implement a lego robot 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).
- Challenge #6 - Localize, Search, and Traverse: Design and implement a lego robot 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).
- Challenge #7 - Explore, Search, and Traverse: Design and implement a lego robot that explores lines and intersections, forms a graph roadmap, and moves 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).