Skip to main content

باب 6: روبوٹ سسٹم بنانا

آپ انفرادی نوڈز لکھ سکتے ہیں۔ آپ pub/sub اور سروسز کو سمجھتے ہیں۔ لیکن حقیقی روبوٹ ایک نوڈ نہیں ہوتے—وہ آپس میں جڑے ہوئے اجزاء کا ایک ماحولیاتی نظام ہوتے ہیں۔ ایک ہیومنوائڈ روبوٹ میں 20 سے زیادہ نوڈز ہو سکتے ہیں: موٹر کنٹرولرز، سینسر ریڈرز، پرسیپشن پائپ لائنز، نیویگیشن اسٹیکس، اور بہت کچھ۔

اس باب میں، آپ سیکھیں گے کہ انفرادی نوڈز سے مکمل سسٹم تک کیسے پیمانہ بڑھایا جائے (scale)۔ آپ نوڈز کو پیرامیٹرز کے ساتھ قابل ترتیب بنائیں گے، ایک ہی کمانڈ سے متعدد نوڈز شروع کرنے کے لیے لانچ فائلز بنائیں گے، اور جب چیزیں غلط ہوں تو کیا ہو رہا ہے اس کی تشخیص کے لیے ڈیبگنگ ٹولز استعمال کریں گے۔

مدت: 3 اسباق، کل 3 گھنٹے تہہ کی تقسیم (Layer Breakdown): L2: 30%، L3: 50%، L4: 20% (نظام کی سطح کے ڈیزائن کا آغاز) ہارڈ ویئر ٹائر: ٹائر 1 (کلاؤڈ ROS 2) سابقہ ​​علم (Prerequisites): ابواب 4-5 (pub/sub، سروسز، کسٹم انٹرفیس) دوبارہ استعمال کے قابل مہارت (Reusable Skill Created): ros2-launch-system

سیکھنے کے مقاصد

اس باب کے اختتام تک، آپ اس قابل ہو جائیں گے کہ:

  • رن ٹائم کنفیگریشن کے لیے نوڈز میں پیرامیٹرز شامل کریں (ویلیوز کو ہارڈکوڈ کرنے کے بجائے)
  • مختلف پیرامیٹرز کے ساتھ متعدد نوڈز شروع کرنے کے لیے پائتھن لانچ فائلز لکھیں
  • ros2doctor، rqt_graph، اور لاگنگ کا استعمال کرتے ہوئے ملٹی-نوڈ سسٹمز کو ڈیبگ کریں
  • پیرامیٹر کے دائرہ کار (scope) کو سمجھیں اور لانچ فائلوں سے نوڈز میں پیرامیٹرز کیسے پاس کیے جاتے ہیں
  • ملٹی-نوڈ سسٹمز میں مسائل کی منظم تشخیص کریں
  • اعتماد کے ساتھ انفرادی نوڈز سے پیچیدہ سسٹمز تک پیمانہ بڑھائیں

اسباق

سبق 6.1: پیرامیٹرز (قابل ترتیب نوڈز) (60 منٹ)

اپنے نوڈز کو قابل ترتیب بنائیں۔ ہر بار جب آپ مختلف پبلش ریٹ یا تھریشولڈ چاہتے ہیں تو کوڈ تبدیل کرنے کے بجائے، ROS 2 پیرامیٹرز استعمال کریں۔ اپنے نوڈ میں پیرامیٹرز کا اعلان کریں، انہیں اسٹارٹ اپ پر پڑھیں، اور ros2 param set کے ساتھ رن ٹائم پر ان میں ترمیم کریں۔

بنیادی تصورات:

  • پیرامیٹر کا اعلان (declare_parameter)
  • پیرامیٹر پڑھنا (get_parameter)
  • رن ٹائم ترمیم (ros2 param set)

سبق 6.2: لانچ فائلز (ملٹی-نوڈ اسٹارٹ اپ) (60 منٹ)

نوڈز کو دستی طور پر چلانا بند کریں۔ متعدد نوڈز شروع کرنے، ہر ایک کو پیرامیٹرز پاس کرنے، اور کوآرڈینیشن کے لیے ٹاپک کے ناموں کو دوبارہ نقشہ (remap) کرنے کے لیے پائتھن لانچ فائلز لکھیں۔ ایک ہی کمانڈ سے پورے سسٹمز شروع کریں۔

بنیادی تصورات:

  • لانچ فائل کا ڈھانچہ (LaunchDescription، Node اعمال)
  • لانچ فائلوں سے پیرامیٹر پاس کرنا
  • ٹاپک/سروس کے ناموں کو دوبارہ نقشہ بنانا (remapping)
  • دلیلوں (arguments) کی بنیاد پر مشروط لانچنگ

سبق 6.3: ملٹی-نوڈ سسٹمز کی ڈیبگنگ (60 منٹ)

جب چیزیں ٹوٹ جائیں (اور وہ ٹوٹیں گی)، تو ROS 2 کے ڈیبگنگ ٹولز استعمال کریں۔ ros2doctor ماحولیاتی مسائل کی تشخیص کرتا ہے۔ rqt_graph پورے نوڈ نیٹ ورک کو بصری شکل دیتا ہے۔ جب ضرورت ہو تو تفصیلی ٹریس معلومات دیکھنے کے لیے لاگر لیولز آپ کو اجازت دیتے ہیں۔

