Smart Movable Trash-Bin With Trash Identification in Office

Smart Movable Trash-Bin (SMTB) is an IoT solution to current trash sorting problem in office. Currently, the trash sorting is a trend and a remedial action to save the environment, which becomes a policy of great significance in numerous countries and cities. However, people, especially the officer in office, who are not going to have a single trash-bin suffers from the trash sorting and often feel confused about the trash type every time they are going to drop trash. Our project aims to automate the process in the origin, which means when people drop trash, the trash is accurately identifed as the trash type, including metal, plastic, glass, paper, cardboard (recyclable in most regions) and trash (unrecyclable). In addition, our target is to make it as a intelligent project. Since in most cases, officers should share a common trash-bin and need to move when they have trash. But with our design, user can directly use phone to call our SMTB to come to his/her postion and user can simply put trash in and SMTB intelligently identify the trash type and go back orginal place for sorting and collecting.

With SMTB, officers will benefit from simplification of dropping trash and trash sorting; office will become more clean; government will benefit from the energy conservation resulting from resource reuse. We hope our project will make a difference to the world.

Motivation

2019 has witnessed the stablishment of compulsary trash-sorting policy in many major cities in China and USA. Our self-trash-sorting trash-bin will help people figure out the correct sort of trash. It will save people's time and also avoid the incorrect-sorting case.

Smart house and office products like smart sweepers have become popular theses days. While most smart trash-bin products in market fail to provide user-friendly and fully automative service but only with functions of great confinement such as auto-opening using voice or movition sensor, our project is going to provide a new perspective.

Our motivation fully automating the trash collecting and sorting stimulates us to create SMTB.

The SMTB designed by us still resembles the use logic of theses product to make all functions accessible from phone. However, we manage to make the trash collecting and trash sorting automated in SMTB. When user use the phone to call SMTB, it will immediately approach users once there is no other unfinished command. Then it will collect the trash and identify the trash type. At the same time, SMTB will come back to the original place for battery charging, trash collection and waiting for the next command. We hope SMTB provides user-friendly enough service for users.

System

Architecture

Technical Components

There are three main technical components:

APP Design


We used Android Studio to develop a phone APP. There are two functions along with 3 layouts. When the APP is launched, users will see the homepage with two buttons on it. One is used to redirected to take_photo layout, the other is used to call_trash_can layout.

Take_photo layout is the page where users can identify the type of trash without calling the trash-can. Just take a photo and upload it to server, the result will be shown on the page. Clicking the HOME button can redirected to home page.

Call_trash_can will interact with the trash-can. Users enter his position and click request button, server will handle this request. The response status received from server will be displayed on this page. If the response is "successful", the trash-can will come.

Server Design


The server is built by Django and there are '/recommend', '/identify', '/acceptCommand' and '/actCommand'. We make it public in the internet using ngrok. Then trash identification model is set up to identify the trash type of incoming images.

The image taken by phone can be post through '/recommend' to server. The server will save the image and load the trash identification model to obtain the result and return the result to the app of smart phone.

Due to limit of budget and time, the camera and ESP8266 in SMTB have a not good as enough performance in photo taking, which can only take a image and transfer every 10 bytes to the server. So after taking photo, ESP8266 will upload the image to server through '/identify'. Our server is going to take around 2 minutes to receive the whole image and then convert it to a real image from bytes. The results of identification will be saved for trash sorting.

Besides, ESP8266 board listens to '/actCommand' in a fixed frequency (currently 3 seconds/ 1 cycle) to know whether or not there is new command from users. Once it detects the command, it will interact with STM32 in the car to deliver the instruction. Then the car will follow the instruction, such as "move to position A" ("A" is a calibrated position in office map), to find a path to the required position.

In addition to the connection between server and SMTB, there is definitely a connection between server and user. The user can directly uses the app in the phone. The sent command will be stored in server and server will return the status of command processing situation to let user know if the command can be processed or not.

Our trash identification model is built using tensorflow and model Inception-V3 architecture. The top layer receives as input a 2048-dimensional vector for each image. We train a softmax layer on top of this representation. Assuming the softmax layer contains N labels, this corresponds to learning N + 2048 * N model parameters corresponding to the learned biases and weights. We define the subfolder names as the label. Also, we use scrapy and beautiful soap to collect images based on the trash type to server as part of training set. Furthermore, we also collect samples and loads part of images as training set.

Car Design


The car has two parts, a trash can and an omnidirectional chassis.

