Autonomous bottle recycling robot

Robot that finds and collects bottles to recycle them.

Similar projects worth following
This project was done as a Master's degree semester project at EPFL in the Robotics and Autonomous Systems orientation. 5 teams of 3 people had to build a bottle recycling robot, this project won. Every single bit of information from the conception and design to mechanical parts and source code is available, published on GitHub.

We used a Raspberry Pi with an Arduino (clone) to control the mobile platform. The bottle recognition software is based on the Haar feature-based cascade classifier for object detection via OpenCV. The code on the Raspberry Pi is written in Python, it offered faster development time than C/C++, but with more overhead. This turned out to be useful as this robot won the competition just in the nick of time.

The documentation is super extensive as it was a requirement and every single detail from initial ideas to final parts and simulation files are all available.

The robot does obstacle avoidance until the camera sees and recognises a bottle, once a bottle is detected with the Python script running on the Raspberry Pi its position is forwarded to the Arduino board that hosts the main program in a state machine which passes to the next state: grab the bottle.

Once the bottle is grabbed the homing system is quite simple: it follows the direction towards the recycling area (corner of the map) using a compass and once it detects a wall (and not an obstacle) it follows it until it reaches the corner and releases the bottle. Repeat.

The initial plan was to use 2 IR sensors and the camera for obstacle detection, but the camera was too slow and ultimately the simulation showed that more IR sensors would be a simpler solution and work just as well, so we decided to use 4 IR sensors and use the camera only for bottle detection.

The compass sensor had a lot of trouble in its original position behind the camera, it turns out the metal bars in the floor of the building structure were influencing the compass values, mounting it higher up on a mast fixed that problem.

The full project report can be found here in pdf format:

  • 1 × Raspberry Pi
  • 1 × Raspberry Pi camera
  • 1 × PRismino (Arduino Leonardo)
  • 4 × WildTumper 120x60 mm wheel From Pololu
  • 4 × 172:1 DC motor (low power) Bought from Pololu (do not buy, they're crap!)

View all 11 components

  • 1
    Step 1

    To build this robot simply look at all the documentation on GitHub. Mind you that the bottle recognition classifier was specifically trained on that arena with those bottles, if you want a robot that terrorizes your cat you'll have to train it in your home and take pictures of your cat so it would recognise it.

View all instructions

Enjoy this project?



Adam Fabio wrote 06/23/2014 at 04:10 point
We need more robots submitted to The Hackaday Prize! Thanks for adding this one. I love those Dago "Wild Thumper" robot chassis - too much fun. Do you have more video of the robot picking up bottles? (the project vid is great, but I'd love to see a bit more)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates