باب 2: ROS 2 کی بنیادی باتیں
🟡 حالت: 22% مکمل (صرف بنیاد)
یہ باب جامع ROS 2 کی بنیادی باتوں کے ساتھ ہاتھوں پر لیبز فراہم کرتا ہے جن میں پب/سب، سروسز، ایکشنز، اور ٹرانسفارمز شامل ہیں۔
بنیادی مواد مکمل ہے۔ لیبز (P1-P4) کی منصوبہ بندی کی گئی ہے لیکن ابھی تک نافذ نہیں کی گئی۔
→ View Current Content on GitHub (556 لائنیں)
→ View TODO Roadmap (51 باقی کام)
📖 فوری جائزہ
آپ کیا سیکھیں گے
سیکھنے کے اہداف:
- ڈیزائن ROS 2 سسٹمز کو پب/سب، سروسز، اور ایکشنز کا مناسب استعمال کرتے ہوئے
- نافذ کریں ROS 2 نوڈز کو پائتھن میں مناسب زندگی چکر کے انتظام کے ساتھ
- ترتیب دیں لانچ فائلیں ملٹی-نوڈ سسٹمز کے لیے پیرامیٹرز کے ساتھ
- لاگو کریں tf2 ٹرانسفارمز کو انسان نما روبوٹ کائنیٹکس کے لیے
- ڈیبگ کریں عام ROS 2 مسائل کو نظامی طور پر
پیشگی شرائط
- باب 1: فزیکل اے آئی کا تعارف (مکمل)
- ROS 2 Humble نصب شدہ (Ubuntu 22.04)
- پائتھن 3.10+
- پب/سب پیٹرنز کی بنیادی سمجھ
وقت کا تخمینہ
- پڑھنا: 3-4 گھنٹے
- لیبز: 8-12 گھنٹے (4 لیبز × 2-3 گھنٹے ہر ایک)
- تشخیص: 3 گھنٹے
📚 باب کی ساخت
✅ حصہ 1: بنیاد (مکمل)
سیکھنے کے اہداف
- 5 پیمائشی اہداف جو لیب کی ترسیلات سے میل کھاتے ہیں
- آئینی معیارات کے ساتھ ہم آہنگ
پیشگی شرائط سیکشن
- باب 1 کی تصدیق
- ROS 2 Humble نصب کرنے کے احکامات
- تصدیقی سکرپٹ:
ros2 doctor --report
تصوراتی جائزہ
- ROS 2 گراف آرکیٹیکچر: نوڈز، موضوعات، سروسز، ایکشنز، پیرامیٹرز، tf2
- مواصلاتی پیٹرنز کا فیصلہ درخت: کب پب/سب بمقابلہ سروس بمقابلہ ایکشن کا استعمال کرنا ہے
- نوڈ زندگی چکر: مرمیڈ ریاست مشین ڈایاگرام
- انسان نما روبوٹ مثال: یونیٹری G1 ROS 2 انضمام
مواصلاتی پیٹرنز کا فلوچارٹ
graph TD
A[Need to communicate?] --> B{One-way data stream?}
B -->|Yes| C{Real-time sensor data?}
C -->|Yes| D[Topic (pub/sub)]
C -->|No| D
B -->|No| E{Request-response?}
E -->|Yes| F{Long-running task?}
F -->|No| G[Service]
F -->|Yes| H[Action (with feedback)]
style D fill:#4CAF50
style G fill:#2196F3
style H fill:#FF9800
ٹربل شوٹنگ گائیڈ
- 10+ عام غلطیوں کے حل کے ساتھ:
ImportError: No module named 'rclpy'→ ROS 2 سیٹ اپ کا ذریعہTopic /imu not published→ چیک کریں کہ پبلشر نوڈ چل رہا ہےService /compute_ik timeout→ سرور تیار نہیں، ros2 سروس لسٹ چیک کریںtf2 lookup failed: "base_link" to "hand_link"→ براڈکاسٹر چل نہیں رہا- ... (7 مزید غلطیوں کے تفصیلی حل)
گلوسری
- 20+ ROS 2 اصطلاحات کی تعریفیں:
- نوڈ: ROS 2 گراف میں آزاد عمل
- موضوع: غیر متزامن ڈیٹا اسٹریمنگ کے لیے نامزد بس (پب/سب)
- سروس: مطابقت پذیر درخواست-جواب RPC
- ایکشن: طویل مدتی کام جس میں فیڈ بیک ہوتا ہے (غیر متزامن RPC)
- tf2: کوآرڈینیٹ فریم مینجمنٹ کے لیے ٹرانسفارم لائبریری
- ... (15 مزید اصطلاحات)
کوئز
- 10 تصوراتی سوالات کی جانچ:
- کب موضوع بمقابلہ سروس بمقابلہ ایکشن کا استعمال کرنا ہے
- نوڈ زندگی چکر کی حالتیں
- tf2 درخت کی ساخت
- پیرامیٹر سرور کے تصورات
⏳ حصہ 2: لیبز (منصوبہ بندی - نافذ نہیں کی گئی)
لیب P1: پب/سب کی بنیادی باتیں
باقی کام: 9 کام (T012-T020)
یہ کیا شامل کرے گا:
publisher_node.py: 50Hz پر IMU ڈیٹا شائع کرتا ہےsubscriber_node.py: آنے والے پیغامات کو لاگ کرتا ہےpubsub_demo.launch.py: دونوں نوڈز کو لانچ کرتا ہے- لیب README کے ساتھ واک تھرو
قبولیت کے معیار:
- پبلشر ہر سیکنڈ 50 پیغامات بھیجتا ہے (±5Hz)
- سبسکرائبر تمام پیغامات کو ٹائم اسٹیمپس کے ساتھ لاگ کرتا ہے
- لانچ فائل ایک کمانڈ کے ساتھ دونوں نوڈز کو شروع کرتی ہے
لیب P2: سروسز اور ایکشنز
باقی کام: 11 کام (T021-T031)
یہ کیا شامل کرے گا:
ik_server.py: انورس کائنیٹکس سروس (~70 لائنیں)ik_client.py: سروس کلائنٹ (~40 لائنیں)pick_place_server.py: پک-اور-پلیس ایکشن فیڈ بیک کے ساتھ (~100 لائنیں)pick_place_client.py: ایکشن کلائنٹ (~60 لائنیں)
قبولیت کے معیار:
- IK سروس 100ms کے اندر جوائنٹ زاویے کا حساب لگاتی ہے
- پک-پلیس ایکشن ہر 10% پر فیڈ بیک فراہم کرتی ہے
- کلائنٹس وقت ختم ہونے کو خوبصورتی سے ہینڈل کرتے ہیں
لیب P3: پیرامیٹرز اور لانچ
باقی کام: 10 کام (T032-T041)
یہ کیا شامل کرے گا:
configurable_node.py: ڈائنامک پیرامیٹرز کے ساتھ نوڈ (~80 لائنیں)unitree_g1.yaml: انسان نما خصوصی کنفگwalker_mini.yaml: منیچر انسان نما کنفگmulti_node_system.launch.py: 5+ نوڈز کنڈیشنلز کے ساتھ (~120 لائنیں)
قبولیت کے معیار:
- پیرامیٹرز نوڈ ریسٹارٹ کے بغیر اپڈیٹ ہوتے ہیں
- لانچ فائل دلیل کے ذریعے روبوٹ کا انتخاب کرتی ہے
- YAML کنفگز صحیح طریقے سے لوڈ ہوتے ہیں
لیب P4: ٹرانسفارمز (tf2)
باقی کام: 10 کام (T042-T051)
یہ کیا شامل کرے گا:
transform_broadcaster.py: انسان نما کے لیے 8+ فریمز کو براڈکاسٹ کرتا ہے (~100 لائنیں)transform_listener.py: غلطی کے انتظام کے ساتھ ٹرانسفارمز کی تلاشی (~80 لائنیں)- انسان نما tf2 درخت ڈایاگرام (مرمیڈ)
tf2_demo.launch.py: براڈکاسٹر اور ویژوئلائزر کو شروع کرتا ہے
قبولیت کے معیار:
- tf2 درخت میں کوئی حلقے نہیں ہیں (غیر چکری)
- لسنر کی تلاشیاں 99%+ وقت کامیاب ہوتی ہیں
- RViz2 پورے روبوٹ کے ڈھانچے کو دکھاتا ہے
🔗 مواد تک رسائی
اب دستیاب کیا ہے
- سیکھنے کے اہداف
- تصوراتی جائزہ
- مواصلاتی پیٹرنز کا فلوچارٹ
- نوڈ زندگی چکر ڈایاگرام
- ٹربل شوٹنگ گائیڈ (10 غلطیاں)
- گلوسری (20+ اصطلاحات)
- کوئز (10 سوالات)
جلد آ رہا ہے
- لیب P1: پب/سب (9 کام)
- لیب P2: سروسز اور ایکشنز (11 کام)
- لیب P3: پیرامیٹرز اور لانچ (10 کام)
- لیب P4: ٹرانسفارمز (10 کام)
- تشخیصات کے ربرکس (4 کام)
- پالش اور تصدیق (9 کام)
متعلقہ آرٹیفیکٹس
- مواصفات: specs/002-ros2-fundamentals/spec.md (4 صارف کہانیاں، 8 فنکشنل ضروریات)
- منصوبہ: specs/002-ros2-fundamentals/plan.md (آرکیٹیکچر فیصلے)
- کام: specs/002-ros2-fundamentals/tasks.md (کل 65 کام، 14 مکمل)
- PHRs: 3 Prompt History Records
📊 تکمیل کی حالت
| مرحلہ | کام | حالت | لنک |
|---|---|---|---|
| ترتیب | 4 | ✅ مکمل | T001-T004 |
| بنیاد | 7 | ✅ مکمل | T005-T011 |
| لیب P1: پب/سب | 9 | ⏳ زیر التواء | T012-T020 |
| لیب P2: سروسز/ایکشنز | 11 | ⏳ زیر التواء | T021-T031 |