Asad Kalantarian, Wajahat Khan and Ebad Ahmed
We spent a lot of time discussing our strategy. We started with complex strategies that, if correctly implemented, had amazingly high chances of winning. However, we soon realized that such strategies were exceedingly difficult, if not impossible, to implement given the short time span of three weeks, and our focus shifted towards simpler strategies that were more likely to score a few points consistently and reliably, rather than strategies that tended to score high, but had a large variance in terms of the number of points scored every round. In the words of our organizer Brett, "Welcome to real-world design!". In the end, our strategy was to push the four central balls into our scoring area for two guaranteed points, and then move quickly around the table in order to disturb the other balls in the hope that our robot would randomly push balls into the various scoring areas, and by displacing the balls from their original position, make it difficult for the other robot to execute its strategy.
Our robot used a synchro-drive system (hence the name Synchro-nyzed). Synchro-drive can be great to have, however we weren't really able to use it to good effect. Our robot was square-shaped, and had three wheels - two at the corners and one in the center of the side opposite to the other two wheels. Each wheel had a servo and a motor that allowed it to turn independently of the other wheels. Consequently, our robot could drive forward, backward and sideways without actually having to turn to a particular direction. We used gear ratios of 75:1. Also, we relied on the handyboard batteries for power, and never actually used the Hawker batteries provided to us. Without the weight of the Hawker batteries contributing to the friction, our robot was able to move pretty fast.
We had two compartments in the chassis of our robot for storing balls of different color. These had gates controlled by motors that opened and closed in order to let the balls in and out. We didn't get the gates to work as well as we'd have liked, therefore we ended up not using these compartments at all.
Our robot had three IR sensors that helped the robot to orient itself once the round had started. We used a gyroscope for turning and going straight. The gyro had a drift of about 4 degrees per minute, and this didn't help us at all. We considered using line-following to go straight, but it turned out that it was too difficult and time-consuming. In the end we had to revert to the gyro.
Our code wasn't too complicated. We had functions for turning to an angle and for going forward, backward and sideways. Our final strategy was quite easy to implement. We had code for orienting the robot. After orienting, the robot pushed the four balls into our scoring area using the go_forward() function, and then went around the table disturbing the other balls. This was accomplished through an infinite loop that used the go_foward(), go_backward() and the go_sideways() functions. In this way, the robot kept moving around the table till the end of the round.
Our performance was not too bad. We managed to get to the third round. We lost our match in the morning round by -1 to 2. Our next match was with Team 3, which we won 3-2. We had only one loss, so we were still in the competition. In the 3rd round, our match was against Team 26 "This is Mike Lin". As the round started, our robot scored two points by pushing the four central balls into our scoring area, and then moved around the table and pushed four green balls into one of our scoring areas on the other side. At this moment, green was winning the vote. Team 26 had incorporated some very impressive AI in their code, and their robot, making good use of the vote information transmitted via RF, put a lot of negative red balls in our scoring area. We ended up losing that match 2-6. Team 26 went on to win the competition.
We had a lot of fun taking 6.270, and we learned a great deal about robotics. We would like to thank all organizers and TAs, and in particular Brett, Vimal, David Wang and David Ziegler for helping us out and making the time we spent in the lab enjoyable.