مین مواد پر جائیں

باب 2: ROS 2 کی بنیادی باتیں

🟡 حالت: 22% مکمل (صرف بنیاد)

یہ باب جامع ROS 2 کی بنیادی باتوں کے ساتھ ہاتھوں پر لیبز فراہم کرتا ہے جن میں پب/سب، سروسز، ایکشنز، اور ٹرانسفارمز شامل ہیں۔

بنیادی مواد مکمل ہے۔ لیبز (P1-P4) کی منصوبہ بندی کی گئی ہے لیکن ابھی تک نافذ نہیں کی گئی۔

View Current Content on GitHub (556 لائنیں)

View TODO Roadmap (51 باقی کام)


📖 فوری جائزہ

آپ کیا سیکھیں گے

سیکھنے کے اہداف:

  1. ڈیزائن ROS 2 سسٹمز کو پب/سب، سروسز، اور ایکشنز کا مناسب استعمال کرتے ہوئے
  2. نافذ کریں ROS 2 نوڈز کو پائتھن میں مناسب زندگی چکر کے انتظام کے ساتھ
  3. ترتیب دیں لانچ فائلیں ملٹی-نوڈ سسٹمز کے لیے پیرامیٹرز کے ساتھ
  4. لاگو کریں tf2 ٹرانسفارمز کو انسان نما روبوٹ کائنیٹکس کے لیے
  5. ڈیبگ کریں عام 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 پورے روبوٹ کے ڈھانچے کو دکھاتا ہے

🔗 مواد تک رسائی

اب دستیاب کیا ہے

Foundation Content (GitHub)

  • سیکھنے کے اہداف
  • تصوراتی جائزہ
  • مواصلاتی پیٹرنز کا فلوچارٹ
  • نوڈ زندگی چکر ڈایاگرام
  • ٹربل شوٹنگ گائیڈ (10 غلطیاں)
  • گلوسری (20+ اصطلاحات)
  • کوئز (10 سوالات)

جلد آ رہا ہے

TODO Roadmap

  • لیب P1: پب/سب (9 کام)
  • لیب P2: سروسز اور ایکشنز (11 کام)
  • لیب P3: پیرامیٹرز اور لانچ (10 کام)
  • لیب P4: ٹرانسفارمز (10 کام)
  • تشخیصات کے ربرکس (4 کام)
  • پالش اور تصدیق (9 کام)

متعلقہ آرٹیفیکٹس


📊 تکمیل کی حالت

مرحلہکامحالتلنک
ترتیب4✅ مکملT001-T004
بنیاد7✅ مکملT005-T011
لیب P1: پب/سب9⏳ زیر التواءT012-T020
لیب P2: سروسز/ایکشنز11⏳ زیر التواءT021-T031