P11217: Golf Robot
/public/

Detailed Design Review Documents

Table of Contents

P11217 - Detailed Design Review Pre-read Packet

P11217 - Detailed Design Review Meeting Minutes

Team Breakdown

Name Discipline Task(s)
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

Click to view full size

Click to view full size

Block Level Diagrams

Level 0

Click to view full size

Click to view full size

Level 1

Click to view full size

Click to view full size

Level 2

Click to view full size

Click to view full size

Electrical Diagram

Click to view full size

Click to view full size

Overview

The 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.

Click to view full size

Click to view full size

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.

Click to view full size

Click to view full size

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.

Click to view full size

Click to view full size

public/DDR/xy_calc.png

Beacon CAD Drawing

Click to view full size

Click to view full size

Beacon Algorithm Flowchart

Click to view full size

Click to view full size

Schematics

Beacon

The 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.
Click to view full size

Click to view full size

Robot

On 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.
Click to view full size

Click to view full size

Feasibility/Error Analysis

Beacon

public/DDR/feasibility_beacon.png

Camera Tracking

public/DDR/feasibility_camera.png

Mobility System

Overall Navigation Algorithm Flowchart

Click to view full size

Click to view full size

Turn Algorithm Flowchart

Click to view full size

Click to view full size

Forward Algorithm Flowchart

Click to view full size

Click to view full size

Ball-Placement Mechanism

Overview

A 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.
Side View - Click to view full size

Side View - Click to view full size

Top View - Click to view full size

Top View - Click to view full size

CAD Drawings

Click to view full size

Click to view full size

Side View - Click to view full size

Side View - Click to view full size

Top View - Click to view full size

Top View - Click to view full size

Algorithm Flowchart

Click to view full size

Click to view full size

Schematic

Click to view full size

Click to view full size

AR Golf Communication

Overview

The 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.

Click to view full size

Click to view full size

Algorithm Flowchart

Click to view full size

Click to view full size

Object Avoidance Sensors

Algorithm Flowchart

Click to view full size

Click to view full size

Systems Check

Algorithm Flowchart

Click to view full size

Click to view full size

Risk Assessment

Likelihood Scale:
1 - This cause is unlikely to happen
2 - This cause could conceivably happen
3 - This cause is very likely to happen
Severity Scale:
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.
Importance Score = (Likelihood x Severity)
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
P60K-54-0004 Gearboxes $54.50 4 $218.00 Banebots
AM-0570 8" Wheels $20.00 5 $100.00 Andy Mark
6412K41 Shaft Coupling $10.25 5 $51.25 McMaster
6435K14 Shaft collar $1.79 8 $14.32 McMaster
Chassis 275-1035 35 holes x 35 holes Chassis Kit $33.95 1 $33.95 Vex
276-2232 Booster Kit $179.99 1 $179.99 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
276-2156 Encoders (2-Pack) $19.99 1 $19.99 Vex
SEN-07915 Digital Compass $34.95 1 $34.95 Sparkfun
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
N/A U-Bolts $1.50 2 $3.00 Home Depot
89K0701 LM339N Comparator $0.29 2 $0.58 Newark
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
Camera N/A CMUcam3 $239.00 1 $239.00 Seattle Robotics
Total Cost: $1664.55