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>
14 lines
569 B
YAML
14 lines
569 B
YAML
curiosity_node:
|
|
ros__parameters:
|
|
# Curiosity activation parameters
|
|
curiosity_level: 0.7 # 0.0-1.0 — probability of exploring when idle
|
|
idle_threshold_sec: 60.0 # seconds without people to trigger exploration
|
|
exploration_max_duration_sec: 600.0 # 10 minutes max exploration
|
|
exploration_radius_m: 5.0 # exploration search radius in meters
|
|
|
|
# Pan-tilt control
|
|
pan_tilt_step_deg: 15.0 # pan-tilt sweep step size
|
|
|
|
# Audio sensitivity
|
|
min_sound_activity: 0.1 # minimum sound activity threshold (0.0-1.0)
|