Inspiration
During spring break we decided as friends to play tennis, with most of us not being particularly good players. After running countless times for the ball, we achieved a spark for an idea.
What it does
Our bot uses a camera to recognize which direction a tennis ball is, using this info it tells the dc motors to spin and direct the robot towards the tennis balls.
How we built it
We used two separate ESP-32-S3's with one model being the S3-EYE. Connecting them wirelessly, using the ESP-NOW feature; the S3-EYE effectively functions as the "brain" for the bot and moves in the direction of where the nearest bright green/yellow blob is, whether that is in the left, middle, or right side of the camera. This data is then collected and set to an average over a 3 second period. The reason for this is so the bot is more accurate and goes off of the location of where the most likely blob is over functioning off of constant inconsistent data. This worked over short to medium distances. After taking this average, the S3-EYE sends its data to the ESP-32-S3 which effectively functioned as the "muscle" for the bot. Taking in the location of the tennis ball and sending a signal to 2 separate motor drivers connected to 4 total DC motors. The wheels turn based on this signal which has all wheels move in the same direction for forward, or in separate directions to turn. Connected to a chassis and powered by a power bank and two DC batteries. We effectively got the device to move and turn but ran out of battery before we got the chance to truly record it in action.
Challenges we ran into
The biggest challenge came from making the ESP-32-S3-EYE accurately detect a ball with the secondary challenge of making it accurately detect no ball whatsoever. On top of this, the time constraint proved it difficult to add an effective "grab" mechanism for tennis balls.
Accomplishments that we're proud of
We are proud of the robot having reliable electronics and a functioning chassis with its added ability to detect tennis balls. Getting everything to work together was a true challenge and we are proud to have taken it this far.
What we learned
We learned that visual identification using a camera is extremely difficult, especially with low processing power. Making the system work purely on board for a truly autonomous robot with relatively weak microcontrollers taught us to consider stronger controllers for visual based recognition tasks.
What's next for Sisyphus
Next, we would like to construct a better chassis for Sisyphus along with a better power management system, ideally from a single drone lithium battery. We would also like a better construction of the wheel axis so the front and the back wheels are connected allowing for a stronger base to support more weight. We would like to work on the recognition code further so it could detect balls from a greater distance with far greater accuracy, and be able to bring the bot back to a person. As well as a custom breadboard setup for more connections.
Log in or sign up for Devpost to join the conversation.