Strategy
Ball made into 1/16' larger diameter pipe.
After intense prototyping we found ourselves armed with a surprisingly accurate spring loaded shooter (see video gallery). We could reliably make shots not just from right under the hoop like originally planned, but even from as far away as the dispenser! This made us rethink our original strategies of shooting at the free-throw line. We set out to shoot from the dispenser as soon as the balls dispensed. This allowed us to have the most efficient robot in gathering balls, as we were typically able to shoot 21 balls per round. Of course credit has to be given to our very zippy drive train as well, since it was able to shuttle back and forth quite fast.
One tiny time-saving strategy that we also implemented was to always leave one ball in our harvester after receiving three balls from the dispenser. We noticed that when we reach a dispenser, it always takes a few seconds for the first ball to come out. Since we always leave one ball in the harvester from the previous dispenser, it shoots that ball while waiting for the first to come out from the current dispenser. The time saved from this subtle strategy accumulates to around 15 seconds, which is the difference between shooting 18 balls vs. 21 balls per round.
Below is an example of the most likely run-sequence for a half-court game. This is not an actual sequence that we programmed. This is just an expected sequence that occurs because of the nature of our state machine and the pre-defined field; we tried our best to not dead-reckon. Also, we built time-outs into every state to make sure we do not get stuck in any state. Please see the software and state machine pages for more details.
One tiny time-saving strategy that we also implemented was to always leave one ball in our harvester after receiving three balls from the dispenser. We noticed that when we reach a dispenser, it always takes a few seconds for the first ball to come out. Since we always leave one ball in the harvester from the previous dispenser, it shoots that ball while waiting for the first to come out from the current dispenser. The time saved from this subtle strategy accumulates to around 15 seconds, which is the difference between shooting 18 balls vs. 21 balls per round.
Below is an example of the most likely run-sequence for a half-court game. This is not an actual sequence that we programmed. This is just an expected sequence that occurs because of the nature of our state machine and the pre-defined field; we tried our best to not dead-reckon. Also, we built time-outs into every state to make sure we do not get stuck in any state. Please see the software and state machine pages for more details.
Example robot run sequence for half-court game
Robot aligned with hoop and requesting balls.
(1) Robot starts in starting box
(2) Aligns with opposite dispenser beacon
(3) Robot tracks dispenser at 85% speed
(4) Robot detects black tape and slows down (to not slam into wall)
(5) Touches wall and bump sensors are triggered
(6) Reverses a bit to get off wall
(7) Rotates to align with hoop beacon
(8) Drive briefly until 3 pt line is found (to calibrate distance from hoop)
(9) Query/Dispense balls into harvester
(10) Sensor at ball gate recognizes ball
(11) Ball gate releases ball into shooter
(12) Shooter servo cocks ruler and shoots ball into hoop
(13) Repeat steps 10-12 for next ball
(14) Leave one ball in dispenser
(15) Repeat steps 2-14 for opposite dispenser
(2) Aligns with opposite dispenser beacon
(3) Robot tracks dispenser at 85% speed
(4) Robot detects black tape and slows down (to not slam into wall)
(5) Touches wall and bump sensors are triggered
(6) Reverses a bit to get off wall
(7) Rotates to align with hoop beacon
(8) Drive briefly until 3 pt line is found (to calibrate distance from hoop)
(9) Query/Dispense balls into harvester
(10) Sensor at ball gate recognizes ball
(11) Ball gate releases ball into shooter
(12) Shooter servo cocks ruler and shoots ball into hoop
(13) Repeat steps 10-12 for next ball
(14) Leave one ball in dispenser
(15) Repeat steps 2-14 for opposite dispenser