MI_K the Spucker

(pronounced "MEE-ak the Spucker")


Team Members: Anne Dreyer, Karin Iancu, Josh Ornstein

Link to the main page: http://web.mit.edu/6.270/www

Our machine featuring it's brain and barrell :-)

                 

The first version in progress                           The first version complete                           The second and final version                           The back of the final version


 

Strategy:

 

After hearing of the game rules, we considered a blocking strategy in which we would deploy a tethered robot to block the opponent's side from any deposited balls. On our side, we would have a mechanism blocking our hole which would allow our balls to enter and would push opponents balls up and off the table. We would also have a third piece driving around and collecting our balls. We decided that this design was too intricate and impractical due to time and component limitations.

Since this initial strategy didn't seem feasible, we decided to break it up into its two components: blocking the opponent's hole, and driving around and collecting balls while ignoring the opponent.  Next we analyzed which of the strategies was more effective in terms of scoring points and winning the game. We decided on the second option -- collecting balls to deposit into the holes. We realized that a critical part of this new strategy would be to score the first three points as soon as possible in order to be able to defeat robots implementing the blocking strategy.

Implementation:

 

Physical Description:

Because the second portion of our strategy involved collecting three balls and depositing them into the trough, we needed to build a robot large enough to hold that amount of balls.  We designed the robot to have two options for depositing balls into the trough. The robot could deposit from the back by driving close to the trough and lifting its back gate to release stored balls. The gate would be controlled by a servo which alternated between two states -- closed and open.  Alternately, the robot could propel stored balls through it's front toward the trough. This can be accomplished by running the motor of the mechanism that allows balls to enter the machine backwards.

In order to transport balls within the robot, we devised a mechanism to such balls in to the machine.  The mechanism consisted of 5 large wheels surrounded by rubber bands placed at the front of the machine, which would coax the balls inward with a 1/15 gear ratio.  Once inside the machine, a tank like pulley system transported the balls from the front to the back.  Each mechanism was run independently of the other, and by its own motor.

MI_K playing the game:

After detecting the starlight, MI_K would orient itself to face the ball on the opposite side of the trough.  It would ingest that ball and once the first switch (telling the robot the ball had gone in) went off, the robot would drive backwards pushing the second ball in while lifting the gate to allow the first ball to come out.  We called this sequence first move.

After completing the first sequence, the robot would assume that the block had been placed in the vertical plane closest to the trough and would attempt to collect three balls until its front IR sensors detected the line signifying the middle of the board.  If successful, it would spit those three balls into the trough. 

However, if MI_K encountered an obstacle before collecting three balls, its strategy would differ.  If the obstacle was detected immediately, it would move to the vertical plane closest to the trough and proceed with it's original strategy.  Alternately, if it detected the obstacle after collecting one ball, it would back up, spit the one ball out, move to the other vertical plane and complete the move.

 

Sensors:

IR (4) These sensors were used mainly for the purposes of orientation and were placed on the bottom of the machine, in each corner.  Occasionally, our code would include instructions that occurred once one or more of the sensors detected a black line.
CDS (1) This sensor was placed in the center of the machine for the sole purpose of detecting the start light.
Distance (2) One sensor placed on each side of the robot to detect the obstacle.  We found that the distance sensors did not give accurate results and decided not to use them.

Shaft Encoders (2)

Placed in the gear box of each driving wheel to monitor number of wheel rotations on each turn.  We also used to gauge distance between several locations on the table.

 

Switches:

Side (4) We had 4 side switched which would let MI_K wall follow or figure out when it got stuck while turning.  We didn't end up using these as much as we should have in the end because of lack of time.
Back (2) There are two switches on MI_K's back.  These help it straiten out before a turn and determine when it has hit the trough wall in first move or any time that it needs to open the back gate to release the stored balls.
Front (2) The two front sensors are used to determine when MI_K hits a wall or a block.  This is how it would have found where the block is.
Have Ball (3) There are three switches on the inside of MI_K which help it figure out how many balls it is holding.  In first move, when the first switch is clicked (at the front of the machine) MI_K knows that it  has obtained the ball and that it can start driving backwards.  Any time the first switch is pressed and the second two aren't, that is a signal that the ball has gotten stuck in between the train and the spucker.  The way that we remedy this is by driving backwards and hitting the wall in order to gain some momentum to push the ball back.

Drive Mechanism:

    MI_K has 4 wheels.  The two wheels in the front are each powered by 2 motors with a 1/45 gear ratio.  Thus MI_K has front wheel drive. The back two wheels each have a servo attached to them.  This made it very difficult to turn off of walls but we tried to keep from having to do that in our strategy. The biggest problem that we faced however was in getting our turns to work consistently and this set us back quite a bit.

 

How we fared in the contest:


                 

         Calbirating the sensors                                          The round begins                               The second ball gets stuck on bumper            Continuing with ball still in machine

In the first round on Monday our Machine happened to make a 180 degree turn instead of a 90 degree turn to the left and instead of getting the first ball in and and qualifying our machine, it drove straight into the block. This was a doublefold error in that our opponent never showed up and all we had to do was get one ball in to both qualify and win the round. We believe the reason for this mistake was a small change 30 minutes before the round in the shaft encoder values for the 90 degree left turn. However, it was a perfect 180.

The second round however MI_K worked perfectly in its first move and got the two balls in. Our opponent got stuck against the block and we won the round 3 to 0. We had a spot in the final night of competition which was our main goal for our machine's ability.

The final night... Practice, practice, practice and still something new goes wrong. The orientation choosen for our machine couldn't have been better -- there was no turn necessary for orientation. However when MI_K came back to deposit the second ball into the hole on our side the ball got stuck on the back bumper we had created which helped our backup procedure to straighten our machine out. The bumper went a little higher than the back ramp for the ball and the ball got stuck on it. The switch at the back of our machine to tell us if the ball was leaving was depressed but the ball was still there. Thus MI_K though it was on schedule and drove off to do the rest of its tasks. The round ended with a 1 to 3 loss.

 


Last Modified: Feb 8, 2002