For most, the journey of adopting a dog begins with a breeder or a trainer, but our journey began at a rescue shelter, where we met Laverne. Unable to work with a professional trainer due to Laverne's health, we had to take the process into our own hands. That's when we realized just how difficult and time-consuming dog training is. Not only that but just how hard it is to leave Laverne alone while we do other things. That's why we developed Train-O, to be a trainer, and companion to Laverne.
What it does
Train-O uses Open-CV motion tracking frameworks to identify and interact with users. This is done by following our furry friends and giving them tasks via audio cues to "Sit!". Upon successful completion of the task, the good boy is rewarded with a tasty treat automatically, conditioning them to listen to future commands. This can be used to train your dog, associating actions with verbal commands; but it can also be used to keep your dog company, following them around and giving them treats.
How we built it
We combined all of our knowledge on both physical and hardware hacking to create Train-O. On the physical side, we used an Arduino and several motors (and a lot of wiring) to provide a function to the body we built out of cardboard. The mechanisms of treat delivery when a behavior is reinforced, NPN transistor as an audio module switch, H-bridge as a motor driver, a webcam for image recognition and other features are included. On the software side, we trained our own image processing models using computer vision and developed our own algorithms to track and classify poses. We simplified the images down to key points of the body to reduce latency and provide a quicker response, which is important in reinforcing good behavior.
Challenges we ran into
From the start, our team was set on using Google Cloud to classify poses. However, we struggled with overfitting because of our limited data source. This struggle caused us to explore other solutions, which lead us to develop our own system for classifying images. Additionally, we had to find a way to provide audio cues for each action, which was challenging due to Arduino's limited audio capabilities.
Accomplishments that we're proud of
Even the simplest parts of Train-O make us very proud, but witnessing the convergence of our hardware and software into one single innovation was extremely rewarding. We were able to create our own classification system and build an entire robot out of tiny miss-matched parts.
What we learned
We certainly learned a lot: AutoML, OpenCV, Pose Recognition, Arduino Circuits, Serial Communication, and a ton of other things. Some of our members experienced their first hackathon, and they have discovered a new passion, and plan to attend more in the future. An important lesson that was learned early is that communication is key when creating a product with this many parts. We developed the hardware and software in tandem so as to prevent issues when we combined them, and that proved incredibly useful for us. Between lessons in hardware, software, frameworks, tools, and teamwork, we learned quite a lot.
What's next for Train-O
The best part of Train-O is yet to come; our whole team cannot wait to present Laverne with their new friend and watch as the idea she gave us becomes a reality. Hopefully, we will continue to enhance the algorithms that make Train-O possible and eventually maybe even create another version, but first, we have to get feedback from the most important contributor to the project, Laverne.