aboutdescriptionprocessstrategyresults

Special Features

-Rotating arm that lifts and throws balls
-Corner bump sensors (aka mechanical OR gates)
-Wheels on the corners to facilitate smooth driving against a wall
-Braced, removeable happyboard

Doser Rotating arm

Wheel Wheels on corners

Bum Sensor OR - gate bump sensors

Specs

125:1 gear ratio
2 powered wheels
3 casters
3 motors / wheel
2 bump sensors
4 IR sensors
2 shaft encoders
2 servos

Rotating Arm (aka bull-doser)

The rotating arm was connected to 2 servos. This rotating arm allowed us to capture and throw balls on the board. We primarily used to rotating arm to pick up opponents' balls, and throw them off the board. Another use was picking up our own balls and throwing them into prisoner zones. The process of picking up balls and throwing them was easeir than anticipated and made our robot extremely unique and awesome.

Bump Sensors

Mavis had devised a very unique bump sensor legoization: an object could bump and register a single bump sensor from 2 orthogonal directions. We named this device the "OR-gate bump sensor." We used these bump sensors to help us drive away from a wall while wall-following; this allowed wall-following to be faster and less dangerous. We also used the bump sensors to detect walls and other robots. Alphalpha had 2 bump-sensors on the front. If one bump sensor registers, then it hit a wall on the side. If both bump sensor registers, the robot had hit another robot or a wall. We made the code assume that if the 2 bump sensors registered while travelling over .8 of the directed distance, then the bump sensors had detected a wall; if not, then it had bumped into a robot. Although this feature would had been very useful, we did not have time to implement its full use in our strategy.

Braced, Removeable Happyboard

We quickly decided to put the happybaord on top of the batteries. A problem arose in the fact that we sometimes needed to remove the batteries, but did not want to take apart the robot whenvere we needed to do so. Therefore, we built a happyboard mount, which was heavily braced to itself. The happyboard was connected to the rest of the board using bracing, and lay on top of skid plates to allow for easy access.

Driving Straight/Turning

Shaft encoders were primarily used to drive straight. We used a proportional, derivative controller in our system. Driving straight was more challenging than anticipated. We used the gyro to drive straight at first, but it was soon discovered that it was not reliable: the gyro would sometimes drift up to 2 degrees per second!

A better way to drive straight were the shaft encoders. The gyro was still used to make turns; we thought that a gyro was better for this task since it could recover a relatively correct heading after a major collision with another robot. When needed, we drove Alphalpha against a wall in order to straighten itself and to recalibrate the gyro. We later discovered that perhaps turning using the shaft encoder would had been more consistent and less prone to inconsistencies. Battery charge, number of threads, and different operating systems greatly changed the way the gyro worked.

Using shaft encoder feedback was still difficult to implement: everytime the system was changed (motors added, robot changed), the constants needed to be tweaked to match the modified system. This process was sometimes extremely tedious and time-consuming.

A very reliable way to drive straight is wall-following, which we used in conjunction with the gyro. Though this concept seems archaic and maybe "stupid," it is actually a rather fast and extremely accurate way to drive straight. Wall-following wheels on each corner of Alphalpha were constructed to allow it to wall-follow faster, and prevent corners from catching on the wall.

Initial Orientation

Initial orientation was calculated using 4 IR LED, sensor pairs. According to what the sensors read, an offset is sent to the gyro to determine the initial position. The sensors were extremely reliable and never failed during competition. One thing to be careful when using these sensors is to ensure that they do not move, for a slight movement in their height/position will change their readings drastically. A good reading for these sensors is: black: 3200; white, 300. We also used the IR sensors to help us detect the center line, which provided awesome accuracy when attempting to throw out opponents' balls.

Motors/Gear-train

The motors and gear-train are one of the most important parts of the robot; if the gear-train/motor mount is bad, then the robot is less likely to drive straight. We initially only 1 motor per wheel, and used a motor mount that was supplied by the TAs. We soon discovered the need to add more motors. Lisa was able to incorporate 2 motors per wheel by modifying the motor mount and using electrical tape. We soon added 2 motors and changed the motor mount again, this time using foam-tape and more electrical tape. 6 motors and a 125:1 gear ratio allowed our robot to have massive amounts of torque; it ended up being able to push other robots without a problem.