← नवीनतम पेपर
🤖 AI

Towards LLM-Assisted Architecture Recovery for Real-World ROS~2 Systems: An Agent-Based Multi-Level Approach to Hierarchical Structural Architecture Reconstruction

यह शोध पत्र मौजूदा नोड-स्तरीय विधियों की सीमाओं को दूर करने के लिए परिष्कृत LLM प्रॉम्प्टिंग और एक चरणबद्ध रिकवरी रणनीति का उपयोग करके, जटिल वास्तविक दुनिया के ROS 2 सिस्टम में पदानुक्रमित सॉफ्टवेयर आर्किटेक्चर को पुनर्प्राप्त करने के लिए एक उन्नत एजेंट-आधारित, बहु-स्तरीय दृष्टिकोण प्रस्तुत करता है।

मूल लेखक: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

प्रकाशित 2026-05-20
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Dominique Briechle, Raj Chanchad, Tobias Geger, Ruidi He, Dhruv Jajadiya, Dhruv Kapadiya, Andreas Rausch, Meng Zhang

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

कल्पना कीजिए कि आपके पास लेगो (Lego) का एक विशाल, जटिल सेट है जिसे लोगों की एक टीम ने कई वर्षों में बनाया है। मूल निर्देश पुस्तिका (instruction manual) खो गई थी, या शायद उसे कभी लिखा ही नहीं गया था। आपके पास केवल बिखरी हुई ईंटें (bricks), उनके डिब्बे और उन्हें आपस में जोड़ने के कुछ नोट्स बचे हैं।

आपका लक्ष्य क्या है? उस मूल निर्देश पुस्तिका को फिर से बनाना ताकि आप समझ सकें कि वह पूरा यंत्र कैसे काम करता है, उसके हिस्से कैसे जुड़ते हैं, और यदि वह टूट जाए तो उसे कैसे ठीक किया जाए।

यह शोध पत्र बिल्कुल यही करने के बारे में है, लेकिन रोबोटिक सॉफ्टवेयर के लिए (विशेष रूप से उन सिस्टम्स के लिए जो ROS 2 नामक टूल से बनाए गए हैं)।

समस्या: "भूतिया" निर्देश (The "Ghost" Instructions)

रोबोटिक्स की दुनिया में, सॉफ्टवेयर अक्सर टुकड़ों में लिखा जाता है। एक व्यक्ति कैमरा के लिए कोड लिखता है, दूसरा रोबोटिक आर्म के लिए, और तीसरा कन्वेयर बेल्ट के लिए। वे अपना काम अलग-अलग फाइलों में सहेजते हैं। वह "गोंद" (glue) जो उन्हें एक साथ जोड़ता है—जो कंप्यूटर को बताता है कि कौन सा हिस्सा पहले शुरू करना है और वे एक-दूसरे से कैसे बात करेंगे—वह "लॉन्च फाइल्स" (launch files) और बिखरे हुए कोड कमेंट्स के अंदर छिपा होता है।

यह एक ऐसी रेसिपी की तरह है जहाँ सामग्री एक नोटबुक में सूचीबद्ध है, लेकिन उन्हें मिलाने के चरण एक अलग नोटबुक में छिपे हैं, और ओवन का तापमान एक नैपकिन पर लिखा हुआ है। यदि आप केवल सामग्रियों को देखकर पूरी रेसिपी का अनुमान लगाने की कोशिश करते हैं, तो आप गलत हो सकते हैं। आपको लग सकता है कि केक को 500 डिग्री पर पकाया जाना चाहिए क्योंकि आपने एक नोट पर वह नंबर देखा था, जबकि वह वास्तव में ओवन की लाइट के लिए था।

पहले, शोधकर्ताओं ने इन बिखरे हुए नोट्स को पढ़ने और पूरी रेसिपी का अनुमान लगाने के लिए AI (Large Language Models) का उपयोग करने की कोशिश की। लेकिन AI कभी-कभी भ्रमित हो जाता था, मनगढ़ंत तथ्य बना देता था (hallucinated), या यह समझने में चूक कर देता था कि विभिन्न हिस्से पदानुक्रमित (hierarchically) रूप से कैसे जुड़े हुए हैं (जैसे कि छोटी मशीनों से बनी एक बड़ी मशीन)।

समाधान: एक "चरणबद्ध" जासूसी दृष्टिकोण (A "Staged" Detective Approach)

लेखकों ने अपने AI जासूस पद्धति में सुधार किया। AI से एक ही बार में पूरी तस्वीर का अनुमान लगाने के लिए कहने के बजाय, उन्होंने काम को तीन स्पष्ट चरणों में विभाजित किया, और AI को सही रास्ते पर रखने के लिए एक "ब्लूप्रिंट" (नियमों का एक सख्त सेट) का उपयोग किया।

