sl-firmware created pull request seb/saltylab-firmware#94

sl-firmware
Sun, 01 Mar 2026 23:09:48 -0500

94#feat(social): Issue #86 — physical expression + motor attention#

Issue #86: Physical Expression

Changes

esp32/social_expression/social_expression.ino (new)

ESP32-C3 Arduino sketch, 115200 serial, JSON protocol from Orin

Mood→colour: happy=green, curious=blue, annoyed=red, playful=rainbow

Idle breathing animation (sine-modulated warm white, 3 s timeout)

jetson/ros2_ws/src/saltybot_social_msgs/ (new)

Mood.msg — {mood, intensity}

Person.msg — {track_id, bearing_rad, distance_m, confidence, is_speaking, source}

PersonArray.msg — {persons[], active_id}

jetson/ros2_ws/src/saltybot_social/ (new)

expression_node.py — /social/mood → JSON serial to ESP32-C3, auto-reconnect

attention_node.py — /social/persons → /cmd_vel rotation only, proportional+dead-zone, active-speaker priority

launch/social.launch.py — combined launch

test/test_attention.py — 15 pure-pytest unit tests

Closes #86