Part of #154.
Summary
Report camp's own health + resource footprint over ROS so the operator framework
and deployment tooling can see it. camp is already a ROS node (camp_map_ros), so
diagnostic_msgs/DiagnosticArray is the idiomatic channel.
Scope
- Publish
diagnostic_msgs/DiagnosticArray from camp_map_ros on a timer,
carrying the ResourceSnapshot (child 1) as key/values (rss_mb, gpu_mb, cpu_pct,
threads, fds, live_tile_count, …) and an overall level OK/WARN/ERROR (from child
2's thresholds + GUI watchdog).
- A lightweight heartbeat (the periodic publish itself is the liveness signal;
absence = camp down/hung).
- Plugs into
rqt_robot_monitor and deployment-mode logging (the deployment skill
can log/alert on WARN/ERROR).
Considerations
- Diagnostics publish must be cheap and never block the GUI thread.
- Node namespace / topic name consistent with the operator-station conventions.
- Degrade cleanly when camp runs without a live ROS connection (don't error).
Depends on
Child 1 (snapshot), child 2 (health level / watchdog).
Authored-By: Claude Code Agent
Model: Claude Opus 4.8
Part of #154.
Summary
Report camp's own health + resource footprint over ROS so the operator framework
and deployment tooling can see it. camp is already a ROS node (
camp_map_ros), sodiagnostic_msgs/DiagnosticArrayis the idiomatic channel.Scope
diagnostic_msgs/DiagnosticArrayfromcamp_map_roson a timer,carrying the
ResourceSnapshot(child 1) as key/values (rss_mb, gpu_mb, cpu_pct,threads, fds, live_tile_count, …) and an overall level OK/WARN/ERROR (from child
2's thresholds + GUI watchdog).
absence = camp down/hung).
rqt_robot_monitorand deployment-mode logging (the deployment skillcan log/alert on WARN/ERROR).
Considerations
Depends on
Child 1 (snapshot), child 2 (health level / watchdog).
Authored-By:
Claude Code AgentModel:
Claude Opus 4.8