विषयसूची:

एफटीसी में घटना-संचालित प्रोग्रामिंग: 4 कदम
एफटीसी में घटना-संचालित प्रोग्रामिंग: 4 कदम

वीडियो: एफटीसी में घटना-संचालित प्रोग्रामिंग: 4 कदम

वीडियो: एफटीसी में घटना-संचालित प्रोग्रामिंग: 4 कदम
वीडियो: Before safety was invented... 2024, नवंबर
Anonim
एफटीसी में घटना-संचालित प्रोग्रामिंग
एफटीसी में घटना-संचालित प्रोग्रामिंग

इस साल, हमारी टीम ने हमारे रोबोट के लिए इवेंट-संचालित सॉफ्टवेयर विकास के साथ काफी काम किया है। इन कार्यक्रमों ने टीम को स्वायत्त कार्यक्रमों और यहां तक कि दोहराने योग्य टेली-ऑप घटनाओं को सटीक रूप से विकसित करने की अनुमति दी है। चूंकि इसके लिए आवश्यक सॉफ़्टवेयर कार्य जटिल है, इसलिए हमने FTC रोबोटों के लिए ईवेंट-संचालित कोड विकसित करने पर प्राप्त ज्ञान को साझा करने का निर्णय लिया।

चरण 1: घटना-संचालित प्रोग्रामिंग क्या है?

सामान्य शब्दों में, टेकोपेडिया के अनुसार, इवेंट-संचालित प्रोग्रामिंग, ऐसे प्रोग्रामों का विकास है जो उपयोगकर्ता इनपुट का जवाब देते हैं। इस अर्थ में, कई कार्यक्रमों को घटना-संचालित माना जाता है, जिसमें एक टीम का टेली-ऑप कार्यक्रम भी शामिल है, जो किसी भी कार्रवाई का संचालन करने के लिए मानव-चालित नियंत्रक से इनपुट पर निर्भर करता है। हालांकि, हमारी टीम जो काम कर रही है, उसके संदर्भ में, इवेंट-संचालित प्रोग्रामिंग विभिन्न इनपुट से सॉफ्टवेयर बनाने के बारे में है; दूसरे शब्दों में, हम नियंत्रकों और सेंसर के इनपुट के आधार पर घटनाओं का दस्तावेजीकरण करते हैं, फिर हम इन घटनाओं को कतारबद्ध कर सकते हैं और रिकॉर्ड की गई घटना को फिर से चलाने के लिए फ़ाइल का उपयोग कर सकते हैं।

हमारे रोबोट के लिए प्रोग्राम विकसित करने की इस पद्धति के कई फायदे हैं:

  • यह हमें सटीक स्वायत्त कार्यक्रम बनाने की अनुमति देता है। चूंकि हम ईवेंट के दौरान रीयल-टाइम में सॉफ़्टवेयर बना रहे हैं, इसलिए एकत्रित और उपयोग किए गए सेंसर मान बहुत सटीक होंगे, क्योंकि वे सीधे मूल ईवेंट से आते हैं।
  • यह हमें जल्दी से स्वायत्त कार्यक्रम बनाने की अनुमति देता है। स्वायत्त कार्यक्रम बनाना उतना ही सरल है जितना कि घटनाओं की एक श्रृंखला को रिकॉर्ड करना और आवश्यकतानुसार घटना को समायोजित करना।
  • यह हमें टेली-ऑप के लिए स्वचालित प्रक्रियाएं बनाने की अनुमति देता है। टेली-ऑप में बार-बार की जाने वाली कार्रवाइयों के लिए, ईवेंट-चालित प्रोग्रामिंग हमें इन क्रियाओं को रिकॉर्ड करने और ड्राइवर द्वारा नियंत्रित मैचों की अवधि के दौरान ईवेंट को एक बटन पर असाइन करने की अनुमति देती है। इन स्वचालित घटनाओं को उनके सटीक निष्पादन की अनुमति देने के लिए सेंसर से प्रभावित किया जा सकता है।

चरण 2: घटना-संचालित प्रोग्रामिंग का तर्क प्रवाह

घटना-संचालित प्रोग्रामिंग का तर्क प्रवाह
घटना-संचालित प्रोग्रामिंग का तर्क प्रवाह

निम्नलिखित एक घटना-संचालित कार्यक्रम के तार्किक प्रवाह को दर्शाता है: लाल एक घटना के निर्माण को दर्शाता है, और नीला घटना की बुलाहट को दर्शाता है। एक घटना बनाने के लिए, रोबोट कार्रवाई के माध्यम से इनपुट का एक क्रम लिया जाता है और घटनाओं के रूप में दर्ज किया जाता है; इन घटनाओं को एक फाइल में लिखा जाता है। किसी ईवेंट को कॉल करने के लिए, उस फ़ाइल को पढ़ा जाता है, और फ़ाइल कोड को रोबोट क्रिया में बदलने के लिए इनपुट को ईवेंट प्रोसेसर को भेजा जाता है।

