Skip to main content

باب 12: ROS 2 + Gazebo انٹیگریشن

آپ نے URDF میں روبوٹ بنائے ہیں اور Gazebo میں دنیا (Worlds) بنائی ہیں۔ اب اہم قدم آتا ہے: انہیں جوڑنا۔ Gazebo میں ایک روبوٹ صرف ایک 3D ماڈل ہے جب تک کہ ROS 2 اسے کمانڈ نہ کر سکے اور اس کے سینسرز سے ڈیٹا نہ پڑھ سکے۔ ros_gz_bridge وہ ترجمہ کی تہہ (translation layer) ہے جو ROS 2 ٹاپکس کو Gazebo اینٹیٹی پراپرٹیز اور سینسر آؤٹ پٹ سے جوڑتی ہے۔

اس باب میں، آپ اس برج میں مہارت حاصل کریں گے جو آپ کے روبوٹس کو زندہ کرتا ہے۔ آپ ROS 2 اور Gazebo میسج ٹائپس کے درمیان ٹاپک میپنگ کو کنفیگر کریں گے، ROS 2 لانچ فائلوں سے روبوٹس کو اسپان (spawn) کریں گے، کلوزڈ-لوپ کنٹرول (حرکت کو کمانڈ کرنا اور فیڈ بیک پڑھنا) نافذ کریں گے، اور بار بار آنے والے پیٹرنز کو دوبارہ استعمال کے قابل مہارتوں میں تبدیل کریں گے۔

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

مدت: 4 اسباق، کل 4.5 گھنٹے تہہ کا بریک ڈاؤن: L2: 75% (AI تعاون)، L3: 25% (انٹیلی جنس ڈیزائن) ہارڈویئر ٹائر: ٹائر 1 (کلاؤڈ Gazebo)، ٹائر 2 (مقامی GPU اختیاری) پیشگی ضروریات: باب 11 (سیمولیشن میں سینسرز)، ماڈیول 1 (ROS 2 بنیادی باتیں) دوبارہ استعمال کے قابل مہارتیں جو بنائی گئیں: ros2-gazebo-bridge, closed-loop-control

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

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

  • ROS 2 ٹاپکس کو Gazebo میسج ٹائپس کے ساتھ میپ کرنے کے لیے ros_gz_bridge کو کنفیگر کریں
  • پیچیدہ ٹاپک برجنگ منظرناموں کے لیے YAML کنفیگریشن فائلیں لکھیں
  • ros_gz اسپان سروس کا استعمال کرتے ہوئے ROS 2 سے روبوٹ ماڈلز اسپان کریں
  • cmd_vel کمانڈنگ اور سینسر فیڈ بیک لوپس کے ذریعے ویلوسٹی کنٹرول نافذ کریں
  • سادہ رد عمل کے رویے (رکاوٹ سے بچنا، رکاوٹ پر رکنا) بنائیں
  • حقیقی وقت کے سینسر ڈیٹا کے ساتھ RViz2 میں روبوٹ کی حالت کو ویژولائز کریں
  • ROS 2-Gazebo انٹیگریشن پیٹرن کے لیے دوبارہ استعمال کے قابل مہارتیں ڈیزائن اور دستاویز کریں

اسباق

سبق 12.1: ros_gz برج (75 منٹ)

ros_gz_bridge کی فن تعمیر، یہ ROS 2 اور Gazebo میسج ٹائپس کے درمیان کیسے ترجمہ کرتا ہے، اور اپنے پہلے روبوٹ-سیمولیٹر کنکشن کے لیے ٹاپک برجنگ کو کنفیگر کرنا سیکھیں۔

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

  • ros_gz_bridge کا مقصد اور فن تعمیر
  • برج کی نحو (Syntax): /TOPIC@ROS_MSG@GZ_MSG
  • سمت: [gz_to_ros], [ros_to_gz], [bidirectional]
  • کمانڈ لائن کا استعمال بمقابلہ YAML کنفیگریشن
  • عام میسج ٹائپ میپنگز
  • تصدیق اور ڈیبگنگ
  • تہہ: L2 (خرابیوں کے حل کے لیے AI تعاون)

