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.

[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