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

ماڈیول 03 · ROS 2

تقریباً ہر جدید روبوٹ آپس میں مل کر کام کرنے والے پروگراموں کا ایک سیٹ ہوتا ہے: ایک سینسرز کو پڑھتا ہے، ایک منصوبہ بندی کرتا ہے، ایک موٹرز کو کنٹرول کرتا ہے، اور ایک خطرے پر نظر رکھتا ہے۔ ROS 2 (Robot Operating System، ورژن 2) ایک اوپن سورس ٹول کٹ ہے جو ان پروگراموں کو ایک دوسرے کو تلاش کرنے، ڈیٹا شیئر کرنے اور ایک ہی طریقہ کار کے تحت شروع، معائنہ (inspect) اور ری پلے کرنے کی اجازت دیتی ہے۔ اسے سیکھنا "میں کوڈنگ کر سکتا ہوں" سے "میں روبوٹ سسٹم بنا سکتا ہوں" تک کا سب سے بڑا قدم ہے، اور اسے دنیا بھر کی ریسرچ لیبز اور کمپنیوں میں استعمال کیا جاتا ہے۔

یہ ماڈیول Ubuntu 24.04 پر Python میں ROS 2 Jazzy Jalisco سکھاتا ہے۔ آپ اس سے شروعات کرتے ہیں کہ ROS 2 کو کیسے جوڑا جاتا ہے، پھر حقیقی پیکجز لکھتے ہیں: پبلشرز، سبسکرائبرز، سروسز، ایکشنز، پیرامیٹرز اور لانچ فائلز۔ آپ URDF کے ساتھ ایک روبوٹ کو بیان کرتے ہیں، TF2 کے ساتھ اس کے کوآرڈینیٹ فریمز کا ٹریک رکھتے ہیں، اور ڈیبگنگ اور ریکارڈنگ ٹولز سیکھتے ہیں جنہیں پیشہ ور افراد روزانہ استعمال کرتے ہیں۔ ہر چیز آپ کے اپنے کمپیوٹر پر چلتی ہے اور اس کے لیے کسی ہارڈ ویئر کی ضرورت نہیں ہے۔

اس ماڈیول کے اختتام تک آپ…​

  • ROS 2 گراف، DDS ڈسکوری، QoS اور ایکزیکیوٹرز کی وضاحت کر سکتے ہیں، اور مناسب QoS سیٹنگز کا انتخاب کر سکتے ہیں۔
  • پبلشرز، سبسکرائبرز، سروسز اور کلائنٹس کے ساتھ Python پیکجز لکھ، بلڈ اور چلا سکتے ہیں۔
  • طویل مدتی کاموں کے لیے ایکشنز، کنفیگریشن کے لیے پیرامیٹرز، اور پورے سسٹمز کے لیے لانچ فائلز استعمال کر سکتے ہیں۔
  • xacro میں دو پہیوں والے روبوٹ کو بیان کر سکتے ہیں، اس کے ٹرانسفارم ٹری (transform tree) کو پبلش کر سکتے ہیں اور اسے RViz میں دیکھ سکتے ہیں۔
  • ros2 CLI اور rqt کے ساتھ لائیو سسٹم کو ڈیبگ کر سکتے ہیں، اور rosbag2 کے ساتھ ڈیٹا ریکارڈ اور ری پلے کر سکتے ہیں۔

اسباق​

سبقآپ کیا بناتے ہیںوقت
ROS 2 آرکیٹیکچر اور DDSایک لیچڈ پبلشر، ایک لیٹ سبسکرائبر اور ایک ٹو-اسپیڈ ایکزیکیوٹر ڈیمو40 منٹ
نوڈز، ٹاپکس اور سروسزkinemata_basics پیکج: ٹاکر، لسنر، ایڈ سروس، ٹرٹل ڈرائیور45 منٹ
ایکشنز، پیرامیٹرز اور لانچ فائلزایک فیبوناچی ایکشن، ایک کنفیگریبل اسپیڈ لمیٹر اور ایک لانچ فائل45 منٹ
TF2 اور URDFایک TF براڈکاسٹر اور لسنر، اور RViz میں دو پہیوں والا روبوٹ45 منٹ
پیکجز، ڈیبگنگ اور بیگزایک کلین ورکسپیس بلڈ، ایک ریکارڈ شدہ بیگ اور ایک بیگ ریڈر40 منٹ

ماڈیول پروجیکٹ: Kinemata بیس​

تمام حصوں کو ایک لانچ فائل میں اکٹھا کریں جسے kinemata_base.launch.py کہا جاتا ہے۔ اسے آپ کے xacro ماڈل کے ساتھ robot_state_publisher شروع کرنا چاہیے، ایک ایسا نوڈ جو cmd_vel کو odom → base_link پر ایک سیمولیٹڈ اوڈومیٹری (odometry) براڈکاسٹ میں تبدیل کرتا ہے، لانچ-آرگومنٹ لمیٹ کے ساتھ اسپیڈ لمیٹر، اور RViz۔ اسے ros2 topic pub یا اپنے سرکل ڈرائیور سے ڈرائیو کریں، اور 30 سیکنڈ کے لیے /tf، /tf_static اور /cmd_vel کا ایک بیگ (bag) ریکارڈ کریں۔ پھر کچھ بھی اور چلائے بغیر بیگ کو ری پلے کریں اور تصدیق کریں کہ روبوٹ ابھی بھی RViz میں حرکت کر رہا ہے۔ جب یہ کام کر جائے تو آپ کے پاس ایک مکمل، قابل معائنہ، اور دوبارہ قابلِ پیداوار ROS 2 سسٹم موجود ہوگا، جو اگلے ماڈیول میں سیمولیٹڈ دنیا میں رکھنے کے لیے تیار ہے۔

شروعات کریں ROS 2 آرکیٹیکچر اور DDS سے۔