✅ Verification
This section ensures that your LIMO Autonomous System is healthy, all components are working correctly, and performance matches expectations before you start a mission.
🩺 System Health Checks
Run these before launching the full system:
| Check | Command | Expected Result |
|---|---|---|
| ROS 2 Environment | printenv | grep ROS | Correct distro (foxy) and workspace sourced |
| LIMO Power | Physical | Battery ≥ 50%, LEDs normal |
| MyCobot Arm | ping 192.168.137.75 (or auto-detected IP) | Response < 10 ms |
| Camera | ros2 topic list | /camera/color/image_raw and /camera/depth/image_raw available |
| Nav2 Server | ros2 action list | /navigate_to_pose listed |
Run:
ros2 topic list | grep camera && ros2 action list | grep navigate
If you see both camera topics and navigation action, you're good to go.
🔍 Component Verification
- LIMO Base
- Orbbec Camera
- YOLO Object Detector
- Nav2 Navigation
- MyCobot Arm
ros2 topic echo /odom
Should show changing x, y, theta when moving the robot manually.
ros2 run rqt_image_view rqt_image_view
Check that RGB and depth streams are visible and depth values make sense.
ros2 run object_detector yolo_detector
Expected log:
✅ YOLO detector node initialized with synchronized inputs.
[📍 DETECTED] target_object 2D(320,240) 3D(0.42, 0.15, 0.80)
ros2 action send_goal /navigate_to_pose nav2_msgs/action/NavigateToPose "{pose: { header: {frame_id: map}, pose: { position: {x: 1.0, y: 0.0, z: 0.0}, orientation: {z: 0.0, w: 1.0} }}}"
Robot should start moving to the target.
ros2 run mycobot_arm pick_node
Arm should move to center → pickup → grab → center sequence.
📜 Log Monitoring
Monitor logs in real time while launching:
ros2 launch nav_handler full_system.launch.py | tee startup.log
Look for these key lines:
- Pose Setter:
✅ Initial pose published at (...) - Mission Manager:
🟢 Exploration node ready. - YOLO:
Object detected. - Nav2:
Begin navigating from current location... - Pick/Drop:
✅ Pick sequence complete!/✅ Drop sequence complete!
If you encounter ❌ Nav2 server not ready! or YOLO detector not receiving camera frames, stop and re-check startup order.
📈 Performance Validation
Run a short mission test:
- Launch system (
full_system.launch.py). - Let the robot navigate to at least 1 waypoint.
- Place a detectable object in view of the camera.
- Verify:
- Exploration pauses on detection.
- Robot navigates directly to object.
- Pick sequence runs successfully.
- Robot returns to base and drops the object.
Success Criteria:
- Navigation smoothness (no abrupt stops unless object detected).
- Pick success rate ≥ 80% in controlled conditions.
- Drop zone accuracy within ±5 cm.
🧠 Suggested Automation
You can automate verification using:
ros2 topic hz /camera/color/image_raw
ros2 topic hz /odom
This ensures camera publishes at ≥ 15 FPS and odometry updates ≥ 10 Hz.