Inspiration
We created FIDO for a fun home-robotics application of computer vision. Additionally, the methods used on FIDO have various applications in larger areas related to search and rescue, such as in aerial drones.
What it does
FIDO is a robot dog that is designed to play fetch with you. It has the ability to track a tennis ball and it's owner for a fetch and retrieval game as well as keep-away.
How we built it
The robot chassis was built using a modified Elegoo robotics kit and legos. The robot uses a mounted camera that sends data to an on-board raspberry pi running OpenCV. Using color thresholding to identify the Tennis Ball, the pi creates a binary image, which is then used to track the distance and direction of the ball from FIDO. This information is sent to the Arduino, which uses feedback control to move the motors and correct the error. Once the tennis ball is acquired, FIDO returns to the owner, who is marked with a neon green shirt.
Challenges we ran into
Being able to identify when the ball was picked up and when it had been returned to the owner was a tricky task. We ended up using contour detection on the edges of the camera frame to check when the ball/person had reached viewable extrema.
Accomplishments that we're proud of
We are very proud of the ball-tracking aspect of the computer vision. FIDO can see the tennis ball at a max range of almost 50 ft and track to it without fail.
What we learned
We learned that making something that is geared towards entertainment is entertaining in itself!
What's next for FIDO
Although the current prototype only allows for fetch using a tennis ball, the same principles can be applied to larger robots, and even unmanned aerial drones. Future applications extend beyond puppy playtime to include search and rescue and hazmat extraction using computer vision. This would allow FIDO to be both entertaining and useful in creating a better, safer world. FIDO - the future of man’s best friend.
Built With
- arduino
- elegoo
- i2c
- lego
- love
- opencv
- raspberry-pi




Log in or sign up for Devpost to join the conversation.