रोबोट सॉफ्टवेयर

रोबोट सॉफ्टवेयर कंप्यूटर प्रोग्रामिंग या निर्देशों का समूह है जो एक यांत्रिक उपकरण और इलेक्ट्रॉनिक सिस्टम को बताता है कि क्या कार्य करना है, जिसे एक साथ रोबोट के रूप में जाना जाता है। रोबोट सॉफ्टवेयर का उपयोग स्वायत्त कार्यों को करने के लिए किया जाता है। प्रोग्रामिंग रोबोट को आसान बनाने के लिए अनेक सॉफ्टवेयर प्रणाली और फ्रेमवर्क प्रस्तावित किए गए हैं।

कुछ रोबोट सॉफ़्टवेयर का उद्देश्य बुद्धिमान यांत्रिक उपकरणों को विकसित करना है। सामान्य कार्यों में प्रतिक्रिया, नियंत्रण सिद्धांत, पाथफाइंडिंग, डेटा फ़िल्टरिंग, पता लगाना और क्लाउड रोबोटिक्स सम्मिलित हैं।

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

औद्योगिक रोबोट सॉफ्टवेयर
औद्योगिक रोबोट के लिए सॉफ्टवेयर में डेटा ऑब्जेक्ट और निर्देशों की सूची होती है, जिसे प्रोग्राम फ्लो (निर्देशों की सूची) के रूप में जाना जाता है। उदाहरण के लिए,

जिग 1 पर जाएं

यह जिग1 नाम के पोजिशनल डेटा पर जाने के लिए रोबोट को निर्देश है। बेशक, उदाहरण के लिए कार्यक्रमों में निहित डेटा भी हो सकता है

अक्ष 1 को 30 डिग्री पर चलने के लिए कहें।

डेटा और प्रोग्राम आमतौर पर रोबोट कंट्रोलर मेमोरी के अलग-अलग सेक्शन में रहते हैं। कोई प्रोग्राम को बदले बिना और इसके विपरीत डेटा को बदल सकता है। उदाहरण के लिए, कोई एक ही जिग1 का उपयोग करके एक अलग प्रोग्राम लिख सकता है या जिग1 का उपयोग करने वाले प्रोग्राम को बदले बिना उसकी स्थिति को समायोजित कर सकता है।

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

प्रकाशित रोबोट प्रोग्रामिंग भाषाओं के कुछ उदाहरण नीचे दिखाए गए हैं।

सादा अंग्रेजी में कार्य:

P1 पर जाएं (एक सामान्य सुरक्षित स्थिति) P2 पर जाएं (P3 के लिए एक दृष्टिकोण) P3 पर जाएं (ऑब्जेक्ट लेने की स्थिति) ग्रिपर बंद करें P4 पर जाएं (P5 के लिए एक दृष्टिकोण) P5 पर जाएं (ऑब्जेक्ट को रखने की स्थिति) ओपन ग्रिपर P1 पर जाएँ और समाप्त करें

परिवर्तनीय विधानसभा भाषा पहली रोबोट 'भाषाओं' में से एक थी और इसका इस्तेमाल युनिमेट रोबोट में किया गया था। VAL के विभिन्न रूपों का उपयोग निपुण प्रौद्योगिकी सहित अन्य निर्माताओं द्वारा किया गया है। Stäubli वर्तमान में VAL3 का उपयोग करता है।

उदाहरण कार्यक्रम:

कार्यक्रम पिकप्लेस 1. मूव पी1 2. P2 को मूव करें 3. मूव पी3 4. क्लोसी 0.00 5. P4 को मूव करें 6. मूव पी5 7. ओपनी 0.00 8. मूव पी1 ।अंत

स्टैबली VAL3 प्रोग्राम का उदाहरण:

शुरू movej(p1,tGripper,mNomSpeed) movej(appro(p3,trAppro),tGripper,mNomSpeed) movel(p3,tGripper,mNomSpeed) close(tGripper) movej(appro(p5,trAppro),tGripper,mNomSpeed) movel(p5,tGripper,mNomSpeed) open(tGripper) movej(p1,tGripper,mNomSpeed) अंत

trAppro कार्तीय परिवर्तन चर है। यदि हम एप्रो कमांड के साथ उपयोग करते हैं, तो हमें पी 2 और पी 4 पॉइंट सिखाने की आवश्यकता नहीं है, लेकिन हम प्रक्षेपवक्र पीढ़ी के लिए पिक और प्लेस की स्थिति के लिए एक दृष्टिकोण को गतिशील रूप से बदलते हैं।

एप्सन आरसी+ (वैक्यूम पिकअप के लिए उदाहरण)

फंक्शन पिकप्लेस P1 कूदो P2 कूदो P3 कूदो निर्वात पर रुको .1 कूदो P4       P5 कूदो निर्वात बंद रुको .1 P1 कूदो रोकना

