dreambo-emotions-library
收藏资源简介:
# Dreambo Torso Emotions Library Hand-puppeteered motion clips for the Dreambo robot torso, paired with audio cues. Each clip is a single JSON file named after the emotion (`yes1.json`, `proud2.json`, …) with one matching `.wav` for the audio prompt. ## Schema Per-clip JSON, written by [`scripts/emotion_library/record.py`](https://github.com/tonylabs/dreambo_torso_sdk) in the `dreambo_torso_sdk` repo: ```json { "description": "Short English caption — 2nd person, behavior-focused.", "time": [0.00, 0.01, 0.02, ...], "set_target_data": [ {"left_arm": [x, y, z], "right_arm": [x, y, z], "nose": [top, left, right]}, {"left_arm": [x, y, z], "right_arm": [x, y, z], "nose": [top, left, right]}, ... ] } ``` - `time` — per-frame timestamps in seconds (relative to recording start). - `set_target_data` — one entry per frame; per-frame entries hold: - `left_arm`, `right_arm` — upper-arm pointing direction as a unit 3-vector in the spherical-5-bar's internal frame. On playback the SDK resolves these to motor angles via `DreamboArmKinematics.ik_from_direction`. Recordings made before the servos were homed may fall back to raw joint pairs `[theta_a, theta_b]` — the SDK loader accepts both shapes. - `nose` — `[top, left, right]` joint positions in rad. The matching `<emotion>.wav` is a short audio prompt that plays at recording start; SDK playback fires it again so the gesture and sound stay in sync. ## Usage ```python from dreambo_torso import Dreambo from dreambo_torso.motion.recorded_move import RecordedMoves mini = Dreambo() library = RecordedMoves("tonylabs/dreambo-emotions-library") move = library.get("yes1") mini.play_move(move, initial_goto_duration=1.0) ``` ## Recording new clips Use `scripts/emotion_library/record.py` from [`dreambo_torso_sdk`](https://github.com/tonylabs/dreambo_torso_sdk): puppet-style capture with `r` to save and `q` to abort.



