Banner
    Architecting Emotional Robots
    By Samuel Kenyon | April 7th 2011 08:55 PM | 13 comments | Print | E-mail | Track Comments
    About Samuel

    Software engineer, AI researcher, interaction designer (IxD), actor, writer, atheist transhumanist. My blog will attempt to synthesize concepts...

    View Samuel's Profile
    Creating a robot with emotions is a software development problem.

    Emotion is a matter of cognitive architecture.  It is part of the information system of the mind.  Recreating "emotions" really means recreating a type of mind that uses internal mechanisms similar to our minds.  Making an emotional machine requires the proper design and implementation and deployment.

    The reason I added "deployment" in there is because environment is quite important.  The mind is a system that interacts with other entities--there is an information flow.  The level of externalism required affects how situated and/or embodied an artificial agent has to be.  That is where robots come in.  However, a robot and its world can be simulated.



    What Do I Mean by Architecture?

    The metaphor of architecture lets us think of the mind as a building.  But really I mean a large building that was built from millions of interlocking parts and took months or years to design.  And as with buildings, a mind is not just designed and built--it also has to survive the real world.  

    The metaphor breaks down a bit when you consider how natural minds emerge from ever-changing, growing (or shrinking), adaptable, flexible bags of meat.  However, in their own slow way buildings do change via maintenance and new additions, and they are in fact flexible and movable so as to survive wind and earthquakes.

    Of equal or greater importance, I also think of architecture here in its software engineering usage [1]:
    Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution.


    Why Do We Need an Entire Architecture?

    One might think that a programmer could just add in some emotion--make a few calls to the emotion function, or tack on a loosely coupled Emotion module.  But based on the best theories so far from researchers, emotions are actually many things going in the mind.  And they are all inherent in the system and intertwined with evolutionarily old parts.  In other words, if you ripped out all the stuff related to emotions, you wouldn't have much left.  In future posts I will go into the details of potential architectures and why there are certain dependencies.


    References:
    [1] IEEE Computer Society, IEEE Recommended Practice for Architectural Description of Software-Intensive Systems: IEEE Std 1472000. 2000. via P. Eeles, "What is a software architecture?"

    Image credits:

    1. safari-partners
    2. Marko Ljubez

    Comments

    vongehr
    Creating a robot with emotions is a software development problem.
    Let me rephrase. You meant to say either:
    I define emotions so that creating a robot with emotions is a software development problem (So once my simulation cries and laughs together with me through the emo-Turing test, I call that emotions).
    Or:
    Assume we forget all the complications about Turing computability or not, quantum connection or not, difference between first person phenomenal consciousness and third person reported consciousness or not, then in this probably way too simplified worldview, hardware is no problem at all and I believe creating a robot with emotions is a software development problem.
    SynapticNulship
    I define emotions so that creating a robot with emotions is a software development problem (So once my simulation cries and laughs together with me through the emo-Turing test, I call that emotions).
    Well I have no interest in the Turing Test or a mythical emo-Turing test.  That kind of test proves nothing except that you fooled somebody in a narrow context.  This does not require having an architecture based on biology.  There are plenty of people already working on robots that try to express emotions.  It's basically animatronics.  I, however, am talking about the internal mental structure and functioning of a robot that is similar to an animal's, and this robot has to be able to exist and survive in a sufficiently complex environment.

    The problem of verification is a difficult one, however.  It would have to be a combination of demonstration, test, inspection, and analysis (all of the classic verification types).  It would be helpful to build into the architecture a means to revert to primitive mental levels.  So you could test level 1 which would be compatible to "simple" animals and then level x would be human level.  It's not quite as clean as that but that's the gist.
    Gerhard Adam
    So you could test level 1 which would be compatible to "simple" animals and then level x would be human level.
    I guess this begs the question though, which is ... what's the point?  What's the motivation for the machine?  After all, if you're only going to have it act like an animal or a human (which it's not), then how is this anything except a crude simulation?


    Mundus vult decipi
    Gerhard Adam
    It's interesting to hear you mention that emotion is a software development problem, so I expect that your architecture will address the context in which these emotions are to occur?  After all, if you built a robot that responded like a human then what would be your point, except to simulate emotional behavior.

    One might think that a programmer could just add in some emotion--make a few calls to the emotion function, or tack on a loosely coupled Emotion module.
    Who would think such a thing except someone woefully ignorant of the brain?
    Mundus vult decipi
    SynapticNulship
    Who would think such a thing except someone woefully ignorant of the brain?
    So, 99% of the world?

    Also, although perhaps not as silly as I described, there seems to be a lack of relatively-finished integrated systems from academia.   Most researchers stay in narrow fields.  Few attempt to make full systems, let alone get it to a point where it actually works.  It makes sense--you just need enough to finish your thesis.  For instance, I read a paper in a book once about the Kismet robot's dimensional emotion model.  But even if they had that code actually working, the project completely turned into a human-robot interaction project.  And, it doesn't move around. Or have a body.  Likewise Sony has tried making some emotional-marker style programming for Aibos in the past where they liked virtual food or something like that, but it was not complete and it wasn't a full emotional architecture.
    SynapticNulship
    It's interesting to hear you mention that emotion is a software development problem, so I expect that your architecture will address the context in which these emotions are to occur? 
    As with any system, context is important.
    After all, if you built a robot that responded like a human then what would be your point, except to simulate emotional behavior.
    Well nobody's done it yet.  I think it's the standard Dennett style dual purpose goal: you achieve something in the field of AI and you also feed back into biology and psychology.  Given that biology evolved our minds this way, there are of course certain advantages that could be incorporated into certain robot software architectures for practical reasons.
    Gerhard Adam
    Given that biology evolved our minds this way, there are of course certain advantages that could be incorporated into certain robot software architectures for practical reasons.
    That would be useful, presuming that we actually know how our minds work. 
    Mundus vult decipi
    Ladislav Kocbach
    I am looking forward to your architectural specification for a design to understand jokes. 
    But to be more serious, this looks to me as a very interesting idea. I imagine that the "architecture" must contain a lot of parallelity (or is it parallelness?). Since you have been thinking about this, how do you imagine to model basic awarness or basic consciousness? Or from the other side, from moods to emotions. A sad autonomous vehicle and a cheerful one? 
    I especially like your aim to be "independent" of biology - design really artificial emotions (AE). I hope you will write more about this.

    SynapticNulship
    You so innocently ask how I imagine to model consciousness. Well all I can say is I'm not trying to model consciousness.
    I especially like your aim to be "independent" of biology - design really artificial emotions (AE). I hope you will write more about this.
    I hope I will write more about it too. It seems like so many AI and robotics researchers have been inspired by biological research, but fall short of actually achieving the architectures and implementations that are similar or operate in similar contexts, especially with emotions.
    Aitch
    Reminds me of Gamasutra, Sam

    http://www.gamasutra.com/view/feature/1992/constructing_artificial_emoti...

    more Bacchus, I say ....he he [wink]

    Aitch
    SynapticNulship
    Thanks for the link. I used to read Game Developer magazine (their sister print mag) until they started charging me for it. Regardless of the usefulness of the two-factor theory, that article brings to mind all the industrial uses of emotional manipulation. Emotions are a major part of design outside of games, for instance marketing/advertising and also user experience design.
    Aitch
    Here's an interesting interview with Dr Ben Goertzel
    [Chairman of Humanity+; CEO of AI software company Novamente LLC and bioinformatics company Biomind LLC; leader of the open-source OpenCog Artificial General Intelligence (AGI) software project...etc, etc...wink]

    http://www.physorg.com/news/2011-06-dr-ben-goertzel-artificial-intellige...

    http://www.physorg.com/news/2011-06-dr-ben-goertzel-artificial-intellige...

    Aitch
    SynapticNulship
    Yes I am an acquaintance of Goertzel, however there's nothing particularly relevant in that interview to my article, except of course the issue of simulations vs. real robots which is an obvious problem that lot's of engineers and scientists have to deal with.  I have always used a mixture of real robots and simulations (and games) and I intend to continue doing that.