We wanted to build a hardware hack and at the same time something that could help pets that need a home. We read in a study that pets that are domesticated are 70% more likely to be adopted from a shelter. However, most shelters do not have the resources to hire trainers for all their dogs. Therefore, a cheap robot that trains the dogs and uses as few components as possible would be affordable for shelters.
What it does
The program opens the camera and asks the owner for basic information about the dog (name, breed, email...). Afterwards, it will ask for the command that he/she wants the dog to learn and speaks that command. The camera will send images every second to the Microsoft Cognitive Services CV API until it recognizes that the dog has completed the trick. At that point, it will send a signal to an Arduino that will activate a hardware mechanism to dispense a treat to the dog. If the dog never performed the trick, the computer will every 10 seconds approximately speak the command again. Furthermore, once the dog has successfully completed the task, it will send a video to a web app that we built using Azure that holds all the videos of dogs it receives from the robots at different shelters. It will display this videos along with basic information about the dogs and a link to send an email to the shelter where the dog is located. That way, potential owners can see how educated this dogs have become over time (by watching the dog's videos) and can see the tricks the dogs can do and decide to adopt them. All in our web app.
How we built it
Using openCV to recognize the dogs and use the camera. Using the Microsoft Cognitive Services CV API we built and trained a model to recognize the dog's performing tricks. Furthermore, we build the hardware and mechanical systems to dispense treats. Also, we built a web app using Azure and calling the Microsoft text-to-speech API.
Challenges we ran into
Setting up the web app. Sending post requests from the robots to the web app. Building the mechanical system to dispense a treat.
Accomplishments that we're proud of
Building the web app. Learning about HTTP requests. Setting up the openCV and the Microsoft cognitive services API
What we learned
Python, JS, how to call APIs (Microsoft's), how to set up a web app with Azure
What's next for CanineCoach
Building a hand that will do the gestures of a human to better train the dogs and explain the tricks to them. Not just playing a sound that they associate with the command and giving a treat as we do now.