BioInspiredRobotDesignAssignment4
(→Goal) |
(→Map) |
||
| Line 32: | Line 32: | ||
==Map== | ==Map== | ||
| − | |||
| − | + | We will be providing you an Environment Java class that the robot will use to represent the hallway. Do not edit this class. Your robot may use the following methods: | |
| + | Return a Pheromone value at this cell location. | ||
| + | <code> | ||
| + | long getPheromone(int x, int y) | ||
| + | </code> | ||
| + | |||
| + | Leaves a pheromone value at this cell location. | ||
| + | <code> | ||
| + | void leavePheromone(int x, int y); | ||
| + | </code> | ||
| + | |||
| + | <!-- | ||
[[image:Assignment4SystemArchitecture.png|center]] | [[image:Assignment4SystemArchitecture.png|center]] | ||
--> | --> | ||
Revision as of 13:32, 8 November 2007
Contents |
Overview
Using only simple behaviors, we want to program our Creates to seek out and bring food back to a home base. At the outset, your robot will begin its search for food by performing random movements and leaving a pheromone in each location visited. Your robot will be working alone and must perform 5 iterations of finding food then returning home.
Goal
Program the Creates such that they can search and find virtual food using only simple behaviors such as:
- local movements
- limited memory (i.e. only know the current location and none of the previous locations). The robot will not be allowed to perform path planning or use any memory other than the virtual environment map.
- maintain current location in memory
- try to avoid walls using the virtual map (otherwise the internal odometry could be thrown off).
- read pheromone
- pick up food
- leave pheromone
Details
The robot begin by executing a search for food. This is done by random movements until 1) food is found, or 2) a virtual pheromone is encountered. At each discrete location, the robot will leave a virtual pheromone in the virtual map. If food is found, return home while leaving a trail every 15cm. If a pheromone is found, then follow the pheromone trail until it can't find any more pheromones, or until it finds food.
Food
Virtual walls are what our ants will use as food. When our Create encounters a virtual wall, it will "pick up food", then return home by following it's original pheromone trail while leaving pheromones for the other robots to find. They will be positioned from above with the IR beam pointing downward to simulate the effect of a food source. There will be two virtual walls, symbolizing two food sources.
Virtual Pheromone (VirP)
Once a robot encounters a virtual wall, it will begin its journey home leaving a virtual pheromone (VirP) trail in the virtual environment. Leaving a virtual pheromone in the environment is accomplished by sending a location to a central server which will act as a virtual map.
Other robots will determine if there is a pheromone trail by querying the virtual map for VirP strength > 1 in its current location.
Virtual Pheromones decay over time as well. So when a food source runs out, the other robots will find another food source.
Map
We will be providing you an Environment Java class that the robot will use to represent the hallway. Do not edit this class. Your robot may use the following methods:
Return a Pheromone value at this cell location.
long getPheromone(int x, int y)
Leaves a pheromone value at this cell location.
void leavePheromone(int x, int y);
Administrative
- Each student is responsible for developing the specific simple behaviors which (we hope) will produce the desired emergent behavior.
- We will provide Java skeleton code as a framework for build the specific behaviors.
References
- Dorigo, M. and Caro, G.D. and Gambardella, L.M., Ant Algorithms for Discrete Optimization, Artificial Life, 1999 vol 5 no. 2, pp 137-172.