Inspiration
We wanted to build a practical and impactful solution that would promote urban cleanliness in Barcelona through both monitoring and active preventive measures. From our experience at festivals, it became apparent that these were perfect cases where a lot of trash is left behind on the ground and significant human work is needed to clean the venues. Inspired by the boom in software automation of many tasks, we wanted to extend this to robots. We wanted to go beyond simply monitoring and identifying trash using computer vision, and make an immediate impact by acting. And what better way to do that than to clean the trash ourselves. Our lofty goal for this hackathon became to build an autonomous robot that cleans trash in venues by incorporating computer vision, sensors for data collection, and an interactive dashboard, all built atop the new powerful Arduino Uno Q board and its toolchain. Edge-computing has become powerful enough that we wanted to build a robot that could accomplish its goals without ever needing external compute.
What it does
Our FestiCleaner robot fully autonomously identifies, locates, pathfinds to, picks up, and returns trash to a garbage collection unit. The robot monitors and collects temperature, humidity, and video data during its operation. This data is relayed in real-time to an interactive dashboard, where a user can view the robot's operations in an annotated live video feed, track its trash-cleaning progress, view its sensor data, and remotely turn it on or off.
How we built it
In terms of hardware, both out of a scarcity of available resources and in line with our ultimate goal to support sustainability, we decided to build our robot out of as many recycled materials as possible. We used everything we could get our hands on: leftover cardboard, used jar lids, rubber bands, and cocktail sticks. One could say that apart from the electronics on-board the robot, the robot is quite literally built from materials that were previously trash.
In terms of software, we utilised the Arduino Uno Q's strengths to the greatest possible extent. We trained a computer vision model using EdgeImpulse and hundreds of hand-annotated images and objects. We used Arduino bricks to simplify our embedded hardware code. We built the dashboard using React, Bun, and FastApi. We communicate between the robot and the dashboard over WiFi.
Challenges we ran into
Where to even begin... finding resources to build the robot out of was difficult. We tried at least a dozen different items and methods for constructing the wheels of the robot. We had issues with the motors being too weak to move the robot forwards, the batteries given to us had leaked (so we used a power bank), the kits were incomplete (missing motor drivers), debugging software was difficult due to issues with the Arduino App Lab not detecting the Arduino over WiFi, and many many more.
We built around the problems we ran into. For example, we reduced the weight of the robot to the bare minimum (unfortunately our power bank is still too heavy to be moved by the motors, so it has to be lifted manually) to allow the motors to function as best as they can. We initially wired the motors using the relays, which we soon learned will not allow us to adjust the speed of the motors, so we looked through several kits until we luckily found a motor driver. Since the Arduino Uno Q has only one USB port, it cannot be connected to both the web-camera and computer at the same time. However, despite connecting both the computer and Arduino on the same network, the Arduino App Lab did not detect the Arduino.
Accomplishments that we're proud of
We're proud that we accomplished our goal of cleaning Barcelona not only through the robot's physical work cleaning, but also in the process of building the robot. We recycled materials that would have otherwise landed in the trash.
What we learned
After using the Arduino Uno Q for the first time ever, we learned a large part of the toolchain built around this new board. From developing in a completely new IDE to us (Arduino App Lab) to utilising bricks and EdgeImpulse, we learned a lot about versatile ways to develop software for robot applications. We learned how difficult it is to hack together a hardware project with very scarce resources available.
What's next for FestiCleaner
The first improvement would be to used better hardware, we were very contrained by the hardware we had available. Many great ideas such as a cleaning swarm of robots, a TTS system to educate about littering, maybe a sleeker chasis?
Built With
- arduino
- bun
- c
- edgeimpulse
- fastapi
- javascript
- python
- react
- sensor-kit
- yolov8
Log in or sign up for Devpost to join the conversation.