RoboComp प्रोजेक्ट

इस पेज पर Google Docs के सीज़न के लिए स्वीकार किए गए एक तकनीकी लेखन प्रोजेक्ट की जानकारी है.

प्रोजेक्ट की खास जानकारी

ओपन सोर्स संगठन:
RoboComp
तकनीकी लेखक:
ले थाई आन
प्रोजेक्ट का नाम:
RoboComp के मुख्य कॉम्पोनेंट
प्रोजेक्ट की अवधि:
मानक अवधि (तीन महीने)

प्रोजेक्ट का विवरण

वजह

RoboComp, शोध और व्यावहारिक कामों के लिए जाने-माने रोबोटिक्स फ़्रेमवर्क में से एक है. रोबोकॉम्प रेपो में मोटर कंट्रोल, लोकलाइज़ेशन और मैपिंग, नेविगेशन, रिकग्निशन वगैरह जैसे अलग-अलग रोबोटिक ऐप्लिकेशन के लिए, रोबोकॉम्प-रोबोलैब नाम के छोटे रेपो में रखे जाने वाले कॉम्पोनेंट की एक बड़ी रेंज शामिल होती है. हालांकि, कॉम्पोनेंट के रेपो में हर कॉम्पोनेंट को कंपाइल या इस्तेमाल करने के लिए, जानकारी से जुड़े दस्तावेज़ों की कमी है. इसलिए, नए डेवलपर को इसका इस्तेमाल सीमित करना पड़ता है. इस प्रस्ताव का मकसद RoboComp के अहम कॉम्पोनेंट के बारे में जानकारी देना है. साथ ही, रोबोटिक्स के खास टास्क को हल करने के लिए, अलग-अलग कॉम्पोनेंट को मिलाने के लिए, इस्तेमाल के उदाहरण को इकट्ठा करना है. दस्तावेज़ से जुड़ी प्रोसेस के बारे में जानकारी अगले सेक्शन में दी गई है. इसके बाद, माइलस्टोन सेक्शन के ज़रिए, प्रोजेक्ट को पूरा करने की समयसीमा तय की जाएगी. आखिर में, दस्तावेज़ बनाने की प्रक्रिया के बारे में कुछ नोट दिए गए हैं.

ब्यौरा

जैसा कि बताया गया है, इस प्रोजेक्ट के दो मुख्य लक्ष्य हैं:

  • दस्तावेज़ की ज़्यादा जानकारी, कंपाइलेशन, इंस्टॉलेशन, कॉन्फ़िगरेशन, इस्तेमाल, और RoboComp के हर कॉम्पोनेंट से जुड़ी आम समस्याओं की जानकारी
  • एक उदाहरण गाइड लिखो जिसमें RoboComp एनवायरमेंट में अलग-अलग कॉम्पोनेंट का इस्तेमाल करके, लोकलाइज़ेशन जैसे खास रोबोटिक्स टास्क को हल करना है.

फ़िलहाल, रोबोकॉम्प-रोबोलैब रेपो के ज़्यादातर बेसिक कॉम्पोनेंट को कंपाइल करने और अलग-अलग पैरामीटर कॉन्फ़िगरेशन में इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी वाले निर्देश मौजूद नहीं हैं. इससे उन नए डेवलपर के लिए बड़ी रुकावटें पैदा होती हैं जो अपने प्रोजेक्ट में कॉम्पोनेंट का इस्तेमाल करना चाहते हैं या फ़्रेमवर्क में योगदान देना चाहते हैं. इसकी वजह यह है कि कई कॉम्पोनेंट बाहरी ड्राइवर या लाइब्रेरी का रैपर होते हैं, जिनमें कई डिपेंडेंसी होती हैं. इस वजह से, टास्क को कंपाइल और इंस्टॉल करना मुश्किल हो जाता है. साथ ही, कई कॉम्पोनेंट RoboComp में मैसेज इंटरफ़ेस उपलब्ध कराने के लिए जटिल डिवाइस ड्राइवर (जैसे कि जेनरिक hokuyoComp) को रैप करते हैं, जिसमें पैरामीटर ट्यून करने के लिए डिवाइस के हिसाब से खास जानकारी की ज़रूरत होती है.

इसलिए, ओपन सोर्स योगदान के लिए ज़्यादा जानकारी वाले दस्तावेज़ की ज़रूरत होती है. इस दस्तावेज़ में डिवाइस की जानकारी, डिपेंडेंसी समाधान, और इस्तेमाल शामिल होते हैं. मेरे वर्क hokuyoComp कॉम्पोनेंट दस्तावेज़ का उदाहरण इस लिंक में मिला है:

https://github.com/anindex/robocomp-robolab/tree/master/components/hokuyoComp

