रोबोट सॉफ्टवेयर: Difference between revisions

From Vigyanwiki
No edit summary
 
(18 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[रोबोट]] सॉफ्टवेयर [[कंप्यूटर प्रोग्रामिंग]] या निर्देशों का समूह है जो एक [[मशीन|यांत्रिक उपकरण]] और इलेक्ट्रॉनिक सिस्टम को बताता है कि क्या कार्य करना है, जिसे एक साथ रोबोट के रूप में जाना जाता है। रोबोट सॉफ्टवेयर का उपयोग स्वायत्त कार्यों को करने के लिए किया जाता है। प्रोग्रामिंग रोबोट को आसान बनाने के लिए अनेक सॉफ्टवेयर प्रणाली और फ्रेमवर्क प्रस्तावित किए गए हैं।
[[रोबोट]] सॉफ्टवेयर [[कंप्यूटर प्रोग्रामिंग]] या निर्देशों का समूह है जो एक [[मशीन|यांत्रिक उपकरण]] और इलेक्ट्रॉनिक सिस्टम को बताता है कि क्या कार्य करना है, जिसे एक साथ रोबोट के रूप में जाना जाता है। रोबोट सॉफ्टवेयर का उपयोग स्वायत्त कार्यों को करने के लिए किया जाता है। प्रोग्रामिंग रोबोट को सरल बनाने के लिए अनेक सॉफ्टवेयर प्रणाली और रूपरेखा (फ्रेमवर्क) प्रस्तावित किए गए हैं।


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


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


जिग 1 पर जाएं
  Go to Jig 1  


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


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


