Wednesday, March 10, 2010




Mechanical Overview of System

Strategy -
Main Goal: wall follow with arm out to push balls toward next wall. On subsequent wall pass all the balls will be picked up. Theoretically all balls will be picked up within one rotation of the playing field, about 40 seconds. (See Video!)
Secondary Goal: Save up black balls so that they can be shot onto the opposing side.

To complete this strategy the mechanical systems of the robot had to be designed to meet certain criteria that will be stated. One important design criteria was that all ball handling components had to be fast and reliable. Our strategy causes our robot to pick up lots of balls in rapid succession, and thus our robot has to process all the balls before it gets jammed.

Locomotion
Design Criteria:
1. Provide a way to move around the field where we can follow the wall.
2. Make sure that we can scoop out balls from the corners.

Solution:
We determined that the cockroach approach to locomotion from lab 2 (2 independent drive wheels) would be sufficient. Controlling the speed and direction to each wheel would allow us to make sharp turns while maintaing easy control of our robot. However we needed a way to scoop out balls from the corners. Previously we had determined that we should have a square robot based on our collection scheme. However we needed a way to stay in contact with the wall while turning against it to follow the next wall and not get stuck. With normal rubber wheels this would be next to impossible. As a result we decided to use omnidirectional wheels from Vex.

Going in a counter-clockwise direction, we drive both wheels forward, with the left one being slightly underpowerd than the right one. The omnidirectional wheels would allow us to maintain good pressure contact with the wall in fornt, while sliding the robot sideways into the turn. This allowed us to complete both criteria of being able to follow the wall and still be able to retrieve balls out from the corners.


Ball Collection
Design Criteria:
1. Provide a fast and reliable way to pick up balls.
2. Make sure that balls do not get jammed inside our robot
3. Move the balls to the top level of the robot

Solution:
After several iterations of prototype we decided that a single lane shooter would be the least likely to jam, while still being able to move balls to the top of our robot in a fast manner. The single lane shooter consisted of a very fast spinning wheel that would shoot the ball up a ramp that would guide it to the top of our robot. Balls were fed into the single lane shooter by a large funnel shape in front of the shooter. Also we implemented a disturber motor which acted like a weed whacker to prevent balls from becoming jammed in the funnel. The result was that when we drove over a group of balls they would be quickly shot up into our robot in a single file, ready to be sorted. During the prototyping phase we learned that the position of the spinning wheel had to be fairly precise. As a result we also designed an adjustable mount which allowed us to position the wheel in the x,y,and z directions as needed.



Sorting
Design Criteria:
1. Distinguish between Black Ball, Yellow Ball, and Nothing.
2. Sort in a fast and reliable manner.

Solution:
The first concern when designing this component was that it had to be fast. Several of the first designs that we felt were reliable relied on a ball holder that would move the ball from a "home" position toward a specified direction. By having the ball be stopped in the holder we would not miss any balls that could otherwise go by in other designs. However these sorters had to move back into the "home" position in order to sort the next ball. In order to avoid this aspect, our resulting design involved a wheel with 3 positions offset 120 degrees from another that balls could fit in. A ball was sorted either left or right by turning the wheel 120 degrees. As a result, not only was the first ball moved to the desired location, but also the next ball in line would fall into the subsequent position on the wheel, ready to be identified and sorted again. By removing the need to return to a "home" position we greatly increased the speed of our robot's sorting capabilities.
We also discovered that a simple tape sensor was able to distinguish between nothing, black ball, and yellow ball easily and thus no complicated circuitry was needed! Using the resistors that we used, on a 0-1024 scale, nothing would have a value of about 0-12, Black Ball: 30 - 50 and Yellow Ball: 400-1024. These ranges were directly implemented into our software to determine which way to spin the wheel. Yellow balls would go right into the "stomach" and Black balls would go left into a holding ramp.

