Pool Game Designed and Implemented Using Major-Minor FSM Setup

by Anthony Quivers, Timothy Mwangi, Gary Matthias

 

Abstract

In this project we will use the Major-minor FSM setup to implement a virtual form of the popular game, pool. Specifically, we will obtain the position of a player around an empty pool table from the output of a video camera. Likewise, we will obtain the position and velocity (Vtip) of the tip of his stick and the position of his pivot. On any particular shot, if Vtip is greater than some threshold value for longer than T (this is a variable whose value will be adjusted to make the game as realistic as possible) seconds the shot will be extrapolated and the tip of the stick will strike the white ball. Any moving ball will strike balls in its path and the edges of the table according to the laws of motion in classical mechanics. The movement of each ball will be controlled by an identical minor FSM and a single major FSM will mediate collisions between the balls, table edges and stick. The major FSM is likely to be significantly complex due to the large number of possible collisions. As a person plays this game they will be able to see the stick's position, relative to the pool table and the positions of the balls on the table on a screen. Note however, that there are no physical balls and the player relies solely on the screen for information about the positions of different balls. We expect our solution to closely mimic a real game of pool. There are three main challenges posed by this project. The first is using a camera to accurately determine the position and velocity of objects in its field of view. The second is creating a model of multiple collisions that is accurate, elegant and simple enough to be implemented using the Major-minor FSM setup within the constraints of available resources. The third is to display the pool game in three dimensions.

 

Links To Files

Report Appendix (PDF)

 

Photos