ماڈیول 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 میں دیکھ سکتے ہیں۔
ros2CLI اور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 سے۔