The CS 371 Lego Robotics Challenge consists of a series of successive challenge
tasks that build on one another. In the fall of 2000, a single team
successful completed challenge tasks #1, #2, and #3 below. In fall 2002,
teams placed a new Java-based OS on the robots (LeJOS), redesigned the robot for
structural strength and finer control, and completed the same challenge tasks.
In fall 2004, teams refined the design slightly and achieved challenge #5
somewhat unreliably. In fall 2006, no new challenges were achieved, but
some design elements were critiqued and made arguably more robust. In
fall 2008, we began anew with Lego Mindstorms NXT platform with improvements in
both physical design and motion control, yet much needs to be done to achieve robust success of the early challenges with this new platform.
This time, each team must demonstrate the achievement of one or both of the
following:
Goal 1: A significant improvement to previous challenge solutions.
Goal 2: Use the previous design to achieve the next challenge(s).
Groups will need to (1) form, (2) set specific goals based on these general
goals, and (3)
develop a time table for work by the end of class on Tuesday 11/23.
Your progress as a group will be checked each class. NOTE: You will need more than classtime meetings for success. You should plan
as groups to meet a number of times each week for the last two weeks of
class.
Finally, groups will need to document their work on the web such that
future classes can reproduce it and learn from it.
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).
Work on either goal should essentially be complete by early in the last
week. Teams will need to budget time to document their work (see
Fall 2000, Fall 2002, Fall 2004 examples below) for the benefit of future teams. A large
portion of the final team grade will be devoted to the quality and completeness
of your documentation. Our last class will be open to visitors
and will feature demonstrations and small presentations of work by each
team. Work hard, have fun, and enjoy the challenge!
|
We decided to set a number of goals for ourselves so we can get as far as possible in
a number of different ways. The first goal that we set was to design a new robot. While
the old designs from the two 2008 teams were good, we decided we wanted something a little
different. Even though ours is similar in some ways, the sensors are different and
the overall size has changed. We tried to keep it as simple as possible but still well
structured.
Since we had access to the new lejos code from the two 2008 teams we decided we would use a good chunk
of that for our robot too. However, since the design had changed the code was not working in a few
different ways. So before we could set a new goal we had to set a goal of redesigning the old code. This was done after a number of trials and errors.
Our third goal was to improve upon the code because there were a few instances where the intersection finding and choosing was not working correctly. We were able to make the robot recognize intersection much more efficiently and it was able to recognize intersections of 3 lines instead of only 4 lines. It also sees corners as corners and not two-spoke intersections which is a nice improvement.
Finally we wanted to do something the past groups hadn't so we decided to tackle intersection-traversing. We were able to complete this challenge fairly well, however, the code might not be as robust as the code that we have improved upon. Because of this it leaves somethings in which it could be improved upon, but it still works quite well. At this time it goes from n1 up to n3 spoke and then back to n1. This way its always going a different direction.
|