Close

Updated draft of the ROS-node network with the Emotional Core

A project log for Zakhar the Robot

A companion for your cats and dogs.

andrei-gramakovAndrei Gramakov 01/28/2021 at 15:250 Comments

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: 

1. An Ego-like node sends the concept `move` with a modifier `left`:

{
    "concept": "move", 
    "modifier": ["left"] 
}

2. The concept `move` contains a descriptor with information that: if adrenaline is lower than 5 - add a modifier `slower`

3. The Concept-to-command interpreter update the concept to:

{
    "concept": "move",
    "modifier": ["left", "slower"]
}

 4.  According the concept descriptors the Concept-to-command interpreter sends commands to the device Moving Platform:

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

https://github.com/an-dr/r_giskard_EmotionCore

Discussions