Team {return (int) e;} presents…
The Official Website of
Super Karate Monkey Death Car

Team: 2

Team Roster

Robot Name: Super Karate Monkey Death Car a.k.a. Puff


Robot Specs

The Story of Puff

Strategy

Results and Conclusions


Robot Specs

Images

Puff #1  Puff #2  Puff #3  Puff #4  Puff #5

Components

Sensors and Other Electrical Stuff:

Miscellaneous:

Modules

Main Body:

Drive Mechanism:

Mouth/Claw:

Tail:

Sensors

Wall Detectors:

Ball Detector:

Distance Sensor:

Table Color Detectors:

Ball Color Detector:

Tilt Sensor:


The Story of Puff

Prior to beginning construction on a robot for the final competition, we had construct a LEGO model from the Bionicle series. The purpose of this was to expose teams to many of the unique LEGO pieces and their possible uses. The model that we constructed, named Kane-ra, with its fiery red eye socket, horns, and long body, closely resembled a dragon. Hence, it was decided that Kane-ra would more fittingly be renamed Puff: a somewhat less than magical, but still cool dragon.

As construction on our final competition robot began, it became apparent that Puff would have to sacrificed for his constituent LEGO pieces. To say the least, this revelation was devastating to the group. Saddened, Jamie vowed to find a way to eventually revive Puff…

…and he made good on his word. After "finishing" our competition robot, Jamie made use of leftover pieces from the original Puff (horns, fins, etc.) to transform the robot into a better, stronger and…well, anyway, Puff was reborn.

By the way, the term "Super Karate Monkey Death Car" is a reference to Paul Simms' wonderful mid-'90s sitcom, NewsRadio, which some say was the greatest situational comedy of all time.


Strategy

Plan A

The original strategy for our team was centered on placing a ball in the lava island. Ideally, Puff would have wall followed until coming in proximity of the balls. He would then proceed to pick up the ball immediately in front of him by grasping it in his mouth. The color of the ball would then be checked to determine if it was an opponent ball. If the ball initially picked up by Puff was an opponent ball, he would proceed to move to the edge of the table and drop the ball over the edge. Subsequently, he would proceed to test the remaining balls on the table and remove any found to be an opponent ball. Upon his first find of a team ball, Puff would turn around and wall follow to the other end of the table. Upon reaching the other end of the table, he would appropriately orient his tail with the lava island and make an attempt to remove an opponent ball that might be there already. Finally, he would proceed to place the team ball, grasped in his mouth, on the lava island. He would leave his mouth hanging over the island until the last few seconds of the contest in order to protect the ball. Then, in the final seconds of the contest, if the opponent robot were not currently near the lava island, he would drive to the center plateau and move around randomly. If, for some reason, Puff failed in placing a ball in the lava island, this was meant to be a last effort to remove any opponent balls from the scoring area. The associated code (alpha.c) for this strategy is available.

Plan B

Unfortunately, when faced with the reality that Puff was unable to move at a reasonable speed (or simply turn at any speed for more than two or three seconds), an alternate strategy was conceived. Given these limitations, our second plan was to simply have Puff drive up to the edge of the top plateau, grab a ball with its mouth and drive down the hill in reverse. In an attempt to give Puff the strength to climb the incline, the tip of his tail was used as an additional wheel. This was a final hour change made in hopes of qualifying for the competition…it did not work. However, feel free to view the associated code (qualify.c).

Plan E for Exhibition

Despite failing to qualify for the competition, Puff was graciously chosen to be an exhibition robot. Therefore, we had to think of something interesting for him to do. Realizing Puff's serious dislike of turning… or moving large distances… or moving quickly, we decided to have him simply demonstrate his ability to remove a ball from the lava island. As no other team had implemented a mechanism to do this, we felt that it was the best way to salvage Puff's broken career. Therefore, for exhibition, we programmed Puff to simply back up to the lava island, lower his tail and spin a ball off the island with the tip of his tail. Following this, Puff was programmed to lower his tail to the ground (in order to drive with the tip) and do a small celebration dance. This consisted of moving back and forward while raising and lowering his head. Again, the code (suitably titled) for this strategy is available (phoenix.c) for viewing.


Results and Conclusions

Modularity, modularity, modularity…and testing. We built our robot with the mindset that we could fix any problem that might arise after we had the robot completely constructed. If the problematic system had been anything other than the drive train, this might have been true; alas, the drive mechanism "was" the source of the problem. It seems, at least we think, that a single motor per wheel was not sufficient to move a robot of the size and weight of Puff. Unfortunately, due to time constraints, size constraints, and design constraints, it was not possible to effect the changes necessary to make Puff move. To anyone who might stumble across this while building robot: build and test your drive mechanism before proceeding with anything else. Terrible things can happen when you fail to do this early on in the competition.

As another word of advice, pay attention to the logistics of actually constructing and mounting all of the mechanisms of your robot. In approaching the design of Puff, we built the body, mouth, and tail of Puff separately with the intent of simply "connecting" them later. Well, this proved to be much more difficult than initially thought. We did not consider exactly how we would connect the claw and tail to the body of the robot. Likewise, we did not consider precisely how we would mount (and house) the servos and motors to the claw and tail. Though these problems were eventually solved through some very creative use of LEGOs by Jamie (kudos), we were initially left with some seemingly impossible scenarios. For example, after managing to mount the tail to the body, we found that the proper placement of the tail servo was in midair. Moreover, the rear of the robot is made completely of smooth 2x4 bricks. Therefore, in order to secure the servo, a housing had to be extended out and around it and precariously connected at various points to the body. Configuring claw to the sensor-loaded front of the robot also presented its own set of unique problems. The moral: take a holistic approach to designing your robot.

If it were not for the problems with the drive mechanism, it is very probable that Puff would have faired well in the competition (especially since there were an overwhelming amount of double losses). Few people even attempted to go for the lava island, so there would have been little interference. Oh well…it was still fun to have Puff be an exhibition robot.


This page was created 6.II.2003 and last modified 7.II.2003. Copyright © 2003 RKG & JRH. At least one right reserved.