Arm:
Design Criteria:
1. Extend from the side of the robot to at least the center of the playing field
2. Move balls toward the wall reliably. (Can't roll over the balls)
3. Be released in a safe reliable manner.

During the prototyping phase we found that the nerf balls have a lot of friction and thus could not be easily pushed without having the whole arm rolling over the ball. This meant that the arm had to be thin enough to be lower than the midpoint of the balls so that it could push them properly. We also had the make the arm fold out in a manner that would not cause it to get stuck on either a wall or a ball. We decided that an arm that folds up twice into itself would be the best. The resulting arm was mad out of masonite where the first joint attached to the arm was actuated by a spring. The second joint however could not fit a spring because it was necessary to keep the arm thin when folded up and also when extended. As a result we ended up using rubber bands to open the last joint. The whole arm was also held in by a solenoid at the top of the robot. Once the solenoid was activated, the spring and rubber bands would cause the arm to automatically unfold and fall onto the playing field. This way even if there were balls in the way of the arm when it was released the arm would still be able to fully extend. The combination of our arm and wall-following strategy allowed us to clean the field of nearly all balls withing one go-around of the playing field. Check out how fast at collection we are here. We have picked up all but one black ball by a minute into the round.



Sensors:
Design Criteria:
1. Allow the robot to tell when it has run into a wall, or is following a wall.
2. Distinguish between the low and high walls.
3. Have a sensor on the corner of the robot that will not have a blind spot as the robot transitions from one wall to the next. (The blind spot will cause chatter where the robot will move forward and back quickly while not moving onto the next wall.)

We decided that we would mainly use bump sensors to navigate our way a long the walls. A beacon sensor would just be to complicated for us wanting to follow the wall. It would only be useful for deciding when to shoot the balls. However a high sensor above the 4 in wall. We used bump switches from jameco which turned "on" when their lever was depressed. We positioned bump switches at the front left, front right, right front, and right back, and high right locations. These five locations were sufficient for letting our robot follow the wall as well as determine where it was on the playing field.

The front right/right front pair of switches was the most complicated sensor. During prototype testing we placed two bump swithces at this corner. The wall following code we developed was used this pair of sensors at the corner to tell when to transition from turning in the corner to moving forward into the corner to follow straight into the next wall. However simply placing two sensors in this corner created a large blind spot where neither sensor would be activated. This caused a chatter problem where our robot would stutter in the corner when the blind spot was in contact with the wall. As a result we developed a corner sensor that eliminated this blind spot. Essentially the corner sensor we developed was a 2D motion sensor that could tell whether it was being pushed in both the forward and side direction simultaneously. This was accomplished by building an acrylic structure that would move independently from the bump switches itself. The acrylic structure was attached to springs which would not only allow it to move freely in any direction when in contact with the wall, but also return to a home position where neither of the switches were activated. The addition of our corner sensor made wall following possible by eliminating the blind spot in the corner sensor which was proving difficult for us to solve using software.

Our high sensor also allowed us to know where on the playing field we were. Since There was only one high wall on the playing field, we could count how many turns we had made since encountering the high wall to know which direction we were facing. We utilized this information to aim our poop flinger to create the only offensive strategy robot in the whole class.



Shooting:
Design Criteria:
1. Launch black balls far enough that they will not fall back onto our side of the playing field
2. Store a good number of black balls so that they can all be launched at once against the opponent.
3. Release the stored balls after 40 seconds in the right direction; toward the opponents playing field.

From our previous experience with the development of our collector, we were familiar with using a spinning wheel to launch balls up a ramp. Instead of providing a collection area as in our collector, we instead let the balls go flying out of the robot. We tuned the speed of the launching wheel and the angle of the ramp to launch the ball in a high arc such that the ball would land precisely in the opponents playing field. Due to spatial constraints we pointed our shooter so that it would fire backwards from the direction that the robot was heading. However this was fairly convenient since we knew to fire when our robot began following the wall after it had turned from the high wall.

To make our offensive strategy even more effective we decided to store up as many black balls as possible and launch them all at the same time to the opponents side for a devastating effect. We implemented a servo that acted as a gate in the ramp leading up to the poop shooter. Once we knew that our robot was facing the right direction and had stored up enough black balls, we would open the gate and unleash a devastating rain of black balls onto the other side of playing field. We also had a pleasant surprise that the black balls flying out of our shooter also had a little back spin on them. As a result when the balls landed on the opponents side they roll back toward the wall and corner where it is very hard for the opponent to collect balls from. See the devastating effect we had on our first opponent here(0:55).



Other Mechanical Tidbits
We also incorporated a couple mechanical tidbits that made our robot easy to work with. We made certain structural components removable which gave us easier access to deeper parts of the robot. For example the wall holding up the circuit board and chips is removable. As a result we had easier access to to the shooter and ramp located behind this wall. We also hinged a couple parts of the robot as well. First was the cover to the ramp leading to the sorter. The cover served to make sure balls coming from the collector would not fly out of the robot completely. However hinging this component let us access the top of the sorter as well as the ramp leading up to the sorter in case any balls ever got stuck in this section of the robot. We also hinged the structure holding the solenoid and arm up. Due to spatial constraints we had to place many of the driver ships behind this structure. However by hinging this structure we could move it out of the way so that we could easily access the chips and wires located behind it.

No comments:

Post a Comment