Inspired by the mess around trash cans, we moved to develop a self-moving trash can that will catch trash thrown at it, so support staff does not have to do it personally. We also hope that such a trash can will ultimately promote an environmentally friendly mindset - including recycling.

What it does (ideally)

The trash can moves based on a prediction of ballistic trajectory from a webcam. The "trash" - currently a tennis ball - is identified using OpenCV and color masking. Once the object is identified we use polynomial regression to calculate a place for the trash can to be.

How I built it

We used an Intel Edison and Arduino to control the robot trash can. A python script using OpenCV calculates the trajectory.

Challenges I ran into

A lot of hardware challenges including the AdaFruit libraries not supporting the Intel Edison. As a result we tried to add an Arduino as a workaround. The Edison (which has enough processing power to run the object recognition/tracking) should communicate where the trash can needs to move to the Arduino (which does not have enough processing power). Since AdaFruit does support the Arduino, we can use it to move the trash can.

We went through 2 Arduinos, 3 Edisons, and a Raspberry Pi

The speed of OpenCV's object tracking also limited us to color masking so we had to pick an object with great contrast against most background colors, hence the tennis ball. We hope to be able to support more complex and real-life examples of trash in the future.

Accomplishments that I'm proud of

Getting a prediction system for the tennis ball working. We can predict its future location.

We also built a trash can and support robot with motors and wheels. The motor, battery, and electrical system for the robot is working (designed to be self enclosed and wireless for full freedom of movement).

What I learned

More experience using OpenCV and object recognition/tracking from video.

Understood limitations of hardware communication systems (I2C) and the impact of library support.

What's next for RU TRASH

Creating a working product. Integrating the object location prediction with control and movement of trash can.

Share this project: