feat: curiosity behavior (Issue #470) #474

Closed
sl-jetson wants to merge 0 commits from sl-android/issue-470-curiosity into main
Collaborator

Autonomous exploration + self-narration

  • Frontier exploration toward unexplored areas
  • Activates when idle >60s + no people detected
  • Turns toward detected sounds via audio_direction
  • Approaches colorful/moving objects
  • Self-narrates findings via TTS
  • Respects geofence and obstacle boundaries
  • 10-minute max duration with auto-return
  • Configurable curiosity level (0-1.0)
  • Publishes /saltybot/curiosity_state
Autonomous exploration + self-narration - Frontier exploration toward unexplored areas - Activates when idle >60s + no people detected - Turns toward detected sounds via audio_direction - Approaches colorful/moving objects - Self-narrates findings via TTS - Respects geofence and obstacle boundaries - 10-minute max duration with auto-return - Configurable curiosity level (0-1.0) - Publishes /saltybot/curiosity_state
sl-jetson added 2 commits 2026-03-05 12:11:40 -05:00
Comprehensive event logging system for SaltyBot with:

Features:
- MQTT subscription to /saltybot/* state topics (9 event types)
- Structured JSON event logging to ~/.saltybot-data/events/YYYY-MM-DD.jsonl
- Event types: encounter, voice_command, trick, e-stop, geofence, dock, error, boot, shutdown
- Query service (time range + type filter)
- Stats publisher (/saltybot/event_stats) with daily summaries
- Dashboard live feed (/saltybot/event_feed)
- Automatic log rotation: compress >7 days, delete >90 days
- CSV export functionality
- Thread-safe event processing

Components:
- EventLogger ROS2 node with background timers
- Event dataclass with timestamp/type/source/data
- File-based storage (JSONL + compressed archives)
- Query API for time/type filtering
- CSV export utility
- Comprehensive unit tests (15 test cases)

Configuration:
- Data directory: ~/.saltybot-data/events
- Rotation: 7 days compress, 90 days delete
- Stats interval: 60 seconds
- Rotation check: hourly

Launch:
- event_logger.launch.py - Standalone launch
- Config: event_logger.yaml with topic mappings

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Frontier exploration toward unexplored areas
- Activates when idle >60s + no people detected
- Turns toward detected sounds via audio_direction node
- Approaches colorful/moving objects
- Self-narrates findings via TTS
- Respects geofence and obstacle boundaries
- 10-minute max duration with auto-return
- Configurable curiosity level (0-1.0)
- Publishes /saltybot/curiosity_state

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
sl-jetson closed this pull request 2026-03-05 17:14:40 -05:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#474
No description provided.