URBI
उरबी सी + + में लिखा गया एक ओपन-सोर्स क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर कंप्यूटिंग प्लेटफॉर्म है जिसका उपयोग रोबोटिक्स और जटिल प्रणालियों के लिए अनुप्रयोगों को विकसित करने के लिए किया जाता है। उरबी यूओबजेक्ट वितरित सी + + घटक वास्तुकला पर आधारित है। इसमें अर्बीस्क्रिप्ट आर्केस्ट्रेशन भाषा भी शामिल है जो एक समानांतर और घटना-संचालित लिपि भाषा है। यूऑबजेक्ट घटकों को अर्बिस्क्रिप्ट में प्लग किया जा सकता है और देशी वस्तुओं के रूप में दिखाई दे सकता है जिन्हें उनकी बातचीत और डेटा आदान-प्रदान को निर्दिष्ट करने के लिए स्क्रिप्टेड किया जा सकता है। यूऑब्जेक्ट्स को अर्बिस्क्रिप्ट इंटरप्रेटर से जोड़ा जा सकता है, या "रिमोट" मोड में स्वायत्त प्रक्रियाओं के रूप में निष्पादित किया जा सकता है। अर्बिस्क्रिप्ट भाषा 2003 में जीन-क्रिस्टोफ बेली द्वारा ई. एन. एस. टी. ए., पेरिस की संज्ञानात्मक रोबोटिक्स प्रयोगशाला में बनाई गई थी। 2006 में स्थापित गोस्ताई कंपनी के माध्यम से इसे उद्योग में सक्रिय रूप से और आगे विकसित किया गया है। यह अब एक मुक्त स्रोत परियोजना है, जिसमें एक बीएसडी लाइसेंस है, जो गिटहब पर उपलब्ध है। अर्बिस्क्रिप्ट भाषा को एक आर्केस्ट्रेशन स्क्रिप्ट भाषा के रूप में सबसे अच्छा वर्णित किया जा सकता हैः वीडियो गेम में लुआ की तरह, अर्बिस्क्रिप्ट का उपयोग सी + + घटकों को एक कार्यात्मक व्यवहार में एक साथ जोड़ने के लिए किया जा सकता है, सीपीयू-गहन एल्गोरिथमिक भाग को सी + + पर छोड़ दिया जाता है और व्यवहार स्क्रिप्टिंग भाग को स्क्रिप्ट भाषा पर छोड़ दिया जाता है जो अधिक लचीला, बनाए रखने में आसान है और कार्यक्रम निष्पादन के दौरान गतिशील बातचीत की अनुमति देता है। एक आर्केस्ट्रेशन भाषा के रूप में, अर्बिस्क्रिप्ट भाषा शब्दार्थ के हिस्से के रूप में समानांतरता और घटना-आधारित प्रोग्रामिंग करके एक कार्यक्रम में कुछ उपयोगी अमूर्तता भी लाता है। समानांतर व्यवहारों की स्क्रिप्टिंग और घटनाओं के प्रति प्रतिक्रियाएं अधिकांश रोबोटिक और जटिल एआई अनुप्रयोगों की मुख्य आवश्यकताएं हैं, इसलिए यूर्बिस्क्रिप्ट (और पूरा यूआरबी प्लेटफॉर्म) ऐसे अनुप्रयोगों के लिए अच्छी तरह से अनुकूल है। भाषा विशेषताएँ समानांतरता और घटना-आधारित प्रोग्रामिंग प्रोटोटाइप-आधारित प्रोग्रामिंग सी + + जैसे वाक्यविन्यास जावा और सी + + आधारित घटक वास्तुकला (यूओबजेक्ट) वस्तुओं को जोड़ने या उन्हें दूरस्थ रूप से चलाने की संभावना के साथ क्लाइंट-सर्वर मॉडल वास्तुकला क्रॉस प्लेटफ़ॉर्मः लिनक्स, मैकिनटोश, विंडोज, अन्य। एम्बेडेबल, उरबी विभिन्न प्रोसेसरों पर चल सकता हैः x86, ए. आर. एम., एम. आई. पी. एस., पावर पी. सी., आदि। "टैग" के माध्यम से कार्य नियंत्रण समानांतर प्रोग्रामिंग और घटना-संचालित प्रोग्रामिंग प्रोटोटाइप सी + + वास्तुकला घटकों के समान वाक्य रचनाः सी + +, जावा (यूओबजेक्ट) ऑब्जेक्ट को जोड़ने या दूरस्थ रूप से क्लाइंट-सर्वर मॉडल को निष्पादित करने की क्षमता के साथ ग्राहकों के साथ इंटरफेस जावा और मैटलैब (यूआरबी एसडीके) कई प्लेटफ़ॉर्मः लिनक्स, मैकओएस, विंडोज एनटी, और एम्बेडेड वातावरण (x86, एआरएम, एमआईपीएस, पावरपीसी) उनके नियंत्रण के लिए आदेशों को चिह्नित करना ताकि रोबोट ऑपरेटिंग सिस्टम (आरओएस) का अतुल्यकालिक एकीकरण (संस्करण 2.1) उदाहरण नीचे दिया गया उदाहरण दर्शाता है कि अर्बिस्क्रिप्ट में बॉल ट्रैकिंग एक्शन/धारणा लूप कैसे लिखेंः & चिह्न का उपयोग यह निर्दिष्ट करने के लिए किया जाता है कि दोनों आदेश एक ही समय में शुरू होने चाहिए, इस प्रकार समानांतर में चल रहे हैं। अन्य उल्लेखनीय घटना-संचालित संरचनाओं में शामिल हैं, जो घटना शुरू होने पर एक बार संबंधित कोड को ट्रिगर करता हैः (speech.hear? ("हैलो")) {voice.say ("आप कैसे हैं?") प्रत्येक कमांड या कमांडों का समूह टैग करने योग्य होता है, जो आवश्यकता पड़ने पर बाद में इसे रोकने का एक तरीका प्रदान करता हैः मायटैगः जबकि (सही) प्रतिध्वनि ("यह एक कभी न खत्म होने वाला लूप है"), पर (button.pressed) myTag.stop; कमांड के अंत में अल्पविराम के ऊपर के उदाहरण में नोट करें। यह पूर्ववर्ती कमांड को पृष्ठभूमि में रखेगा, जिससे प्रवाह निष्पादन जारी रहेगा, विशेष रूप से अगले 'एट' कमांड को निष्पादित किया जाएगा। यूओबजेक्ट घटक वास्तुकला यूओबजेक्ट घटक वास्तुकला डेवलपर्स को यूआरबीआई के भीतर किसी भी जावा/सी + + ऑब्जेक्ट को इंटरफेस करने की अनुमति देती है, जिससे चयनित विधियों और विशेषताओं को यूर्बिस्क्रिप्ट में दिखाई देता है, जबकि वास्तव में संकलित कोड होता है। अर्बिस्क्रिप्ट/उरबी पक्ष पर इन विशेषताओं पर किसी भी परिवर्तन के सी + + पक्ष को सूचित करने के लिए वस्तु की किसी भी विशेषता पर विशेष अधिसूचना निर्धारित की जा सकती है। यूऑबजेक्ट सी + + टेम्पलेट का उपयोग किसी भी अनुरोधित विधि को एक इंटरफेस मशीनरी में पारदर्शी रूप से मैप करने के लिए करता है जो प्रकार की जाँच का ध्यान रखता है। एक यू. ओ. ऑब्जेक्ट का उपयोग प्लग मोड में किया जा सकता है यदि यह संकलन समय पर या गतिशील लोडिंग के साथ सीधे यू. आर. बी. आई. से जुड़ा हो। उस स्थिति में, सी + + ऑब्जेक्ट सीधे उरबी मेमोरी को साझा करता है, जिसके परिणामस्वरूप कुशल एकीकरण होता है। यह आम तौर पर समय महत्वपूर्ण घटकों जैसे मोटर या संवेदक चालकों के लिए उपयोग किया जाता है। उसी यूओबजेक्ट का उपयोग दूरस्थ घटक के रूप में बिना संशोधन के भी किया जा सकता है। उस स्थिति में, यह एक स्वायत्त कार्यक्रम बन जाएगा जिसे एक पैरामीटर के रूप में उरबी सर्वर के आईपी पते के साथ निष्पादित किया जाएगा। दोनों ही मामलों में, वस्तु पारदर्शी रूप से शहरी लिपि में एक देशी शहरी लिपि वस्तु के रूप में दिखाई देगी। उरबी वेबॉट्स के साथ संगत पारिस्थितिकी तंत्र रोबोटिक्स सिमुलेटर उरबी के साथ संगत आधिकारिक रोबोट सिमुलेटर है। खिलाड़ी/मंच एकीकरण की सूचना दी गई है, हालांकि यह वर्तमान में जारी नहीं किया गया है। उरबी-फिड रोबोट जारी किए गएः गोस्ताई ओपन जैज़ सेगवे पीटी आइबो ईआरएस-7/ईआरएस-2एक्सएक्स (केवल उरबी 1.2, उरबी 2.3 अल्फा के रूप में उपलब्ध है) आईरोबोट क्रिएट लेगो माइंडस्टॉर्म्स एनएक्सटी एचआरपी-2 (जेआरएल के सदस्यों के लिए प्रतिबंधित रिलीज) नाओ रोबोटिस बायोलॉइड मोबाइल रोबोट पायनियर की घोषणा की गईः सर्वेयर खेपेरा III ई-पक भी देखें रोबोटिक्स सूट प्लेयर प्रोजेक्ट-अनुसंधान और माध्यमिक शिक्षा के बाद रोबोट ऑपरेटिंग सिस्टम (आरओएस) में ओपन-सोर्स रोबोट इंटरफेस संदर्भ बाहरी लिंक उरबी ऑनलाइन दस्तावेज वोंग, विलियम, "गोस्ताई उरबी", "इलेक्ट्रॉनिक डिज़ाइन", 5 अगस्त, 2010। मैककैफ़र्टी, बिली, "क्यू एंड ए ऑफ़ उर्बी, एक रोबोट ओएस", "शारप्रोबोटिका", 16 जुलाई, 2010। ब्लैंकेनहॉर्न, डाना, "आई, ओपन सोर्स रोबोट", "जेडडीनेट", 20 अगस्त, 2010। एकीकृत विकास वातावरण रोबोटिक्स सुइट्स 2003 सॉफ्टवेयर 2003 रोबोटिक्स में