arXiv 2026  ·  Unitree G1  ·  cs.RO

EmoPose: Vision-Language Model Guided Emotion-Aware Gesture Generation for Humanoid Robots

An executable semantic interface between a vision-language model and a robot-owned motion library — language selects the communicative intent, deterministic robot-side software owns every 14-DoF joint target.

Daojie Peng, Bingtao Wang, Fulong Ma, Wenjun Yue, Liang Zhang, Jun Ma†
HKUST(GZ)  ·  Shandong University  ·  RoboScience   |   †Corresponding author

76.50 ± 0.54%
EmoPose-Bench Overall
+4.42
vs Direct-Label GPT-5.5
29/29
G1 Library Variants
160/160
MuJoCo Trials Completed
Abstract

Language chooses the gesture. The robot owns the motion.

Socially competent humanoid robots must communicate affect and intent through gesture as well as speech, yet open-ended interaction must become motion that is both expressive and executable on a specific body. This demands semantic flexibility for contextual social intent while preserving deterministic, embodiment-aware robot control. We present EmoPose, a vision-language model (VLM)-guided framework that bridges this gap through an executable semantic interface. Given language, dialogue history, and optional visual context, the VLM selects an ordered gesture plan containing a communicative class, library variant, intensity, and speech anchor. A scalable robot-owned motion library defines the available expressive vocabulary and the source of 14-DoF joint targets. Pose Studio supports automatic trajectory generation, MuJoCo preview, and automatic synchronization of new library entries with the VLM guide; deterministic robot-side modules validate plans, construct trajectories, schedule gestures, and manage queueing and interruption. This division lets the interaction repertoire grow for new social contexts without changing the control interface or delegating raw joint commands to the foundation model. On the EmoPose-Bench, structured GPT-5.5 planning reaches 98.25 ± 0.52% on the Easy tier and 76.50 ± 0.54% overall, exceeding same-model direct-label prompting. Further tests validate dialogue-context use and ordered multi-action composition. The system completes the nominal MuJoCo suite and realizes all 29 authored variants on the physical Unitree G1. A four-stop laboratory tour demonstrates expressive narration with interruption, camera-grounded dialogue, and navigation.

Two-gesture execution with library trajectories and lexical release timeline
Figure 1: Two-gesture execution generated by EmoPose. The upper row overlays the library trajectories for face wave and open arms; the lower timeline shows their planned lexical releases relative to synthesized audio. The 0.5-s and 2.6-s release times are computed by Eq. (10).
Method

An executable semantic interface, not a joint-command oracle

The VLM never emits joint values. It emits a semantic record; deterministic robot-side modules resolve that record against a live motion library and publish 14-DoF targets at 50 Hz. The control interface is therefore stable while the expressive vocabulary grows.

01

VLM Semantic Planner

Given utterance x, optional dialogue history h, and a live class-variant guide regenerated from the library, the VLM returns a verbal reply and an ordered plan of records z = (class, variant, intensity, trigger, confidence). Bare or fenced JSON is accepted; numeric fields are clamped; unknown classes map to neutral; decoding failures invoke a logged keyword fallback.

02

Robot-Owned Library + Pose Studio

L = {(n, c, Q, d, m)} holds 29 motion sequences plus two built-in neutral poses — unique name, semantic class, K = 3–14 fourteen-DoF keyframes over the seven joints of each arm, duration (clip(0.3(K−1), 1, 5) s by default), and motion type. Pose Studio generates and smooths trajectories, previews in MuJoCo, and synchronizes every new entry with the resolver and the VLM guide.

03

Resolve · Intensity · Trajectory

Exact-name lookup when the variant is loaded, class-default primitive on a name miss, neutral on an empty class. The command-source invariant q_cmd = G(resolved, intensity, q_last) keeps every joint target owned by local software. Five-level intensity scales interior excursion about the first keyframe with ai ∈ {0.4, 0.6, 1.0, 1.3, 1.6} and hard-limit projection δ = 0.02 rad. Each keyframe segment is subdivided into M = 5 smoothstep increments s(u) = 3u² − 2u³, then linearly resampled at 50 Hz, starting from the latest published pose.

04

Lexical-Anchor Speech Scheduling

For synthesized audio of duration Ta, the first occurrence of trigger tk in the reply r schedules the center of that phrase at τk = (pos(tk; r) + |tk|/2) / max(|r|, 1) · Ta (Eq. 10). Missing anchors interpolate between neighboring matches; with no trigger match, Mg gestures release at Ta(k+1/2)/Mg, and a single gesture releases immediately.

05

Queue-Aware Sequencer