سبق 12.2: ROS 2 سے روبوٹس کو اسپان کرنا (60 منٹ)

Gazebo دنیاؤں میں روبوٹس کو پہلے سے رکھنے کے بجائے، انہیں متحرک طور پر (dynamically) ROS 2 سے اسپان کریں۔ یہ ماڈیولر ٹیسٹنگ کو قابل بناتا ہے—ایک دنیا، مانگ پر لانچ ہونے والے روبوٹ کے کئی کنفیگریشن۔

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

  • ros_gz اسپان سروس انٹرفیس
  • URDF سے SDF میں تبدیلی
  • لانچ فائل انٹیگریشن (پائتھن لانچ API)
  • robot_description پیرامیٹر اور ٹاپک
  • جوائنٹ اسٹیٹ پبلشنگ
  • پوزیشن اور اورینٹیشن پیرامیٹرز
  • تہہ: L2 (لانچ کنفیگریشن کے لیے AI تعاون)

سبق 12.3: کلوزڈ-لوپ کنٹرول (75 منٹ)

کنٹرول لوپ کو نافذ کریں: Gazebo سے سینس کریں، ROS 2 میں فیصلہ کریں، واپس Gazebo کو عمل (act) کریں۔ ایک سادہ رکاوٹ سے بچنے کا رویہ بنائیں جو ان تینوں اجزاء کو مل کر کام کرتے ہوئے دکھاتا ہے۔

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

  • کنٹرول لوپ فن تعمیر (سینس کریں → فیصلہ کریں → عمل کریں)
  • cmd_vel کے ذریعے ویلوسٹی کمانڈز پبلش کرنا
  • سینسر فیڈ بیک (LIDAR اسکین، تصاویر) کو سبسکرائب کرنا
  • رد عمل کے رویے کی منطق (تھریشولڈز، فیصلہ کرنے والے درخت)
  • کی بورڈ کے ساتھ دستی ٹیلی آپریشن
  • RViz2 میں ویژولائزیشن
  • تہہ: L2 (رویے کے ڈیزائن اور ڈیبگنگ کے لیے AI تعاون)

سبق 12.4: ros_gz مہارتیں بنانا (60 منٹ)

ایک بار کے حل سے آگے بڑھ کر دوبارہ استعمال کے قابل ذہانت کی طرف بڑھیں۔ سبق 12.1-12.3 سے پیٹرنز کو دستاویز شدہ مہارتوں میں تبدیل کریں جنہیں آپ اور دوسرے مستقبل کے منصوبوں پر لاگو کر سکتے ہیں۔

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

  • پیٹرن کی شناخت (منصوبوں میں کیا دہرایا جاتا ہے؟)
  • پرسنہ + سوالات + اصولوں کا استعمال کرتے ہوئے مہارت کا ڈیزائن
  • فیصلہ سازی کے نکات اور مختلف حالتوں کی دستاویز کرنا
  • کراس-پروجیکٹ دوبارہ استعمال
  • مہارت کی ترکیب (کب ملانا ہے بمقابلہ الگ کرنا)
  • تہہ: L3 (انٹیلی جنس ڈیزائن، دوبارہ استعمال کے قابل اجزاء بنانا)

4-تہہ تدریسی طریقہ

تہہ%کیا کور کیا گیا
L1: دستی0%باب 11 میں بنیاد
L2: AI تعاون75%برج کنفیگریشن، اسپان منطق، رویے کا ڈیزائن، ڈیبگنگ میں AI شراکت داری
L3: انٹیلی جنس25%مہارت کی دستاویز، پیٹرن کو انکیپسولیٹ کرنا، دوبارہ استعمال کے قابل اجزاء
L4: تفصیلات پر مبنی0%اس باب میں نہیں (باب 13 میں کیپ اسٹون کے لیے بنیاد)

یہ باب AI کے ساتھ تعاون پر مبنی مسئلہ حل کرنے (L2) پر زور دیتا ہے جب آپ پیچیدہ کنفیگریشن میں مہارت حاصل کرتے ہیں، پھر پیٹرنز کو دوبارہ استعمال کے قابل مہارتوں میں تبدیل کرنے (L3) پر جو منصوبوں میں بڑھتے ہیں۔

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

