Catherine Maglione

Portfolio

Pool-Playing 7 DoF Robot

ROS2, Python, OpenCV

Pool-Playing Robot with Franka Emika Arm

This project was designed to make the Franka Emika Robot play a modified game of pool on a tabletop pool set. Using ROS2 and computer vision, the Franka dynamically identifies pool balls, calculates optimal shots, and executes precise movements to pocket balls.

Subsystems

1. Franka Emika Robot Arm

The Franka Emika robot was controlled using the ROS2 MoveIt API. Its trajectory planning capabilities were used to align our 3D-printed cue stick with the ball and complete accurate shots.

2. Computer Vision

An Intel RealSense D435 Camera was used for vision processing:

  • April Tags: Used for calibrating the position of the table and pockets relative to the robot.
  • Object Detection: The vision system detected the red ball (our cue ball) and blue balls.

3. Gameplay Coordination

A ROS2 package was developed to:

  • Detect and identify the positions of balls and pockets.
  • Plan optimal trajectories for shots.
  • Handle game state transitions.

System Flow

Table Calibration

  • An April tag was affixed to the side of our pool table to identify the pool table and the pockets.
  • A series of transformations related all objects in our scene to the base of the Franka arm.

Ball Detection

  • Computer vision detected the position and color of balls on the table.

Shot Planning

  • Our pool algorithm determined the best shot based on the current ball positions.
  • A trajectory was generated for the robot arm to align the cue stick and execute the shot.

Gameplay Execution

  • The robot arm continued to make shots until the cue ball was pocketed.
  • If the cue ball was accidentally pocketed before all the blue balls, the Franka arm would return to its home position until a user placed the red ball back on the pool table.

Personal Work

Personal contributions to the project include:

  • Integrating the computer vision system with the ROS2 shot planning service.
  • Testing and tuning the trajectory generation for precise and repeatable shots.

Team Members

This project was developed as part of ME 495: Embedded Systems in Robotics at Northwestern University. Group members:

  • An Nguyen
  • Caroline Terryn
  • Catherine Maglione
  • Joseph Blom
  • Logan Boswell