Team Ten/Final Paper
From Maslab 2011
Alex Teuffer Voitek Wojciech Musial Youyou Ma Arvin Shahbazi Moghaddam
Overall Strategy/Gameplay Goals
The strategy of our team was to keep the robot as simple as possible. We believe that a simple design with the least amount of things that could go wrong is the best. We based the design of our robot on these principles but the overall shape of it was determined by our gameplay goals. Our goal for this competition was to score over the yellow walls and essentially ignore the possibility of scoring in the mouseholes. The reason for us deciding to pursue this strategy was that it permitted us to concentrate on a single high-scoring goal opportunity. By choosing to build a robot adept at throwing balls over the opposing team's wall we can make a relatively simple design while still being able to score high.
General Preliminary Timeline Week 1 - Finish preliminary robot design and prototype with some simple camera analysis Week 2 - Perfect ball collection mechanism and mapping algorithms Week 3 - Make it better and more reliable without adding too much complexity to any system. Week 4 - Fail week. Leaves time to resort to old working code and have something functional.
Our robot consists of an underside guiding system, a middle floor, and a ball 'basket' on the top floor.
The underside guiding system is essentially two aluminum plates that are placed at an angle with respect to each other so that they funnel the balls that go through a one way gate made of light-weight cardboard into the screw lifting mechanism. This had to be planned with precision in order to make sure the two plates did not disturb the two wheel motors or the mice which we used as a substitution for encoders. The door was a one way gate solely made of cardboard and aluminum wire. It was very simple, light and sturdy and could even capture balls against walls.
Our robot had two wheel drive and was further supported by two casters in the front. The motors were held parallel to the ground with zipties since the weight of the robot was enough to bend the wheel axis at an angle to the ground.
The bottom floor that held our battery, gpu, uorc board, and hardrive and which also supported the motors, casters, front gate, underside guiding system, and the top floor as well as the screw mechanism was made of simple peg board. The peg board was sturdy enough to not bend under the weight of all these parts and had the additional bonus of having built in holes which we could use to pass wires through.
The mice encoders were attached to the pegboard with spring suspension which held the mice with epoxy glue.
the screw mechanism was held above the ground by two aluminum supports that attached to the back end of the pegboard. This caused us many troubles because we could not easily adjust the height of this mechanism which was necessary for getting over bumps in the playing field. In the end, we raised the entire robot by wrapping double sided tape on the wheels and therefore increasing its radius.
The screw mechanism consisted of the three polyester shafts, one of which held the screw. The two shafts not attached to the screw would support the ball as it would be pushed up by the screw until it reached a spring wrapped around the middle shaft. The ball would be pushed through the spring by the screw and would then use the spring essentially as a slide into the top floor 'basket'.
The top floor basket had an acrylic base on which were two aluminum walls that funneled the balls into a servo-operated gate which opened and closed on a hinge made at edgerton.
Our robot was mostly put together in the maslab 5th floor lab. The archimedes screw was cut out of a pvc pipe using a saber saw. This was done in the edgerton student machine shop. The lathe in the edgerton machine shop was used to slim down the shaft that held the screw so that it could fit into the gears that would turn it in order to pick up the balls. Besides this, the most intesive part of the machining part of the robot was the assembly of the hinge that held the 2nd floor servo gate open. This was also done in the edgerton student shop.
Vision software: We used the combined data of two cameras rather than one to actually measure the distance from the robot to the balls. They were place vertically on top of the each other in front of the robot.
Sensors: Bump sensors: When desperate times hit, we added 4 bump sensors in the front of the robot to test when we have hit a wall. It was really to back up the cameras since at times the cameras did not give the most accurate data.
Gyroscope: This ended up not as useful as we thought it would be. Most of the measurements that would have been done by the gyro were actually done by the mice.
Mice Encoders: We used optical mice for odometry. They measured distance, speed, and direction. The were built on suspension on the bottom of the robot so that they would always stay in contact with the floor. they were doing quite well until 1 day before the contest when they broke and started to give not so reliable data. Otherwise they would have been quite useful. Another thing was they had to be reseted every time we started the robot otherwise it would not run.
Final Run and thoughts: So despite our robot's inability to score, during the final contest, it somehow managed to try to score, though there were not balls on it yet. Also, it was working quite well despite what we were afraid of might happen. However, halfway through our last round, the batteries died and the mother was turned off. So thoughts for the future: -get back up batteries!! -have behavior code first, because then you won't be left to write all of it in the last week. -even if you code, understanding how the code behaves with the hardware is probably more important. (since that's how you understand what you're coding) -build a quick sustainable robot in the first week so your coder has something to tinker with. (Try laser cutting, though we didn't do that, it seems quite efficient) -focus on the main aspects of the robot, have it working, then go for the minute detail! -try to not to take another class alongside maslab...life will be difficult. -never give up!