Andrew’s Status Report for February 17, 2024
This week I finished up the AprilTag module. I modified an existing AprilTag library, extended it, and provided an API that detects AprilTags within an image and creates a coordinate plane with it. This allows the computer vision The AprilTag module is written in C/C++ and Python. I also wrote some unit tests, documented the usage of this AprilTag API, and handed it off to the rest of my team.
After this, I looked into the hardware components we need to assemble this system together. For detecting pool stick motion and player behavior, I decided on an Arduino Nano + 9DOF IMU + ESP32 module. This encapsulates the motion processing system. The Nano gets data from the IMU, then streams it to our laptop via the ESP32 module over WiFi. I also wrote some of the motion detection software for Arduino, though I don’t have a chance to test it on hardware until the parts arrive.
I also started writing code for our projection system (projecting our predictions onto the actual pool table). Currently, the predictions are outputted as lines drawn onto an image/frame of the pool table. I wrote out v1 of the projection system which currently just displays each frame live as the projection system outputs them. I’m going to improve on this by just displaying the trajectories and being able to automatically calibrate the projector by scaling the image size up and down depending on the AprilTag coordinates.