feat: face display bridge (Issue #394) #399
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-controls/issue-394-face-bridge"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bridge orchestrator state to face display WebSocket API
Implement ROS2 node bridging orchestrator state to face display expressions. Maps /social/orchestrator/state and /saltybot/wake_word_detected to HTTP API. Features: - Subscribes to /social/orchestrator/state (JSON: IDLE, LISTENING, THINKING, SPEAKING, THROTTLED) - Subscribes to /saltybot/wake_word_detected for immediate Alert response - HTTP GET requests to face display server (configurable localhost:3000/face/{id}) - State to expression mapping: * IDLE → 0 (Tracking) * LISTENING → 1 (Alert) * THINKING → 3 (Searching) * SPEAKING → 4 (Social) * Wake word → 1 (Alert, immediate override) - Publishes /face/state with JSON: {face_id, orchestrator_state, timestamp} - Configurable face_server_url parameter - Fallback to urllib if requests library unavailable Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>