A member of our team first suggested the idea of an object-tracking robot based off of a product that they wished they had in their everyday life. The concept came from wanting a garbage can that moved to be on target when anything was thrown towards it, so that the user never misses and can use the garbage can from a distance.
Though waste management was the original inspiration, this type of robot can be used for a variety of tasks, including collecting the user’s dirty laundry or being gamified to fit a throw-to-catch based activity.
What it does
MAGNET uses computer vision to track incoming projectiles and navigates to catch it.
How we built it
The body of MAGNET was constructed using VEX robotics plates, C-channels, and servo motors. The object identification and tracking was accomplished using the OpenCV library in Python on Raspberry Pi. We initially wanted to model the video-captured projectiles in 3D space using stereo video, however, we weren't able to obtain two identical cameras to do so. Due to the lack of our ability to generate depth maps to determine the location of the object to be catched, we chose to use colour as our means of distinguish a thrown object from its environment. The motors were controlled by an Arduino.
Challenges we ran into
Lack of Hardware Tools
Over the course of this 36 hours, we didn’t have access to all the hardware tools that were needed to make the prototyping stage of our robot efficient. We had to make do by creating makeshift tools with the materials that we had around us.
Insufficient Power Source Our robot requires a lot of power to respond to quick moving objects and travel around quickly. We only had access to a few power banks and standard 9V batteries to power all the operations of our robot. Oftentimes, this caused some wheels to move very slowly or not at all. It also introduced difficulties in the debugging process of our journey as our robot kept outputting inconsistent results for when all software variables were held constant.
Connectivity Issues A recurring issue throughout this hackathon was difficulty connecting our laptops to the Raspberry Pi for programming.
Weak Motor Though the robot is detecting the object that it is tracking, it sometimes does not move to be on target quickly enough due to a weakened motor. Unfortunately, we do not have a replacement for this motor at the moment.
Accomplishments that we're proud of
- Combining the functions of Raspberry Pi and Arduino
- Detecting objects from afar with computer vision
- Constructing a working robot with limited tools and time
What we learned
We learned quite a bit of new technical skills building MAGNET here at Hack the North:
Most of our team did not have any experience working with and processing data from computer vision. We learned how to identify and distinguish objects from their scenes, mask out backgrounds and create binary images, and contour tracked objects and generate a minimum enclosing circle around them.
We also learned and practised using virtual environments to edit and run our iterations of the code.
Hardware wise, we learned how to construct and operate a robot with a holonomic drive train. We also realized the limitations microcontrollers, like the Raspberry Pi.
What's next for MAGNET
The future of MAGNET sees improvements in maneuverability and speed in order to be able to cover a larger range for catching, as well as being able to track different objects not constrained by colour.