इस पेज पर, तकनीकी लेखन वाले उस प्रोजेक्ट की जानकारी दी गई है जिसे Google Season of Docs के लिए स्वीकार किया गया है.
प्रोजेक्ट की खास जानकारी
- ओपन सोर्स संगठन:
- Ignition Robotics
- टेक्निकल राइटर:
- एक थाई ले
- प्रोजेक्ट का नाम:
- इग्निशन फ़िज़िक्स ट्यूटोरियल और एपीआई दस्तावेज़
- प्रोजेक्ट की अवधि:
- स्टैंडर्ड लंबाई (तीन महीने)
प्रोजेक्ट का विवरण
प्रेरणा
इग्निशन फ़िज़िक्स लाइब्रेरी, इग्निशन गज़ीबो सिम्युलेशन के बैक-एंड में पोर्ट करने वाले फ़िज़िक्स के इंजन को सुविधाजनक तरीके से इस्तेमाल करने की सुविधा देती है. कई एक्सटर्नल फ़िज़िक्स इंजन को लाइब्रेरी में ऐसे प्लगिन के तौर पर इस्तेमाल किया जा सकता है जिनमें उनकी क्षमताओं और ऐप्लिकेशन के कॉन्टेक्स्ट के हिसाब से, सुविधाओं के अलग-अलग सेट होते हैं. इससे, गज़ीबो सिम्युलेशन को बेहतर बनाने में मदद मिलती है. हालांकि, लाइब्रेरी के मौजूदा चरण में ये सुविधाएं नहीं मिलतीं:
- इन ट्यूटोरियल में, ज़रूरत के हिसाब से इस्तेमाल किए जाने वाले ऐसे प्लगिन बनाने के बारे में जानकारी दी गई है जो फ़िज़िक्स के लिए, पसंद के मुताबिक बनाए गए इंजन का इस्तेमाल करके सिम्युलेशन बनाते हैं
- एपीआई का बेहतर दस्तावेज़
इस प्रस्ताव का मकसद, प्रोजेक्ट को बेहतर तरीके से मैनेज करने के लिए इन समस्याओं को हल करना है. साथ ही, योगदान देने वाले नए लोगों और उपयोगकर्ताओं को सही तरीके से दिशा-निर्देश देना है. दस्तावेज़ तैयार करने की प्रोसेस के बारे में अगले सेक्शन में बताया जाएगा. इसके बाद, प्रोजेक्ट को पूरा करने के लिए समयसीमा तय करने के बारे में माइलस्टोन सेक्शन में बताया जाएगा. आखिर में, मौजूदा दस्तावेज़ के बारे में कुछ जानकारी दी गई है.
जानकारी
इस प्रोजेक्ट के दो मुख्य लक्ष्य हैं:
- मौजूदा लाइब्रेरी एपीआई के साथ इंटरफ़ेस करने वाले कस्टम फ़िज़िक्स प्लग इन बनाने के बारे में ज़्यादा जानकारी वाले ट्यूटोरियल बनाएं.
- रखरखाव और साथ मिलकर काम करने के लिए, मौजूदा लाइब्रेरी एपीआई दस्तावेज़ को बेहतर बनाएं.
फ़िलहाल, इस लाइब्रेरी के साथ सिर्फ़ DART फ़िज़िक्स इंजन काम करता है. इसलिए, ट्यूटोरियल में DART के बारे में बताया जाएगा. इन शुरुआती ट्यूटोरियल को ध्यान में रखा जाएगा:
- शुरुआत: इसमें Ignition Physics लाइब्रेरी के हाई-लेवल आर्किटेक्चर, काम करने वाले फ़िज़िक्स इंजन, और लक्ष्यों के बारे में बताया गया है.
- इंस्टॉलेशन: ऐप्लिकेशन के कॉन्टेक्स्ट के आधार पर, उपयोगकर्ता को ज़रूरी फ़िज़िक्स इंजन इंस्टॉल करने के लिए गाइड करता है. इस ट्यूटोरियल में, किसी खास सिम्युलेशन को अडैप्ट करने के लिए, हर फ़िज़िक्स इंजन प्लग इन के कॉन्फ़िगरेशन के उदाहरण भी दिखाए गए हैं.
- DART प्लग इन का इस्तेमाल: इसमें Gazebo सिम्युलेशन पर DART फ़िज़िक्स इंजन के इस्तेमाल के उदाहरण के बारे में बताया गया है. ट्यूटोरियल में, किसी खास उदाहरण के माहौल में Gazebo सिम्युलेशन के बैक-एंड के तौर पर इस लाइब्रेरी को शुरू करने के लिए, एक सेक्वेंस में निर्देशों और कॉन्फ़िगरेशन को लागू करने का तरीका बताया गया है.
- कस्टम प्लग इन बनाना: नए उपयोगकर्ता या डेवलपर को कन्फ़िगरेशन फ़ाइलों (संभवतः क्लास टेंप्लेट) के कुछ फ़ॉर्म की मदद से, कस्टम फ़िज़िक्स इंजन के आधार पर कस्टम प्लग इन बनाने के लिए गाइड करता है. साथ ही, फ़िज़िक्स इंजन एपीआई और इस लाइब्रेरी एपीआई के बीच इंटरफ़ेस डेवलप करता है. ट्यूटोरियल के आखिर में, कुछ जांचों के बारे में बताया गया है.
- सिम्युलेशन पर कई प्लग इन का इस्तेमाल करना (इस पर चर्चा की ज़रूरत है): इसमें, सिम्युलेशन के उदाहरण के लिए, रनटाइम के दौरान एक साथ कई प्लग इन इस्तेमाल करने का तरीका बताया गया है.
ट्यूटोरियल के स्ट्रक्चर, ब्यौरे, और कॉन्टेंट के बारे में आगे की योजना, कम्यूनिटी बॉन्डिंग पीरियड में बनाई जाएगी. हां, इन ट्यूटोरियल के लेखक को यह पक्का करना चाहिए कि ट्यूटोरियल में बताए गए चरणों को रिपॉज़िटरी में मर्ज करने से पहले, वे सही हों.
एपीआई दस्तावेज़ के लिए, इस लाइब्रेरी के लिए Google C++ दस्तावेज़ स्टाइल का इस्तेमाल किया जा सकता है. उदाहरण के लिए, सभी क्लास में क्लास लेवल की जानकारी होनी चाहिए. इसके अलावा, सभी सार्वजनिक फ़ंक्शन के दस्तावेज़ में उनकी जानकारी, उनके सभी आर्ग्युमेंट, संभावित रिटर्न वैल्यू और अपवाद शामिल होने चाहिए. सबसे अहम क्लास (उदाहरण के लिए, dartsim::RetrieveWorld, Feature वगैरह) को सबसे पहले दस्तावेज़ में शामिल किया जाएगा. इससे, टॉप-डाउन वाले आसान तरीके से काम करने में मदद मिलेगी. दस्तावेज़ के स्टाइल और क्लास की अहम पहचान के बारे में, कम्यूनिटी बॉन्डिंग पीरियड में बातचीत की जाएगी.
माइलस्टोन
इस सेक्शन में, प्रोजेक्ट के बताए गए लक्ष्यों को पूरा करने के लिए, शुरुआती समयसीमा तय की जाती है. समय की योजना इस तरह से बनाई जाती है:
17 अगस्त से 13 सितंबर: कम्यूनिटी बॉन्डिंग:
- प्रोजेक्ट के दायरे और ट्यूटोरियल की प्लानिंग के साथ-साथ, लेखक और मेंटर, दोनों से जुड़ी उम्मीदों को तय करने के लिए मीटिंग सेट अप करें.
- Ignition Physics के सोर्स कोड के बारे में पूरी जानकारी पाएं.
14 सितंबर से 31 अक्टूबर: ऊपर बताए गए ट्यूटोरियल ड्राफ़्ट करें. इसके लिए, लेखक और मेंटर के बीच मीटिंग के ज़रिए, ट्यूटोरियल को बार-बार बेहतर बनाया जाएगा.
1 नवंबर से 30 नवंबर: सबसे ज़रूरी क्लास के लिए एपीआई दस्तावेज़ लिखें और Doxygen का इस्तेमाल करके दस्तावेज़ को कंपाइल करें.
1 दिसंबर से 5 दिसंबर: प्रोजेक्ट रिपोर्ट लिखें.
GSoD 2020 के बाद: मुझे अपने काम को बेहतर बनाने और उसे बनाए रखने के लिए, Ignition Robotics से जुड़े रहना है.
अंतिम नोट
Ignition Physics के होम पेज पर मौजूद, README.md फ़ाइल में बदलाव करना ज़रूरी है. ऐसा इसलिए, क्योंकि apt-get का इस्तेमाल करके बाइनरी इंस्टॉल करने की सुविधा, Ubuntu 18.04 पर काम नहीं करती. गलत फ़ॉर्मैटिंग की वजह से, सोर्स इंस्टॉल सेक्शन में भी बदलाव करना होगा.