🛠️ Contributing to LIMO Cobot
We welcome contributions from developers, researchers, and robotics enthusiasts who want to improve the LIMO Pro + MyCobot + YOLO system.
This section explains how to add new features, submit code, and collaborate effectively.
🚀 How to Contribute New Features
-
Fork the Repository
Click Fork on GitHub to create your copy. -
Clone Your Fork
git clone https://github.com/krish-rRay23/LIMO_COBOT_PROJECT
cd LIMO_COBOT_PROJECT -
Create a Feature Branch
git checkout -b feature/my-new-feature -
Develop in an External Workspace
Never modify the robot's source workspace directly — always use an external colcon workspace. -
Follow Project Structure
- Nodes in dedicated packages (
object_detector,nav_handler,mycobot_arm, etc.) - Launch files in
launch/with properTimerActionsequencing. - Configs in
config/(maps,nav2_params.yaml, YOLO settings). - Avoid hardcoded paths — use ROS2 parameters instead.
- Nodes in dedicated packages (
📤 Code Submission Process
- GitHub Workflow
- ROS Package Testing
-
Push your feature branch:
git push origin feature/my-new-feature -
Open a Pull Request (PR) on GitHub:
- Describe what you changed and why.
- Reference any related issues.
- Include test logs or screenshots.
Before submitting, make sure your changes:
-
Build without errors:
colcon build --symlink-install -
Pass basic runtime checks:
ros2 launch full_system full_system.launch.py -
Don't break Mission Manager logic — especially interrupt handling between exploration, detection, and arm control.
🔍 Review Procedures
All contributions are reviewed for:
- Code Quality: Follows PEP8 for Python, uses meaningful variable names.
- Safety: No unsafe robot motions, respects e-stop behavior.
- Modularity: No "god nodes" — separate logic into focused packages.
- Logging & Feedback: Use
self.get_logger()for debug info, andsay()for user feedback where relevant. - Performance: No unnecessary CPU/GPU load (e.g., avoid overly high YOLO input resolution).
📜 Community Guidelines
- Clean, well-documented code.
- Respect for other contributors' time.
- Testing before submission.
- Clear commit messages (
feat: add drop node sequence improvements). - Avoiding direct commits to
mainbranch.
💬 Need Help While Contributing?
- Ask in our GitHub Discussions
- Join the Discord Server
- Use ROS Discourse: ROS Community Forum
📖 Read Next: Code Style Guidelines
Next: Code Style Guidelines