← नवीनतम पेपर
💻 computer science

Deterministic Execution of ROS~2 Applications via Lingua Franca

यह शोधपत्र एक ऐसे ढांचे को प्रस्तुत करता है जो अनमॉडिफाइड (unmodified) ROS 2 अनुप्रयोगों को लिंगुआ फ्रांका (Lingua Franca) प्रोग्राम में परिवर्तित करता है ताकि नियत निष्पादन (deterministic execution) और समय की पूर्वानुमान क्षमता (timing predictability) को लागू किया जा सके, जिससे ROS 2 के कॉलबैक ऑर्डरिंग और मैसेज इंटरलीविंग की अंतर्निहित अनिश्चितता को समाप्त किया जा सके।

मूल लेखक: Harun Teper, Shaokai Lin, Shulu Li, Edward A. Lee, Jian-Jia Chen

प्रकाशित 2026-06-09
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Harun Teper, Shaokai Lin, Shulu Li, Edward A. Lee, Jian-Jia Chen

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। ✨ नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आप एक व्यस्त रेस्टोरेंट किचन चला रहे हैं। एक मानक किचन में (जो कि ROS 2 की तरह है, जिसका उपयोग रोबोट बनाने के लिए किया जाने वाला सॉफ़्टवेयर है), मुख्य शेफ ऑर्डर चिल्लाकर देता है और रसोइये (रोबोट के विभिन्न हिस्से) उन्हें तब पकड़ लेते हैं जब वे उन्हें सुनते हैं।

समस्या क्या है? यदि दो ऑर्डर बिल्कुल एक ही समय पर आते हैं, तो रसोइया "सलाद" का ऑर्डर "स्टेक" के ऑर्डर से पहले पकड़ सकता है, या इसके विपरीत, यह इस पर निर्भर करता है कि टिकट विंडो के पास कौन खड़ा था या उस दिन कौन अधिक तेज़ था। कभी स्टेक सलाद से पहले आता है, तो कभी बाद में। यह नॉन-डिटरमिनिस्टिक (nondeterministic) है। एक कार चलाने वाले रोबोट के लिए, यह खतरनाक है: यदि रोबोट को एक ही समय में "रुकने" (stop) का सिग्नल और "चलने" (go) का सिग्नल मिलता है, तो उसे हर बार यह पता होना चाहिए कि उसे पहले किसे प्रोसेस करना है। यदि वह गलत अनुमान लगाता है, तो कार दुर्घटनाग्रस्त हो सकती है।

इस पेपर के लेखकों ने एक ट्रैफिक कंट्रोलर बनाया है (जिसे Lingua Franca या LF कहा जाता है) जो आपके मौजूदा रोबोट किचन के ऊपर बैठ सकता है और इसे एक सख्त, अपरिवर्तनीय शेड्यूल का पालन करने के लिए मजबूर कर सकता है, बिना आपकी रेसिपी (कोड) को दोबारा लिखे।

इसे सरल रूप में यहाँ समझाया गया है:

1. समस्या: "अराजक किचन" (The Chaos Kitchen)

मानक ROS 2 सिस्टम में, कार्यों के होने का क्रम भौतिक चीजों पर निर्भर करता है, जैसे:

  • उस सटीक सेकंड में कंप्यूटर कितना तेज़ है।
  • नेटवर्क पर संदेश यात्रा करने में कितना समय लगता है (जैसे वेटर का किचन तक दौड़ना)।
  • कंप्यूटर का कौन सा थ्रेड (thread) संदेश को पहले उठाता है।

इस कारण से, यदि आप एक ही रोबोट प्रोग्राम को समान इनपुट के साथ दो बार चलाते हैं, तो यह कार्यों को दूसरे समय में एक अलग क्रम में कर सकता है। यह रोबोट को सुरक्षित साबित करना असंभव बना देता है, क्योंकि आप यह भविष्यवाणी नहीं कर सकते कि वह आगे क्या करेगा।

2. समाधान: "लॉजिकल क्लॉक" (The Logical Clock)

लेखकों ने लॉजिकल टाइम (Logical Time) की अवधारणा पेश की है। कल्पना कीजिए कि किचन में एक जादुई घड़ी है जो दीवार पर लगे सेकंडों के आधार पर नहीं, बल्कि रेसिपी के "चरणों" (steps) के आधार पर टिक-टिक करती है।

  • चरण 1: टाइमर बजता है।
  • चरण 2: सलाद तैयार किया जाता है।
  • चरण 3: स्टेक पकाया जाता है।

इस सिस्टम में, स्टेक पकाने में लगने वाला "समय" मायने नहीं रखता। यदि रेसिपी कहती है "सलाद तैयार करें, फिर स्टेक पकाएं," तो सिस्टम स्टेक के बारे में सोचने से पहले तब तक इंतजार करता है जब तक सलाद तैयार न हो जाए। यह वास्तविक दुनिया की रसोइये की गति को अनदेखा कर देता है। यह सुनिश्चित करता है कि चरण 2 हमेशा चरण 3 से पहले होगा, चाहे हार्डवेयर कितना भी तेज़ या धीमा क्यों न हो।

3. जादू का तरीका: "पुनर्लेखन की आवश्यकता नहीं" (No Rewriting Required)

आमतौर पर, इस तरह के सटीक क्रम को प्राप्त करने के लिए, आपको अपनी पुरानी रेसिपी फेंकनी होगी और किसी अन्य भाषा में नई रेसिपी लिखनी होगी। यह कठिन और महंगा है।

लेखकों ने एक अनुवादक टूल (translator tool) बनाया है।

  • आप उन्हें अपना मौजूदा ROS 2 रोबोट कोड (पुरानी रेसिपी) देते हैं।
  • टूल कोड को देखता है, यह पता लगाता है कि हिस्से आपस में कैसे जुड़े हैं (कौन किससे बात करता है), और स्वचालित रूप से उसके चारों ओर एक "रैपर" (wrapper) बनाता है।
  • यह रैपर रोबोट को सख्त "लॉजिकल टाइम" नियमों के तहत चलने के लिए मजबूर करता है।
  • महत्वपूर्ण बात: रोबोट के अंदर का मूल कोड कभी नहीं बदला जाता है। यह ठीक वैसे ही चलता है जैसा इसे लिखा गया था, लेकिन अब इस नए रैपर द्वारा नियंत्रित किया गया क्रम एकदम सटीक है।

4. उन्होंने क्या पाया (परिणाम)

उन्होंने दो चीजों पर इसका परीक्षण किया:

  1. एक साधारण काल्पनिक रोबोट जिसमें कुछ हिस्से थे।
  2. एक वास्तविक दुनिया का स्वायत्त ड्राइविंग सिस्टम (जिसे Autoware कहा जाता है) जिसमें कई हिस्से मिलकर काम करते हैं।

परिणाम:

  • मानक ROS 2: कार्यों का क्रम हर बार टेस्ट चलाने पर बदल जाता था। कभी रोबोट डेटा को एक क्रम में प्रोसेस करता था, तो कभी दूसरे क्रम में। एक कार्य को पूरा करने में लगने वाला समय भी बहुत भिन्न होता था (कभी 5 मिलीसेकंड, तो कभी 900 मिलीसेकंड)।
  • उनका नया सिस्टम (LF-नियंत्रित): कार्यों का क्रम हर बार बिल्कुल समान था। कार्य पूरा होने में लगा समय भी हर बार बिल्कुल समान था।

उन्होंने यह भी दिखाया कि आप इस सिस्टम का उपयोग रोबोट को "ट्यून" करने के लिए कर सकते हैं। आप सिस्टम को बता सकते हैं, "मैं चाहता हूँ कि रोबोट बहुत सुसंगत हो (हमेशा A को B से पहले करे), भले ही इसके लिए थोड़ा अधिक इंतजार करना पड़े," या "मैं चाहता हूँ कि यह बहुत तेज़ हो, भले ही क्रम थोड़ा भिन्न हो।" आप रोबोट के कोड को बदले बिना इस "नॉब" (knob) को एडजस्ट कर सकते हैं।

सारांश

इस पेपर को एक अराजक ऑर्केस्ट्रा के लिए एक कंडक्टर (conductor) के आविष्कार के रूप में समझें। संगीतकार (रोबोट कोड) अभी भी अपने वाद्ययंत्रों को बिल्कुल वैसे ही बजा रहे हैं जैसे वे हमेशा बजाते आए हैं, लेकिन अब कंडक्टर (नया फ्रेमवर्क) उन्हें बताता है कि उन्हें अपने नोट्स कब बजाने हैं। यह सुनिश्चित करता है कि हर प्रदर्शन बिल्कुल एक जैसा सुनाई दे, जिससे रोबोट सुरक्षित, अनुमानित और विश्वसनीय बनता है, और इसके लिए संगीतकारों को नई शीट म्यूजिक पढ़ने की आवश्यकता नहीं होती।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →