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 (e.g. 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. Since this is still being worked on, the overview is not provided yet.
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.
...
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 |