The trash can has an OV2640 camera on its top to take the picture of the trash. We use an ESP8266 board to read the camera with SPI protocol and upload the image to the server.

To realize omnidirectional movement, we use four Mecanum wheels so that it’s much more easier for the trash can to navigate, avoid obstacle and adjust its attitude. However, due to the budget limits, the whole chassis is controlled only by a STM32F407 board so theoretically the timer and uart is not enough for the whole chassis. As a result, all four motors are open-loop controlled. Only the chassis has a position closed-loop control which means the navigation is harded.

We build a localization system with two orthogonal placed encoders and an IMU, which gives the chassis its acceleration, speed, position and attitude. Since manufacturing methods are limited to laser engraving and 3D printer, we cannot make a robust encoder system. So we failed to narrow the localization error with a better algorithm based on non-orthogonal arranged encoders and very accurate calibration.

Prototype

The prototype was built with the combination of a car and trash bin on the top.

The server is temporarily public in the internet by ngrok.

The app is built by Android Studio.

Results

We have completed most parts of our wish list.

And we nearly reach Gold outcome except the obstacle avoiding.

We have overcome most important and difficult problem.

The accuracy of trash identification in training set and validation set reaches up to 87%. And it can accurately identify the trash type in images regardless of being from phone or camera on SMTB.

The car has a stable and accurate localization as shown in the demo video.

The phone can simply take a photo of trash and display the identified trash type. Also, it allows user to monitor the SMTB and send command to SMTB to process.

References

[1] B. Chowdhury and M. U. Chowdhury, “RFID-based Real-time Smart Waste Management System,” in Australasian Telecommunication Networks and Applications Conference, 2007, no. December, pp. 175–180.​

[2] A. Zanella, N. Bui, A. Castellani, L. Vangelista, and M. Zorzi, “Internet of Things for Smart Cities,” IEEE Internet Things J., vol. 1, no. 1, pp. 22–32, 2014.​

[3] F. Mattern, “From smart devices to smart everyday objects,” Proc. Smart Objects Conf., no. April, pp. 15–16, 2003.​

[4] BigBellySolar, “CNN - Solar Powered Trash Compactors,” 2010. [Online]. Available: https://www.youtube.com/watch?v=8e8Be9rq_C8.​

[5] S. Zavare, R. Parashare, S. Patil, P. Rathod, and P. V. Babanne, “Smart City Waste Management System Using GSM,” Int. J. Comput. Sci. Trends Technol., vol. 5, no. 3, pp. 74–78, 2017.​

[6] T. Singh, R. Mahajan, and D. Bagai, “Smart Waste Management using Wireless Sensor Network,” Int. J. Innov. Res. Comput. Commun. Eng., vol. 4, no. 6, pp. 10343–10347, 2016.​

[7] S. S. Navghane, M. S. Killedar, and V. M. Rohokale, “IoT Based Smart Garbage and Waste Collection Bin,” Int. J. Adv. Res. Electron. Commun. Eng., vol. 5, no. 5, pp. 1576–1578, 2016.​

[8] T. Ambrose, C. Ford, and M. Norris, “Smart City Trash Cans,” California Polytechnic State University, 2015.​

[9] Ecube Labs, “Smart Waste Management System | Waste Analytics | Ecube Labs.” [Online]. Available: http://ecubelabs.com/.​

[10] Bigbelly, “Bigbelly - Smart City Solutions.” [Online]. Available: http://bigbelly.com/.​

Our Team

Qi Wang

I am a master student in the Department of Mechanical Engineering in Robotics at Columbia University.

I love traveling and food, which might be the origin of happiness in life. As a Chinese saying goes, "thounds of books reading will be less than a thousand mile traving". I love to visit places of books that I read, such as Taiwan, Beijing, Harbin and Korea. Those places leave me great impressions. As for cooking, it might be a necessary skills for a student living far away from hometown. I practice Chinese food a lot. Hope to share with you someday!

Yunqing Xiao

I am master student in Computer Engineering in Columbia, and graduated from Huazhong University of Science and Technology with B.S. in Biomedical Engineering.

Zhihao Zheng

I am a master student of computer engineering program at Columbia University and take charge of the chassis of the project.

Contact

Qi Wang: qw2261@columbia.edu
Yunqing Xiao: yx2542@columbia.edu
Zhihao Zheng: zz2698@columbia.edu

Project Code is uploaded to GitHub!

Columbia University Department of Electrical Engineering
Instructor: Professsor Xiaofan (Fred) Jiang