Emotion Expression

Introduction

The emotion_expression service can be used to manipulate common neutral gestures into more affective gestures for the Nao. It will take the neutral gesture in .json format and wanted affect as input and gives the affective gesture as an output.

Docker name: emotion_expression

Input

  • JSON file of neutral motion file

  • wanted affect

Output

  • JSON file of affective motion

Initialisation

In order to use the service, the neutral gestures need to be downloaded.

Example

See emotionexpression_example.py for an example usage.

Events

Events that the service creates and can have listeners.

Known Issues

The main issue with emotion_expression is that not every movement is stable enough to execute on the Nao.

For the manipulation of neutral gestures into emotion-based gestures, this page will provide an overview of the gestures with the evaluation of stability. Please note that if a gesture is not tested yet, the stability of that gesture is not ensured and therefore do NOT use it for NAO’s safety.

The overview is provided with all gestures out of Choregraph tested on several affects (0 = instable, 1 = stable). The affects are determined by the use of the Circumplex Model of Affect: nine intersection points are selected to cover a variation of affects. The Circumplex Model of Affect and the selected points are shown in Figure 1 below.

Figure 1: Circumplex Model of Affect

 

 

Category

Neutral

Angry

Happy

 

Category

Neutral

Angry

Happy

FastGatherBothHandsOnChest_LeanRight

Affirmation

1

 

 

GatherBothHandsInFront

Affirmation

1

 

 

GoToStance_Affirmation_Center

Affirmation

1

 

 

GoToStance_Affirmation_LeanLeft

Affirmation

1

 

 

GoToStance_Affirmation_LeanRight

Affirmation

1

 

 

LittleBothArmsUp_DuckEnd

Affirmation

1

 

 

OfferBothHands_HeadNod_LeanLeft

Affirmation

1

 

 

SlowBowWithArms

Affirmation

1

 

 

StrongLeftArmsInFront_LeanLeft

Affirmation

1

 

 

WideOpenBothHands

Affirmation

1

 

 

GoToStance_Affirmation_Flex

Affirmation

0

 

 

StrongArmsAndLegsBump_LeanRight

Affirmation

0

 

 

WideGatherBothHandsOnChest_LeanRight

Affirmation

0

 

 

DoubleLeftHandBump_LeanRight

Enumeration

1

 

 

DoubleRightHandBump_LeanRight

Enumeration

1

 

 

GoToStance_Enumeration_Center

Enumeration

1

 

 

GoToStance_Enumeration_LeanRight

Enumeration

1

 

 

LeftArmBump_LeanRight

Enumeration

1

 

 

LeftArmSpreadAndBack

Enumeration

1

 

 

LittleFancyBothArmsInFront

Enumeration

1

 

 

OfferLeftHandThenRightHand

Enumeration

1

 

 

OpenBothHandsInFrontWithBump

Enumeration

1

 

 

CircleBothArmsLeaningFront

Exclamation

1

 

 

FastBothArmsInFront

Exclamation

1

 

 

GoToStance_Exclamation_Center

Exclamation

1

 

 

GoToStance_Exclamation_LeanBack

Exclamation

1

 

 

GoToStance_Exclamation_LeanLeft

Exclamation

1

 

 

GoToStance_Exclamation_LeanRight

Exclamation

1

 

 

LeftArmOnChest_LeanRight

Exclamation

1

 

 

SpreadArms_FlexEnd

Exclamation

1

 

 

StrongNodArmsUpAndDownLeaningBack

Exclamation

1

 

 

WideBothArmsCircle_LeanLeft

Exclamation

1

 

 

BothArmsShowGround_LeanBack

Exclamation

0

 

 

GoToStance_Exclamation_Flex

Exclamation

0

 

 

LittleArmsUpAndDownWithBump

Exclamation

0

 

 

BothArmsUpAndDown_HeadShake

Negation

1

 

 

DoubleHorizontalBumpRightArm

Negation

1

 

 

GoToStance_Negation_Center

Negation

1

 

 

GoToStance_Negation_LeanLeft

Negation

1

 

 

LittleSpreadRightArm_HeadShake

Negation

1

 

 

StrongBothArmsUpAndDown_LeanLeft

Negation

1

 

 

WideHorizontalRightArm_LeanLeft_HeadShake

Negation

1

 

 

RightArmUpAndDownWithBump_HeadShake

Negation

0

 

 

FancyRightArmCircle_LeanRight

Question

1

 

 

GoToStance_Question_Center

Question

1

 

 

GoToStance_Question_Flex

Question

1

 

 

GoToStance_Question_LeanFront

Question

1

 

 

GoToStance_Question_LeanRight

Question

1

 

 

LittleArmsBump

Question

1

 

 

LittleArmsBumpInFront_LeanRight

Question

1

 

 

LittleBowAndSpreadArms

Question

1

 

 

SlowlyOfferBothHands

Question

1

 

 

StrongHeadShakeSpreadArms_FlexEnd

Question

1

 

 

WideSpreakArms_FlexEnd

Question

1

 

 

BothHandsBumpWithBump

Self&Others

1

 

 

FastPointAtUserLeftARm

Self&Others

1

 

 

GoToStance_Self&Others_Center

Self&Others

1

 

 

GoToStance_Self&Others_Flex

Self&Others

1

 

 

GoToStance_Self&Others_LeanBack

Self&Others

1

 

 

GoToStance_Self&Others_LeanFront

Self&Others

1

 

 

GoToStance_Self&Others_LeanRight

Self&Others

1

 

 

OpenArmInFrontWithBump

Self&Others

1

 

 

PointAtSelfRightArm

Self&Others

1

 

 

PointAtUserBothHands

Self&Others

1

 

 

StrictPointAtUserRightArm

Self&Others

1

 

 

WidePointAtUserRIghtArm_LeanRight

Self&Others

1

 

 

BothArmsBump_LeanRight

Spacetime

0

 

 

StrongrmsOpen_FlexEnd

Spacetime

0

 

 

BothArmsBumpInFront

Spacetime

1

 

 

GoToStance_Space&Time_Center

Spacetime

1

 

 

GoToStance_Space&Time_LeanLeft

Spacetime

1

 

 

GoToStance_Space&Time_LeanRight

Spacetime

1

 

 

PointFromLeftArm_LeanLeft

Spacetime

1

 

 

ShowFarDistanceLeft

Spacetime

1

 

 

ShowNearDistanceLeft

Spacetime

1

 

 

ShowNearDistanceRight

Spacetime

1

 

 

Â