کم از کم ٹائر: ٹائر 1 (TheConstruct کے ذریعے کلاؤڈ Gazebo)

ٹائرسامانآپ کیا کر سکتے ہیں
1لیپ ٹاپ + براؤزرros_gz_bridge کے ساتھ کلاؤڈ Gazebo، تمام مشقیں معاونت یافتہ
2RTX GPUتیز تکرار کے لیے مقامی Gazebo، جدید فزکس کے لیے اختیاری

تمام بنیادی مشقیں ٹائر 1 پر کام کرتی ہیں۔ ٹائر 2 ترقی کی رفتار کے لیے اختیاری ہے۔

پیشگی ضروریات

  • باب 11 (سیمولیشن میں سینسرز)
  • ماڈیول 1 (ROS 2 بنیادی باتیں: نوڈز، ٹاپکس، میسجز، لانچ فائلیں)
  • SDF/URDF اور روبوٹ کنفیگریشن سے واقفیت

مہارت کا گیٹ

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

  • مناسب سمت کے ساتھ YAML کے ذریعے ros_gz_bridge کو کنفیگر کریں
  • ros2 topic list اور gz topic list کا استعمال کرتے ہوئے برج کنیکٹیویٹی کی تصدیق کریں
  • مناسب URDF/SDF تبدیلی کے ساتھ روبوٹس کو اسپان کرنے والی لانچ فائلیں لکھیں
  • بنیادی کلوزڈ-لوپ کنٹرول کو نافذ کریں (حرکت کو کمانڈ کریں، فیڈ بیک پڑھیں)
  • سینسر تھریشولڈز اور فیصلہ سازی کی منطق کے ساتھ سادہ رد عمل کے رویے بنائیں
  • TF فریمز اور سینسر ڈیٹا کے ساتھ RViz2 میں روبوٹ کی حالت کو ویژولائز کریں
  • واضح پرسنہ، سوالات، اور اصولوں کے ساتھ دوبارہ استعمال کے قابل مہارت کی دستاویز بنائیں
  • انٹیگریشن کے مسائل کو حل کرنے کے لیے AI تعاون کا اطلاق کریں

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


اہم پیٹرنز

برج پیٹرن (ٹاپک ترجمہ)

ROS 2 Topic          ros_gz_bridge          Gazebo Topic
/cmd_vel (geometry_msgs/msg/ → /cmd_vel
(Publisher) Twist @ gz.msgs.Twist) (Subscriber)

اسپان پیٹرن (متحرک روبوٹ اضافہ)

Launch File → URDF/SDF → spawn_entity Service → Gazebo World
(Description) (Instantiate) (Active Robot)

کنٹرول پیٹرن (کلوزڈ-لوپ رویہ)

Gazebo Sensors → ROS 2 Subscription → Decision Logic → ROS 2 Publish → Bridge → Gazebo Command
(LIDAR/Camera) (Read Feedback) (Compute) (cmd_vel) (Act) (Execute)

ros_gz برج کمانڈ حوالہ

کمانڈ لائن سنگل ٹاپک:

ros2 run ros_gz_bridge parameter_bridge /cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist

YAML کنفیگریشن فائل:

- ros_topic_name: "/cmd_vel"
gz_topic_name: "/cmd_vel"
ros_type_name: "geometry_msgs/msg/Twist"
gz_type_name: "gz.msgs.Twist"
direction: ROS_TO_GZ

عام میسج میپنگز:

  • geometry_msgs/msg/Twistgz.msgs.Twist (ویلوسٹی کمانڈز)
  • sensor_msgs/msg/Imagegz.msgs.Image (کیمرہ فیڈز)
  • sensor_msgs/msg/LaserScangz.msgs.LaserScan (LIDAR ڈیٹا)
  • std_msgs/msg/Float64gz.msgs.Double (سکیلر ویلیوز)

نیویگیشن

پچھلا باب: ← باب 11: سیمولیشن میں سینسرز

اگلا باب: باب 13: کیپ اسٹون پروجیکٹ →

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

سبق 12.1 شروع کریں: ros_gz برج →