An autonomous pet companion integrating
multiple self-made distracting devices
Not your ordinary cat
roboCat was made during the MakeUofT 2023 hackathon - a 24-hour hackathon centered around
hardware and
physical projects. The hackathon theme we decided to follow for our project was 'useless
inventions'. Check out the Devpost
hackathon
submission link and the source
code for the project.
When brainstorming, we decided that making an imitation of a pet would allow for a lot of
creativity in terms of what features we could add. We ultimately decided to make an autonomous
pet
distracter. For the hardware aspect, we decided to use
Arduino as the central controller of the project as the software to run the Arduino was fairly
simple.
This project was created in collaboration with Tyler Yan and two other hackathon team
members.
Tech Stack:
Feature Planning
A large amount of time went into what we believed was possible to create with Arduino and whether we could physically manifest these ideas in a short amount of time given the materials we had. By evaluating the materials we had available, we eventually decided on these core functions that would serve as distractions:
- A wheel base with sensors to perform autonomous movement on land (avoiding obstacles)
- A laser 'eye' that would move at random
- A speaker that would emit 'meow'-like sounds
- A wagging tail
- An LED display showing various messages
A base to work from
I spent the majority of the time working on the physical structure and the autonomous
driving. A big challenge was making a structure that could house all the hardware and
electrical components while still keeping the core functionality in the right places of
the 'cat'. Additionally, we had to balance weight with sturdiness - the more components
we added, the less maneuverable it would be.
For the autonomous driving, we used an ultrasonic sensor (seen at the bottom of the
right image). We used a TT motor to constantly drive and supply power to both rear
wheels, and cut off power to one of the wheels when we detected there was an obstacle
using the sensor. Due to a lack of materials, we only had one ultrasonic sensor, one TT
motor, and two large wheels which could connect to the motor,so we decided to only allow
forward motion using rear-wheel drive.
A cat in motion
The assembly of the 'cat' was not difficult, but due to the aforementioned lack of
materials in terms of the wheels, motor, and sensors, we faced difficulties with the
autonomous driving aspect of the project. Because we only had one motor, as we added
more mass to the top of the physical structure, the wheels struggled to turn due to the
weight from above. When all components were added, our motor was only able to overcome
kinetic friction but could not overcome static friction, leading to the phenomenom where
our project could not start moving from standstill, but once moving it could stay moving
for a while.
Regardless, the autonomous driving aspect worked in the sense that it would drive and
avoid obstacles if there were any detected. The fully finished roboCat project with all
active components (driving, laser eye, wagging tail, sound noises, and LED display)
can be seen in the video to the left.
Future Development Steps
While we did the best with the materials we had regarding the driving aspect, the physical structure could have been improved by streamlining the different aspects of our project together. During development, we used one Arduino for either one or two abilities (driving, sounds, laser, etc.), and as a result, the wiring and circuitry was needlessly complex. This also may have contributed to an increased weight when, if everything was planned meticulously from the start, we could have ommitted one or two Arduino boards to reduce weight. If the project had to be made again, I would probably put a greater focus on the Arduino connections to reduce redundancies in hardware and improve the physical structure and driving as a whole.