<aside> <img src="https://prod-files-secure.s3.us-west-2.amazonaws.com/6b34caf8-948e-4b31-96a8-07d0da1ebd86/a0aca5b0-eb58-4785-bd22-822625f9c18c/github-mark-white.png" alt="https://prod-files-secure.s3.us-west-2.amazonaws.com/6b34caf8-948e-4b31-96a8-07d0da1ebd86/a0aca5b0-eb58-4785-bd22-822625f9c18c/github-mark-white.png" width="40px" /> The Trashbot is fully autonomus solution to litter pickup, designed particularly for spaces like highway shoulders and parking lots. Our compact robot uses a three stage approach autonomously map, identify, and pick up trash.

Take a look at the Final Project Document for a full understanding of the scope, goals, approach taken, and results of this project.

</aside>

<aside> <img src="/icons/light-bulb_gray.svg" alt="/icons/light-bulb_gray.svg" width="40px" /> Roadside trash is a massive issue, and one currently solved only by manual labor - a solution that is woefully inadequate. As a duty under the jurisdiction of municipalities and states, it gathers little to no national attention. Very few resources are being put into efforts to automate the process, and all such efforts have been unsuccessful.

</aside>

<aside> <img src="/icons/trophy_gray.svg" alt="/icons/trophy_gray.svg" width="40px" /> Won first place among 45 teams in NEU Interdisciplinary Engineering Competition

</aside>

Languages

Frameworks

Packages

Demo

https://www.youtube.com/watch?v=cIwk0Kh9k7E

Robotic solutions have been attempted, but so far have been unsuccessful. For example, MnDOT (Minnesota Department of Transportation) tried to implement a trash harvester using a design similar to a snowplow machine \cite{mndot}. It was bulky, required a manual operator, and its brute-force method of collecting trash did not work well. In trials, it often missed pieces altogether, and it was never put into use. Our project uses a vastly different approach to provide a more cost effective and reliable alternative to this problem.

Our compact robot uses a three stage approach autonomously map, identify, and pick up trash. One of the advantages of this is extensibility. For example, a drone would likely be the ideal mapping solution if the \trashbot was put into large-scale use.

The substitution would require little to no adjustment to the other two stages. Our approach also allows for accurate pickup without the need for high processing power by reducing reliance on heavy software such as YOLO. This makes the final product much more inexpensive, making it more implementable while reducing the downside of real-life use risks such as theft and damage. Similarly, the fact that it is fully autonomous virtually eliminates labor costs from this solution. Far fewer people are required to maintain a fleet of \trashbots than would be required to drive trash-collecting machines, or pick up trash manually. We believe we have successfully established a proof of concept for a novel, scalable, and truly viable solution to the growing worldwide litter problem.

Hardware Overview

The hardware design has four main components, the depth camera (Intel Realsense D435), the computer (Intel NUC), the mobile robotic base (Kobuki Mobile Base), and a custom designed trash collection mechanism. The camera relays RGB and depth images which are processed in order to identify and target trash. The motor and wheels relay odometric feedback that helps confirm the Trashbot’s current location. The collection mechanism attaches to the front of the Kobuki Mobile base, plugs into power and data ports on the robot, and uses a rotary brush to pick up the trash.

Software Overview

Mode Control

Each one of the software packages that make up different parts of the project are connected using Robot Operating System (ROS) - an open-source robotics middleware suite that handles communication between "nodes". Each node is able to publish data of different types that any other node in the network can subscribe to.

The TRASH system’s software has three distinct stages (as seen below).

  1. In the first stage, the TRASH system maps its environment using a customized version of ORB-SLAM2, an open source Visual SLAM solution which can accurately create point clouds given RGB and depth camera input. We trained YOLO, an image identification CNN, with our own dataset, then using it to identify and mark the locations of trash clusters on the map. We then render the 3D point cloud down to a 2D occupancy grid using a custom implementation of Octomap. It is from this 2D occupancy grid that the robot can navigate around an environment.
  2. Once the mapping stage is over, the TRASH system enters its second stage: general navigation.The Turtlebot uses adaptive Monte Carlo localization (AMCL) to locate itself in the built map. That way it can identify obstacles and path plan around them to the trash cluster points labeled in that map. Upon reaching a cluster, the third stage begins.
  3. YOLO identifies trash in the RGB image from the Realsense Camera, and from the coordinates of the trash detection and the distance measurement received from the depth camera, calculates the position of the trash relative to the robot. Once it identifies the relative position of the trash, the robot turns towards its target, starts the collection mechanism motor, and moves towards it, picking up the trash piece. Upon successful collection, it returns to the general navigation stage, repeating on until all trash clusters have been visited.