Add sensor_health_node to saltybot_health_monitor package. Monitors 8 sensor topics for staleness, publishing DiagnosticArray on /saltybot/diagnostics and MQTT JSON on saltybot/health. Sensors monitored (configurable thresholds): /camera/color/image_raw, /camera/depth/image_rect_raw, /camera/color/camera_info, /scan, /imu/data, /saltybot/uwb/range, /saltybot/battery, /saltybot/motor_daemon/status Each sensor: OK/WARN/ERROR based on topic age vs warn_s/error_s thresholds. Critical sensors (camera, lidar, imu, motor_daemon) escalate overall status. Files added: sensor_health_node.py — SensorWatcher + SensorHealthNode config/sensor_health_params.yaml — per-sensor thresholds launch/sensor_health.launch.py test/test_sensor_health.py — 35 tests, all passing setup.py/package.xml updated: sensor_msgs, diagnostic_msgs deps + new entry point. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
753 B
XML
27 lines
753 B
XML
<?xml version="1.0"?>
|
|
<package format="3">
|
|
<name>saltybot_health_monitor</name>
|
|
<version>0.2.0</version>
|
|
<description>
|
|
ROS2 health monitor for SaltyBot. Tracks node heartbeats and sensor topic
|
|
staleness. Publishes DiagnosticArray on /saltybot/diagnostics and MQTT on
|
|
saltybot/health. Issue #566.
|
|
</description>
|
|
<maintainer email="sl-jetson@saltylab.local">sl-jetson</maintainer>
|
|
<license>Apache-2.0</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_msgs</depend>
|
|
<depend>geometry_msgs</depend>
|
|
<depend>sensor_msgs</depend>
|
|
<depend>diagnostic_msgs</depend>
|
|
|
|
<buildtool_depend>ament_python</buildtool_depend>
|
|
|
|
<test_depend>pytest</test_depend>
|
|
|
|
<export>
|
|
<build_type>ament_python</build_type>
|
|
</export>
|
|
</package>
|