باب 2: روبوٹ آپریٹنگ سسٹمز 2 بنیادی باتیں
جائزہ
یہ باب روبوٹ آپریٹنگ سسٹم 2 (ROS 2) کے بنیادی اصولوں کا احاطہ کرتا ہے، جو روبوٹکس کی ترقی کے لیے ایک اہم فریم ورک ہے۔
مقاصد
- ROS 2 کے بنیادی تصورات (نوڈس، عنوانات، خدمات، اعمال) کو سمجھیں۔
- ایک سادہ ROS 2 پ یکج بنانے کا طریقہ سیکھیں۔
- ROS 2 کمانڈ لائن انٹرفیس کو سمجھیں۔
بنیادی مواد
ROS 2 روبوٹک ایپلی کیشنز بنانے کے لیے ایک اوپن سورس فریم ورک ہے۔ یہ روبوٹک پلیٹ فارمز کی وسیع اقسام میں پیچیدہ اور مضبوط روبوٹ رویے کی تخلیق کے کام کو آسان بنانے کے لیے ٹولز، لائبریریوں اور کنونشنز کا ایک سیٹ فراہم کرتا ہے۔
کلیدی تصورات
- نوڈز: نوڈ ایک ایسا عمل ہے جو کمپیوٹیشن انجام دیتا ہے۔ ROS 2 میں، ایک واحد قابل عمل ایک یا زیادہ نوڈس پر مشتمل ہو سکتا ہے۔
- موضوعات: عنوانات کو بسوں کا نام دیا گیا ہے جن پر نوڈس پیغامات کا تبادلہ کرتے ہیں۔ عنوانات میں گمنام شائع/سبسکرائب سیمنٹکس ہوتے ہیں۔
- خدمات: خدمات ایک درخواست/جواب کی قسم کی مواصلت ہیں۔ ایک نوڈ ایک سروس پیش کرتا ہے، اور دوسرا نوڈ اس سروس کو کال کرسکتا ہے۔
- اعمال: ایکشن طویل عرصے سے چلنے والے کاموں کے لیے ہیں۔ وہ عملدرآمد کے دوران تاثرا ت فراہم کرتے ہیں اور اس سے قبل ازوقت کیا جا سکتا ہے۔
مثالیں
ایک سادہ پبلشر نوڈ (Python)
import rclpy
from rclpy.node import Node
from std_msgs.msg import String
class SimplePublisher(Node):
def __init__(self):
super().__init__('simple_publisher')
self.publisher_ = self.create_publisher(String, 'chatter', 10)
self.timer = self.create_timer(0.5, self.timer_callback)
self.i = 0
def timer_callback(self):
msg = String()
msg.data = f'Hello World: {self.i}'
self.publisher_.publish(msg)
self.get_logger().info(f'Publishing: "{msg.data}"')
self.i += 1
def main(args=None):
rclpy.init(args=args)
simple_publisher = SimplePublisher()
rclpy.spin(simple_publisher)
simple_publisher.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
پبلشر کو چلانا
اس نوڈ کو چلانے کے لیے، آپ اسے Python فائل کے طور پر محفوظ کریں گے، اور پھر اسے python your_node.py کے ساتھ چلائیں گے۔ پھر آپ ROS 2 CLI کا استعمال کرتے ہوئے چیٹر موضوع کو سن سکتے ہیں:
ros2 topic echo /chatter
اعداد و شمار

شکل 1: ایک سادہ ROS 2 سسٹم جس میں پبلشر نوڈ، سبسکرائبر نوڈ، اور ان کو مربوط کرنے والا موضوع ہے۔
خلاصہ
اس باب نے ROS 2 کے بنیادی تصورات کا ایک مختصر تعارف فراہم کیا ہے، بشمول نوڈس، عنوانات، خدمات اور اعمال۔ ہم نے Python میں لکھے ہوئے پبلشر نوڈ کی ایک سادہ مثال بھی دیکھی۔ اگلے ابواب میں، ہم مزید پیچیدہ روبوٹک ایپلی کیشنز بنانے کے لیے ان تصورات پر استوار کریں گے۔