Working on the Emotion Core update it became clear to me that placing responsibility of emotional analysis to Ego-like nodes (a Consciousness, Reflexes, and Instincts) is a wrong approach. It leads to the situation where the developer of the application should specify several types of behavior themself, which is too complicated for development.
I want to implement another approach when concepts themselves contain information about how they should be modified based on a set of the emotion parameters. For example:
- An Ego-like node sends the concept
move
with a modifierleft
:
{
"concept": "move",
"modifier": ["left"]
}
- The concept
move
contains a descriptor with information that: if adrenaline is lower than 5 – add a modifierslower
- The Concept-to-command interpreter update the concept to:
{
"concept": "move",
"modifier": ["left", "slower"]
}
- According the concept descriptors the Concept-to-command interpreter sends commands to the device Moving Platform:
- Set speed to 2 (3 is maximum for the device)
- Move left
- Set speed to 3 (default value)
In addition, I updated the diagram itself by structuring it and adding notes to make the entire system easier to understand. Here is the diagram:
Now I will implement the structure above in the emotion_core branch of the zakharos_core repository. The feature is getting closer to implementation. More updates soon.
Links:
https://github.com/an-dr/zakharos_core/tree/feature/emotion_core