प्रायः डेटा और प्रोग्राम रोबोट कंट्रोलर मेमोरी के भिन्न-भिन्न अनुभागों में उपस्थित होते हैं। किसी प्रोग्राम को बदले बिना और इसके विपरीत डेटा को बदल सकता है। उदाहरण के लिए, कोई एक ही जिग1 का उपयोग करके एक अलग प्रोग्राम लिख सकता है या जिग1 का उपयोग करने वाले प्रोग्राम को बदले बिना उसकी स्थिति को समायोजित कर सकता है।
प्रायः डेटा और प्रोग्राम रोबोट कंट्रोलर मेमोरी के भिन्न-भिन्न अनुभागों में उपस्थित होते हैं। किसी प्रोग्राम को बदले बिना और इसके विपरीत डेटा को बदल सकता है। उदाहरण के लिए, कोई एक ही जिग1 का उपयोग करके एक अलग प्रोग्राम लिख सकता है या जिग1 का उपयोग करने वाले प्रोग्राम को बदले बिना उसकी स्थिति को समायोजित कर सकता है।
Line 21: Line 21:
रोबोट सॉफ़्टवेयर की अत्यधिक सांपत्तिक प्रकृति के कारण, रोबोट हार्डवेयर के अधिकांश निर्माता अपना स्वयं का सॉफ़्टवेयर भी प्रदान करते हैं। हालांकि यह अन्य स्वचालित नियंत्रण प्रणालियों में असामान्य नहीं है, रोबोटों के लिए प्रोग्रामिंग विधियों के मानकीकरण की कमी कुछ चुनौतियों को प्रस्तुत करती है। उदाहरण के लिए, औद्योगिक रोबोट के 30 से अधिक विभिन्न निर्माता हैं, इसलिए 30 विभिन्न रोबोट प्रोग्रामिंग भाषाओं की भी आवश्यकता है। विभिन्न रोबोटों के बीच पर्याप्त समानताएं हैं कि प्रत्येक निर्माता की सांपत्तिक भाषा को सीखे बिना रोबोट प्रोग्रामिंग की वैविध्यपूर्ण ज्ञान प्राप्त करना संभव है।<ref>{{Cite news|url=http://coro.etsmtl.ca/blog/?p=529|title=The future of robot off-line programming|date=2015-10-25|newspaper=CoRo Blog|access-date=2017-01-03}}</ref>
रोबोट सॉफ़्टवेयर की अत्यधिक सांपत्तिक प्रकृति के कारण, रोबोट हार्डवेयर के अधिकांश निर्माता अपना स्वयं का सॉफ़्टवेयर भी प्रदान करते हैं। हालांकि यह अन्य स्वचालित नियंत्रण प्रणालियों में असामान्य नहीं है, रोबोटों के लिए प्रोग्रामिंग विधियों के मानकीकरण की कमी कुछ चुनौतियों को प्रस्तुत करती है। उदाहरण के लिए, औद्योगिक रोबोट के 30 से अधिक विभिन्न निर्माता हैं, इसलिए 30 विभिन्न रोबोट प्रोग्रामिंग भाषाओं की भी आवश्यकता है। विभिन्न रोबोटों के बीच पर्याप्त समानताएं हैं कि प्रत्येक निर्माता की सांपत्तिक भाषा को सीखे बिना रोबोट प्रोग्रामिंग की वैविध्यपूर्ण ज्ञान प्राप्त करना संभव है।<ref>{{Cite news|url=http://coro.etsmtl.ca/blog/?p=529|title=The future of robot off-line programming|date=2015-10-25|newspaper=CoRo Blog|access-date=2017-01-03}}</ref>


कई निर्माताओं के रोबोट को नियंत्रित करने की एक विधि [[पोस्ट प्रोसेसर]] और [[ऑफ-लाइन प्रोग्रामिंग (रोबोटिक्स)]] सॉफ्टवेयर का उपयोग करना है। इस पद्धति से, एक सार्वभौमिक प्रोग्रामिंग भाषा जैसे कि [[पायथन (प्रोग्रामिंग भाषा)]] से ब्रांड-विनिर्दिष्ट रोबोट प्रोग्रामिंग भाषा को नियंत्रित करना संभव है।<ref>{{Cite web|url=https://www.robodk.com/offline-programming|title=Offline programming - RoboDK|last=RoboDK|website=www.robodk.com|access-date=2017-01-03}}</ref> '''हालाँकि, एक रोबोट नियंत्रक के लिए निश्चित ऑफ़लाइन कोड को संकलित और अपलोड करना रोबोटिक सिस्टम को राज्य के बारे में जागरूक होने की अनुमति नहीं देता है, इसलिए यह अपनी गति को अनुकूलित नहीं कर सकता है और पर्यावरण परिवर्तन के रूप में ठीक हो सकता है।''' किसी भी रोबोट के लिए एकीकृत समयोचित अनुकूली नियंत्रण वर्तमान में कुछ भिन्न तृतीय-पक्ष उपकरणों के साथ संभव है।
कई निर्माताओं के रोबोट को नियंत्रित करने की एक विधि [[पोस्ट प्रोसेसर]] और [[ऑफ-लाइन प्रोग्रामिंग (रोबोटिक्स)]] सॉफ्टवेयर का उपयोग करना है। इस पद्धति से, एक सार्वभौमिक प्रोग्रामिंग भाषा जैसे कि [[पायथन (प्रोग्रामिंग भाषा)]] से ब्रांड-विनिर्दिष्ट रोबोट प्रोग्रामिंग भाषा को नियंत्रित करना संभव है।<ref>{{Cite web|url=https://www.robodk.com/offline-programming|title=Offline programming - RoboDK|last=RoboDK|website=www.robodk.com|access-date=2017-01-03}}</ref> जबकि रोबोट नियंत्रक, रोबोटिक सिस्टम की स्थिति के बारे में निश्चित ऑफ़लाइन कोड को संकलित और अपलोड करने व सूचित करने की अनुमति नहीं देता है इसलिए यह अपनी गति को अनुकूलित नहीं कर सकता है तथा पर्यावरण परिवर्तन के रूप में ठीक हो सकता है। किसी भी रोबोट के लिए एकीकृत समयोचित अनुकूली नियंत्रण वर्तमान में कुछ भिन्न तृतीय-पक्ष उपकरणों के साथ संभव है।


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


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


=== स्क्रिप्टिंग भाषाएं ===
=== लिपिन्यास (स्क्रिप्टिंग) भाषाएं ===


एक स्क्रिप्टिंग भाषा एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसका उपयोग सॉफ़्टवेयर एप्लिकेशन को नियंत्रित करने के लिए किया जाता है, और वास्तविक समय में व्याख्या की जाती है, या पहले से संकलित होने के बजाय फ़्लाई पर अनुवादित की जाती है। एक स्क्रिप्टिंग भाषा एक सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषा हो सकती है या यह किसी एप्लिकेशन या सिस्टम प्रोग्राम को चलाने के लिए उपयोग किए जाने वाले विशिष्ट कार्यों तक सीमित हो सकती है। कुछ स्क्रिप्टिंग भाषाएं, जैसे कि [[रोबोलॉजिक्स]], में रजिस्टरों में रहने वाले डेटा ऑब्जेक्ट होते हैं, और प्रोग्राम प्रवाह निर्देशों की सूची, या निर्देश सेट का प्रतिनिधित्व करता है, जिसका उपयोग रोबोट को प्रोग्राम करने के लिए किया जाता है।
एक स्क्रिप्टिंग भाषा एक उच्च-स्तरीय प्रोग्रामिंग भाषा है जिसका उपयोग सॉफ़्टवेयर एप्लिकेशन को नियंत्रित करने के लिए किया जाता है, और इसकी व्याख्या वास्तविक समय में की जाती है या अग्रिम रूप से संकलित होने के स्थान पर "फ्लाई पर अनुवादित" की जाती है। एक स्क्रिप्टिंग भाषा एक सामान्य-उद्देश्य वाली प्रोग्रामिंग भाषा हो सकती है या यह किसी अनुप्रयोग या सिस्टम प्रोग्राम को चलाने के लिए उपयोग किए जाने वाले विशिष्ट कार्यों तक सीमित हो सकती है। कुछ स्क्रिप्टिंग भाषाएं, जैसे कि [[रोबोलॉजिक्स]], में रजिस्टरों में रहने वाले डेटा ऑब्जेक्ट होते हैं और प्रोग्राम फ्लो निर्देशों की सूची या निर्देशों के समूह का प्रतिनिधित्व करता है जो रोबोट को प्रोग्राम करने के लिए उपयोग किया जाता है।
{| class="wikitable"
{| class="wikitable"
|+Programming languages in industrial robotics<ref>{{cite web|title=Robot programming languages|url=http://fabryka-robotow.pl/2015/01/programming-languages-to-control-robot/|website=Fabryka robotów|access-date=8 February 2015|ref=Robotics_languages}}</ref>
|+औद्योगिक रोबोटिक्स में प्रोग्रामिंग भाषाएं<ref>{{cite web|title=Robot programming languages|url=http://fabryka-robotow.pl/2015/01/programming-languages-to-control-robot/|website=Fabryka robotów|access-date=8 February 2015|ref=Robotics_languages}}</ref>
!Robot brand
!रोबोट ब्रांड
!Language name
!भाषा का नाम
|-
|-
|ABB
|ए बी बी
|[[RAPID (programming language)|RAPID]]
|[[RAPID (programming language)|रैपिड]]
|-
|-
|Comau
|कोमाउ
|PDL2
|पीडीएल2
|-
|-
|Fanuc
|फनुक
|[[Karel (programming language)|Karel]]
|[[Karel (programming language)|करेल]]
|-
|-
|Kawasaki
|कावासाकी
|AS
|एएस
|-
|-
|Kuka
|कूका
|KRL
|केआरएल
|-
|-
|[[Stäubli]]
|[[Stäubli|स्टैबली]]
|VAL3
|वेरिएबल असेंबली भाषा (तृतीया)
|-
|-
|Yaskawa
|यास्कावा
|Inform
|सूचित करना
|}
|}
प्रोग्रामिंग भाषाओं को आम तौर पर डेटा संरचनाओं और [[एल्गोरिदम]] को खरोंच से बनाने के लिए डिज़ाइन किया गया है, जबकि स्क्रिप्टिंग भाषाओं को जोड़ने, या "ग्लूइंग", घटकों और निर्देशों को एक साथ जोड़ने के लिए अधिक अभिप्रेत है। नतीजतन, स्क्रिप्टिंग भाषा निर्देश सेट आमतौर पर प्रोग्राम कमांड की एक सुव्यवस्थित सूची है जो प्रोग्रामिंग प्रक्रिया को सरल बनाने और तेजी से अनुप्रयोग विकास प्रदान करने के लिए उपयोग की जाती है।
प्रोग्रामिंग भाषाओं को प्रायः डेटा संरचनाओं और [[एल्गोरिदम|कलन विधि]] को अप्रतिबन्धित बनाने के लिए रूपित किया जाता है, जबकि स्क्रिप्टिंग भाषाओं को एक साथ जोड़ने या "ग्लूइंग" घटकों और निर्देशों के लिए अधिक लक्षित किया जाता है। परिणामस्वरूप, स्क्रिप्टिंग भाषा निर्देश समूह प्रायः प्रोग्राम कमांड की एक सुव्यवस्थित सूची है जो प्रोग्रामिंग प्रक्रिया को सरल बनाने और तेजी से अनुप्रयोग विकास प्रदान करने के लिए उपयोग की जाती है।
 
=== समांतरवाद भाषाएं ===
 
एक और रोचक पद्धति उल्लेखनीय है। सभी रोबोटिक अनुप्रयोगों को समानता और घटना-आधारित प्रोग्रामिंग की आवश्यकता होती है। जिस स्थान पर रोबोट एक ही समय में दो या दो से अधिक काम करता है, वह स्थान समांतरवाद के नाम से जाना जाता है। इसके लिए उपयुक्त हार्डवेयर और सॉफ्टवेयर की आवश्यकता होती है। अधिकांश प्रोग्रामिंग भाषाएं समानता और इसके साथ आने वाली जटिलता को संभालने के लिए थ्रेड्स या जटिल अमूर्त वर्गों पर निर्भर करती हैं, जैसे साझा संसाधनों तक समवर्ती पहुंच। [[URBI|यूआरबीआई]] भाषा शब्दार्थ के मूल में समानता और घटनाओं को एकीकृत करके उच्च स्तर की अमूर्तता प्रदान करता है।
 
<syntaxhighlight lang="forth">
: PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;
</syntaxhighlight>
 
उपरोक्त कोड<code>हेड पैन</code>और<code>हेड टिल्ट</code> मोटरों को समानांतर में ले जाएगा जिससे रोबोट हेड, रोबोट द्वारा देखे जाने पर कैमरे द्वारा लिए गए वीडियो पर दिखाई देने वाले मानव चेहरे का अनुसरण कर सके।
 
 
 
 
 
 
 


=== समानांतर भाषाएं ===


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


<वाक्यविन्यास लैंग = urbiscript>
  whenever(face.Visible)
{
  headPan.val  += camera.xfov * face.x
  &
    headTilt.val += camera.yfov * face.y
}
</वाक्यविन्यास हाइलाइट>


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


== रोबोट एप्लीकेशन सॉफ्टवेयर ==
== रोबोट एप्लीकेशन सॉफ्टवेयर ==


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


=== सुरक्षा विचार ===
=== सुरक्षा विचार ===


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


== यह भी देखें ==
== यह भी देखें ==


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


== संदर्भ ==
== संदर्भ ==
Line 175: Line 185:
* [http://www.robotics.org/bookstore-prod.cfm?category_id=118&product_id=269/ ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/RIA R15.06-1992)]
* [http://www.robotics.org/bookstore-prod.cfm?category_id=118&product_id=269/ ANSI/RIA R15.06-1999 American National Standard for Industrial Robots and Robot Systems - Safety Requirements (revision of ANSI/RIA R15.06-1992)]


{{Robotics}}
[[Category:Collapse templates|Robot Software]]
 
[[Category:Created On 16/02/2023|Robot Software]]
{{DEFAULTSORT:Robot Software}}[[Category: रोबोटिक्स सॉफ्टवेयर | रोबोटिक्स सॉफ्टवेयर ]]  
[[Category:Machine Translated Page|Robot Software]]
 
[[Category:Navigational boxes| ]]
 
[[Category:Navigational boxes without horizontal lists|Robot Software]]
 
[[Category:Pages with script errors|Robot Software]]
[[Category: Machine Translated Page]]
[[Category:Sidebars with styles needing conversion|Robot Software]]
[[Category:Created On 16/02/2023]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready|Robot Software]]
[[Category:Templates generating microformats|Robot Software]]
[[Category:Webarchive template archiveis links]]

Latest revision as of 16:18, 2 March 2023

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

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

परिचय

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

औद्योगिक रोबोट सॉफ्टवेयर

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

 Go to Jig 1 

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

Tell axis 1 move 30 degrees.

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

औद्योगिक रोबोट हेतु प्रोग्रामिंग भाषाओं के उदाहरण

रोबोट सॉफ़्टवेयर की अत्यधिक सांपत्तिक प्रकृति के कारण, रोबोट हार्डवेयर के अधिकांश निर्माता अपना स्वयं का सॉफ़्टवेयर भी प्रदान करते हैं। हालांकि यह अन्य स्वचालित नियंत्रण प्रणालियों में असामान्य नहीं है, रोबोटों के लिए प्रोग्रामिंग विधियों के मानकीकरण की कमी कुछ चुनौतियों को प्रस्तुत करती है। उदाहरण के लिए, औद्योगिक रोबोट के 30 से अधिक विभिन्न निर्माता हैं, इसलिए 30 विभिन्न रोबोट प्रोग्रामिंग भाषाओं की भी आवश्यकता है। विभिन्न रोबोटों के बीच पर्याप्त समानताएं हैं कि प्रत्येक निर्माता की सांपत्तिक भाषा को सीखे बिना रोबोट प्रोग्रामिंग की वैविध्यपूर्ण ज्ञान प्राप्त करना संभव है।[1]

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

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

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

Move to P1 (a general safe position)
Move to P2 (an approach to P3)
Move to P3 (a position to pick the object)
Close gripper
Move to P4 (an approach to P5)
Move to P5 (a position to place the object)
Open gripper
Move to P1 and finish

वेरिएबल असेंबली भाषा पहली रोबोट 'भाषाओं' में से एक थी और इसका उपयोग युनिमेट रोबोट में किया गया था।[3] वेरिएबल असेंबली भाषा के विभिन्न रूपों का उपयोग निपुण प्रौद्योगिकी (एडेप्ट टेक्नोलॉजी) सहित अन्य निर्माताओं द्वारा किया गया है। स्टैबली वर्तमान में वेरिएबल असेंबली भाषा (तृतीया) का उपयोग करता है।

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

PROGRAM PICKPLACE
  1. MOVE P1
  2. MOVE P2
  3. MOVE P3
  4. CLOSEI 0.00
  5. MOVE P4
  6. MOVE P5
  7. OPENI 0.00
  8. MOVE P1
.END

स्टैबली वेरिएबल असेंबली भाषा(तृतीया) प्रोग्राम का उदाहरण:

begin
  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)
end

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

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

Function PickPlace
       Jump P1
       Jump P2
       Jump P3
       On vacuum
       Wait .1
       Jump P4
       Jump P5
       Off vacuum
       Wait .1
       Jump P1
Fend

रोबोफोर्थ (फोर्थ पर आधारित भाषा)।

(रोबोफोर्थ के साथ आप स्थानों के लिए अभिगम दृष्टिकोण (एप्रोच पोजीशन) को निर्दिष्ट कर सकते हैं जिससे आपको पी2 और पी4 की आवश्यकता न पड़े।)

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

अन्य रोबोट प्रोग्रामिंग भाषाएँ

दृश्य प्रोग्रामिंग भाषा

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

लिपिन्यास (स्क्रिप्टिंग) भाषाएं

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

औद्योगिक रोबोटिक्स में प्रोग्रामिंग भाषाएं[4]
रोबोट ब्रांड भाषा का नाम
ए बी बी रैपिड
कोमाउ पीडीएल2
फनुक करेल
कावासाकी एएस
कूका केआरएल
स्टैबली वेरिएबल असेंबली भाषा (तृतीया)
यास्कावा सूचित करना

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

समांतरवाद भाषाएं

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

: PICKPLACE
P1
P3 GRIP WITHDRAW
P5 UNGRIP WITHDRAW
P1
;

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







रोबोट एप्लीकेशन सॉफ्टवेयर

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

सुरक्षा विचार

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

यह भी देखें

संदर्भ

  1. "The future of robot off-line programming". CoRo Blog. 2015-10-25. Retrieved 2017-01-03.
  2. RoboDK. "Offline programming - RoboDK". www.robodk.com. Retrieved 2017-01-03.
  3. O. Nnaji, Bartholomew (1993). Theory of Automatic Robot Assembly and Programming (1993 ed.). Springer. p. 5. ISBN 978-0412393105. Retrieved 8 February 2015.
  4. "Robot programming languages". Fabryka robotów. Retrieved 8 February 2015.


बाहरी संबंध