
iRobot Intern Challenge
Internet of Things Device:
A Robotic Outdoor Garbage Can
This challenge tasked interdisciplinary teams of interns with coming up with a new idea for an IoT device that could be integrated with the rest of the iRobot product line.
My team decided to design and build a prototype for an outdoor robotic garbage can. The purpose of this product would be to drive the garbage can out to the end of the driveway for trash pickup.
This robotic garbage can would empower people to do more in their homes, from eliminating frustrating chores to assisting those with mobility and strength limitations.
SKILLS DEMONSTRATED:
Raspberry Pi Python
Android Studio Java XML
Arduino C/C++ I2C
Google Firebase Linux Soldering
Navigation




The back wheels of the robot were controlled with a joystick, which was connected to an Arduino to read the values for the wheel velocities. The data was extracted in real time and sent to our database on Google Firebase, so that the Raspberry Pi could read the values and send the correct motor commands. This communication was nearly instantaneous, with no perceptible lag between the joystick motion and motor response.
Custom 3D printed parts were created to hold the castor wheels and secure the trash can's wheels. Bungee cords were used in this prototype to keep the trash can from tipping when the robot begins driving.
Our ideal goals for navigation, if this were to become a real product, would be autonomous control. The mechanical design would be refined to ensure that the base is weather-proof, can fit a variety of standard trash cans, and has wheels that can drive on a variety of different terrains.
Smart mapping of the area between the house and the curb would be ideal, and we would also want to incorporate obstacle avoidance and a safety/anti-theft feature. Some other special features that would be interesting to add is garage door compatibility and a solar charger to reduce the need for charging.
Sensing
We incorporated a sensing mechanism to determine whether there is trash in the bin or not. We used a Raspberry Pi camera and an ArUco marker. When the camera can see the marker, that means that the bin is empty. If it cannot see the tag, then it will define the bin as full. This status is sent to the app, which can be seen in the video below.
Mobile App

Mobile App
User experience is a very important aspect of consumer robotics. I created an Android app that would allow the user to view the status of their trash and control when pickup will be.
I included the following features in the app:
-
Schedule which day of the week the garbage truck comes
-
Schedule a reminder to gather the trash around your house
-
View the status of your trash (whether it is full or empty)
-
Learn about recycling and composting tips
In the future, the following features would also be added:
-
Record the weight of the trash
-
Set goals to reduce waste each week
-
Record the time of day that the trash was picked up
-
Be notified of weeks that may be affected by holidays
This application would ideally be integrated into the existing iRobot HOME app to streamline the user's interaction with their smart home devices.
System Overview

Intern Challenge