चरण 3: इवेंट क्रिएटर

घटना निर्माता
घटना निर्माता
घटना निर्माता
घटना निर्माता

इवेंट क्रिएटर्स का इस्तेमाल कई तरह के सेंसर और बटन के आधार पर कार्रवाइयों या "ईवेंट" का दस्तावेज़ीकरण करने के लिए किया जाता है। जैसे ही रोबोट मैदान पर कार्रवाई करता है, एक घटना निर्माता वर्ग समानांतर में उन कार्यों में से प्रत्येक के लिए घटनाओं का निर्माण कर रहा है, एक घटना वर्ग में वर्गीकृत घटना को संदर्भित करता है। बनाए जाने के बाद, ईवेंट को ईवेंट क्लास में ईवेंट की कतार में डाल दिया जाता है: पहला ईवेंट शीर्ष स्थान लेता है, फिर दूसरा ईवेंट शीर्ष स्थान लेता है और इसके अंतर्गत किसी भी ईवेंट को नीचे धकेलता है, और यह तब तक जारी रहता है जब तक कि प्रोग्राम बंद नहीं हो जाता। जब प्रोग्राम बंद हो जाता है, तो ईवेंट मानव-पठनीय प्रारूप फ़ाइल, जैसे कि JSON फ़ाइल में चले जाते हैं। स्वायत्त दिनचर्या को बेहतर ढंग से सुधारने के लिए इस फ़ाइल का उपयोग किया जा सकता है।

ऊपर दिया गया उदाहरण कोड ईवेंट के लिए पैरामीटर सेट करता है, जो इस मामले में IMU सेंसर का उपयोग करके एक मोड़ है। फिर हम इवेंट को इवेंट क्यू में कतारबद्ध करते हैं। अंत में, हम ईवेंट को छोटा कर देते हैं, जो अनिवार्य रूप से ईवेंट को रीसेट कर रहा है ताकि हम इसका उपयोग भविष्य की घटनाओं को कतारबद्ध करने के लिए कर सकें।

चरण 4: इवेंट प्रोसेसर

इवेंट प्रोसेसर
इवेंट प्रोसेसर
इवेंट प्रोसेसर
इवेंट प्रोसेसर

इवेंट क्लासेस इवेंट क्रिएटर क्लास में निर्मित मानव-पठनीय फ़ाइल लेती हैं और जो कुछ भी कतारबद्ध करती है वह इवेंट प्रोसेसर क्लास में उल्लिखित विधियों को कॉल करके करने के लिए कहती है। इवेंट प्रोसेसर क्लास तब रोबोट को बताता है कि किस इवेंट को फिर से खेलना है। चाहे वह एक साधारण "ड्राइव फॉरवर्ड" घटना हो या दूरी, मोड़ और स्ट्राफ से भरी एक जटिल घटना हो, प्रोसेसर इसे दिए गए किसी भी घटना को फिर से चलाएगा। स्वायत्तता के दौरान यह प्रक्रिया बहुत उपयोगी है, क्योंकि एक टीम मिलान से पहले सेंसर और टेली-ऑप क्रियाओं को रिकॉर्ड कर सकती है, फिर ऑटोनॉमस में घटनाओं को फिर से चला सकती है। इस प्रक्रिया को मेमोरी रीप्ले कहा जाता है। यह एक स्वायत्त कार्यक्रम को एक फ़ाइल के माध्यम से 100% विन्यास योग्य होने की अनुमति देता है। एक बार घटना निर्माता और प्रोसेसर स्थापित हो जाने के बाद, एक टीम मानव-पठनीय फ़ाइल के माध्यम से स्वायत्त दिनचर्या को आसानी से बदल सकती है।

उपरोक्त उदाहरण पहले किसी ईवेंट के लिए JSON फ़ाइल की जाँच करके शुरू होता है, और फिर केस स्टेटमेंट का उपयोग करके उस ईवेंट की जाँच करता है कि यह किस प्रकार का ईवेंट है, इस मामले में IMU सेंसर का उपयोग करके एक मोड़। एक बार जब यह बता सकता है कि यह IMU ईवेंट का उपयोग करने की बारी है, तो यह ईवेंट को संसाधित करने से संबंधित है, जिसमें आमतौर पर उस कोड को चलाना शामिल होता है जो ईवेंट से वेरिएबल का उपयोग करके आया था, जो पहले की गई घटना को दोहराने के लिए पास किया गया था।

सिफारिश की: