Skip to main content

Gazebo Harmonic سے ملو

وقت: 60 منٹ | لایه: L1 (دستی بنیاد) | ٹیر: 1 (کلاؤڈ)

ڈیجیٹل ٹوئن ایک تصور ہے۔ ایک سمیلیٹر وہ ٹول ہے جو اس تصور کو حقیقت میں بدلتا ہے۔ دنیا بھر میں پیشہ ور روبوٹکس کے لیے، وہ سمیلیٹر Gazebo ہے۔

Gazebo یہ ہے:

  • اوپن سورس: استعمال کرنے کے لیے مفت، کمیونٹی سے چلنے والا، جسے NASA، DARPA، یونیورسٹیوں نے بھروسہ کیا ہے
  • فزکس سے درست: حقیقی کشش ثقل، رگڑ، ٹکراؤ، سینسر فزکس
  • ROS 2 انٹیگریٹڈ: آپ کا ROS 2 کوڈ ورچوئل روبوٹس کو بالکل اسی طرح کنٹرول کرتا ہے جیسے وہ فزیکل روبوٹس کو کنٹرول کرتا ہے
  • انڈسٹری معیار: دنیا بھر میں سب سے زیادہ استعمال ہونے والا روبوٹکس سمیلیٹر

یہ سبق آپ کو Gazebo Harmonic (جدید ورژن، جسے gz-sim بھی کہا جاتا ہے)، یہ کیسے کام کرتا ہے، اور TheConstruct کلاؤڈ ماحول کے ذریعے اس تک کیسے رسائی حاصل کی جائے، سے متعارف کراتا ہے۔

Gazebo کیوں؟

Gazebo کو استعمال کرنے کا طریقہ جاننے سے پہلے، یہ سمجھیں کہ یہ انڈسٹری کا انتخاب کیوں ہے۔

Gazebo ایکو سسٹم

Gazebo کا آغاز 2002 میں روبوٹ آپریٹنگ سسٹم (ROS) پراجیکٹ کے حصے کے طور پر ہوا۔ دو دہائیوں سے زیادہ عرصے میں، یہ دنیا بھر میں تعلیمی روبوٹکس، کمرشل روبوٹکس، اور تحقیقی اداروں کے لیے معیار کا سمیلیٹر بن گیا۔

Gazebo استعمال کرنے والی تنظیمیں:

  • NASA (مریخ روور سمولیشن، قمری مشن)
  • DARPA (روبوٹکس مقابلے کی سمولیشن)
  • بوسٹن ڈائنامکس (ڈائنامکس تحقیق)
  • یونیورسٹی روبوٹکس لیبز (دنیا بھر میں)
  • روبوٹکس اسٹارٹ اپس (زیادہ تر Gazebo استعمال کرتے ہیں)

اس کی اہمیت: اگر آپ Gazebo سیکھتے ہیں، تو آپ ان ٹولز کے ساتھ سیکھتے ہیں جو پیشہ ور انجینئرز استعمال کرتے ہیں۔

Gazebo بمقابلہ حریف

دیگر سمیلیٹر موجود ہیں (Unity, Unreal, CoppeliaSim, MuJoCo)۔ Gazebo کے فوائد:

خصوصیتGazeboUnityUnrealاہمیت
لاگتمفتفریمیئمفریمیئمتعلیمی بجٹ مفت کو ترجیح دیتے ہیں
ROS 2 انٹیگریشنمقامی (Native)پلگ انپلگ انROS 2 روبوٹکس معیار ہے
فزکس کی درستگیاعلیٰدرمیانیدرمیانیSim-to-real ٹرانسفر کے لیے درست فزکس ضروری ہے
اوپن سورسہاںنہیںنہیںشفافیت، کمیونٹی تعاون
Linux سپورٹبہتریناچھامناسبزیادہ تر روبوٹکس کا کام Linux پر ہوتا ہے

Gazebo ہر لحاظ سے "بہتر" نہیں ہے—Unity ویژولائزیشن میں بہترین ہے، Unreal حقیقت پسندی میں—لیکن روبوٹکس + ROS 2 ڈویلپمنٹ کے لیے، Gazebo قدرتی انتخاب ہے۔

Gazebo Harmonic فن تعمیر (Architecture)

