sl-firmware 41dc80ea7d feat: Add diagnostic self-test system (Issue #445)
Comprehensive hardware diagnostics and health monitoring for SaltyBot.

Startup hardware checks:
- RPLIDAR, RealSense, VESC, Jabra microphone, STM32 bridge
- Servo controller, WiFi, GPS module
- Disk space, system RAM, CPU temperature
- Boot result via TTS + face animation

Runtime monitoring:
- Temperature thresholds (Orin GPU >80C, VESC >60C)
- Network latency to 8.8.8.8
- System resource tracking (CPU, RAM, disk)

Features:
- Publishes /saltybot/diagnostics (DiagnosticArray)
- JSON logging to /home/seb/saltybot-data/diagnostics/
- Configuration-driven via YAML
- Boot animations and TTS announcements
- Configurable startup and runtime checks

Package structure:
- saltybot_diagnostics: Main diagnostics node
- diagnostic_checks.yaml: Hardware config + thresholds
- diagnostics.launch.py: Launch file with parameters
- Unit tests for check aggregation and logging

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-05 09:06:18 -05:00

29 lines
505 B
YAML

startup_checks:
enabled: true
timeout_s: 30
checks:
- rplidar
- realsense
- vesc
- jabra_microphone
- stm32_bridge
- servos
- wifi
- gps
- disk_space
- system_ram
runtime_monitoring:
enabled: true
frequency_hz: 1
temperatures:
jetson_gpu: {warn_c: 80, error_c: 85}
vesc_motor: {warn_c: 60, error_c: 70}
network:
ping_target: 8.8.8.8
latency_warn_ms: 100
logging:
directory: /home/seb/saltybot-data/diagnostics
retention_days: 30