Initial+Design


 * Goal**: Our main goal is to successfully use Drew and Ryan's robot, PickUpBot, to pick up all three golf balls and communicate with Josh and Charlie's robot, DeliveryBot, to transfer the balls and eventually drop them into the hole.

**__DeliveryBot__**
Created and Programmed by Charlie Manning and Josh Olsen


 * Functions:**

The primary function of this robot is to communicate with PickUpBot via bluetooth to receive the golf balls in the neutral zone. This bot will get to the neutral zone and then back to the hole using a line following program, with light sensors on either side of the black line line. It will stop at the first double black with a "basket" protruding from it in which the golf balls will be received. PickUpBot will send the message to DeliveryBot that it is all clear to move, prompting a counter clockwise turn until the light sensors meet the black line. DeliveryBot will then proceed with the delivery of the golf balls to the next double black line. Upon hitting the double black DeliveryBot will "agitate" to the left and right in order to literally "get the balls rolling" into the hole. Of course, one of the most important parts of DeliveryBot is how it will hold, transport, and deliver the balls. As a group we concurred that the best way to ensure a consistently successful exchange of the golf balls is to use a large basket to receive them in the neutral zone, and use it to roll the balls into the hole. Essentially, the basket allows the balls to roll freely around a certain area, but contains them well enough that they will fall into the hole when desired.


 * Systems:**

__The Body__

Josh and I decided to make a very compact body for our robot. The NXT will be placed directly on top of the two motors, left and right, and will be attached behind the center so that the NXT tips towards the basket. This is intentional because the basket will act as a slider and will eliminate the need for a counter weight and castor wheel. The wheels will be directly attached to the motors axel, we don't see a need to gear them because we do not intend on going very fast, nor will we be dealing with an overwhelming amount of weight.

__The Light Sensors__

The Light Sensors are located inside of the basket and are just outside of the width of tape. This will prove to be beneficial because there will be less of a margin for error when it comes to receiving or dropping off the golf balls. Furthermore, time will not be wasted recovering from over compensated turns.

__The Basket__

The Basket is at the front of our robot in the shape of a trapezoid. Its wide mouth allows us to ensure the safe transfer of all three golf balls and gives us a large margin for error when we have to drop them in the hole. It also acts as a slider with two sliders on the bottom.


 * Integration:**

In theory, if all goes as plan, our robot and system will work as planned. It is crucial that our blue tooth works perfectly because without it DeliveryBot will not leave the neutral zone. Additionally, the "agitation" part of the program will have to be refined to make sure the balls fall into the hole. However, both robots should work well in sync, and the basket idea will allow both robots to leave the neutral zone unscathed.

1) CCW turn until left light sensor hits black. 2) Line follow myblock. 3) Wait at double black until blue tooth message received. 4) Upon reception of message, CCW turn until left light sensor hits black. 5) Line follow myblock. 6) Stop at double black. 7) Move forward one rotation. 8) Agitation myblock (pivot left, reverse, pivot right, reverse) loop.
 * Pseudocode:**

=__PickUpBot__=

Our robot will have many different functions that it will have to perform throughout the challenge. We must first start at the drop off zone, and then turn around until the light sensor "catches" and our line following program then kicks in. Our light sensors will keep the robot on the line, and if it starts to veer off, one of the light sensors will see the black line, and are programmed to turn the slightly to put the robot back on the line. When it sees double black for the first time, it will know it's at the golf balls, so it will then move the motor picking up the balls in its claws. The robot then backs up, turns around and line follows back to the drop zone. Once it hit the double black line again, it then moves forward a light amount and then drops the golf balls off into the other robots basket while then sending the other robot a true message through blue tooth, telling him to do his half of the challenge.
 * Functions**:

__The Body__ Our body will be built mainly off of our NXT brick. It will include two motors attatached directly to the NXT brick, wich will provide the movement of the unit. A third motor will also be attached and will act as the force that will move the claw up or down to pick up the golf ballsl.
 * System:**

__The Light Sensors__ The Light Sensors are located near the claws and are wider than the width of tape. This will prove to be beneficial because there will be less of a margin for error when it comes to receiving or dropping off the golf balls. Furthermore, time will not be wasted recovering from over compensated turns.

__The Claw__ The claw will be made of uniformed pieces which will scoop under neath the golf balls, and then will scoops up and pick up the golf balls, cratteling them until the drop zone.

Our robot will work together, through the programming of our NXT brick, and will move along the line with the help of the light sensors and will navigate to the pick up zone, lift the golf balls up using the third motor and then navigating back to the drop off zone. It will then use its blue tooth capabilities to drop off the golf balls to the other robot.
 * Integration:**


 * Psuedocode:**
 * 1) Turn CCW until light sensor is hit
 * 2) Use a basic line following program until double black
 * 3) Lift up golf balls
 * 4) Turn around
 * 5) Use a basic line following program until double black
 * 6) Move forward slightly
 * 7) Drop off golfballs into other robots basket
 * 8) Move back and send a blue tooth signal to the other robot