Team Six/Final Paper
From Maslab 2011
Our initial overall strategy was as follows:
Robot algorithm: The algorithm runs as long as the timer is noted less than 3 minutes (180 seconds). The first ball seen will have its color noted and be saved in a variable called our_color. As soon as this is established, search the map for goals, the goals are determined as follows: if a yellow wall is seen, drive up to it and use the ir sensor to determine whether or not the depth of the wall varies along its length. If the wall does vary, save the location of the goal in a list called goals_loc. When the number of goals is greater than 2 (or if more than 30 seconds have elapsed), then begin to look for balls. Whenever a ball is found, look for the nearest goal and transfer the ball to that goal. Do this as long as the timer has not gone over 2 minutes. After two minutes, whenever a ball is found, if the distance between the ball and the nearest known wall to the opponents side is less than the distance to the nearest known goal, then save the distance and calculate a random number between 0 and 1 and save it to rand_n. Should rand_n > e ^ -(d_togoal-d_towall), throw the ball over the wall, else, throw the ball into the goal. Stop after 3 minutes.
Robot strategy: We decided that we are stronger on the course 6 side of the spectrum than the course 2 side of the spectrum. We're going to keep our robot design relatively simple, with a conveyor belt and accompanying pinball-machine-like doors to pull balls into the robot and drop them into a compartment. On the side, we will have a door that opens when told so that we can drop all our balls into the goal. We decided not to drop balls onto the other side in order to keep our robot simple so that we can focus on our code.
* Michael - Since Maslab is his main IAP commitment, he'll code in the evenings and possibly during the day. * Shawn - Work until 4pm every day, code at night with Michael. * Piper - Work on building between lecture (or late mornings when lecture isn't happening) and 7pm daily. * Xavier - Work on building between lecture (or late mornings when lecture isn't happening) and 7pm daily.
Mechanical Design and Sensors
We came to realize that our original robot design was problematic. The conveyor belt roller would have to be very small so that the ball would be pulled up it rather than pulled away, and the doors pushing the ball onto the roller would have to be well synchronized. We decided to start from scratch, and came up with something we believe will work much better. So, yay! :)
We're going to have a scoop with a slanted arm leading down, away from the robot. We will scoop the ball, then rotate the arm up so that it rolls down the arm into our collection box. This requires another motor with a decent amount of torque, and will likely be our main expense. Our collection box will be at least 6" above the ground. Our computer, battery, and orc board will live under the collection box. The collection box itself will be slanted towards a drawbridge on the back, which we will use a servo to open and close. With this design, we believe that building will be easier, ball collection will be more predictable, and we will now be able to score over the wall!
Suggestions for future teams
Build early, build often! The laser might not be working, you may have to remachine parts several times over, you will find tons wrong with your robot that you didn't expect to find wrong before.