history | discussion | construction | conclusions | photos | links |
Construction Once the circuit boards were put together, students began to construct the rest bots using a LEGO Freestyle set. All bots included a port to connect to a computer with, a rechargeable battery pack, an infrared emitter/detector, a small speaker, and a small screen that could support two short lines of text. Additionally, the bots had a least one motor with which wheels or other devices could be controlled. Each bot also had several extra ports so additional components could easily plugged in or removed. It was very easy to make drastic changes in the design of the bot, and we often did. Most people included and touch sensors and light detecting photo cells as part of the initial design. To control the bots, we used Macintosh computers and a variant of the C programming language. Speedometer After spending some time experimenting with these first sensors to get a feel for programming the bot, we embarked on our first project, developing a speedometer. To do this, we all added a break-beam sensor to bots. The break-beam sensors measured the speed at which a special wheel on the bot was spinning. A program could use that information to calculate the speed. Flashing Light Another task which we given early on was to use our photocells to detect the presence of the flashing light. Our algorithm needed to be able to work with varying amounts of ambient light in the room, and be able to detect different frequencies of flashing. Maze Problem We were soon called upon to solve our first complex problem. We needed to write a program to make our bot navigate a simple maze. The bot needed to identify a nearby flashing light, navigate the winding maze until a second flashing light (with a different frequency) was detected, and then return through the maze and find the first flashing light again. The biggest challenge for most groups was developing a reliable navigation program to get through the maze. Many algorithms were based on bumping into a wall, and correcting the direction slightly, often was a process that monitored to see if a bot might be stuck in a corner, in which case a special maneuver could be made. Mike Fisher pioneered the development off a wall-following navigation system to solve the problem. First he constructed an arm that came off to the left side of the bot. A touch sensor would register when there was a wall on the left side. Using this, his team was able to produce a more reliable solution to the problem. The bot needed to simply know how to follow a wall, and how to make left and right turns. Ian Bicking and Dan Stone developed another innovative solution to this problem. Using the IR emitter/detector on the bot and a universal remote control, he was able to program particular buttons on the remote to trigger functions he had written for the bot in C. The bot was then able to navigate the maze as easily as someone might control a remote control car. The class was universally impressed with this new technology, but some regarded this solution as "cheating", since the bot was helped through the maze during the run. The Bee Idea The class soon began consensing on what the final project for the class should be. There was a general feeling that we wanted to develop a task in which the bots would need to work cooperatively. The problem space needed to be of a reasonable size and involve interesting hardware and software challenges. Many ideas were discussed. They included delivering mail, rescuing melting ice cream, and playing capture the flag, amongst others. The idea that eventually captured the hearts of the class members was simulating honey bees. Some sort of "hive" would be established, as would "nectar", that the bots would need to seek out and find. Once found, a bot-bee would need to return to the hive and inform the other bots of the location of the nectar. The simulation would end when all the nectar was found. Different colored lights were chosen to simulate the nectar. The hive was represented by black paper on one area of the floor. To complete the final project, the class needed to collective conquer it's many facets. Some of its more interesting ones included: navigating to find the nectar, detecting the different colored lights, developing a protocol to communicate with the bots using infrared or radio signals, and keeping track of the nectar locations in some useful way. The Lawnmower problem The problem of finding the nectar in became known in a systematic way became known as the "lawnmower problem", since it involved covering the area of a rectangle in a systematic way, much like one mows the lawn. The lawnmower problem was decievingly difficult to solve because our bots had difficulty is traveling in a straight line, an important ingredient in most lawnmowing schemes. Several groups used a random algorithm instead, figuring that random movements by the bot would eventually cover the area of our designated rectangle. This method turned out to be satisfactory for the size of the rectangle used. Navigation Another aspect of navigation was returning to the hive. Also, another bot had to be able to navigate to the nectar from the hive based on the information it had recieved from another. To help the bots here, polarized light was used, provided by a overhead projector on one side of the room, with a polarization filter. When a bot finds a colored light it pans until it sees the brightest point in the polarized light, and faces it. It then measures the distance to the wall, which it knows by the white paper which was put down around the maze. The distance between said light and wall is one coordinate. Then it measures the distance along the wall. This is the next coordinate. With these coordinates stored it heads home. Communication For a bot at the hive to tell another where the nectar was located, the bots needed be able to communicate. Infrared and light were considered as possible mediums, but we finally decided on radio waves. Once we had made that decision, the hardware had to be built, and a communication protocal developed. Jim Garlick and Dan Stone did a lot of work in this area. Jim documented those efforts on his own webpage. Detecting Colored Light To detect colored lights, extra photocells were added to bots, and covered with colored gels donated from the theater department. Each photocell with a gel could detect a pair of colors. A red gelled photocell could be used to detect red and green light, for example. Find out how the final run turned out in Conclusions.
|