Luke Han Status Report 4/19/2025

This week, I focused on improving the camera system to support motion detection capabilities. I was able to disable the camera’s auto-blur and auto-focus features. These automatic settings had been interfering with consistent image quality during fast motion, but after testing different configurations, I was able to achieve a stable image feed that’s much better suited for detecting movement.

Additionally, after further discussion with my team, we’ve decided not to pursue the use of a Raspberry Pi to host a web server for tracking previously played games.

Finally, while I’ve begun experimenting with motion detection by analyzing frame-to-frame changes between game states, it’s still uncertain whether I’ll be able to fully implement this feature. However, since motion detection is a post-MVP goal, this does not affect our core deliverables. I’ve completed all of my current tasks and remain on track with our overall project timeline.

Luke Han Status Report 4/12/2025

This week, I focused on exploring improvements to the camera system to support motion detection capabilities. A major area of experimentation involved disabling the camera’s auto-blur and auto-focus features. These automatic settings were interfering with consistent image quality, especially during fast motion, so I’ve been testing different configurations to achieve a more stable image feed that’s better suited for detecting movement.

Alongside this, I’ve started preliminary work on motion detection by analyzing frame-to-frame changes between game states. My goal is to develop a reliable method for identifying when and where motion occurs on the table, so that the algorithm can run the physics simulations without user input.

I have also been discussing with my team on weather to pursue the use of a raspberry pi to host our own web server to keep track of previously played games.

I have been experimenting and have made minor progress on these tasks, however, I am on track with my progress.

 

Team Status Report 3/29/2025

This week, our team made significant progress in refining the camera and projector system, improving the physics simulation, and integrating the core components of our project in preparation for the interim demo.

Luke focused on optimizing the camera’s positioning and settings to improve image capture accuracy. He worked on integrating the camera with the CV algorithm to ensure reliable ball detection and reduce distortion. Additionally, he experimented with different mounting positions for both the camera and projector, addressing stability and visibility concerns. He also adjusted lighting conditions around the table to minimize shadows that interfered with ball detection.

Samuel completed the find_best_shot algorithm, transitioning from a brute-force approach to a more efficient simulated annealing method. This allows the system to find optimal shot angles, power, and spin within a set time constraint. However, due to the randomness of simulated annealing, the algorithm sometimes returns a local minimum rather than the best possible shot. To address this, he has begun rewriting the physics simulation in C++ to improve performance, reducing simulation time from 25ms to under 10ms. While this won’t be ready for the interim demo, he aims to have it completed for the final demo.

Kevin worked on ensuring accurate integration between ball/pocket coordinates and the physics simulation. He also focused on improving error handling for the CV system, particularly in mis-detected balls and pocket positions. Alongside Luke, he helped finalize the table setup, securing the projector mount and ensuring the camera is positioned correctly for accurate detection.

Our team’s next steps will be to finalize the system integration for the interim demo. Luke will continue to resolve the remaining camera system bugs and refining the UI to improve usability and game state visualization. Sammy will continue developing the C++ physics simulation. Kevin will continue to enhance the CV algorithm with ball detection and pocket detection.

Luke Han Status Report 3/29/2025

This week, I made significant progress on multiple aspects of the project. I continued testing the camera system extensively to ensure accurate and reliable image capture. In particular, I worked on refining the camera’s positioning and settings to improve its ability to capture the game state with minimal distortion. I also focused on integrating the camera system with the CV algorithm, making sure that the image processing pipeline correctly detects and interprets the positions of the balls on the table. To enhance the user experience, I worked on the UI, making it more intuitive for players to capture the game state with minimal effort.

Beyond software improvements, I spent time optimizing the physical setup of the camera and projector. I experimented with different mounting positions and configurations to ensure stability while maximizing visibility. Additionally, I worked on adjusting the lighting conditions around the table to reduce shadows, which were interfering with the CV algorithm’s ability to detect the balls accurately. This involved testing various light placements and intensities to find an optimal setup that enhances detection reliability.

I have been encountering a few bugs with the camera system, but expect to have them resolved before the interim demo. Overall, I am on track with my progress.

^ Image of camera debugging

^ image of table from system

Luke Han Status Report 3/22/25

This week, I focused on setting up the pool table mount. I encountered challenges with securely attaching the camera and projector while ensuring high-quality image capture and projection. Some of my initial mounting attempts made the system unstable, posing a risk of falling onto the table. Other iterations created visibility issues, as attaching the camera and projector to the underside of a wooden plank darkened the entire playing area, making it difficult for users to see and play.

I will continue refining the mount to balance stability, visibility, and functionality. My goal is to have the camera and projector system fully operational by the end of the upcoming week.

Team Status Report 3/15/25

