Andrew’s Status Report for February 10, 2024

This week, I was primarily focusing on figuring out the AprilTags for our pool table. We planned to use AprilTags on the four corners of the pool table for camera normalization, and we also want to use these AprilTags to construct a 2D coordinate system. We don’t have the AprilTags yet, but much of the software can be written first without having physical AprilTags.

I looked around different Python libraries and repositories and found a few resources for detecting AprilTags. After testing out a few of them and tinkering with the code, I managed to get AprilTag detection working for my laptop’s live video/camera:


Screenshot of  my laptop’s camera feed

It runs primarily on OpenCV but makes use of an open-source AprilTag detection library written in C by researchers from the University of Michigan. Their library also returns a list of metrics and coordinates, which I then process into a 2D coordinate plane with one of the AprilTags being the origin (0, 0). When we eventually port this onto a pool table, we should be able to easily create the coordinate plane.

I also did some research on transmitting data from the pool table camera to our video processing server. We decided on having a camera attached to a microcontroller with an ESP32 card. After some testing, we determined that transmitting frames over Wi-Fi via HTTP was sufficient.

Leave a Reply

Your email address will not be published. Required fields are marked *