Litterbug By Dorian Levy IMDL Spring 2014 Table of Contents Abstract 2 Introduction 3 Main Body 4 Behaviors 6 Experimental Layout and Results 7 Conclusion 8 Code 9 1 Abstract Litter can be a major problem, especially on college campuses where there are 50,000 students eating, drinking, and in many cases living. Picking up trash is vital to campus cleanliness, but equally important is getting non trash recyclables into the appropriate collection areas. For my project I am planning to build a robot that looks for trash, then decides if it is recyclable or not and places in the corresponding area. I will call it the Litterbug. The Litterbug will use a Beaglebone Black processor, sharp IR sensors, a webcam, bump switches, and a pressure sensor. Using two sets of IR proximity sensors, one for collision detection and one to determine if an object is within range, it will find objects to discard. It will then use the camera to determine if it is a bottle or can, pick up the can, and place in one of two designated areas. 2 Introduction For my project I am planning to build the Litterbug, an autonomous robot that drives around looking for trash to pick up. Because environment awareness is important, we should be recycling whenever possible and this should apply to any processes we develop including trash collecting robots. This robot will be a recycling robot. It will drive around looking for plastic bottles to pick up and recycle. Since the robot acts as a vehicle and drives it will have obstacle avoidance. Two sharp IR proximity sensors located toward the outer edges of the front, near the wheels, will be able to sense when the vehicle is too close to something, and will alert the vehicle to change course. 3 Main Body Integrated System The system will use two angled IR sensors located at the out edges of the robot near the wheels to detect objects to avoid. A webcam will take pictures and send them to the Beaglebone Black to be processed. Using OpenCV the processor will determine if a bottle is in the picture Mobile Platform The mobile platform consists of an 8” x 12” frame with two 4.5” wheels, one located at the center of each side. The wheels are placed at the center to allow for turning in place, needed to drop off an object that has been picked up. There are also two castors, one front and one rear for balance. Three long range IR sensors are located at the front of the platform. Two for obstacle avoidance and one to determine if the object to be picked up the proper distance from the claw. A well at the center contains the battery, processor and auxiliary components. They are concealed by a cover that forms the top of the robot and allows for mounting of the webcam. Actuation The robot is powered by two 25mm motors with 34:1 gear ratio, 4mm axles, and Hall Effect wheel encoders. The motors turn two 4.5” wheels, one located at the center of each side. If the outer IR sensors or the bump switches detect an object to be avoided the motors will respond accordingly. If there is nothing within range of the sensors and no object to be picked up the robot will drive forward to look for objects. . A small servo motor with two plastic gears will operate the claw mounted front and center used to pick up objects. A small pressure sensor is mounted in the claw to alert an object has been picked up. Sensors IR Sensors - Sharp GP2Y0A02, a long-range optical distance sensor we carry, featuring a detection range of 8″ to 60″ (20 cm to 150 cm). Webcam – The webcam is used to find plastic bottles. It does so by using cascade training. 300 pictures of plastic bottles were taken, cropped, and their size documented into an info file. OpenCV createsamples was then used to create a vector of positive samlple. What this does is convert them to grayscale and resize them all to the same size. Then 1000 negative pictures were downloaded from the internet. These photos were looked through one at a time to make sure nothing resembling a plastic bottle was in any of them. Once the positive and negative set were ready the OpenCV traincascade function could be done. Through some trial and error 12 stages of training were 4 determined to have the highest positive rate and lowest false negative rate. The training creates an xml file that is used in the cascade recognition function. Pressure Sensor - This force-sensing resistor (FSR) from Interlink Electronics is a passive component that exhibits a decrease in resistance when there is an increase in the force applied to the circular active area (0.5"/12.7mm diameter), allowing you to create a sensor that is able to detect force or pressure. 5 Behaviors The litterbug takes a picture with it’s webcam and determines if there is a bottle in the picture. If there isn’t, it turns 8 degrees and repeats. It does this until it finds a bottle or completes a 360 degree turn. If no bottle is found it will drive a distance and repeat the search process. It will avoid obstacles while driving. If a bottle is found, it will stop take another picture and determine if the bottle is left of center, right of center, or on center. It will turn slightly to try to center the bottle. This process also eliminates false positives because it needs to find the bottle in three straight images to proceed. Once the bottle is lined up center the robot will drive slowly towards it until the center proximity sensor determines it is in range for the claw. The claw then closes on the bottle. A pressure sensor is in the claw to make sure the bottle is grabbed. If the sensor is not triggered, the robot drives forward a short distance and try again. If there is still no bottle in the claw, the robot will go back into search mode. If there is a bottle in the claw, the camera will turn 180 degrees allowing the robot to drive in reverse to the drop off location. 6 Experimental Layout and Results At this point the robot is able to detect obstacles and react accordingly. The robot is able to detect plastic bottles of different varieties. At first it was unable to pick them up because the IR sensor beam was too narrow. I switched to an ultrasonic sensor and got much better results. There is still a slight issue with the sensor being off center due to the claw servo, causing bottles in the left claw to be pushed before being picked up and bottles on the right claw sometimes closing early, but this is mostly taken care of with the pressure sensor. 7 Conclusion At the time of writing this report the robot finds bottles and picks them up. The robot is self-contained and operates all under its own power. It is not fully functioning yet because it does not drop the bottles off yet, but it does find bottles of different kinds and is able to drive up to them and grab them. I chose a project that was quite difficult for me, but learned a great deal about robots and embedded systems, which was my goal for this class. I am hoping to have more functionality by media day Wednesday. 8 9