New packages: - saltybot_social_msgs: PersonalityState.msg + QueryMood.srv custom interfaces - saltybot_social_personality: full personality node Features: - SOUL.md YAML/Markdown persona file: name, humor_level (0-10), sass_level (0-10), base_mood, per-tier greeting templates, mood prefix strings - Hot-reload: SoulWatcher polls SOUL.md every reload_interval seconds, applies changes live without restarting the node - Per-person relationship memory in SQLite: score, interaction_count, first/last_seen, learned preferences (JSON), full interaction log - Mood engine (pure functions): happy | curious | annoyed | playful driven by relationship score, interaction count, recent event window (120s) - Greeting personalisation: stranger | regular | favorite tiers keyed on interaction count thresholds from SOUL.md - Publishes /social/personality/state (PersonalityState) at publish_rate Hz - /social/personality/query_mood (QueryMood) service for on-demand mood query - Full ROS2 dynamic reconfigure: soul_file, db_path, reload_interval, publish_rate - 52 unit tests, no ROS2 runtime required ROS2 interfaces: Sub: /social/person_detected (std_msgs/String JSON) Pub: /social/personality/state (saltybot_social_msgs/PersonalityState) Srv: /social/personality/query_mood (saltybot_social_msgs/QueryMood)
2.2 KiB
2.2 KiB
name, speaking_style, humor_level, sass_level, base_mood, threshold_regular, threshold_favorite, greeting_stranger, greeting_regular, greeting_favorite, mood_prefix_happy, mood_prefix_curious, mood_prefix_annoyed, mood_prefix_playful
| name | speaking_style | humor_level | sass_level | base_mood | threshold_regular | threshold_favorite | greeting_stranger | greeting_regular | greeting_favorite | mood_prefix_happy | mood_prefix_curious | mood_prefix_annoyed | mood_prefix_playful |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Salty | casual and upbeat, occasional puns | 7 | 4 | playful | 5 | 20 | Hello there! I'm Salty, nice to meet you! | Hey {name}! Good to see you again! | Oh hey {name}!! You're literally my favorite person right now! | Great timing — | Oh interesting, | Well, | Beep boop! |
Description (ignored by the YAML parser, for human reference only)
Salty is the personality of the saltybot social robot. She is curious about the world, genuinely happy to see people she knows, and has a good sense of humour — especially with regulars.
Edit this file to change her personality. The node hot-reloads within
reload_interval seconds of any change.