بنیادی تصورات:

  • نظام کی صحت کی تشخیص (ros2doctor)
  • نوڈ گراف کا بصری اظہار (rqt_graph)
  • لاگر لیول کنٹرول (ros2 param set)
  • منظم مسئلہ حل کرنے کا طریقہ کار

4-تہہ تدریسی طریقہ (4-Layer Teaching Method)

تہہ (Layer)%کیا کور کیا گیا ہے
L1: دستی (Manual)20%قدم بہ قدم واک تھرو، منظم مثالیں
L2: AI تعاون (AI Collab)30%AI پیرامیٹر کی توثیق، لانچ فائل ڈیزائن، ڈیبگنگ کی حکمت عملیوں میں مدد کرتا ہے
L3: ذہانت (Intelligence)50%قابل ترتیب سسٹمز کے لیے دوبارہ استعمال کے قابل پیٹرن، ڈیبگنگ ورک فلو
L4: تفصیلات پر مبنی (Spec-Driven)20%نظام کی تعمیر کے بارے میں سوچنا شروع کرنا، تفصیلات نظام کے ڈیزائن کی رہنمائی کیسے کرتی ہیں

یہ باب آپ کو پیمانہ بڑھاتا ہے۔ آپ انفرادی نوڈز سے مکمل روبوٹک سسٹمز کے بارے میں سوچنے کی طرف بڑھ رہے ہیں۔

ہارڈ ویئر کی ضروریات

کم از کم ٹائر: ٹائر 1 (کلاؤڈ ROS 2)

ٹائرسامانآپ کیا کر سکتے ہیں
1لیپ ٹاپ + براؤزرمکمل لانچ فائل سپورٹ اور rqt کے ذریعے ویژولائزیشن کے ساتھ کلاؤڈ ROS 2
2+مقامی ROS 2فوری فیڈ بیک کے ساتھ مقامی تنصیب

تمام مشقیں کلاؤڈ ROS 2 میں کام کرتی ہیں۔ مقامی عملدرآمد تیز ہے لیکن ضروری نہیں ہے۔

سابقہ ​​علم (Prerequisites)

  • ابواب 4-5 (نوڈز، pub/sub، سروسز، کسٹم انٹرفیس)
  • پائتھن پروگرامنگ (متغیر تفویض، ڈکشنری، فنکشن کالز)
  • ملٹی-پروسیس سسٹمز کی تفہیم (ایک ساتھ متعدد پروگرام چلانے کی بنیادی واقفیت)

مہارت کی جانچ (Mastery Gate)

باب 7 (کیپ اسٹون) پر آگے بڑھنے سے پہلے، آپ کو اس قابل ہونا چاہیے کہ:

  • ایک نوڈ میں پیرامیٹرز شامل کریں اور انہیں رن ٹائم پر پڑھیں
  • نوڈ کو دوبارہ شروع کیے بغیر ros2 param set کا استعمال کرتے ہوئے پیرامیٹرز میں ترمیم کریں
  • 3+ نوڈز کو مختلف کنفیگریشنز کے ساتھ شروع کرنے کے لیے ایک لانچ فائل لکھیں
  • نوڈز کو مربوط کرنے کے لیے لانچ فائلوں میں ٹاپک کے ناموں کو دوبارہ نقشہ (remap) کریں
  • rqt_graph کا استعمال کرتے ہوئے نوڈ گراف کا بصری اظہار کریں اور کنکشنز کی وضاحت کریں
  • ros2doctor چلائیں اور اس کے آؤٹ پٹ کی تشریح کریں
  • ایک خراب ملٹی-نوڈ سسٹم کو ڈیبگ کریں اس طرح:
    • کون سے نوڈز چل رہے ہیں یہ چیک کرنا (ros2 node list)
    • ٹاپکس پبلش ہو رہے ہیں یہ تصدیق کرنا (ros2 topic echo)
    • پیرامیٹرز صحیح طریقے سے سیٹ ہیں یہ چیک کرنا (ros2 param list)
    • تفصیلی آؤٹ پٹ دیکھنے کے لیے لاگ لیولز کو ایڈجسٹ کرنا
  • یہ سمجھنا کہ نظام کی پیمائش کے لیے پیرامیٹرز اور لانچ فائلز کیوں اہم ہیں

اگر آپ یہ کر سکتے ہیں، تو آپ باب 7 کے کیپ اسٹون کے لیے تیار ہیں۔


کلیدی تصور: نظام کی آرکیسٹریشن (System Orchestration)

یہ باب آرکیسٹریشن کے بارے میں ہے—متعدد اجزاء کو مربوط کرنا:

Launch File
├── Node 1 (Motor Controller)
│ ├── Parameters: max_velocity, rate
│ └── Topics: /motor/command (sub), /motor/status (pub)
├── Node 2 (Sensor Reader)
│ ├── Parameters: sensor_rate, threshold
│ └── Topics: /sensor/raw (pub)
└── Node 3 (Logger)
├── Parameters: log_level
└── Topics: /motor/status (sub), /sensor/raw (sub)

ایک ros2 launch کمانڈ ان سب کو مربوط پیرامیٹرز کے ساتھ شروع کرتی ہے۔ یہ پروڈکشن سسٹمز میں 20+ نوڈز تک بڑھ جاتا ہے۔


نیویگیشن

پچھلا باب: ← باب 5: مواصلات

اگلا باب: باب 7: کیپ اسٹون →

ماڈیول کا جائزہ: ← ماڈیول 1 پر واپس جائیں

سبق 6.1 شروع کریں: پیرامیٹرز →