One active trajectory plus a FIFO queue across IDLE · EXECUTING · HOLDING · BLENDING. EXECUTING publishes 14-DoF targets at 50 Hz to MuJoCo or the physical G1. An empty queue leads to HOLDING; a queued successor passes through an explicit cubic blend of at most 0.3 s. After 2 s idle, a non-neutral endpoint blends to neutral over 1 s. Interruption clears pending commands and restarts a 0.3 s blend from the latest published pose.

06

Dual Execution & Navigation Mode

The same specification drives trajectory generation, language guidance, resolution, MuJoCo, and physical publication to the Unitree G1. The stack further composes gesture with navigation in the four-stop laboratory tour: onboard odometry drives the route, EmoPose schedules narration gestures, visitors can interrupt, and a VLM answers camera-grounded questions.

Semantic-to-Motion Runtime Contract
FieldAcceptsRuntime behaviour
Class 8 labels — pointing, emphasizing, rejecting, agreeing, doubting, welcoming, comforting, neutral Invalid labels deterministically map to neutral
Variant Any loaded library name Global lookup; class-default primitive on a miss (neutral if the class is empty). Keeping both class and variant makes class–variant agreement auditable
Intensity Integer 1–5 Clamped, then applied via Eq. (7) as ai ∈ {0.4, 0.6, 1.0, 1.3, 1.6} about the first keyframe, hard-limit projection δ = 0.02 rad
Trigger Lexical phrase, or missing Matched trigger schedules release at Eq. (10); missing anchors interpolate between neighboring matches
Confidence Scalar 0–1 Clamped and logged only
Joint values absent from the record Always sourced from L — command-source invariant, Eq. (5)

Table I. The VLM record never carries joint values; every 14-DoF target is sourced from the robot-owned library.

Five-level intensity modulation

Intensity scales only the interior excursion about the first keyframe. Level 3 reproduces the library exactly; the endpoint is projected back inside the hard joint limits.

Level 1
×0.4
Subtle
Level 2
×0.6
Reduced
Level 3
×1.0
Library exact
Level 4
×1.3
Elevated
Level 5
×1.6
Full
EmoPose system architecture and semantic-to-motion control boundary
Figure 2: Architecture and semantic-to-motion control boundary of EmoPose. Pose Studio builds the extensible robot-owned library L, currently with 29 motion variants and support for user-defined additions. The library provides legal class–variant metadata to the VLM and 14-DoF keyframes to deterministic robot-side validation, resolution, modulation, speech alignment, sequencing, and safety. The runtime accepts ASR-transcribed voice, text/UI, dialogue history, and camera context, and produces TTS replies, MuJoCo and physical-G1 gestures, and navigation.
Queue-aware gesture sequencer state machine
Figure 3: Robot-side queue-aware gesture sequencer. IDLE awaits the first command; EXECUTING publishes 14-DoF targets at 50 Hz to MuJoCo or the physical G1; completion with an empty queue leads to HOLDING, while a queued successor passes through an explicit cubic BLENDING transition of at most 0.3 s. After 2 s without a new command, a non-neutral endpoint is blended to neutral over 1 s. The dashed interruption path clears pending commands and restarts blending from the latest published pose.

Pose Studio — authoring the library the sequencer plays

Every keyframe the runtime resolves is authored in Pose Studio, the browser-based design-time editor behind the robot-owned library L. It embeds MuJoCo directly in the editing surface, so a 14-DoF keyframe is inspected on the G1 model as soon as it is written. Poses auto-save to config/g1_poses.json and are picked up by the motion library and the VLM class–variant guide without manual registration — authoring a new social gesture therefore costs no change to the control interface or to the sequencer of Figure 3.

Pose Studio Demo: The design-time authoring loop in the browser editor. A gesture is selected from the library and its reference keyframe is loaded into the embedded MuJoCo viewport; the ordered keyframe sequence is then played back on the G1 model so the trajectory can be inspected before it is committed. The run starts from heart_both, then switches to open_arms and face_wave to repeat the same loop across gesture classes, while the live joint readouts show the 14-DoF record being exercised. Every edit auto-saves to config/g1_poses.json, so the runtime library and the VLM guide stay synchronized with no manual registration step.
Pose Studio browser-based keyframe authoring interface with embedded MuJoCo
Pose Studio: The design-time authoring interface for the robot-owned motion library. Left: the searchable gesture library of all 29 authored variants plus user-created actions, each with its semantic class, keyframe count, and designated reference frame. Center: the embedded MuJoCo viewport rendering the live G1 29-DoF model with readouts and camera presets. Right: the pose inspector — metadata, class assignment, control gains, and the seven arm joints per side that make up the 14-DoF record. The shown pose is the reference keyframe of open_arms (welcoming, 11 keyframes).
Pose Studio gesture library panel with semantic class tags and keyframe metadata
Gesture library: class tags, keyframe counts, and reference-frame markers for each authored variant. "New Action" starts an empty keyframe sequence, and the class filter feeds the same class–variant vocabulary the VLM plans against.
Embedded MuJoCo preview and keyframe timeline with interpolation tools
Keyframe trajectory authoring: the embedded MuJoCo preview shows the loaded open_arms keyframe on the G1 model, while the timeline below carries the ordered keyframe sequence (Start frame locked to idle, REF marker on the reference frame). The interpolation tool inserts smoothstep / cubic / linear frames between two selected keyframes, with automatic frame-count estimation from the maximum per-joint step — the same smoothing path used to prepare large-amplitude gestures before the sequencer plays them back.
Gesture Vocabulary

