Swarm Vacuum Cleaners 2010

From GICLWiki
Revision as of 19:10, 16 March 2010 by Robot Lab 2010 (Talk | contribs)
Jump to: navigation, search

Contents

Project Description

This project is a multi-agent simulation in which Roomba robotic vacuums exhibit swarm intelligence. Each robot is completely independent and autonomous, and acts with no representation of the world it operates in. Through simple rules and limited interaction with the environment and with the other robots, the Roombas are able to explore their world and work together to vacuum unknown, complex maps.

The simulated Roombas are modeled after the real-world equivalents -- they have the ability to move forward or reverse with some turning angle, two front bump sensors, and a (top-down) simulated IR sensor to detect other robots within a short range. The control system for each independent robot is modeled after Brooks' "subsumption architecture". Each robot is represented by a RobotState object, a simple class that encapsulates control and state of the robot. Its update method calls 3 other methods in sequence, which are each simple state machines with some logic and internal counter. Each machine updates a variable representing the forward or reverse speed of the motor, and one representing the turning angle of the motor. After all 3 state machines have run, these two variables are used to issue the command to the robot's motor. The effect is to allow each state machine to, if appropriate, inhibit or override the previous state machine's signals to the motor, resulting in a layered control structure with simple behaviors at the bottom and increasingly complex behaviors at higher levels.

  • The Vacuum SM always tells the motor to move forward with no turn angle
  • The AvoidObstacles SM checks if either of the bump sensors has been activated, or if the robot has not moved despite the motor being enabled (necessary due to simulation bugs where the robot is hitting a wall but neither bump sensor sends a signal). If so, it reverses the motor and sets an appropriate turn angle depending on which bump sensor was hit. The SM will override the Vacuum signals for multiple cycles so that the robot has time to complete its turn away from the obstacle before it resumes vacuuming.
  • The RunAway SM checks if another robot is within communication range of the IR detector. If so, it attempts to move away from the other robot by generating a sharp turn and overriding other signals for several cycles.

The effect of these layered state machines is an autonomous robot that effectively covers a map without any representation of that map. The Roombas will move around the area in straight lines, turning at random angles when they hit a wall or other obstacle, resulting in eventual full coverage of the map through this random walk.

Study Approach

Office Map

The research portion of this project involved 6 simulations, each run approximately 5 times. The different simulations involved varying the map in which the robots vacuumed, and the range at which they could detect each other. Two maps were created - one is an open area, similar to a large room or warehouse. The other map is a floor of an office building, with hallways, multiple rooms and closet areas.

In all cases 4 robots were simulated.

  • Robots in an open map, with no communication
  • Robots in an office map, with no communication
  • Robots in an open map, 3 meter communication radius
  • Robots in an office map, 3 meter communication radius
  • Robots in an open map, 6 meter communication radius
  • Robots in an office map, 6 meter communication radius

As some of these simulations took over an hour of real time for a single run, I was limited by available time to about 5 runs per test, which took several days.

Project Report

Conclusions

Software

Movies

References

Brooks, R. A. (1991b). Intelligence without representation. Artificial Intelligence, 47:139–159.

Personal tools