Monday, January 19

Drives, Behaviors, Emotions

I've been reading a lot of Cynthia Breazeal's work in prep for the HRI project. One thing I'm struck by is the architecture she developed for Kismet, and how it's based upon drives.

A drive is something that motivates the system to do something else. It has a range of values, but more importantly it has a homeostatic range which the overall system attempts to maintain. Think thermostat, but instead of a particular temperature, add a little slop to it. Suppose I set the thermostat to 70 and allow a variance of 2 degrees. If the ambient temperature drops below 68, the heat is turned on; if it rises above 72, the air conditioning kicks in.

Now, apply that to the mind for a robot. Breazeal identifies three fundamental drives (social, stimulation, and fatigue); my work last semester with Dr. Thomaz showed that later work with Breazeal added two more (novelty and mastery) to facilitate learning and exploration.

A social drive would want to keep a robot engaged socially, but not too much. If it falls too low, then the robot becomes lonely, and would try to seek out companionship or some other social interaction. If it's too high (too many people, too much movement, people too close for comfort (whatever *that* means!)), then the robot would become asocial, and turn away perhaps.

A stimulation drive would make the robot seek out changes in its environment. Too little change, and the robot gets "bored"; too much, and it would be overloaded. In Kismet's case, overloading the stimulus leads to it closing its eyes and turning away. The novelty drive that I looked at this fall seems to be a particular elaboration on this, but it involves the robot's belief system (a topic for another post).

The fatigue drive would let the robot tire of interacting, and rest. Perhaps it might do this if its other drives were at the extreme end for too long. Perhaps it would do this periodically anyway (a robotic cycadic rhythm). The intention of resting in a robot would be to let the other fundamental drives reset to a neutral state. Here's a design consideration: should the other drives immediately reset to neutral, or should they decay back, allowing for varying amounts of "sleep"/"rest" depending upon exactly how stimulated or social the robot was?

Breazeal holds that a robot is in a state of "well-being" when all of its drives are in their respective homeostatic ranges. She maps the state of the drives into a matrix of emotions for Kismet, which then themselves cause behaviors (for example, "fear" could be caused by an abrupt, overwhelming stimulus, and cause the robot to "escape").

Architecturally, all of this is interesting, for it implies three levels, with close, async, interactions: drives cause behaviors and emotional stances; behaviors cause drive changes; emotional stances allow/inhibit behaviors. This lets us envision a robot's idle loop.

I'm going to prototype the system in javascript (but as objectively as possible) and push a primitive version up sometime this week.


Jon Beckham said...

The drive to take some action should keep damping in mind... taking the social metric as the example, I wouldn't swing from agoraphobia to partygirl daily, I'd attempt to behave in a way that slides my social happiness into its prime area. IOW, instead of behaving like a thermostat with "A/C on" and "Heat on" modes, you'd want to be able to control the degree of the A/C or heat so the temperature isn't a sine curve, but rather stays relatively smooth.

Too much fluctuation in a human would be quite stressful, so please don't subject your virtual robot to that. :)

Anonymous said...

Wow, what a homo faggot. You might as well quit trying to get your stupid little PhD. You will do nothing in life or with your life. Just quit.