Introduction Mechanics Electronics Software Conclusions |
EE/CS118 Final Project 2002Mechanics
In designing the mechanical systems of our robot, we tried as hard as possible to stick to the philosophy of keeping things as simple as possible. All of our subsystems, including those responsible for driving, aiming, and loading, were designed to eliminate as many variables as possible. By doing so, we theorized that we would be able to shoot baskets accurately and with high reproducibility. The robot subsystems are detailed below. Pitcher
This was our way of delivering the “perfect stroke” from behind the arc. It consisted of three components: 1) a J-pipe, 2) a pitching wheel, and 3) a rotating turret. J-pipeThe J-pipe coupled the loader with the pitching wheel. The long decline before contact with the pitching wheel ensures that all the balls loaded follow roughly the same path. The pitching wheel contacts the ball at approximately the bottom of the J, accelerating the ball up the J to get a nice parabolic arc tangent to the ball’s separation from the end of the J. Pitching WheelTo drive our pitching wheel we used a high speed low torque motor from Jameco. The pitching wheel was a 2” foam wheel from the San Antonio hobby shop. Since the shaft was a little bit smaller than the bore of the wheel, we used Aerotubing to couple the shaft with the wheel. This gave it a very nice and tight fit and held the wheel tight to the shaft. We mounted the motor into a housing of 4 MDF rings glued onto a slotted adjustable arm. The MDF rings provided vertical stiffness so the motor would not rotate clockwise when dangling, or counterclockwise when it contacted a yellow nerf ball. The arm had 2 degrees of freedom since it was slotted and the binding pieces were also slotted. We could rotate the arm to any reasonable theta, and extend (or shorten) the arm to a variety of radii. Rotating Turret
Rotating Column
We wanted a method for loading the balls into our pitching mechanism fast enough so that we could shoot our entire capacity in the time allotted, but also slow enough so that we would not be feeding balls into the pitcher before the pitcher was properly aimed. This was known as the Kishan dilemma, and was the basis for our rotating column design. The ColumnWe were pretty much set on a rotating column design from the onset because we wanted to drop each ball vertically to avoid friction between balls, and between ball and loader. The best geometry for this seemed to be 8 circularly arranged pipe segments, since we could stack balls up in each column and vertically drop each ball. We wanted our column to rotate and the lazy susan we had to mount underneath was square, so using 8 pipes was perfect for this since the square opening in the middle of this pipe configuration exactly resembled the dimensions of our lazy susan. We put one sheet of MDF on top and one on the bottom to increase the structural integrity of the column without increasing the weight very much. The top piece held on with rubber band engineering to make sure it was removable so we could get to the lazy susan screws underneath in case anything came unscrewed (which it did). Each column was made of 2" ABS pipe carefully bandsawed and sanded down to a precise 5". DispensingSupplying the balls one at a time was our next task. We went through a few iterations in this step: Plan A: Two SolenoidsInitially we thought the most efficient way to do this was to empty one column of balls at a time since we could probably do this faster than we could rotate the column. The idea was that we could use 2 solenoids in a gating configuration for each column: the first solenoid would block the bottom ball while the second blocked the ball above it (and all the balls above that). When the first solenoid popped open, the bottom ball would be allowed through while the second solenoid held the remaining column of balls. The bottom solenoid would pop close, and the second solenoid would open to let the column shift one balls length down. The top solenoid would close and this whole process would repeat until we were out of balls. This was a good idea at first since we believed that we could make our columns very high and hold 5 or 6 balls before having to rotate. We even managed to optimize this design so that instead of using 2 solenoids per pipe (16 solenoids!), we only needed 2 solenoids as long as we cut slits in the pipe for the solenoids and rotated each pipe into the solenoids. Plan B: One SolenoidAfter designing the pitcher and base, however, we realized we could only optimize column height to hold 3 or 4 balls max. We also realized that the solenoids we bought were fat and bulky and only had a push/pull range of 0.25”, so placing these solenoids correctly added another degree of complexity. Plus the solenoids were $8 a piece, so we really didn’t want to break the seal. Realizing this, we tried to design for a one solenoid setup where we replaced the top solenoid with a ledge just to block the ball. If we had a ledge, we would have to rotate the column past the obstruction before the balls above the ledge would fall. So we could either rotate forward a little bit and rotate back to empty the same column before moving on, or we could continue rotating in the same direction and drop the first ball from the next column and so on. Now the Kishan dilemma stated that if we loaded a ball into the pitcher before it finished aiming we would waste a ball on a bad shot. Because the pitcher was mounted on a lazy susan, this meant that we had to load the pitcher slower than the turret spun. The famous Kishan theorem stated if the column rotated at a fixed speed, as long as that speed is slower than the turret’s speed, we will always be done aiming before the next ball is loaded. This was key. Plan C: No SolenoidsHaving continuous rotation meant that there was no reason to gate the bottom ball any more, so now we needed no solenoids. By the time the next column arrived, it would be time for the next ball to be loaded into the pitcher. A consequence of continuous rotation was that we only had to deal with static friction once: when we begin column rotation. At this point we could power up our motor at full speed for a fraction of a second to overcome static friction, and then PWM our drive speed back down to a nice “slow” ~3 sec / pipe. The Ledge
Lower PlatformWe designed the base of our robot as basically a square to take full advantage of the 13”x13” space allotted to us. Because the back end was flat, we were able to back up into the wall and straighten our robot out. DrivetrainWe chose to drive our wheels directly since historically the high torque motors we bought have been able to withstand the stress of these robots’ weight on their bearings. To keep this platform as close to the ground as possible, we created motor mounts above the platform. This allowed us to place the platform within an inch from the floor. Turret Motor
Upper Platform
|