Display

Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
Milestone Chart
Task
Pull Image from
Camera
Resolve MAX232 Serial
Conversion
Hough Transform
Lines – MATLAB
Hough Transform
Circles - MATLAB
Ball Color
Identification MATLAB
Interface SensorTag
with PC
Design SensorTag
Housing
Test Projector Output
from BBB
Determine System
Mounting Solution
Website Template
Update Gantt Chart
with New Milestones
System API Defined
Scheduled
End
1/26/2015
Personnel
Actual End
Notes
GJD
1/25/2015
Completed
1/26/2015
GJD
1/25/2015
Unnecessary
1/26/2015
BAS
2/8/2015
Completed
1/26/2015
BAS
2/8/2015
Completed
1/26/2015
BAS
2/8/2015
Completed
1/26/2015
RRG
3/8/2015
Completed
2/9/2015
BAS
2/9/2015
Completed
2/17/2015
GJD
2/27/2015
Completed
3/2/2015
GJD, BAS
3/7/2015
Completed
3/5/2015
3/8/2015
3/5/2015
3/8/2015
Completed
Completed
3/15/2015
Completed
3/17/2015
Completed
Camera Library
Complete
Display Output
Solution
ImagineRIT Proposal
3/15/2015
GJD
GJD, BAS,
CJR, RRG
GJD, BAS,
CJR, RRG
GJD
3/15/2015
GJD, BAS
3/15/2015
Completed
3/20/2015
3/20/2015
Completed
Rail-Identification
Algorithm
Implemented
3/22/2015
GJD, BAS,
CJR, RRG
BAS, CJR
3/25/2015
Completed
3/12/2015
1
Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
Task
Scheduled
Personnel
Actual End
Notes
End
Camera-Projector
3/22/2015
BAS, CJR
In Progress
Alignment Algorithm
Implemented
Scoring of Shot
3/23/2015
CJR
Completed
Difficulty
Simulation of Game
3/23/2015
CJR
Completed
Rules
SensorTag Button
3/29/2015
RRG
In Progress
Software
Quantify Shot Strength 3/29/2015
RRG
In Progress
Hough Transform
4/6/2015
BAS
In Progress
Lines - OpenCV
Hough Transform
4/6/2015
BAS
In Progress
Circles – OpenCV
Ball Color
4/6/2015
BAS
In Progress
Identification OpenCV
Develop Feedback
4/6/2015
RRG, CJR
System
Interface SensorTag
4/6/2015
RRG
with BBB
Core Simulation
4/6/2015
CJR
In Progress
Updated Proposal
4/12/2015
GJD, RRG,
Document
CJR, BAS
Integrate Camera &
4/13/2015
GJD, BAS
Image Processing
Software
Display Feedback to
4/20/2015
RRG, CJR
User
SensorTag Power
4/20/2015
RRG
Analysis
Camera/Projector
4/20/2015
BAS, CJR,
Calibration Software
GJD
Integrate Image
4/20/2015
CJR, BAS
Processing &
Simulation Software
2
Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
Task
Scheduled
Personnel
Actual End
Notes
End
Integrate Simulation
4/20/2015
GJD, CJR
Software & Projector
Output
Table Display System
4/20/2015
GJD, (CJR)
In Progress
Library and Backend
Poster Draft
4/21/2015
GJD, RRG,
CJR, BAS
Project Poster
4/23/2015
GJD, RRG,
CJR, BAS
Website Draft
4/30/2015
GJD, RRG,
In Progress
CJR, BAS
ImagineRIT
5/1/2015
GJD, RRG,
CJR, BAS
Final Report
5/5/2015
GJD, RRG,
CJR, BAS
Website Complete
5/7/2015
GJD, RRG,
CJR, BAS
3
Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
Current Milestones
Task
Interface SensorTag
with BBB
Camera-Projector
Alignment Algorithm
Implemented
SensorTag Button
Software
Quantify Shot Strength
Core Simulation
Hough Transform
Lines - OpenCV
Hough Transform
Circles – OpenCV
Ball Color
Identification OpenCV
Scheduled
End
2/17/2015
Personnel
Projected End
Notes
RRG
4/6/2015
3/22/2015
BAS, CJR
4/2/2015
In Progress
3/29/2015
RRG
4/5/2015
In Progress
3/29/2015
4/6/2015
4/6/2015
RRG
CJR
BAS
4/5/2015
4/6/2015
BAS
4/6/2015
BAS
In Progress
No Progress
Pending implementation of
camera-projector alignment
algorithm.
Able to locate balls within
area defined by rails.
Gathered a set of test images
to store ball information
from.
4
Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
Next Milestones
Task
Develop Feedback
System
Scheduled
End
4/6/2015
Personnel
Projected End
Notes
RRG, CJR
Status
The shot difficulty scoring algorithm has been implemented, and appears after extensive testing to
satisfactorily prioritize “easier” shots over “harder” shots along a smooth gradient.
The shot finding algorithms and some other backbone components have been updated slightly to give
better results.
The game-rules-specific shot-finding algorithms have been completed for the three goal games
(eightball, nineball, and rotation), and the only component missing from a complete simulation of each
game is the layer that compares the delta between current table state and previous table state using the
image-processing results. This extra layer is necessary for detecting fouls and other abnormal conditions,
detecting win conditions, and attempting to detect player change.
The rail identification algorithm has been implemented and completed. Using an image of the table with
desired camera settings (saturation, contrast, sharpness) we were able to accurately detect the lines
representing the rails and identify them. With the rails identified, we were then able to find the
intersection points of each rail to locate the corner points of the table.
A masked image is then created to limit the search space of the ball-finding algorithm.
5
Pocket Billiards Trainer – Progress Report 8
3/29/2015
Gregory Dias ([email protected]), Ryan Gault ([email protected]),
Collin Reeser ([email protected]), Beau Sattora ([email protected])
In order to correct for the skewed image due to the camera being slightly off level, we can use a
homographic transformation. This will allow for the corner points to be re-mapped to their ideal
locations in a new coordinate space where the table is perfectly rectangular that will be useful for
simulations. OpenCV has functions findHomography() and warpPerspective() to accomplish this.
Using a similar homographic transformation we will be able to warp the output image from the
projector to solve the issue of calibration. A box will be projected in the center of the table, where the
same line-finding algorithm will find the edges and corner points of the box, which can then be mapped
to the coordinate space of the original table image. This transformation will then be applied to the
output image from the projector.
Gantt Chart
See attached file: PBTGantt.pdf
6