New package saltybot_system_monitor: - jetson_stats.py: pure-Python data layer (JetsonStats, CpuCore, TegrastatsParser, JtopReader, TegrastatsReader, MockReader, AlertChecker, AlertThresholds) — no ROS2 dependency - system_monitor_node.py: ROS2 node publishing /saltybot/system/stats (JSON) and /saltybot/diagnostics (DiagnosticArray) at 1 Hz - Alerts: CPU/GPU >85% WARN (+10% ERROR), temp >80°C, disk/RAM >90%, power >30 W; each alert produces a DiagnosticStatus entry - Stats source priority: jtop > tegrastats > mock (auto-detected) - config/system_monitor.yaml: all thresholds and rate tunable via params - launch/system_monitor.launch.py: single-node launch with config arg - test/test_system_monitor.py: 50+ pytest tests, ROS2-free Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
28 lines
901 B
XML
28 lines
901 B
XML
<?xml version="1.0"?>
|
|
<package format="3">
|
|
<name>saltybot_system_monitor</name>
|
|
<version>0.1.0</version>
|
|
<description>
|
|
Jetson Orin system monitor for SaltyBot (Issue #631).
|
|
Publishes CPU/GPU/RAM/disk/temperature/fan/power stats at 1 Hz on
|
|
/saltybot/system/stats (JSON) and DiagnosticArray on /saltybot/diagnostics.
|
|
Alerts when CPU > 85%, GPU > 85%, temp > 80°C, or disk > 90%.
|
|
Reads hardware stats via jtop (jetson_stats) when available, falls back
|
|
to tegrastats subprocess parsing.
|
|
</description>
|
|
<maintainer email="sl-jetson@saltylab.local">sl-jetson</maintainer>
|
|
<license>Apache-2.0</license>
|
|
|
|
<depend>rclpy</depend>
|
|
<depend>std_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>
|