8 communicative classes · 29 authored motion variants

A compact, library-grounded expressive vocabulary: each class carries a conversational function, and each variant is a named, keyframed 14-DoF motion with its own default duration and motion type. Two built-in neutral poses complete the repertoire.

Pointing 4

Deictic reference: anchors attention to objects, directions, or concepts in the conversation.

Point leftPoint rightPoint up-rightRight hand up

Emphasizing 4

Beat/accent: adds force to important or high-salience phrases in the spoken reply.

Beat downClapHands upOpen palms up

Rejecting 4

Conversational stance: communicates refusal, disagreement, or warning.

Cross rejectPush awayReject pushX-ray

Agreeing 3

Conversational stance: signals approval, confirmation, and shared positive intent.

High fiveNod + fistsThumbs up

Doubting 3

Conversational stance: expresses uncertainty, hesitation, and cautious skepticism.

Chin strokeHead strokeShrug

Welcoming 4

Social rapport: expresses invitation, greeting, and social warmth.

Face waveOpen armsShake handWave high

Comforting 5

Social rapport: supports empathy, reassurance, and emotional care.

Hand-headHand to heartHeart (both)HugOffering

Neutral 2

Neutral baseline: calm recovery poses and non-expressive transitions.

ReleaseRelease lower
Results

EmoPose-Bench: semantic planning under increasing abstraction

480 human-assisted English utterances (20 per class per tier over 8 classes × 3 tiers). Easy is direct cue matching, Medium is paraphrase robustness, Hard is pragmatic reasoning. GPT-5.5 entries are mean ± sample SD over five passes; other entries are deterministic. First planned class is scored as top-1.

Table II — Semantic benchmark and composite interface ablation
Method Easy Medium Hard Overall
Ordered planning (ours) 98.25 ± 0.52 70.50 ± 0.81 60.75 ± 0.81 76.50 ± 0.54
Direct-label GPT-5.5 95.00 ± 0.63 67.13 ± 2.24 54.13 ± 1.14 72.08 ± 0.74
Full-direct gain +3.25 +3.37 +6.62 +4.42
Sentence-BERT, Easy centroids 97.50 58.75 52.50 69.58
Keyword rules 62.50 16.88 11.25 30.21
TF-IDF descriptions 26.88 22.50 23.13 24.17
Jaccard descriptions 21.25 17.50 18.13 18.96
Uniform chance 12.50 12.50 12.50 12.50

Top-1 intent accuracy (%). Bars are drawn to scale against 100%. The structured interface gap widens as the tier moves from direct cue matching toward pragmatic reasoning.

Table III — Dialogue-history ablation & ordered multi-action planning
Condition or metricScore (%)
Full planner (with history)96.69 ± 0.36
Ablation (history removed)95.00 ± 1.06
Absolute gain from history+1.69 ± 0.98
No-overlap audit, full / ablated96.68 ± 0.36 / 94.98 ± 1.06
Primary class97.75 ± 0.68
Ordered exact91.50 ± 0.71
Mean step class / class-multiset F195.49 ± 0.31 / 97.94 ± 0.28
Input-anchor recall / annotated variant99.98 ± 0.03 / 44.88 ± 0.70
Exact, length 2 / 3 / 496.75 / 94.00 / 81.25

Rows 1–4: dialogue-context ablation block. Rows 5–9: ordered multi-action planning on the 320-item sequence suite (80 two-action + 160 three-action + 80 four-action). Five-pass mean ± sample SD; length-specific exact reports means only.

Table IV — MuJoCo trajectory execution & timing
MetricValue
Trials / motions / intensity160 / 8 defaults / level 3
Completed trials160/160
Stops / timeouts0 / 0
Target-sim joint MAE0.04066 rad (2.33°)
Per-class MAE range0.02289 – 0.05420 rad
VLM inference mean / P953.532 / 4.368 s
Trajectory construction mean / P950.93 / 1.70 ms
Command submission mean / P950.23 / 0.60 ms

Hosted VLM inference dominates the initial response delay; local trajectory construction and submission are sub-millisecond on average.

