Design Criteria:
Poolbot was developed to meet four critical design criteria, ensuring it qualifies as a successful project:
Accuracy: Poolbot must accurately detect balls and determine their poses relative to the robot's base frame.
Precision: The robot must be capable of precisely striking a chosen ball, ideally directing it toward a pocket.
Reliability: Poolbot must consistently execute the same shot with repeatable accuracy, simulating the performance of an experienced pool player.
Safety: All of Poolbot's actions, including trajectory execution and ball striking, must be carried out safely, avoiding harm to people or damage to equipment.
Desired Functionality:
The desired functionality of Poolbot includes the ability to compute accurate trajectories to a given ball through its graphical user interface (GUI), navigate reliably to the target ball, strike the ball with sufficient force to direct it purposefully, and minimize errors in its shots and movement trajectories. The implementation details of this process are detailed below:
Design Choices:
The primary design choices our team faced when developing PoolBot centered around integrating vision into the system. We explored multiple iterations of camera setups, with two main options emerging as feasible. The first was to manually mount a Logitech USB camera on Sawyer’s wrist to recognize colors and objects. The second was to use Sawyer’s built-in wrist camera for object recognition in combination with the Logitech USB camera for color detection.
Through our analysis, we discovered that relying solely on the built-in wrist camera resulted in highly inaccurate ball coordinate estimates in Sawyer’s base frame due to significant camera distortion. On the other hand, the manually mounted camera approach presented a different challenge: creating an accurate transform from the camera’s mounting point to Sawyer’s coordinate frame. After considerable effort, we developed a mathematical method to estimate this transform.
Following extensive testing and iteration between the two approaches, we ultimately chose the manually mounted camera setup. While it required additional effort to address the transform issue, this approach provided far greater consistency and accuracy in locating the ball’s coordinates, which was critical for the success of the project.