Gazebo کے ڈیزائن کو سمجھنا اسے مؤثر طریقے سے استعمال کرنے میں مدد کرتا ہے۔

کلائنٹ-سرور ماڈل

Gazebo ایک کلائنٹ-سرور فن تعمیر استعمال کرتا ہے:

Server (gz-sim)
- فزکس کی سمولیشن کرتا ہے
- روبوٹ کی حالت (state) کو اپ ڈیٹ کرتا ہے
- ROS 2 پیغامات پر کارروائی کرتا ہے
- پلگ ان چلاتا ہے
- دنیا کی حالت کو محفوظ کرتا ہے

|
| TCP/IP (نیٹ ورک مواصلات)
|

Clients
- gz-gui (گرافیکل انٹرفیس)
- ROS 2 نوڈز (آپ کا کوڈ)
- بیرونی ٹولز (ریکارڈنگ، ویژولائزیشن)

یہ ڈیزائن کیوں؟

  • ذمہ داریوں کی علیحدگی: فزکس کمپیوٹیشن ویژولائزیشن سے الگ
  • نیٹ ورک شفافیت: سرور اور کلائنٹس مختلف مشینوں پر چل سکتے ہیں
  • متعدد کلائنٹس: ایک فزکس انجن متعدد ویژولائزیشن کلائنٹس کو فراہم کر سکتا ہے
  • ریموٹ سمولیشن: سرور کلاؤڈ میں، کلائنٹ آپ کے لیپ ٹاپ پر

آپ کے لیے، اس کا مطلب ہے:

  • سمولیشن سرور TheConstruct کلاؤڈ پر چلتا ہے
  • آپ اپنے ویب براؤزر کے ذریعے اس سے جڑتے ہیں
  • آپ کا ROS 2 کوڈ نیٹ ورک پیغامات کے ذریعے سرور کے ساتھ بات چیت کرتا ہے
  • ویژولائزیشن آپ کے براؤزر میں ظاہر ہوتی ہے

Gazebo سرور (gz-sim)

سرور فزکس کمپیوٹیشن کو سنبھالتا ہے:

  1. دنیا لوڈ کریں: SDF (Simulation Description Format) فائلوں کو پارس کرنا جو روبوٹس اور ماحول کی وضاحت کرتی ہیں
  2. پلگ ان چلائیں: فعالیت شامل کرنے والے سمیلیٹر پلگ ان لوڈ کریں
  3. فزکس کی سمولیشن کریں: ہر ٹائم سٹیپ پر پوزیشن، رفتار، قوتوں کو اپ ڈیٹ کریں
  4. پیغامات پر کارروائی کریں: کنٹرول کوڈ سے ROS 2 پیغامات وصول کریں
  5. حالت اپ ڈیٹ کریں: سینسر ڈیٹا کو ROS 2 نوڈز پر واپس بھیجیں
  6. مواصلات: ویژولائزیشن کلائنٹس کو دنیا کی حالت بھیجیں

سرور مسلسل سمولیشن لوپ چلاتا ہے، عام طور پر 1000 Hz پر (ایک سیکنڈ میں 1000 فزکس اپ ڈیٹس)۔

Gazebo GUI کلائنٹ (gz-gui)

GUI کلائنٹ ویژولائزیشن فراہم کرتا ہے:

  1. 3D رینڈرنگ: روبوٹس، ماحول، اور سینسر ڈیٹا دکھائیں
  2. تعامل (Interaction): اشیاء کو منتخب کرنے کے لیے کلک کریں، حرکت دینے کے لیے گھسیٹیں (drag)
  3. انٹرو اسپیکشن: جوائنٹ کی حالتیں، سینسر ریڈنگز، دنیا کی خصوصیات کا معائنہ کریں
  4. سمولیشن کنٹرول: سمولیشن کو چلائیں/روکیں، رفتار بڑھائیں/کم کریں
  5. کیمرہ کنٹرول: منظر کو گھمائیں، زوم کریں، پین کریں

آپ کے لیے:

  • آپ TheConstruct پر اپنے براؤزر کے ذریعے اس تک رسائی حاصل کرتے ہیں
  • کسی انسٹالیشن کی ضرورت نہیں (تمام کمپیوٹیشن کلاؤڈ میں ہوتی ہے)

پلگ انز: توسیع کا نظام (Extensibility System)

Gazebo کی طاقت پلگ انز سے آتی ہے۔ ایک پلگ ان وہ کوڈ ہے جو سمیلیٹر کو بڑھاتا ہے:

سینسر پلگ انز: کیمرے، LIDAR، IMU، فورس سینسرز کی سمولیشن کرتے ہیں

  • ورچوئل تصاویر، پوائنٹ کلاؤڈز، ایکسلریشن ڈیٹا کیپچر کرتے ہیں
  • ROS 2 ٹاپکس پر شائع کرتے ہیں

ایکچویٹر پلگ انز: موٹرز اور گرپرز کو کنٹرول کرتے ہیں

  • موٹر کمانڈز کے لیے ROS 2 ٹاپکس کو سبسکرائب کرتے ہیں
  • سمولیشن میں جوائنٹ پوزیشنز کو اپ ڈیٹ کرتے ہیں

سسٹم پلگ انز: حسب ضرورت رویے

  • کنٹرولرز، AI ایجنٹس، ٹیسٹ منظرنامے نافذ کرتے ہیں
  • سمولیشن کے اندر من مانی (arbitrary) کوڈ چلاتے ہیں

مثال پلگ ان فلو:

آپ کا ROS 2 کوڈ                Gazebo سرور
| |
|--- موٹر کمانڈ شائع کرتا ہے --->|
| فزکس اپ ڈیٹ
| (پلگ ان کمانڈ پر کارروائی کرتا ہے)
| موٹر حرکت کرتی ہے
|<--- سینسر ڈیٹا شائع کرتا ہے ----|
| |

سینسر پلگ ان نئی موٹر پوزیشن کو کیپچر کرتا ہے اور اسے ROS 2 ٹاپک کے طور پر شائع کرتا ہے جسے آپ کا کوڈ پڑھتا ہے۔

Gazebo اور ROS 2 انٹیگریشن

Gazebo اور ROS 2 کے درمیان پل شفاف ہے:

یہ کیسے کام کرتا ہے

  1. آپ کا ROS 2 کوڈ موٹر کمانڈ کو ٹاپک /cmd_vel پر شائع کرتا ہے
  2. Gazebo پلگ ان /cmd_vel کو سبسکرائب کرتا ہے
  3. پلگ ان سمولیشن کو اپ ڈیٹ کرتا ہے - روبوٹ کو حرکت دیتا ہے
  4. سینسر پلگ ان روبوٹ کی نئی حالت کیپچر کرتا ہے
  5. پلگ ان ROS 2 ٹاپک /odom (اوڈومیٹری) پر شائع کرتا ہے
  6. آپ کا ROS 2 کوڈ /odom کو سبسکرائب کرتا ہے اور حالت پڑھتا ہے

آپ کے نقطہ نظر سے، یہ ایک فزیکل روبوٹ کو کنٹرول کرنے جیسا ہی ہے:

  • آپ /cmd_vel پر کمانڈز شائع کرتے ہیں
  • آپ /odom سے سینسر ڈیٹا پڑھتے ہیں
  • چاہے اینڈ پوائنٹ فزیکل روبوٹ ہو یا Gazebo، یہ شفاف ہوتا ہے

یہ ROS 2 ایبسٹریکشن لیئر کی طاقت ہے۔ ایک ہی کوڈ سمولیشن اور حقیقت میں کام کرتا ہے۔

TheConstruct پر Gazebo تک رسائی

TheConstruct (theconstructsim.com) ایک کلاؤڈ روبوٹکس پلیٹ فارم ہے جو Gazebo اور ROS 2 تک مفت اور ادا شدہ رسائی فراہم کرتا ہے۔

ٹیر 1 راستہ (کلاؤڈ): TheConstruct

  1. سائن اپ کریں: theconstructsim.com پر جائیں اور ایک اکاؤنٹ بنائیں (مفت ٹیر دستیاب ہے)
  2. ماحول لانچ کریں: ایک نیا ROSject (TheConstruct کی طرف سے کلاؤڈ ROS 2 ماحول کی اصطلاح) بنائیں
  3. Gazebo Harmonic منتخب کریں: Gazebo Harmonic امیج کا انتخاب کریں
  4. براؤزر کے ذریعے رسائی: TheConstruct ایک براؤزر پر مبنی IDE اور Gazebo GUI فراہم کرتا ہے
  5. roslaunch چلائیں: مقامی تنصیب کے بغیر Gazebo سمولیشنز کو فعال کریں

