JP Weekly Status Report 4/25/2021

I spent this week finalizing the calibration process for detecting cup locations. I reorganized the repo to include Juan’s UI and and its dependencies, along with all of our external libraries. The calibration tool can now take a picture of a mat with the circle locations of a set of cups drawn on it, then calibrate the ellipse detector by mapping each circle location to the index of the cup it represents. This mapping of indexes to 2D coordinates is then saved in a JSON file so that the Automatic Gentleman can load this data in when it boots up. When the bot first takes a picture of the cup rack, it will compare the 2D coordinates of each detected ellipse with the calibrated data and map each detected ellipse to its correct index. Then the game will be able to communicate which cups to display to our UI.

 

Example calibration map (hand drawn for testing purposes):

Example Calibration Data:

{“locations”:{“0”:{“x”:2404,”y”:1058},”1″:{“x”:1654,”y”:1038}}}

 

Juan Pablo Weekly Status Report 4/24/2021

Last week I added some more final touches to the UI such as scaling it to properly display on the tablet we have in Pittsburgh. I’ve added the function calls in what seems to be the right place but I have been unable to test because I’m having some trouble with my Azure Kinect SDK installation. I’m trying my best to resolve that as soon as possible. This week I’m going to finish adding the scoreboard. I’m also going to continue integrating the calibration and cup scanning with the selection process and make sure functions are being called properly and in timely fashion. For the sake of time and overall experience we want to minimize the amount of waiting time a player has to do while playing the game without losing accuracy and precision.

Logan Status Report (4/25)

Over the last two weeks we have made really amazing progress towards our final project. My main focus has been going through many iterations of the physical design, testing, and refining. The design for the launcher is fully made of parts to be laser cut so it is really easy to iterate on and quick to fabricate.  The design we have landed on incorporates two plates to mount the motors. The second was necessary to mitigate the strong vibration that was introducing a lot of uncertainty in our shots. Another large change we made while iterating on our physical prototypes was the choice to angle the motors themselves, rather than have a ramp that would come after the straight motors. This made many aspects of the launcher much simpler, especially our loading mechanism. We found that having as little interference as possible after the ball leaves the wheels was the best way to increase consistency in our launches.

Test of our slide loading system:

 

Earlier test of just the launching mechanism:

With the aiming done, all we need to do to integrate the launcher with the aiming is to screw the base of the unit into the stepper motor shaft. Our immediate focus right now is to get our consistency higher. We are going to fabricate one last version of the launcher, along with a mount. As it stands, we have enough control to aim for the back of the formation vs the front, but not enough to distinguish between the individual rows. A lot of this is from the vibration and the fact that it isn’t yet secured in the housing and should be remedied in the final assembly. Even as it is now, we had a few of our friends toss balls at the same formation and they were about as accurate as our project, if not a little bit worse. It’s really exciting to see everything finally come together.