Skip to main content

🖥️ System Components Overview

See the source code for implementation details.

Your LIMO Pro + MyCobot project is made up of modular ROS2 nodes, connected by topics, actions, and services.
This architecture allows for flexibility, fault isolation, and clear debugging.


🏗️ System Architecture​


🧩 Component Relationships​

ComponentRoleKey Dependencies
Object DetectorDetects objects, outputs 3D posesCamera, depth data, YOLO weights
SLAM NodeBuilds/updates map, localizes robotLiDAR, odometry, camera
Navigation StackPlans paths & controls movementMap from SLAM, goals from Mission
Pose SetterSets initial robot pose after startupMap coordinates
Mission ManagerMain logic — coordinates detection, navigation, pick/dropAll other nodes
Pick NodePicks object using arm & gripperMyCobot arm, target pose
Drop NodeDrops object at target locationMyCobot arm, predefined drop pose

🔄 Communication Flow​

  1. SLAM Node

    • Publishes /map, /odom, /tf
    • Used by Navigation for localization
  2. Object Detector Node

    • Subscribes to /camera/color/image_raw and /camera/depth/image_raw
    • Publishes /target_pose (geometry_msgs/PoseStamped)
  3. Mission Manager Node

    • Subscribes to /target_pose
    • Sends goals to Navigation via /navigate_to_pose action
    • Calls Pick/Drop nodes when needed
  4. Pick & Drop Nodes

    • Receive triggers from Mission Manager
    • Send movement/gripper commands to MyCobot
  5. Navigation Stack (Nav2)

    • Executes goals from Mission Manager
    • Publishes feedback and result back to Mission Manager

🔌 Integration Points​

Integration PointConnected ComponentsPurpose
/target_poseDetector → Mission ManagerTrigger navigation to detected object
/navigate_to_pose actionMission Manager → Navigation StackAutonomous movement to location
Arm control service/actionPick/Drop → MyCobot ArmPhysical manipulation
/map & /odom topicsSLAM → Navigation StackPosition tracking & path planning
/cmd_velNavigation Stack → LIMO BaseDirect velocity control

💡 Best Practices​

  • Launch nodes in correct order (full_system.launch.py handles this)
  • Keep node responsibilities separate for easier debugging
  • Use RViz to visualize map, poses, goals, and detections in real time
  • Monitor topics with:
    ros2 topic list
    ros2 topic echo /target_pose
    ros2 action list

🎯 Next Steps​