Pooled confusion matrices for Easy, Medium and Hard tiers
Figure 4: Pooled confusion matrices for five complete passes over 160 tier-specific utterances per tier. Each panel aggregates 800 decisions; entries are pooled counts and color denotes row-normalized percentage. (a) Easy 98.25 ± 0.52% | 786/800; (b) Medium 70.50 ± 0.81% | 564/800; (c) Hard 60.75 ± 0.81% | 486/800. 100 pooled samples per true class.

Functional error structure

Degradation is localized to meaningful semantic boundaries, not to the motion interface. Easy has only 14 errors among 800 decisions (786/800 pooled correct). The leading Medium confusions are welcoming→comforting (39/100) and pointing→emphasizing (30/100). On Hard these each occur 41 times, while doubting→emphasizing occurs 37 times; comforting and neutral still retain 86% and 99% recall on Hard (Hard pooled 486/800). Errors therefore concentrate at boundaries between related communicative acts — supporting the design choice of a compact, library-grounded motion contract, with language-side distinctions improved by relational context and hierarchical intent representations.

98.25%

Easy-tier top-1 intent accuracy for structured GPT-5.5 planning — 786 of 800 pooled decisions correct across five passes.

+4.42

Full structured interface minus direct-label GPT-5.5 (72.08 ± 0.74% overall), with model, dataset, sampling, and run count held identical. The gap widens to +6.62 on Hard.

91.50%

Ordered exact match on the 320-item multi-action suite: 96.75% at length 2, 94.00% at length 3, 81.25% at length 4. Primary-class accuracy 97.75 ± 0.68%.

160/160

Class-balanced 50 Hz MuJoCo trials completed (20 per class, 8 default motions, intensity level 3), with 0 stops and 0 timeouts. These are MuJoCo trials — not real-robot trials.

0.04066 rad

Target-to-simulated joint MAE (2.33°) over 160 trials × 100 resampled points × 14 joints; per-class range 0.02289–0.05420 rad. VLM inference 3.532 s mean / 4.368 s P95.

29/29

All 29 authored motion variants realized on the physical Unitree G1 across 8 communicative classes, plus two built-in neutral poses.

Full library coverage of 29 motion variants on the physical Unitree G1
Figure 5: Qualitative full-library coverage on the physical G1. The 29 library motions span all eight communicative classes — 29 motion-library IDs | 8 semantic classes — with one representative frame from each recorded variant execution under the same stationary, overhead-supported protocol, including unilateral, bilateral, crossed-arm, and elevated-arm expressions.
Demos

Simulation ↔ Real robot, 29 paired executions

Every library variant is shown side by side: the MuJoCo preview generated from the same keyframe record, and the corresponding execution on the physical Unitree G1 under a consistent stationary, overhead-supported protocol.

Integrated System

Four-stop laboratory tour on the physical G1

The same stack guides visitors along four fixed stops — the introduction board, motion-capture area, autonomous-vehicle equipment area, and legged-robot equipment area. G1 onboard odometry drives the route while EmoPose schedules narration gestures. A visitor can interrupt for dialogue or a scene description; a VLM interprets the live camera frame, and EmoPose answers through speech and library-grounded gestures.

Lab Tour Demo: English-language integrated run of the four-stop laboratory tour (lite encoding). Expressive narration, interruption handling, camera-grounded dialogue, and navigation composed on the physical Unitree G1.
Integrated laboratory tour demonstration frames
Figure 6: Integrated laboratory-tour demonstration. Top: frames from the final physical run at the introduction board, motion-capture area, autonomous-vehicle equipment area, and legged-robot equipment area. Enlarged views from the English-language interface recording show an interrupting camera-grounded question and its gesture-annotated response (bottom left), together with the live camera and active motion state (bottom right).

Scope & limitations

The current benchmark is in English only, the physical repertoire is limited to 14-DoF upper-limb gestures, and the tour follows fixed destinations using onboard odometry. Future work includes independently annotated multilingual data and held-out prompt development, extension of the authority architecture to coordinated whole-body behavior, and coupling with more stable localization, navigation, and perception-aware replanning.

BibTeX

Cite this work

If you find EmoPose useful, please consider citing:

@misc{peng2026emopose,
  title         = {EmoPose: Vision-Language Model Guided Emotion-Aware Gesture Generation for Humanoid Robots},
  author        = {Peng, Daojie and Wang, Bingtao and Ma, Fulong and Yue, Wenjun and Zhang, Liang and Ma, Jun},
  year          = {2026},
  eprint        = {2609.23414},
  archivePrefix = {arXiv},
  primaryClass  = {cs.RO},
  howpublished  = {arXiv preprint arXiv:2609.23414}
}