Skip to main content

๐Ÿงฏ Common Errors

This page catalogs the most frequent failures in the LIMO system, how to recognize them (by logs or symptoms), step-by-step fixes, and how to prevent them next time.


๐Ÿชต Most Common Errors โ€” By Log Messageโ€‹

Where it appears: mission_manager.py

Why it happens: Nav2 is still starting when Mission Manager tries to send a goal.

Fix (step-by-step):

  1. Stop everything (Ctrl+C).
  2. Start Nav2 alone and wait for "Lifecycle nodes are active."
    ros2 launch limo_bringup limo_nav2.launch.py map:=/path/to/map.yaml
  3. If stable, re-run full launch. If using full_system.launch.py, increase the TimerAction delay for Mission Manager by +3โ€“5s.

Prevention:

  • Keep Mission Manager start โ‰ฅ 10s after Nav2 (TimerAction).
  • Avoid CPU spikes (close browsers/RViz while starting).

๐Ÿงญ Most Common Errors โ€” By Symptomโ€‹

Likely causes: Nav2 not ready, invalid goal, emergency stop.

Checklist:

  1. /navigate_to_pose exists?
    ros2 action list | grep navigate
  2. Costmaps valid?
  3. Battery > 50%?
  4. Try a short 0.5m forward goal in free space.

๐Ÿงฐ Stepโ€‘byโ€‘Step Solutions (Triage Playbooks)โ€‹

1) Nav2 Fail โ†’ Fast Recoveryโ€‹

  1. Ctrl+C all nodes.
  2. Start map + Nav2 only; wait stable.
  3. Publish initial pose (RViz or pose_setter.py).
  4. Send a tiny test goal near the robot.
  5. If OK, launch full stack.

2) YOLO/Depth Fail โ†’ Fast Recoveryโ€‹

  1. Check topics exist (/camera/color/image_raw, /camera/depth/image_raw, /camera/color/camera_info).
  2. Validate TF: camera_link โ†’ base_link exists.
  3. Restart camera node; then restart detector.
  4. If still flaky, reduce conf, verify exposure/lighting.

3) Arm Not Respondingโ€‹

  1. Verify Wiโ€‘Fi connection; ping IP.
  2. Run pick_node standalone with m5_ip param.
  3. Power-cycle arm; re-run launch.

๐Ÿ›ก Prevention Strategiesโ€‹

  • Staggered Launch: Use TimerAction gaps (Camera โ†’ Nav2 โ†’ Pose Setter โ†’ Mission Manager โ†’ RQT).
  • Map Hygiene: Remap after hardware changes (camera height, LiDAR swap, furniture move).
  • Stable TFs: Keep a single source of truth for camera_link โ†” base_link (static publisher), launched early.
  • Resource Headroom: Avoid starting RViz, Foxglove, and heavy terminals all at once on the robot; use a remote machine when possible.
  • Battery & Space: >50% charge; ensure clear space for 270ยฐ scans and arm motions.
  • Model Management: Store trained weights with versioned folders; update object_detector.py path intentionally.

๐Ÿงช Quick Health Commandsโ€‹

# Topics & rates
ros2 topic list
ros2 topic hz /camera/color/image_raw
ros2 topic echo /amcl_pose -n1

# Actions & services
ros2 action list | grep navigate
ros2 service list | grep costmap

# TF sanity check
ros2 run tf2_tools view_frames.py

# Logs with highlighting
ros2 launch nav_handler full_system.launch.py | grep -E "WARN|ERROR|FAIL|โŒ|๐Ÿ›‘|โŒ|โš ๏ธ"
Tip

Keep a known-good mission.log from a successful run. Diff against it when things break to spot regressions fast.


Next: ๐Ÿง‘โ€๐Ÿ’ป Developer's Corner