Implement centralized health monitoring node that: - Subscribes to /saltybot/<node>/heartbeat from all tracked nodes - Tracks expected nodes from YAML configuration - Marks nodes DEAD if silent >5 seconds - Triggers auto-restart via ros2 launch when nodes fail - Publishes /saltybot/system_health JSON with full status - Alerts face display on critical node failures Features: - Configurable heartbeat timeout (default 5s) - Automatic dead node detection and restart - System health JSON publishing (timestamp, uptime, node status, critical alerts) - Face alert system for critical failures - Rate-limited alerting to avoid spam - Comprehensive monitoring config with critical/important node tiers Package structure: - saltybot_health_monitor: Main health monitoring node - health_config.yaml: Configurable list of monitored nodes - health_monitor.launch.py: Launch file with parameters - Unit tests for heartbeat parsing and health status generation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Description
SaltyLab self-balancing bot firmware (STM32F722)
Languages
Python
67.1%
C
11.4%
JavaScript
9.2%
OpenSCAD
7.8%
HTML
1.5%
Other
2.9%