Close

Emotional Core: in details

A project log for Zakhar the Robot

A companion for your cats and dogs.

andrei-gramakovAndrei Gramakov 10/16/2020 at 21:060 Comments

Now after some polishing of the basic emotional core I can tell about how it works and about it's structure.

Emotional core consists of three main parts (see the picture bellow):

Or more detailed:

When you write the data, the core does the following:

- updates saved sensor value
- updates core parameter: param += (new_sens_val - old_sens_val) * weight
- updates the current core state based on updated parameters

Here are some examples of data that could be used with the core.

Example of core parameters:

[   "cortisol",
    "dopamine",
    "adrenaline",
    "serotonin" ]

Example of a core's emotional state:

{
    "name": happiness,
    "conditions": [
            {
                "param":  "cortisol",
                "op":     LESS_THAN,
                "value":  10
            },
            {
                "param":  "serotonin",
                "op":     GREATER_THAN,
                "value":  100
            }
        ]
}

Example of input data descriptor:

{
    "sensor_name": "temperature sensor",
    "val_min": 0,
    "val_max": 255,
    "weights": [
        {
            "core_param_name": "serotonin",
            "weight": 0.5
        },
        {
            "core_param_name": "cortisol",
            "weight": -0.5
        }
    ]
}

Input data example:

{
    "sensor_name": "temperature sensor",
    "value": 120
}

My next step will be in looking appropriate parameters and weights that can adequately describe (roughly of course) some human emotions.

Source core: https://github.com/an-dr/r_giskard

Discussions