آپ کے لیے فوائد:

  • تنصیب کی ضرورت نہیں
  • تمام کمپیوٹیشن کلاؤڈ میں
  • کسی بھی ڈیوائس سے براؤزر کے ذریعے رسائی
  • پہلے سے ترتیب شدہ ROS 2 + Gazebo ماحول
  • سیکھنے کے لیے مفت ٹیر کافی ہے

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

جب آپ TheConstruct پر Gazebo لانچ کرتے ہیں، تو آپ دیکھیں گے:

مرکزی ویو پورٹ:

  • روبوٹ اور ماحول کا 3D ویژولائزیشن
  • دنیا کے کوآرڈینیٹس دکھانے والی گرڈ
  • ایک ساتھ متعدد روبوٹس ظاہر ہو سکتے ہیں

سائیڈ بار پینلز:

  • سمولیشن: چلائیں/روکیں کنٹرولز، دنیا کی خصوصیات
  • اینٹیٹیز (Entities): تمام اشیاء (روبوٹس، ماڈلز، لائٹس) کی ٹری
  • انسپکٹر: منتخب اشیاء کی خصوصیات (پوزیشن، رفتار، ماس)
  • ٹرمینل: ڈیبگنگ کے لیے کمانڈ لائن تک رسائی

Gazebo کی بنیادی باتیں: آپ کی پہلی سمولیشن

جب آپ روبوٹ کے ساتھ Gazebo دنیا لانچ کرتے ہیں تو یہ ہوتا ہے:

مرحلہ 1: دنیا کی فائل لوڈ کریں

ایک .sdf فائل (Simulation Description Format) وضاحت کرتی ہے:

<!-- مثال کے طور پر سادہ SDF -->
<sdf version="1.6">
<world name="default">
<!-- نیچے کی طرف اشارہ کرتی ہوئی کشش ثقل -->
<gravity>0 0 -9.81</gravity>

<!-- گراؤنڈ پلین -->
<model name="ground_plane">
<link name="link">
<collision><geometry><plane/></geometry></collision>
<visual><geometry><plane/></geometry></visual>
</link>
</model>

<!-- روبوٹ ماڈل (URDF سے لوڈ کیا گیا) -->
<model name="my_robot">
<pose>0 0 1 0 0 0</pose>
<include>
<uri>model://my_robot/my_robot.urdf</uri>
</include>
</model>
</world>
</sdf>

سرور اس فائل کو پارس کرتا ہے، گراؤنڈ بناتا ہے، روبوٹ کو لوڈ کرتا ہے۔

مرحلہ 2: ROS 2 برج شروع کریں

پلگ انز ROS 2 ٹاپکس کو سبسکرائب کرتے ہیں:

  • /cmd_vel: آپ کے ROS 2 کوڈ سے حرکت کے احکامات وصول کرتا ہے
  • /odom: روبوٹ کی اوڈومیٹری (پوزیشن، رفتار) شائع کرتا ہے
  • /scan: LIDAR ڈیٹا شائع کرتا ہے
  • /camera/image_raw: کیمرے کی تصاویر شائع کرتا ہے

آپ کا ROS 2 کوڈ سینسر ٹاپکس کو سبسکرائب کرتا ہے اور کمانڈ ٹاپکس کو شائع کرتا ہے۔

مرحلہ 3: سمولیشن لوپ چلائیں

سرور مسلسل فزکس کو اپ ڈیٹ کرتا ہے:

ہر ٹائم سٹیپ کے لیے (ایک سیکنڈ میں 1000 بار):
1. ROS 2 ٹاپکس سے پیغامات وصول کریں
2. کنٹرول کمانڈز سے قوتوں/ٹارک کو اپ ڈیٹ کریں
3. نئی پوزیشنیں، رفتاریں شمار کریں (فزکس ریاضی)
4. ٹکراؤ چیک کریں
5. سینسر آؤٹ پٹ کو اپ ڈیٹ کریں
6. ROS 2 ٹاپکس پر شائع کریں
7. ویژولائزیشن رینڈر کریں (GUI کلائنٹ کو بھیجیں)

