Skip to main content

📡 Monitoring

Real-time monitoring is critical for ensuring your LIMO Autonomous System runs smoothly, detecting issues early, and maintaining performance throughout a mission.


🛠 System Monitoring Tools​

ToolPurposeUsage
rqt_graphVisualize ROS 2 node-topic connectionsros2 run rqt_graph rqt_graph
rqt_image_viewLive camera and YOLO annotated feedros2 run rqt_image_view rqt_image_view
rviz2Visualize navigation map, robot pose, goalsrviz2
htopCPU/RAM monitoringhtop
nvidia-smi (if GPU)GPU utilization for YOLO inferencewatch -n 1 nvidia-smi
Pro Tip

Keep rqt_graph open during first runs — it helps you see if topics like /target_pose or /amcl_pose stop publishing unexpectedly.


📜 Log Analysis​

ros2 launch nav_handler full_system.launch.py | tee mission.log

Key log events to track:

  • 🟢 Exploration node ready → System initialized
  • Object detected. → YOLO detection triggered
  • 🏁 Arrived at object location. → Navigation to object successful
  • ✅ Pick sequence complete! / ✅ Drop sequence complete! → Arm operations succeeded
  • ❌ Nav2 server not ready! / ❌ Goal rejected. → Navigation failure indicators

📊 Performance Metrics​

You can benchmark your system with built-in ROS 2 tools:

MetricCommandGood Threshold
Camera FPSros2 topic hz /camera/color/image_raw≥ 15 FPS
YOLO Detection LatencyMeasure log timestamp diff between /object_found and /target_pose publish< 1s
Nav2 Navigation TimeCompare /navigate_to_pose goal sent vs. Goal reached logDepends on waypoint distance
Arm Action DurationTime from "Starting pick operation" to "Pick done"≤ 5s in test setup

Example FPS check:

ros2 topic hz /yolo/annotated

🚨 Alert Systems​

While your current setup uses voice alerts via espeak, you can add extra monitoring:

Voice Alerts (already implemented):​

  • "Navigating"
  • "Object detected"
  • "Pick done. Returning to base"
  • "Drop done. Mission complete"

Custom ROS 2 Topic Alerts:​

Publish to /system_alert when:

  • CPU > 90%
  • YOLO fails to detect for > 60s
  • Nav2 goal fails

Email/Slack Notifications (advanced):​

Use a ROS 2 subscriber node to forward critical alerts to a webhook.

Future Upgrade

Integrate ros2_health_monitor or a custom diagnostic aggregator for centralized error reporting.


📈 Suggested RViz Monitoring Layout​

  • Map view: /map, /amcl_pose, /path
  • Robot model: /tf, /tf_static
  • Camera feed: /yolo/annotated
  • Navigation goals: /target_pose

🎯 Next Steps​