Detailed Design Review Documents
Table of Contents
|Jeff Cosimano||ME||Customer Needs, Mechanical Concept Generation, Navigation Algorithm, Feasibility/Error Analysis|
|Marcus Grant||EE||Navigation Algorithm, Sensor Analysis, Battery Level Sensor Algorithm, Feasibility/Error Analysis|
|Cory Gregory||EE||Project Plan, Ball-Placement Algorithm, Risk Assessment, Ball-Placement Mechanism Circuitry|
|John Gutmann||CE||Team Norms/Values, Bill of Materials, Electrical System Design, Robot Chassis CAD Drawings|
|Derek Hugo||CE||Software Concept Generation, Communication Algorithm, AR Golf Communication Software|
|Tenzin Seldon||ME||PRP, Beacon Design CAD Drawings, Ball-Placement Mechanism CAD Drawings|
|Karikalan Thirumavalavan||EE||Engineering Specifications, Battery Level Sensor Algorithm, Object Avoidance Algorithm|
|Jason Thrush||EE/CE||Electrical Concept Generation, System Decomposition, Risk Assessment, Robot/Beacon Communication Circuitry, Electrical Connection Schematic|
Robot CAD Assembly
Block Level Diagrams
OverviewThe robot will position itself on the green with the help of two ultrasonic beacons placed on the outside of the green. Each beacon will emit and receive on different frequencies.
The robot will emit a quick ultrasonic burst at one of the beacon's frequencies. The robot will then start a timer.
When the beacon hears this burst from the robot, it will send back another ultrasonic burst at another frequency. When the robot hears this burst back, it will stop its timer. The measured time represents the time-of-flight time of the burst, or its round-trip-time.
The robot can then calculate its distance from that beacon, by knowing the speed of sound. This process is repeated again for the other beacon so that the robot's distance from it is also known. From then, trigonometry can be done to find the robots (x, y) coordinates on the golf green.
Beacon CAD Drawing
Beacon Algorithm Flowchart
BeaconThe beacon is powered by two 9V batteries. It has two ultrasonic transducers, one for hearing the ultrasonic burst from the robot, and the other for sending a burst back. When the receiving transducer hears an ultrasonic burst from the robot, it goes through an instrumentation amplifier to amplify the signal. Next, the signal passes through a tone detector. A tone detector is basically an adjustable band-pass filter with a digital output. The tone detector's band-pass filter is tuned to the frequency of which the beacon should respond to. If the frequency of the signal is correct, two 555 timers are triggered. The first 555 timer sets the length of the ultrasonic burst response, while the second 555 timer sets the frequency. This response gets sent back to the robot through the other ultrasonic transducer.
RobotOn the robot side, a majority of the components are the same. When the robot wants to send an ultrasonic burst to one of the beacons, it does so by generating that burst via a PWM output on the microcontroller. On the receiving side, an ultrasonic transducer is connected to an instrumentation amplifier, like before, but in this case, two tone detectors are used, where one tone detector responds to the one beacon's response frequency, and the other to the other beacon's response frequency. The outputs of the tone detectors go to microcontroller inputs so that it is aware of when the beacons respond.
Overall Navigation Algorithm Flowchart
Turn Algorithm Flowchart
Forward Algorithm Flowchart
OverviewA golf ball will be placed into the ball-placement mechanism. The beam completing the emitter and phototransistor circuitry will be broken creating an open circuit. The microcontroller will recognize this open circuit and the robot will navigate to the given coordinates. The release rod will rotate 90 degrees to allow the golf ball to fall into place.
AR Golf Communication
OverviewThe robot will communicate with the AR Golf simulator software via a laptop relay. The laptop will be stationed next to the golf green and will be controlled by the station operator. Players are not meant to interact with the laptop. In fact, the laptop software will require minimal interaction with the operator once initiated. At this time, a member of the Robot team will be present to operate the laptop and answer player's questions. The customer is currently working to secure a loaner laptop from the Department of Interactive Games and Media.
The primary purpose of the laptop is to manage a queue of players waiting for ball delivery. When an AR Golf player's ball lands on the virtual green, the simulator will upload the ball's coordinates to an HTTP server managed by the customer. The coordinates will be stored as a pair of doubles, or 64-bit floating-point numbers. The pair of doubles will represent the location of the ball on an x-y plane, with the positive y-axis oriented northward. The origin (0,0) will be at the golf hole, and the units are meters. Since the Arduino microcontroller can only accept 32-bit floating point values, the laptop will do all necessary format and unit conversions before sending coordinates to the robot. The 32-bit floating point format gives approximately 7 decimal digits of precision. This precision is sufficient for our application.
Periodically (once per minute), and after each successful ball delivery, the laptop software will make an automatic HTTP request to get the list of ball coordinates awaiting placement on the green. The laptop software will then parse this data and provide the highest priority undelivered coordinate to the robot through the ZigBee transmitter. After completing a delivery, the robot will send back a confirmation and request coordinates for the next delivery. The HTTP protocol also allows the laptop to report the last successful delivery back to the customer's server. This approach would allow the laptop to be replaced with another, if necessary. The replacement laptop's first request will then return only the undelivered coordinates. Any replacement would have to have the queue software already installed, of course.
Another purpose of the laptop relay is to ensure adequate range. The approximate location of the AR Golf Simulator is now known. As a result, the distance from the simulator to the green laptop, including obstacles, could exceed the maximum range of the XBee transmitter. The RIT Wi-Fi has been tested around the green and has shown adequate ability to send and receive Wi-Fi packets (test showed signal strength of about 40%). A tent will be provided by the customer. In addition, power and internet connectivity may also be available. The range and data rate of both the XBee transmitter (300 ft, 250 kbps) and RIT wifi (~50 Mbps) are sufficient for our application.
Finally, the laptop approach will allow the station operator to make last-minute adjustments to the queue. Specifically, the software will allow the operator to add and remove players from the queue, as well as adjust player priorities. At this time, the UI below shows the control functions desired by the customer. Additional features will likely be added, but have not been finalized. A working group has been established to coordinate on this software component.
The UI shown below was written in the Java programming language. The java.net library contains the functions needed to make the relevant HTTP requests. In addition, the xbee-api for Java (available at http://code.google.com/p/xbee-api/) will provide simplified communication with the XBee transmitter. As another consideration, this approach would make it possible for the queue software to be easily converted to a smart phone "app" (not planned for this project). The customer has indicated that Java or C++ will both be acceptable programming languages.
Note: The currently pictured UI is only a prototype and will change in appearance and functionality.
Object Avoidance Sensors
|1 -||This cause is unlikely to happen|
|2 -||This cause could conceivably happen|
|3 -||This cause is very likely to happen|
|1 -||The impact on the project is very minor. We will still meet deliverables on time and within budget, but it will cause extra work|
|2 -||The impact on the project is noticeable. We will deliver reduced functionality, go over budget, or fail to meet some of our Engineering Specifications.|
|3 -||The impact on the project is severe. We will not be able to deliver, or what we deliver will not meet the customer's needs.|
|ID||Risk Item||Effect||Cause||Likeliness||Severity||Importance||Action to Minimize Risk||Owner||Completion|
|1||Too much signal interference||Wireless receiver getting mixed signals||Used proprietary carrier wave||1||3||3||Use close range wireless for strong signal strength and use of non-proprietary carrier wave.||Jason||Yes|
|2||Out of range||Receiver unable to receive coordinates||Robot has poor navigation, or does not return to the home position correctly, based on design||2||3||6||Have a range of coordinates in the program for where the robot is allowed to go and not allowed to go||Jason||No|
|3||Reference coordinates misunderstood||Robot places ball in incorrect position||Poor interfacing between game design team and robot team, or robot has lost data in coordinate transmission||1||3||3||Design an interface protocol with game design group||Derek||No|
|4||Motor is too weak||Wheels do not move||Poor motor selection, motor signal too low, or mechanism seized||1||3||3||Do calculations beforehand to be sure motor will be powerful enough||Jeff||Yes|
|5||Wheel slippage||Robot places ball in incorrect position||Wheels do not have enough grip for the terrain or conditions, could be poor wheel selection||2||3||6||Pick wheels which are unlikely to slip or have a mechanism to sense when the wheels are slipping||Jeff||Yes|
|6||Too slow||Robot takes more than allotted time to place ball||Poor motor selection, navigation algorithm is not steam-lined or poor navigation method||2||2||4||Do calculations beforehand to be sure motor will be powerful enough||Jeff||Yes|
|7||Faulty reading/no reading from sensors||Encoders, battery life indicator, digital compass fail to provide accurate data||Sensors have low level of accuracy, bad ground points, or weak power||2||3||6||Make sure all sensors are working during development||Marcus||No|
|8||Circuit breaker/fuses are consistently tripped||Robot stops operation||Too much current being drawn||1||3||3||Do calculations beforehand to be sure motor will be powerful enough||John||Yes|
|9||Battery fails||Battery smokes||Too much current being drawn||1||3||3||Use circuit breakers||John||Yes|
|10||Power supply runs out||Robot stops operation||Battery dies||1||3||3||Create battery level detector||Marcus||Yes|
|11||Short circuit||Robot performs incorrectly||Multiple nodes make contact||1||3||3||Shrink wrap open wire/make sure potential shorts are as far apart as possible/part of final inspection before delivery||EE||No|
|12||Reverse voltage||Robot performs incorrectly or experiences hardware failure||Battery connected backwards||1||3||3||Polarized connectors||John||No|
|13||Loose connection||Robot stops operation||Wire comes out of place||2||2||4||Make solid connections/ Part of final inspection before product delivery||Team||No|
|14||Interference from metal/magnets||Digital compass gives faulty reading||Poor mounting of robot components impede or interfere with sensor||3||3||9||Place compass in a location where it will not be interfered with and/or add shielding to all high current components||Marcus||No|
|15||Robot senses non-existent ball||Robot begins a journey with no ball||Ball sensor malfunctions or gets stuck||1||2||2||Use reliable sensor and block ball passageway when not in use||Derek||Yes|
|16||Robot sees non-existent obstacle||Robot stops in the middle of its path||Obstacle sensor poorly mounted||1||3||3||Mount sensor so that interference cone is not intersecting the plane of travel||Derek||No|
|17||Ball stuck in robot||Ball cannot be placed||Ball canal was designed poorly or debris was allowed||2||3||6||Design ball system so that nothing can get into the ball shoot, except the ball and include systems check to detect such errors||Marcus||Yes|
|18||Phototransistor doesn't recognize ball||Robot would remain idle||Sensors are placed too high, reflectiveness||1||3||3||Create effective design, decrease LED brightness||Cory||Yes|
|19||Phototransistor doesn't sense emitter||Robot thinks golf ball is there||Phototransistor and emitter not placed in linear fashion||1||3||3||Test ball-placement mechanism beforehand||Kari||Yes|
|20||Robot senses incorrect location||Non-linear positioning||Beacons are placed too close together, or with too much error||1||3||3||Place beacons at a far enough location and at a accurately measured distance||Marcus||Yes|
|21||Beacon frequencies are too similar||Circuit incorrectly senses reflection||Frequencies were incorrectly selected||2||3||6||Calculate proper frequencies||Jason||No|
|22||Camera does not accurately locate target||Robot does not read the color properly||Camera was not calibrated accurately because of user error, environmental light||3||3||9||Do not use any sensors which will be affected by light or do testing beforehand to see how interference is||Marcus, Kari||No|
|23||Robot does not detect position||Beacon receiver doesn't receive proper signal||Signal is not amplified enough, beacons are too far away, noise margin too high||2||3||6||Place beacons at a close enough location, tune amplifier, add error correction circuitry||Jason||No|
|24||Object avoidance sensors don't recognize objects||Robot collides with object||Objects are within range of sensors||2||2||4||Set range correctly and make sure sensors are positioned properly||Marcus||No|
|25||Beacon is positioned incorrectly||Robot calculates incorrect location||Beacon was placed in incorrect location||2||3||6||Correctly measure fixed location of beacons||Jeff||No|
|26||Electrical hardware failure||Robot does not work||Manufacturing defect, hardware design flaw, over-current||1||3||3||Have backups of hardware/ Part of final inspection before product delivery||EE||No|
|27||Gearbox binds up||Gearbox breaks||Too much force applied to gearbox||1||3||3||Do calculations beforehand to be sure motor will be powerful enough||Jeff||Yes|
|28||Weight increases||Robot operates slowly or not at all||Object placed on top of robot||1||2||2||Check if motor is running but encoders aren't||Marcus||Yes|
|29||Not sealed properly and it rains||Circuitry is shorted||Robot casing is not sealed properly||1||2||2||Perform air test to see if there are any holes||Art Team||No|
|30||Robot is kicked||Robot casing cracks/breaks||Bystander doesn't see robot||1||1||1||Do not allow bystanders to step on green||FMS||No|
|31||Ball drop mechanism gets jammed||Ball doesn't get placed||Ball-placement mechanism assembled incorrectly||1||3||3||Test ball-placement mechanism beforehand / Part of final inspection before delivery||Cory||No|
Bill of Materials
|Sub-System||Part #||Part||Unit Cost||Quantity||Total Cost||Distributor|
|Drive System||M5-RS550-12||RS550 Motors||$6.53||5||$32.65||Banebots|
|AM-0570||8" Wheels||$20.00||5||$100.00||Andy Mark|
|Chassis||275-1035||35 holes x 35 holes Chassis Kit||$33.95||1||$33.95||Vex|
|Power||am-0009||Battery Cable||$15.00||3||$45.00||Andy Mark|
|am-0282||120A Breaker||$29.00||1||$29.00||Andy Mark|
|N/A||Bussman Fuse Panel||$10.00||1||$10.00||Autozone|
|am-0795||2 x 18 Ahr SLA Batteries||$83.00||1||$83.00||Andy Mark|
|Electronics||888-XB24-ACI-001||Xbee 1mW Chip Antenna||$19.00||2||$38.00||Mouser|
|782-A000021||Arduino Xbee Shield||$19.32||1||$19.32||Mouser|
|WRL-08687||XBEE Explorer USB||$24.95||1||$24.95||Sparkfun|
|CAB-00598||USB Mini-B Cable - 6'||$3.95||1||$3.95||Sparkfun|
|782-A000047||Arduino Mega 2560||$63.76||1||$63.76||Mouser|
|VICTOR-884-12/12||Motor Controller||$89.99||2||$179.98||IFI Robotics|
|SEN-09418||Digital Temperature Sensor||$5.95||1||$5.95||Sparkfun|
|SEN-00639||Ultrasonic Range Finder||$25.95||4||$103.80||Sparkfun|
|Ball-Placement Mechanism||276-2162||3-Wire Servo||$19.99||1||$19.99||VEX|
|276-142||IR Emitter and Detector||$3.49||1||$3.49||Radio Shack|
|2202||VPC 2" x 2' PVC Pipe||$3.36||1||$3.36||Home Depot|
|447-020HC||Mueller Streamline 2" PVC Cap||$0.98||1||$0.98||Home Depot|
|58K3796||1k Ohm Resistor||$0.05||10||$0.50||Newark|
|66H7462||PCB Prototyping Board||$6.10||1||$6.10||Newark|
|Beacons||XDR-24||24kHz Ultrasonic Tranducers||$1.25||6||$7.50||All Electronics|
|LM567||Tone Decoder IC||$1.59||4||$6.36||Newark|
|NE556||Dual Timer IC||$0.29||2||$0.58||Newark|
|INA126PA||Instrumentation Amplifier IC||$2.26||3||$6.78||Newark|
|N/A||Various Resistors, Capacitors, Etc||-||-||$10.00||N/A|
|PVC044000200||Charlotte 4" x 2' PVC Pipe||$6.31||4||$25.24||Home Depot|
|3P16||NDS 4" x 4" PVC Adapter||$4.94||2||$9.88||Home Depot|
|447-040HC||Mueller Streamline 4" PVC Slip Cap||$7.35||4||$29.40||Home Depot|