टॉप-डाउन अप्रोच का इस्तेमाल करके, कंपोनेंट और पूरी जानकारी देने वाले दस्तावेज़ लिखने के लिए, व्यक्ति को उस दस्तावेज़ में मौजूद कॉन्टेंट का अनुभव होना ज़रूरी है. इसकी वजह यह है कि दस्तावेज़ का आखिरी मकसद, इनहेरिट किए गए डेवलपर को काम की जानकारी देना होता है. हर कॉम्पोनेंट दस्तावेज़ के लिए, सुझाया गया स्ट्रक्चर इस तरह बताया गया है:

  • ब्यौरा
  • कंपाइलेशन और इंस्टॉलेशन
  • कॉन्फ़िगरेशन पैरामीटर
  • कॉम्पोनेंट शुरू करना (इस्तेमाल)
  • आम तौर पर होने वाली समस्याएं

उदाहरण में, सबसे पहले Hokuyo सेंसर की खास बातों के बारे में जानकारी इकट्ठा की जाती है. कॉम्पोनेंट के ब्यौरे लिखने के लिए, कॉम्पोनेंट के फ़ंक्शन की फ़ोटो समझने के लिए कॉम्पोनेंट कोड को पढ़ा जाता है. इसके बाद, RoboComp के परिवेश और डिवाइस के हिसाब से खास पैरामीटर की जानकारी के साथ-साथ लाइब्रेरी डिपेंडेंसी को समझने से, कॉम्पोनेंट के कंपाइलेशन, इंस्टॉलेशन, और कॉन्फ़िगरेशन प्रोसेस को रिकॉर्ड करने में मदद मिलती है. उदाहरण के लिए, hokuyoComp को कंपाइल करने के लिए Ubuntu 14.04 से पुराने liburg0-dev deb पैकेज की ज़रूरत होती है, लेकिन बाद के वर्शन में deb पैकेज को Ubuntu PPA से हटा दिया जाता है, इसलिए हमें दस्तावेज़ में बताए गए तरीके से कंपाइलेशन करना चाहिए. इस प्रक्रिया में, हम नए डेवलपर के लिए डीबग करने की रफ़्तार बढ़ाने के लिए जानी-पहचानी समस्याओं को रिकॉर्ड भी कर सकते हैं. आखिर में, अलग-अलग इस्तेमाल की स्थितियों के लिए कॉम्पोनेंट के इस्तेमाल का दस्तावेज़, RoboComp लैंडस्केप के साथ अलग-अलग रोबोटिक्स टास्क के साथ आसानी से इंटिग्रेट करने के लिए किया गया है.

माइलस्टोन

इस सेक्शन में, प्रोजेक्ट के बताए गए लक्ष्यों को पूरा करने के लिए, एक शुरुआती समयसीमा तय की जाती है. हम कैटगरी (जैसे कि कैमरा कॉम्पोनेंट, लेज़र कॉम्पोनेंट) के आधार पर कॉम्पोनेंट दस्तावेज़ चुनकर, उन्हें लिखेंगे. कॉम्पोनेंट दस्तावेज़ को पूरा करने में लगने वाले समय का मौजूदा अनुमान, hokuyoComp दस्तावेज़ों के उदाहरण को पूरा करने में लगने वाले समय पर आधारित है. यह टाइम टेबल कुछ इस तरह है:

  • 1 अगस्त से 1 सितंबर: कम्यूनिटी बॉन्ड:

    1. प्रोजेक्ट का दायरा तय करने के लिए, हर हफ़्ते मीटिंग सेट अप करना. साथ ही, लेखक और मेंटॉर, दोनों की उम्मीदों के बारे में बताना.
    2. RoboComp फ़्रेमवर्क को अच्छी तरह से समझना.
  • 2 सितंबर – 2 नवंबर: मीटिंग के ज़रिए मेंटॉर और लेखक के बीच बार-बार बदलाव करके, RoboCOM-robolab के हर कॉम्पोनेंट के लिए दस्तावेज़ लिखना (इसमें ज़्यादातर दस्तावेज़ों को पूरा करना ज़रूरी है)

  • 2 नवंबर से 26 नवंबर: रोबोटिक्स टास्क को हल करने के लिए, अलग-अलग कॉम्पोनेंट का इस्तेमाल करने के लिए सामान्य दस्तावेज़ को उदाहरण के तौर पर लिखना.

  • 27 नवंबर से 29 नवंबर: प्रोजेक्ट रिपोर्ट खत्म.

  • जीएसओडी 2019 के बाद: अपने काम को और बेहतर बनाने और उसका रखरखाव करने के लिए मैं RoboComp के साथ जुड़े रहना चाहता हूं.

फ़ाइनल नोट

उपयोगकर्ताओं को RoboComp की सुविधाओं के बारे में ज़्यादा जानकारी देने के लिए, RoboComp एनवायरमेंट में अलग-अलग कॉम्पोनेंट को इंटिग्रेट करने के तरीके का एक सामान्य उदाहरण लिखना ज़रूरी है. उदाहरण के तौर पर दिए गए इस दस्तावेज़ पर, मेंटॉर के साथ चर्चा की जाएगी. इससे यह तय किया जा सकेगा कि RoboComp को लागू करने के बाद, रोबोटिक्स का कौनसा टास्क सही रहेगा.