इसे एक निर्माण स्थल की तरह समझें जहाँ तीन विशेष टीमें काम करती हैं:

  1. टीम 1: इन्वेंट्री लेने वाले (NodeAnalyzer)
    सबसे पहले, AI सभी कोड फाइलों को स्कैन करता है और एक सरल सूची बनाता है: "यहाँ हमें मिले सभी व्यक्तिगत रोबोटिक पार्ट्स हैं।" यह हर रोबोटिक आर्म, कैमरा और सेंसर को सूचीबद्ध करता है, और यह भी नोट करता है कि वे कोड में कहाँ स्थित हैं।
  • उपमा: यह निर्माण से पहले सभी लेगो ईंटों को रंग और आकार के आधार पर ढेरों में छाँटने जैसा है।
  1. टीम 2: ब्लूप्रिंट पढ़ने वाले (LaunchFileAnalyzer)
    इसके बाद, AI "लॉन्च फाइल्स" (रोबोट को शुरू करने के निर्देश) को देखता है। वह पता लगाता है कि कौन से हिस्से चालू किए जाते हैं, उन्हें कैसे नाम दिया जाता है, और उन्हें एक साथ कैसे समूहबद्ध किया जाता है। वह निर्भरताओं (dependencies) का एक मानचित्र बनाता है: "कैमरा, आर्म के हिलने से पहले चालू होता है, और वे दोनों 'विज़न' ग्रुप में हैं।"
  • उपमा: यह असेंबली निर्देशों को पढ़ने जैसा है कि कौन सी ईंटें मिलकर एक पहिया बनाती हैं, और कौन से पहिए कार की बॉडी से जुड़ते हैं।
  1. टीम 3: मास्टर आर्किटेक्ट्स (SystemArchitectureTeam)
    अंत में, AI पार्ट्स की सूची (टीम 1 से) और कनेक्शन के मानचित्र (टीम 2 से) को लेता है और अंतिम, उच्च-स्तरीय आरेख (diagram) बनाता है। क्योंकि उसके पास मध्यवर्ती सूचियाँ हैं, इसलिए उसे अनुमान लगाने की आवश्यकता नहीं है। वह केवल साक्ष्यों का पालन करता है।
  • उपमा: यह एक वास्तुकार (architect) द्वारा तैयार किए गए घर का अंतिम ब्लूप्रिंट बनाने जैसा है, यह जानते हुए कि हर ईंट और तार कहाँ जाता है क्योंकि उसके पास इन्वेंट्री और असेंबली नोट्स मौजूद हैं।

परीक्षण: "BrickByBrick" रोबोट

इस नई पद्धति का परीक्षण करने के लिए, शोधकर्ताओं ने BrickByBrick नामक एक वास्तविक रोबोट सिस्टम का उपयोग किया। यह एक ऐसा रोबोट है जिसे बिल्डिंग ब्रिक्स से बनी जटिल संरचनाओं को अलग करने के लिए डिज़ाइन किया गया है। इसमें है:

  • दो रोबोटिक आर्म्स (Alice और Bob)।
  • ब्रिक्स को देखने के लिए कैमरे।
  • ब्रिक्स को हिलाने के लिए कन्वेयर बेल्ट।
  • एक "दिमाग" जो यह योजना बनाता है कि बिना नुकसान पहुँचाए ब्रिक्स को कैसे अलग किया जाए।

यह सिस्टम उनके पिछले शोध में उपयोग किए गए सरल उदाहरणों की तुलना में बहुत अधिक जटिल था। इसमें कई अलग-अलग प्रकार के सॉफ्टवेयर एक साथ काम कर रहे थे।

परिणाम

नया "चरणबद्ध" तरीका बहुत अच्छी तरह से काम कर गया:

  • सटीकता (Accuracy): AI ने लगभग हर एक हिस्से और कनेक्शन की सही पहचान की (जटिल सिस्टम-लेवल मैप पर 98% सटीकता)।
  • विश्वसनीयता (Reliability): इसने कोई भी फर्जी कनेक्शन नहीं बनाया। इसके द्वारा बनाया गया प्रत्येक कनेक्शन वास्तविक कोड साक्ष्य द्वारा समर्थित था।
  • सुधार (Improvement): यह पुराने तरीके की तुलना में विभिन्न हिस्सों को एक साथ समूहबद्ध करने के मामले में काफी बेहतर था।

मुख्य निष्कर्ष (The Bottom Line)

यह शोध पत्र दिखाता है कि यदि आप किसी जटिल रोबोट के सॉफ्टवेयर को समझना चाहते हैं, तो आपको केवल AI से "पूरी चीज़ का अनुमान लगाने" के लिए नहीं कहना चाहिए। इसके बजाय, आपको AI को एक संरचित प्रक्रिया देनी चाहिए:

  1. भागों की सूची बनाएं।
  2. असेंबली निर्देशों का मानचित्र बनाएं।
  3. उन तथ्यों के आधार पर अंतिम आरेख बनाएं।

यह दृष्टिकोण AI को बहुत अधिक विश्वसनीय बनाता है, जिससे कोड के एक अराजक ढेर को एक स्पष्ट, समझने योग्य आर्किटेक्चरल मैप में बदल दिया जाता है। हालाँकि, लेखक स्वीकार करते हैं कि यदि रोबोट चलते समय अपना व्यवहार बदलता है (डायनामिक बदलाव), तो वर्तमान पद्धति को उन बदलते लक्ष्यों को पकड़ने में थोड़ी कठिनाई होती है। लेकिन सिस्टम की स्थिर संरचना (static structure) को समझने के लिए, यह एक बहुत बड़ा कदम है।

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

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

Digest आज़माएँ →