इस पेज पर, तकनीकी लेखन वाले उस प्रोजेक्ट की जानकारी दी गई है जिसे Google Season of Docs के लिए स्वीकार किया गया है.
प्रोजेक्ट की खास जानकारी
- ओपन सोर्स संगठन:
- RoboComp
- टेक्निकल राइटर:
- Le Thai An
- प्रोजेक्ट का नाम:
- RoboComp के बुनियादी कॉम्पोनेंट
- प्रोजेक्ट की अवधि:
- स्टैंडर्ड अवधि (तीन महीने)
प्रोजेक्ट का विवरण
वजह
RoboComp, शोध और व्यावहारिक अनुप्रयोगों के लिए, रोबोटिक्स फ़्रेमवर्क में से एक है. robocomp repo में अलग-अलग रोबोटिक ऐप्लिकेशन के लिए कई तरह के कॉम्पोनेंट शामिल हैं. जैसे, मोटर कंट्रोल, लोकलाइज़ेशन और मैपिंग, नेविगेशन, पहचान वगैरह. इन कॉम्पोनेंट को robocomp-robolab नाम के छोटे repo में मैनेज किया जाता है. हालांकि, कॉम्पोनेंट के repo में हर कॉम्पोनेंट को कंपाइल करने या इस्तेमाल करने के लिए ज़्यादा जानकारी नहीं है. इसलिए, नए डेवलपर के लिए इसका इस्तेमाल सीमित तौर पर किया जा सकता है. इस प्रस्ताव का मकसद, RoboComp के अहम कॉम्पोनेंट को दस्तावेज़ में शामिल करके इस समस्या को हल करना है. साथ ही, रोबोटिक्स से जुड़े किसी खास टास्क को हल करने के लिए, अलग-अलग कॉम्पोनेंट को जोड़ने के उदाहरण के तौर पर इस्तेमाल किए जाने वाले दस्तावेज़ को कंपाइल करना है. दस्तावेज़ तैयार करने की प्रोसेस के बारे में अगले सेक्शन में बताया जाएगा. इसके बाद, प्रोजेक्ट को पूरा करने के लिए समयसीमा तय करने के बारे में बताने वाला माइलस्टोन सेक्शन आएगा. आखिर में, दस्तावेज़ तैयार करने की प्रोसेस के बारे में कुछ जानकारी दी गई है.
ब्यौरा
जैसा कि बताया गया है, इस प्रोजेक्ट के दो मुख्य लक्ष्य हैं:
- दस्तावेज़ की पूरी जानकारी, उसे कंपाइल करने और उसे इंस्टॉल करने की प्रोसेस, कॉन्फ़िगरेशन, उसके इस्तेमाल, और RoboComp में हर कॉम्पोनेंट की पहले से मालूम समस्याएं
- रोबोटिक्स से जुड़े किसी खास टास्क को हल करने के लिए, RoboComp एनवायरमेंट में अलग-अलग कॉम्पोनेंट का इस्तेमाल करने वाली गाइड का उदाहरण दें.जैसे, जगह की जानकारी.
फ़िलहाल, robocomp-robolab repo में ज़्यादातर बुनियादी कॉम्पोनेंट को इकट्ठा करने और अलग-अलग पैरामीटर कॉन्फ़िगरेशन में इस्तेमाल करने के तरीके के बारे में ज़्यादा जानकारी वाले निर्देश मौजूद नहीं हैं. इससे उन नए डेवलपर के लिए बड़ी समस्या पैदा होती है जो अपने प्रोजेक्ट में कॉम्पोनेंट का इस्तेमाल करना चाहते हैं या फ़्रेमवर्क में योगदान देना चाहते हैं. इसकी वजह यह है कि कई कॉम्पोनेंट, बाहरी ड्राइवर या लाइब्रेरी के रैपर होते हैं. इनमें कई डिपेंडेंसी होती हैं, जिसकी वजह से उन्हें कंपाइल और इंस्टॉल करना मुश्किल हो जाता है. इसके अलावा, कई कॉम्पोनेंट 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 सितंबर: कम्यूनिटी के साथ रिश्ता:
- प्रोजेक्ट के दायरे तय करने के लिए, हर हफ़्ते मीटिंग सेट अप करना. साथ ही, लेखक और मेंटर, दोनों की उम्मीदें भी तय करना.
- RoboComp फ़्रेमवर्क के बारे में गहराई से जानकारी पाना.
2 सितंबर से 2 नवंबर: robocomp-robolab repo में हर कॉम्पोनेंट के लिए दस्तावेज़ लिखना. साथ ही, मीटिंग के ज़रिए मेंटर और लेखक के बीच बार-बार सुधार करना. उम्मीद है कि बिना दस्तावेज़ वाले ज़्यादातर दस्तावेज़ पूरे हो जाएंगे
2 नवंबर से 26 नवंबर: रोबोटिक्स से जुड़े किसी टास्क को हल करने के लिए, अलग-अलग कॉम्पोनेंट का इस्तेमाल करने के उदाहरण के तौर पर सामान्य दस्तावेज़ लिखना.
27 से 29 नवंबर: प्रोजेक्ट रिपोर्ट खत्म होने तक.
GSoD 2019 के बाद: मैं अपने काम को और बेहतर बनाने और उसका रखरखाव करने के लिए RoboComp के साथ जुड़े रहना चाहूंगी.
आखिरी नोट
RoboComp की सुविधाओं से जुड़ी बुनियादी जानकारी को समझने के लिए, RoboComp एनवायरमेंट में अलग-अलग कॉम्पोनेंट को इंटिग्रेट करने के तरीके का एक सामान्य उदाहरण लिखना ज़रूरी है. इस उदाहरण वाले दस्तावेज़ के बारे में, मेंटर के साथ आगे चर्चा की जाएगी. इससे यह तय किया जा सकेगा कि RoboComp के मौजूदा वर्शन के हिसाब से, रोबोटिक्स से जुड़ा कौनसा टास्क सही है.