๐ Project Story โ Lessons Learned
Every great robotics project is as much about learning from mistakes as it is about achieving milestones.
Hereโs the journey of building the LIMO Pro + MyCobot + YOLO system โ the challenges, breakthroughs, and key decisions.
๐ How It Startedโ
I began with basic ROS2 knowledge โ enough to follow tutorials but not enough to handle a real, complex robot.
The first week was pure ideation:
- Defined the systemโs end goal: autonomous exploration โ detect โ navigate โ pick โ return โ drop.
- Drafted the workflow and roadmap.
Lesson: โKnowing the steps is not the same as knowing how to execute them in the real world.โ
โก The First Mistake โ Workspace Chaosโ
In my eagerness, I made a critical error:
I built my first test node inside the robotโs source workspace and ran colcon build there.
Result?
- Robotโs configs were overwritten.
- Core files got corrupted.
- Required a pre-flashed SD card from the manufacturer to recover.
Never build inside the source workspace.
Always use an external colcon workspace for custom development.
๐ ๏ธ Restart & Smart Developmentโ
While waiting for the SD card, I studied documentation, planned better, and decided:
- Keep everything modular โ separate packages for detection, navigation, arm, mission control.
- Never touch outdated or unused robot files โ clone fresh from GitHub when needed.
- Build the system in isolated, tested components.
๐ฏ Major Milestonesโ
1. Object Detectionโ
- Switched to YOLOv8 with a custom dataset.
- Trained the model to detect only relevant objects.
- Added depth integration and map-frame transforms for precise navigation targeting.
2. Arm Controlโ
- MyCobotโs USB board was faulty โ instead of replacing it, I converted it to Wi-Fi control.
- Wrote auto-IP detection logic in
full_system.launch.pyso users donโt need to manually configure IPs.
3. Navigationโ
- Created robust maps with Cartographer.
- Automated pose initialization using a fixed AMCL pose in
pose_setter.py. - Designed waypoints + rotational scans to ensure full area coverage.
4. Mission Managerโ
- The โbrainโ node:
- Orchestrates all components.
- Handles interrupts from YOLO detection without breaking Nav2 goals.
- Integrates voice feedback for key events.
๐ง Key Decisions & Rationaleโ
| Decision | Why It Mattered |
|---|---|
| Modular package structure | Prevented one node from breaking the whole system. |
| TimerAction in launch files | Ensured correct startup order, avoiding race conditions. |
| Voice feedback | Allowed hands-free monitoring during development. |
| Custom YOLO training | Reduced false positives and increased pick success rate. |
| Base pose automation | Removed manual localization step, speeding up deployments. |
๐ What I Learnedโ
- Donโt rush โ build, test, and integrate one module at a time.
- Always back up working configurations before making big changes.
- Hardware issues are as important as software โ solve them creatively.
- Clear system architecture from day one saves months later.