This, week our team made tremendous progress in both the physical and software components of our project. We’ve continued developing our major subsystems — computer vision, physics simulation, and the position algorithm.  Luke has made notable advancements on the camera and projector system. And being no longer blocked by the pool table delivery, has assembled, and initial testing has been conducted on the calibration, image capture quality, and integration challenges. However, the frame for the system arrived at the end of the week. This prevented Luke form picking up the frame and completing the setup. He plans to retrieve the frames and complete the setup by Monday, enabling full system integration and further testing. Samuel has completed the physics simulation setup, including the implementation of the simulate_shot function, which accurately simulates pool shots based on angle, power, and spin. He also created the simulate_shot_with_animation function, which visualizes shots and helps fine-tune the parameters for realistic simulation. Samuel will focus on developing the greedy algorithm for shot selection next week, aiming for completion in the next 1-1.5 weeks, in time for MVP integration before the carnival. Kevin worked on testing and validating the position algorithm on the downscaled project table. He also added fail-safes to the homography algorithm, improving the accuracy of the rectangle dimensions and ball position calculations.

Overall, we are making steady progress with our software subsystems and addressing challenges with the physical setup. While Luke’s progress on the camera/projector setup has been slightly delayed due to shipping issues, there are no major changes to the overall schedule. The software side remains on track, with Samuel’s greedy algorithm and Kevin’s integration efforts being the next key focuses.

Next week, Luke will complete the system setup, Samuel will begin implementing the shot selection algorithm, and Kevin will continue refining the algorithms for accurate data processing and integration.

Luke Han Status Report 3/15/2025

This week I have made significant progress on the camera and projector system. We have now received and assembled the pool table, allowing us to initiate testing with the camera and projector. I have conducted preliminary tests to assess calibration accuracy, image capture quality, and potential integration challenges. However, the frame for the system arrived late on Friday, preventing me from setting up the complete system. Therefore I am still a bit behind schedule, but plan to retrieve the frames from the package service and complete the setup on Monday, which will enable full system integration and more comprehensive testing.

Luke Han Status Report 3/8/2025

Over the past two weeks, I have primarily worked on the camera and projector system as well as refined the design report. Before the break, I dedicated significant time to the design report, particularly working on the design requirements, design trade studies, and risk mitigation plans. Additionally, I contributed to the project budget, ensuring our resource allocation aligns with project constraints.

I conducted preliminary tests to the camera and projector to assess their capabilities. This included evaluating calibration accuracy, image capture quality, and potential integration challenges. However, our progress is currently hindered because our group has yet to receive the pool table, which was scheduled for delivery two weeks ago. As a result, I am not on track, and our timeline may be impacted until we can begin full system integration.

Luke Han Status Report 2/22/2025

This week, I spent most of my time preparing for my Design Review Presentation. I have also been doing some research on the specific materials we will be using for the frame where we will mount our camera and projector. I have also been weighing the pros and cons of the specific projector our team will be utilizing and narrowed it down to either the Yaber V6, which is better for keystone correction, allowing for +/- 50 degrees of rotation, or the ViewSonic PA503W, which has very good low input lag. I will decide by Monday and have it ordered by Tuesday. I set up some of the Design Review Report already and will be meeting with Samuel and Kyi on Sunday (2/23) to organize and work on the report. The majority of my time in the next two weeks will be focused on the report as well as:

  1. Ordering the materials for the frame
  2. Building the frame
  3. Helping Samuel with simulating slots and assisting with the development of the best shot algorithm

I am a bit behind schedule because I was planning to start the actual building of the frame this past week. However, since the pool table has not arrived, this has delayed my progress a bit. This week, however, I do not have much work from other classes and therefore can allocate a larger portion of my week to building the frame and working on the Design Report and best shot algorithm.

 

Team Status Report 2/15/2025

This week, our group focused on refining our approach to the computer vision and physics simulation components of the project. After meeting with our professor and TA, we reassessed our hardware requirements and decided that using a single-board computer, such as the Jetson Orin Nano or Raspberry Pi, is unnecessary. Instead, we will run all computer vision and physics simulation tasks on our personal computers, allowing us to prioritize algorithm development while addressing hardware needs as they arise.

Luke spent much of the week assisting with research on both the computer vision and physics simulation aspects of the project. He also worked on the Design Review presentation and Written Design Review, including drafting sketches for the mount that will hold the overhead camera above the pool table. Next week, he will begin constructing the mount and ordering the necessary parts, as the pool table is set to be delivered soon.

Kevin focused on implementing computer vision for boundary edges and pocket detection. He developed edge detection algorithms to determine the table’s physical dimensions and started working on thresholding techniques to identify pocket positions. Additionally, he researched ball detection and categorization methods for later stages of the CV pipeline, compiling useful resources for future implementation.

Samuel concentrated on the physics simulation, researching existing codebases, papers, and videos that could inform our approach. He also conducted initial benchmark testing by playing three games of 9-ball with Luke to establish a baseline for shot efficiency. Furthermore, he updated our block diagram and Gantt chart to reflect the removal of the Nvidia Jetson, as we will now directly connect the camera/LiDAR to a computer.

Overall, our team remains on schedule, and we will continue refining our design while moving into the implementation phase. Next week, we plan to begin assembling the system, conduct additional benchmark testing with the newly ordered pool table, and further develop our physics simulation and computer vision algorithms.