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>
SaltyBot Diagnostic Self-Test System
Comprehensive hardware diagnostics and health monitoring for SaltyBot.
Features
Startup Checks
- RPLIDAR, RealSense, VESC, Jabra mic, STM32, servos
- WiFi, GPS, disk space, RAM
- Boot result TTS + face animation
- JSON logging
Runtime Monitoring
- Temperature (Orin GPU >80C, VESC >60C)
- Network latency
- Sensor FPS drops
- System resources
Launch
ros2 launch saltybot_diagnostics diagnostics.launch.py
Topics
/saltybot/diagnostics(DiagnosticArray)/saltybot/tts_say(String) - Boot announcements/saltybot/face/boot_animation(String)
Logs
Diagnostic logs: /home/seb/saltybot-data/diagnostics/
JSON format with hardware status, temperatures, and resource usage.