Albert Menu:        

 buttblue.jpg (750 bytes) Albert Project Home
The Albert Project Homepage.
 buttblue.jpg (750 bytes) Project Log
Follow Albert's progress.
 buttblue.jpg (750 bytes) Long Term Goals
Read the long term project goals.
 buttblue.jpg (750 bytes) Short Term Goals
Read the short term project goals.
 buttblue.jpg (750 bytes) Gallery
Enjoy pictures of Albert, taken during development.
 buttblue.jpg (750 bytes) Albert's Five Ears
Read this report about Albert's sonar sensors.
 buttblue.jpg (750 bytes) Albert Programming
Read this report about Albert's low level and high level code.
 buttblue.jpg (750 bytes) Speak, Albert, Speak
Read this report about Albert's text-to-speech ability.
 buttblue.jpg (750 bytes) Mood-Based Behaviors
Read this report about Albert's "Mood Matrix".

A Model for
Mood-Based Robot Behaviors
3/12/99

One of the ways I'd like to give Albert unpredictable behaviors is through the implementation of environment driven moods that affect what he says and how he acts.  To this end I've developed a very simple 2 dimensional array (x,y) I call a Mood Matrix.  'X' values in the array correspond to Albert's general "mood",  'Y' values represent his "comfort".   These values will increment and decrement based on sensor input.  For example, being in a dark room for an extended period of time will cause Albert's Comfort to decrement.  (Which could eventually trigger his "find light" behavior.)   Sensing a human, on the other hand, will result in an increase in his Comfort.  

I'll probably use values ranging from 0 to 100 for both of these variables, as this will give me fine detail when Albert needs to make a mood dependent decision.  But overall, the intersection will fall in one of the 9 cells below:

Mood Matrix

x-1, y+1
bad / comfortable

Depressed/Edgy

x, y+1
normal / comfortable

Secure


x+1, y+1
good / comfortable

Playful

x-1, y
bad / normal

Upset


x, y
normal / normal

Normal

x+1, y
good / normal

Happy

x-1, y-1
bad / uncomfortable

Angry


x, y-1
normal / uncomfortable

Afraid

x+1, y-1
good / uncomfortable

Concerned

Note that Mood varies from bad to normal to good, while Comfort changes from uncomfortable to normal to comfortable; and that each cell shows an overall attitude that was determined by combining Mood and Comfort.   (Bad + Uncomfortable = Angry, Good + Comfortable = Playful).   I'd like to use global variables to determine the boundaries of these cells as that will make it a bit easier to change Albert's behaviors.  I could make the default "Normal" cell much larger than the others, for example.
  

Mood Changes Based on Sensor Feedback

Albert will make decisions based on his overall mood.   Some of these decisions will be reactive, such as the things the robot will say in response to external stimuli, others will be proactive as Albert tries to improve his condition.  To illustrate this last point, if his Mood is low, he will eventually choose one of the actions that he knows will raise his Mood variable.   Over time, Mood and Comfort will gradually return to the Normal state, whether the movement is up or down. 

Here are some other things that will affect Albert's mood:   (list incomplete)

Bumping into something (-Mood, -Comfort)

Being in a well lit room (+Comfort -- evaluated every X minutes)

Being in a dark room (-Comfort -- evaluated every X minutes)

Sensing people (+Comfort -- evaluated every X minutes)

Not sensing people for an extended period (-Comfort -- evaluated every X minutes)

Playing a game (+Mood)

Loud noise (-Comfort)

Very bright light shined on light sensor (-Mood)

Low battery level (-Mood -- evaluated every X minutes)

Fresh battery level (+Mood -- evaluated every X minutes)

Sensor Based Decision Making and Speech

Albert's behaviors will change based on the mood he is in.   Here are some examples:

Albert will spend a lot of time commenting on the world around him.   Each of these comments will have nine possible variations to correspond with the nine cells in the  Mood
Matrix.  If Albert bumps into a wall he might say "Ouch" if his mood is  Normal (x,y), "What's happening???" if his mood is Concerned (x+1,y-1), or even  "Dammit" if his mood is Angry
(x-1,y)  

Once Albert's Comfort drops to a certain point, he will choose a behavior that will  increase his Comfort.  (Looking for light, looking for people, etc.)

Once Albert's Mood drops below a certain threshold he will start looking for ways  to increase his Mood (playing a game, etc.)  

When Albert is happy, he will be more likely to laugh, tell jokes (downloaded from a  'clean' joke webpage), play games, or sing songs

He will be more likely to go off exploring when his Comfort is high