रोबोउल्लिखित (FORTH पर आधारित भाषा)। <वाक्यविन्यास लैंग = आगे>
 * पिकप्लेस

पी 1 P3 ग्रिप वापस लेना P5 अनग्रिप वापस लेना पी 1  (रोबोफोर्थ के साथ आप स्थानों के लिए एप्रोच पोजीशन निर्दिष्ट कर सकते हैं ताकि आपको P2 और P4 की आवश्यकता न पड़े।)

जाहिर है, जब तक ग्रिपर पूरी तरह से बंद नहीं हो जाता, तब तक रोबोट को अगली चाल जारी नहीं रखनी चाहिए। पुष्टि या अनुमत समय क्लोसेई और जीआरआईपी के उपरोक्त उदाहरणों में निहित है जबकि ऑन वैक्यूम कमांड को संतोषजनक सक्शन सुनिश्चित करने के लिए समय की देरी की आवश्यकता होती है।

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

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

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

<वाक्यविन्यास लैंग = urbiscript> जब भी (चेहरा। दृश्यमान) {  हेडपैन.वैल += कैमरा.एक्सएफओवी * फेस.एक्स और हेडटिल्ट.वैल += कैमरा.यफोव * फेस.वाई } 

उपरोक्त कोड को स्थानांतरित करेगा  और   जब भी रोबोट द्वारा कोई चेहरा देखा जाता है तो उसके कैमरे द्वारा लिए गए वीडियो पर दिखाई देने वाले मानव चेहरे का अनुसरण करने के लिए रोबोट सिर बनाने के लिए समानांतर में मोटरें।

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

सुरक्षा विचार
प्रोग्रामिंग त्रुटियां एक गंभीर सुरक्षा विचार का प्रतिनिधित्व करती हैं, विशेष रूप से बड़े औद्योगिक रोबोटों में। औद्योगिक रोबोटों की शक्ति और आकार का मतलब है कि अगर गलत तरीके से प्रोग्राम किया गया या असुरक्षित तरीके से इस्तेमाल किया गया तो वे गंभीर चोट पहुंचाने में सक्षम हैं। औद्योगिक रोबोटों के द्रव्यमान और उच्च गति के कारण, स्वचालित संचालन के दौरान रोबोट के कार्य क्षेत्र में मानव का रहना हमेशा असुरक्षित होता है। सिस्टम अप्रत्याशित समय पर गति शुरू कर सकता है और एक इंसान कई स्थितियों में जल्दी से प्रतिक्रिया करने में असमर्थ होगा, भले ही ऐसा करने के लिए तैयार हो। इस प्रकार, भले ही सॉफ्टवेयर प्रोग्रामिंग त्रुटियों से मुक्त हो, औद्योगिक रोबोट को मानव श्रमिकों या मानव संपर्क के लिए सुरक्षित बनाने के लिए बहुत सावधानी बरतनी चाहिए, जैसे भागों को लोड करना या उतारना, आंशिक जाम को साफ़ करना, या रखरखाव करना। ANSI/RIA R15.06-1999 औद्योगिक रोबोट और रोबोट सिस्टम के लिए अमेरिकी राष्ट्रीय मानक - रोबोटिक इंडस्ट्रीज एसोसिएशन की सुरक्षा आवश्यकताएँ (ANSI/ R15.06-1992 का संशोधन) पुस्तक रोबोट सुरक्षा पर स्वीकृत मानक है। इसमें औद्योगिक रोबोटों के डिजाइन, और कारखाने के तल पर औद्योगिक रोबोटों के कार्यान्वयन या एकीकरण और उपयोग दोनों के लिए दिशानिर्देश शामिल हैं। सुरक्षा नियंत्रकों, शिक्षण मोड के दौरान अधिकतम गति, और भौतिक बाधाओं के उपयोग जैसी कई सुरक्षा अवधारणाएँ शामिल हैं .

यह भी देखें

 * व्यवहार आधारित रोबोटिक्स और सदस्यता वास्तुकला
 * विकासात्मक रोबोटिक्स
 * एपिजेनेटिक रोबोटिक्स
 * विकासवादी रोबोटिक्स
 * औद्योगिक रोबोट
 * संज्ञानात्मक रोबोटिक्स
 * रोबोट नियंत्रण
 * रोबोलॉजिक्स
 * स्वचालित योजना और शेड्यूलिंग
 * साइबरनेटिक्स
 * कृत्रिम होशियारी
 * रोबोटिक्स सूट
 * telerobotics / telepresence
 * रोबोटिक ऑटोमेशन सॉफ्टवेयर
 * झुंड रोबोटिक्स प्लेटफॉर्म

बाहरी संबंध

 * Linux Devices.
 * ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/RIA R15.06-1992)