Intelligent Autonomous Agents
ICS 606 / EE 606
Assignment #1 - Robotic Vacuum in Common Lisp
This is a regular assignment and counts 100 points toward your assignment grade.
You may (optionally) work in groups of 2 or 3 on this programming
assignment. Each person must complete and turn in an individual
report with code and tests.
Your assignment is to design, implement, test, and report results on the project described below. Notice that there are several extra credit options.
Start with the simple Vacuum cleaner agent code provided
by Norvig & Russell.
Open
http://aima.cs.berkeley.edu/lisp/ . Then download the file code.tar.gz and unzip it.
Alternatively, a local copy of the unzipped code is
here.
Documentation for the code is at
http://aima.cs.berkeley.edu/lisp/doc/overview.html
Make the following enhancements
(copy and modify the code, you do not need to re-write from scratch).
- Larger rooms (rectangular) [ very easy ] - limit your rooms size to maximum 40 by 40 cells.
- Enhanced mobility (move in 4 directions - up, down, left, right)
- More/better sensors - detect amount of dirt (integer) under
vacuum and whether any of the cells you can move to is blocked (4
cells).
- sense the amount of dirt in the cell you are in (correlated to units of dirt)
- a "view" of the 4 squares next to you that can be reached in one
move (up, down, left, right). Sensors can return simply "blocked" or
"not-blocked", in each direction.
- Model and avoid furniture and non-moving cats
- Maintain an internal "map" of the area and where you have
cleaned, to be able to report the time it takes you to clean every
available square at least once. (goal-based agent)
- Read in scenario files for different sized rooms, dirt factors,
furniture locations, and cats. You may assume that the files contain
only numbers.
Extra Credit
- Cats that move (about 25% of the time, sleep 75%) one cell in any
of 4 directions (5 points) (can jump on furniture - should not hit
walls, optional if you want them to avoid hopping in the vacuum's
square)
- Cats that move in any direction up to 2 squares in each direction (10 points)
- Cats that move and shed hair (dirt) each time they leave a square (20 points)
- Do robust input/error checking (20 points)
- Battery life, recharging the battery, knowing when to return for
a charge (25 points)
Follow the link below for file input format description and examples.
- Room specification file and examples
here.
- Graphical room scenarios
here.
Due Date: Fri (midnight), 6th week of class. [email to nreed@hawaii.edu]
Turn in your code, transcripts of testing and running it, and a report
on your solutions.
Back to the
course homepage.
(c) N. E. Reed, 2005-2009