ہر قدم تقریباً 1 ملی سیکنڈ کا سمولٹڈ وقت ہوتا ہے۔

مرحلہ 4: ویژولائز اور تعامل کریں

GUI کلائنٹ نتیجہ دکھاتا ہے۔ آپ دیکھتے ہیں:

  • آپ کے ROS 2 کمانڈز کے جواب میں روبوٹ حرکت کر رہا ہے
  • سینسر ڈیٹا حقیقی وقت میں بہہ رہا ہے
  • ٹکراؤ روبوٹ کو دیواروں سے گزرنے سے روک رہے ہیں
  • کشش ثقل اشیاء کو نیچے کھینچ رہی ہے

اہم تصورات کا خلاصہ

تصورمطلبمثال
دنیا (World)مکمل سمولیشن ماحول (گراؤنڈ، روبوٹس، اشیاء)warehouse_simulation.sdf
ماڈل (Model)دنیا میں انفرادی شے (روبوٹ، رکاوٹ، لینڈ مارک)my_robot, ground_plane
لنک (Link)ماڈل کے اندر سخت جسم (لچک نہیں)robot_arm_base, robot_arm_link1
جوائنٹ (Joint)لنکس کے درمیان کنکشن (حرکت کی اجازت دیتا ہے)robot_arm_joint1 (گھومنے والا جوائنٹ)
پلگ ان (Plugin)سمیلیٹر کو بڑھانے والا کوڈ (سینسرز، کنٹرولرز)sensor_plugin, control_plugin
SDFXML فارمیٹ جو دنیاؤں اور ماڈلز کی وضاحت کرتا ہےجیومیٹری، فزکس، جوائنٹس کی وضاحت کرتا ہے
URDFروبوٹ ڈھانچے کے لیے XML فارمیٹ (انسان کے پڑھنے کے قابل)SDF کا متبادل، عام طور پر استعمال ہوتا ہے

AI کے ساتھ کوشش کریں

سیٹ اپ: ChatGPT (chat.openai.com) یا اپنے پسندیدہ AI ٹول کو کھولیں اور Gazebo اور روبوٹکس سمولیشن کو دریافت کریں۔

پرامپٹ سیٹ 1 (بنیادی):

Gazebo کیا ہے اور روبوٹکس کمپنیاں اسے کیوں استعمال کرتی ہیں؟
اس کا Unity یا CoppeliaSim جیسے دیگر روبوٹکس سمیلیٹروں سے موازنہ کریں۔

پرامپٹ سیٹ 2 (انٹرمیڈیٹ):

Gazebo کے کلائنٹ-سرور فن تعمیر کی وضاحت کریں۔
یہ ڈیزائن روبوٹکس سمولیشن کے لیے کیوں مفید ہے؟

پرامپٹ سیٹ 3 (ایڈوانسڈ):

میں روبوٹ کے بازو کو کنٹرول کرنے کے لیے ROS 2 کوڈ لکھ رہا ہوں۔
اگر روبوٹ Gazebo سمولیشن میں ہے بمقابلہ فزیکل روبوٹ میں تو کوڈ کیسے مختلف ہوگا؟
پلگ ان سسٹم کا کیا کردار ہے؟

متوقع نتائج: آپ کو یہ سمجھ آنا چاہیے کہ:

  • Gazebo انڈسٹری کا معیار اوپن سورس روبوٹکس سمیلیٹر ہے
  • اس کا کلائنٹ-سرور فن تعمیر فزکس کو ویژولائزیشن سے الگ کرتا ہے
  • ROS 2 انٹیگریشن سمولیشن کو شفاف بناتی ہے (ایک ہی کوڈ فزیکل اور ورچوئل روبوٹس کے لیے کام کرتا ہے)
  • TheConstruct کلاؤڈ مقامی تنصیب کے بغیر Gazebo کو قابل رسائی بناتا ہے

ہاتھ سے کرنے والا اگلا قدم: باب 9 میں، آپ روبوٹ کی تفصیلات کی فائلیں (URDF) لکھیں گے اور سمولیشن دنیا بنائیں گے۔ باب 12 میں، آپ اصل ROS 2 کوڈ کو Gazebo سے جوڑیں گے۔


اگلا: باب 9: روبوٹ کی تفصیلات کے فارمیٹس →