Harvey Mudd College
Computer Science 154 - Robotics
Assignment I

The Cleanup Challenge

Introduction

The algorithms that are often the first to come to mind for mobile platforms are navigation, localizing, and mapping algorithms. However, there is a subfield of mobile-robot algorithms that are slightly different from these: coverage algorithms. The goal of a coverage algorithm is to seek out and process the entire free space of a mobile robot. Process might mean to simply drive over, as with lawn-mowing and floor-cleaning systems, or it might involve additional work, e.g., deploying sensors to detect chemicals in an environment, demining an area, or even applying a coat of paint to the surface of an object with a robot arm. Howie Choset of CMU maintains a line of research on robotic coverage at http://voronoi.sbp.ri.cmu.edu/coverage/coverage.html.



The task and environment

The challenge for this project is to design and implement a small robot that will achieve coverage (as completely as possible) of a desk-like environment. This desk-cleaning system will operate by using the fundamental principle of effective managers: it will delegate most of the actual clean-up work to another robot (or human). That is, it will move around a desk or table in an effort to push all of the lightweight objects onto the floor. There may be heavier objects (e.g., computers, large books) that should be condidered obstacles. And, of course, the robot must be sure not to fall off the edge... . One possible environment is shown below. The blue regions indicate obstacles on the desk's surface; the green band represents a white edge that will be placed around the desk's outer edge in order to help the light sensors detect it. The black regions indicate light items that are cluttering up the desk: the system should try to clear these off as completely as possible.





The hardware

The Mindstorms' RCX brick and the Handyboard are both capable of controlling a robot to handle cleaning up a desk. Both operate on top of a lego chassis that you will need to design. Ample documentation for each is available in the lab.

Warnings These are general cautions that you should keep in mind throughout this lab project.

In addition, each team will have at least

There are spare sensors and, perhaps, motors. Teams may use those as they see fit. Finally, there is a pool of lego blocks with which to build the body of the robot. These need to be shared between the two lab groups working on this project.

The first thing to do is to read the technical reference for the system you will be working with . This is a must as it explains everything you will need to know about the board. The handyboard reference is available here in PDF format. In particular, be sure you understand how to keep the board charged. You should leave your board in trickle-charge mode when not using it. For safety, I would advise avoiding "zap" charge -- forgetting that a board is "zap" charging can fry it.

From there, the project is wide-open. Some things to consider (and references):