CS-424, Spring, 2008 Final Robotics Competition Monday, May 12, 2008, 7:00 P.M. in Robotics Lab This year's final robotics competition will have two phases. Teams may use either a LEGO RCX-based robot that they design and construct or a BIObot. In phase 1 each robot will be required to find a randomly-positioned target placed in the smaller gray rectangle bordered in white of the playing area shown in the diagram below. If an RCX robot is used, the target will be a small rectangular piece of black cardboard; in the case of the BIObot it will be an RFID tag. Each robot will begin in the position shown in the lower part of the diagram and do a systematic search of some kind to explore the gray rectangle and find the target. Once it has done this, it will be required to record the x,y coordinates of the position of the target. In the case of the RCX robot the coordinates should be placed in its data log. The host PC can then upload the results using the BricxCC program's Datalog tool. For BIObot the coordinates should be displayed in a window on the screen of the host PC. After the target is found, a second very simple program should be written that will use the values reported in the first program to move the robot from the same initial position to the target in no more than three simple moves: for example, by moving forward the correct distance, turning 90 degrees, and moving forward again for the correct distance. The robot should stop on or close to the target. This second program should not require the use of any sensors. In phase 2 each robot will be placed at a starting point at the base of the large gray rectangle and made to traverse that rectangle's area (again bordered in white), avoiding fixed obstacles (2 x 2 inch wooden boards) with the goal of arriving at a white "Goal" area bordered in black at the other end of the field. A bright light source that can be "seen" from any place on the playing field will be placed directly behind and above the Goal. Once the robot has entered the goal it should pause and indicate that it knows it has found the goal. In the case of the RCX this should be done by playing some sort of a happy song. The BIObot should cause a message to be displayed in a window of the host PC. In either case the robot should then return to its starting area, again avoiding the obstacles. A record of the total time required to complete both phase 1 and phase 2 will be kept, and the robot that has best achieved the goals in the shortest total time will be the winner. (See details below.) Robot specifications: If a BIObot is used, no modifications of the basic hardware are permitted without permission of the referees (TA and Professor). In the case of the RCX, the following are the rules: No robot is to exceed 10 inches in any dimension (width, height, length). A robot can use as many sensors as desired (if you can find ways of hooking them all up to the three sensor ports on the RCX). Remember that your robot is responsible for distinguishing between black, white, and gray on the floor; bright light detection; and touch detection. A robot may not have more than three motors. A robot must have one or two front bumpers no more than two inches high that cover the area in between its treads/wheels. You may write separate programs for each phase of the competition, but be aware of the program size limitations of the RCX. Phase 1 Details: There must be some sort of strategy to systematically explore the gray rectangle in order to find and record the position of the target. For example this could be a back-and-forth straight-line path in which after each traversal the it moves a bit more in the vertical direction. For either robot, but especially in the case of the RCX, you will also need to be sure that your robot really moves in a straight line when it goes forward. This could be done by performing some pre-tests to determine the power settings needed on each motor so that the wheels go at very close to the same speed. You will also need to be able to turn by a precise amount (perhaps by 90 degrees, depending on the algorithm your robot uses to "explore" the playing field). This could also be done in some pre-tests in which you determine how long it takes for the robot to turn by a specified angle when your turning code is running. A much better and more precise way to assure that the robot is going straight or that it is turning by the correct amount is to use rotation sensors. There are two of them included in your Robot kit. But remember that the RCX only has three sensor ports, so you may have to be fairly creative about how these are used. In the case of the BIObot we have much more precise control over its motion because of the wheel encoders. You can do a pre-calibration to determine exactly how far the robot moves for a given encoder count and also what angle corresponds to what encoder count if the motors are moving in opposite directions. In either case, once the robot has found the target, it must be able to use the information it obtained to move directly from its starting point back to the target in no more than three simple moves without the aid of sensors. Phase 2 Details:
There are many possible approaches to traversing the larger gray rectangle, avoiding obstacles, so as to arrive at the "Goal" area in the shortest possible time. You could take a "deliberative" approach. Since the obstacles are fixed you could measure their positions in advance and put them into a "world map" either in the memory of the robot's microcontroller (if it's big enough and you have access to it) or in the host PC's memory. Then your program could apply something like the wavefront algorithm we discussed in class. Or if you're using a "reactive" approach, you could try to apply one of the "bug" algorithms we talked about. The touch sensors (RCX) or the IR sensors (BIObot) could be used to determine when the robot runs into an obstacle after which your program could make it turn to follow the border of the obstacle. An even simpler heuristic would be to just try to turn toward the beacon any time the sensors indicate the robot has bumped into an obstacle. This, of course, has its problems, especially when the robot is returning. But during the return we could make the robot turn away from the beacon instead of toward the beacon, however with less precision. Stopping a round: At any time the referee (TA or Professor) may determine that a round must be stopped. There are many ways this could happen. For example, during Phase 1, perhaps the robot wanders out of the gray rectangle and gets hopelessly lost. Or during Phase 2 it might get tied up in a corner or behind an obstacle. If a round is stopped, we will move on to another robot. But the first robot will be given other opportunities to try to perform its tasks later on, perhaps after fixing the hardware or changing the software. There will, however, be a limited number of chances. Determining the winning team: As mentioned above the robot that best achieves all the goals of each phase in the least total time will be the winner. Specifically, points will be allocated to each robot by the referees as follows: Phase 1: Finds target and stops on or close to it ...............max 15 pts., depending on how close Phase 1: Minimum time to find the target.........................max 20 pts. Phase 1: Goes from starting point to target in 3 or less moves...max 15 pts., depending on how close Phase 2: Traverses field, arrives and stops in goal..............max 15 pts., depending on how well done Phase 2: Minimum time to get to goal.............................max 20 pts. Phase 2: Finds its way back to starting area.....................max 15 pts., depending on how well done The robot that receives the most total points is the winner. Grading: In order to receive a satisfactory grade in the competition, your robot must demonstrate that it: 1. can find a light source and move in its general direction 2. will stop and turn when its front bumper is activated (or its IR sensor indicates it is very close to an object) 3. has a strategy for finding the target during Phase 1 4. has a strategy for determining the x,y coordinates of the target during Phase 1 5. has a strategy for path planning and obstacle avoidance in Phase 2 6. can recognize and distinguish between the out-of-bounds lines, the playing area, and the goal area 7. can recognize when it has entered the goal area. Each team must submit a paper describing in detail the design of its robot. The paper must be submitted by Wednesday, 5-14-08 at noon. Diagrams (and/or especially photographs) as well as source code listings are an essential part of the paper. The paper must also describe the techniques and strategies used for each of the seven points given above. Each member of each team must also submit a numerical peer evaluation of each other team member indicating how he/she thinks the other members of the team have contributed to the overall effort and success of the team. The following is how the project grade will be determined: The paper................................................................. 30% Performance during the competition (professor/TA evaluation of how well the robot performed the seven requirements)................... 30% Final score in the competition.............................................20% Team member peer evaluations...............................................20% You may submit your paper, code, diagrams/photographs electronically either by putting them on a CD and depositing the CD in the CS-424 drop drawer outside the CS office or by emailing it to Prof. Eckert (firstname.lastname@example.org).