Pavlov (Personal automated valet and laundry operations vehicle)

Pavlov is conceived as a household aid. He can accomplish ordinary household tasks through interaction with smart appliances. For this project his domain is a single floor family dwelling. Within the dwelling are various locations where Pavlov does his work.These consist of the smart appliances as well as the closets and drawers where clothes are kept. Aiding Pavlov in his work are small clusters of 16 spoked figures in groups of 4. Each figure has one spoke missing denoting its value as a hexadecimal number. The 4 figures denote 4 hexadecimal numbers which are taken together as 1 16 bit location code. These figure clusters are used as navigational aids and in matching auxiliary items such as coded hangers and their approriate location. Pavlov's domain model is based on this location system. He only goes where he has work. If he has no work, he stays out of sight (like a good servant should) in the laundry room.

My project program deals with planning Pavlov's work. Pavlov may have jobs scheduled for him ahead of time such as starting the coffee at 5:30 A.M. Pavlov can be given orders or he may need to recharge his batteries (don't we all!). My program allows Pavlov to plan his work from any place as well as planning given a time limit indicating an upcoming scheduled task. This last aspect requires that time be reified in the model. This was easily accomplished through associating time with location. Basing the model on physical location greatly simplified the program. For the purpose of planning as relates to time it was only necessary to move Pavlov to the places where he has work and sum the time for the movement and the time associated with the location. I began the project as a partial order planner using the Strips representation but ran into problems. The Strips representation is limited through its use of primitive rules in both the add list and the delete list. Reifying time was difficult (at least for me) in such a format but fortunately the model of the domain facilitated that central requirement of my project.

My program works by organizing a list of tasks based on their location. These locations are groupings of smart appliances, the laundry room (home) or closets. In this manner groups of tasks can be accomplished by moving to the location associated with them. The total time required is simply the time to move there plus the time required for all the tasks at that location. By de- fault Pavlov will only go to a location to do all the work there. Pavlov picks up coded hangers and drawers in the laundry room. The locations denoted by the code are added to his list of jobs. This list is broken down into a list of lists of tasks associated with the same location. To make a plan it is only necessary to plan to visit the locations in the list.

The central part of my project was modelling the domain. While I encountered problems with the program (I could tell sad tales of mile-long traces leading nowhere), the basic concept was sound and saved my ass. I came to the conclusion that the basis of the model must be sound if a solution to the problem is to be found.