JP Weekly Status Report 5/1/2021

This week, Logan and I worked in TechSpark most of the time. We were integrating the launcher with the cup detection modules and placing it in the housing. Logan tuned the motors and fabricated the motor base and servos. I helped him by laser cutting the loader. We actually went thru 5-6 different designs by the time we found one that was accurate. For a while, we thought that a ramp would work. We quickly found out that the angle of the shot was very unpredictable with a ramp loader. We finally settled on a much smaller loader, that slowly feeds the ball into the spinning DC motors with a servo. This design was the most accurate and consistent. It also allowed Logan to easily implement an automatic reload system.

Old Ramp Loader:

 

Final Loader:

I was also able to calibrated the cup detection module, so we could use it in different environments. I created a simple command-line tool to run the cup-detection, targeting, and launching E2E. We feel like we are in a very good place since we have been able to make cups, and our data from testing is very consistent! Check out Logan’s status report for some videos of our progress.

Team Status Report 5/1

This week we had a really big week of integration. We finalized the launcher, fabricated the final mechanism, placed electronics in the housing, integrated with the nano by finalizing the serial communication code, and began testing and calibration of the system. We spent many hours in techspark iterating on the launcher, landing on a design with a servo that gave us really good consistency in direction, with a little bit of variation left in distance to iron out still. The servo also allowed us to integrate our reloading mechanism.

Coming up this week is more calibration of launcher power delivery, and testing the robot in different lighting and table setups, as well as user testing against ourselves to see if we are able to play a full game.

 

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}}}