रोबोट स्थिर ईथरनेट से लेकर असंगत सेलुलर या सैटेलाइट कनेक्शन तक, अलग-अलग नेटवर्क स्थितियों के साथ सभी प्रकार के स्थानों पर काम करते हैं। जानें कि आप रोबोट और अन्य स्मार्ट मशीनों के लिए gRPC और WebRTC का उपयोग कैसे कर सकते हैं ताकि वे अधिक विश्वसनीय तरीके से संवाद कर सकें।
रोबोट को नियंत्रित करने के लिए gRPC और WebRTC का उपयोग क्यों करें?
मैंने हाल ही में Viam में नई नौकरी शुरू की है, और उनके सिस्टम आर्किटेक्चर के बारे में अधिक जानने के लिए उत्सुक था। कई रोबोटिक्स सिस्टम कम-पावर और कम-बैंडविड्थ डिवाइस से बने होते हैं, या खराब नेटवर्क स्थितियों में काम करते हैं। Viam एक ओपन-सोर्स रोबोटिक्स सॉफ़्टवेयर प्लेटफ़ॉर्म है जिसे विशेष रूप से रोबोट और अन्य स्मार्ट मशीनों को अधिक विश्वसनीय रूप से संवाद करने में मदद करने के लिए डिज़ाइन किया गया था।
यह तेज़, संरचित क्लाइंट-सर्वर संचार के लिए gRPC और मशीनों के बीच सीधे, पीयर-टू-पीयर संचार के लिए WebRTC का उपयोग करता है। आइए gRPC और WebRTC के उपयोग के लाभों को अधिक विस्तार से देखें।
रोबोटिक्स में gRPC और प्रोटोबफ का उपयोग करने के लाभ
रोबोटिक्स के लिए gRPC का उपयोग करने के कई कारण हैं, जैसे कि डेवलपर उत्पादकता और डेवलपर अनुभव में सुधार। हालाँकि, सबसे सम्मोहक कारण यह है कि यह गति के लिए अनुकूलित है, शायद HTTP पर REST API की तुलना में 7-10 गुना अधिक तेज़ है , हल्के प्रोटोबफ मैसेजिंग के साथ।
प्रदर्शन और दक्षता
- एनकोडिंग: प्रोटोबफ कुशल बाइनरी एनकोडिंग प्रदान करता है, जो JSON-RPC की तुलना में कम शक्ति, मेमोरी, कंप्यूट या बैंडविड्थ बाधाओं वाली मशीनों के लिए आदर्श है।
- ट्रांसपोर्ट: HTTP/2 के डिफ़ॉल्ट ट्रांसपोर्ट के साथ, gRPC gRPC-Web और WebRTC के साथ HTTP/1.1 जैसे वैकल्पिक ट्रांसपोर्ट का समर्थन करता है। यह अंतर्निहित ट्रांसपोर्ट तकनीक के लचीलेपन के साथ एक सुसंगत इंटरफ़ेस प्रदान करता है, विशेष रूप से स्ट्रीमिंग के साथ।
Viam API में घटकों और सेवाओं को भाषा-अज्ञेय प्रोटोकॉल बफर (प्रोटोबफ) सेवाओं के रूप में दर्शाया जाता है, और gRPC प्रोटोबफ विधियों को कॉल करते समय प्रोटोबफ संदेशों के परिवहन और संचार के लिए जिम्मेदार होता है।
विशेष रूप से, Viam मशीन भागों और SDK-आधारित अनुप्रयोगों के बीच उच्च-स्तरीय इंटरैक्शन के लिए gRPC का उपयोग करता है, जो संरचित, कम-विलंबता डेटा एक्सचेंज और नियंत्रण आदेशों को सक्षम करता है। यह किए जाने वाले कार्यों को समन्वित करने का एक कुशल तरीका है, जैसे कि कैमरों से पॉइंट क्लाउड को पुनः प्राप्त करना, ऑब्जेक्ट सेगमेंटेशन के लिए डेटा का विश्लेषण करना और रोबोटिक आर्म्स को कंप्यूटेड पोज़ के आधार पर कार्य करने का निर्देश देना।
प्रोटोबफ प्रेषित डेटा के आकार को न्यूनतम करता है, जिससे संचरण के दौरान नेटवर्क बैंडविड्थ की बचत होती है।
रोबोटिक्स में WebRTC के उपयोग के लाभ
रोबोटिक्स में WebRTC का उपयोग करने के कई कारण हैं, जैसे कि सुरक्षा और क्रॉस-प्लेटफ़ॉर्म संगतता। हालाँकि, सबसे सम्मोहक कारण यह है कि यह प्रत्यक्ष कनेक्शन का उपयोग करता है।
सहकर्मी से सहकर्मी संचार
- प्रत्यक्ष : वेबआरटीसी उपकरणों के बीच सीधे कनेक्शन की सुविधा प्रदान करता है, केंद्रीय सर्वर पर निर्भरता को कम करता है और डेटा के पारगमन मार्ग को न्यूनतम करता है।
- नेटवर्क अनुकूलनशीलता : सुचारू प्रदर्शन के लिए नेटवर्क स्थितियों के आधार पर मीडिया गुणवत्ता को समायोजित करता है, जैसे वीडियो स्ट्रीमिंग के लिए।
Viam पीयर-टू-पीयर संचार के लिए WebRTC पर निर्भर करता है, जिससे मशीन के पुर्जों और Viam SDK के बीच सीधे वीडियो और डेटा स्ट्रीम की अनुमति मिलती है। इसका मतलब है कि एक बार प्रारंभिक कनेक्शन स्थापित हो जाने के बाद, आपके डेटा को किसी अन्य मशीन से बात करने के लिए केंद्रीय सर्वर से होकर जाने की लंबी यात्रा करने की आवश्यकता नहीं होती है। यह सेटअप विशेष रूप से जटिल मशीन कॉन्फ़िगरेशन के साथ वास्तविक समय की प्रतिक्रिया और परिचालन दक्षता को अनुकूलित करता है।
वेबआरटीसी प्रत्यक्ष पीयर-टू-पीयर संचार को सक्षम बनाता है, तथा मध्यवर्ती सर्वरों से बचाता है जो विलंब या विफलता के बिंदु उत्पन्न कर सकते हैं।
Viam किस प्रकार gRPC और WebRTC का उपयोग करके पीयर-टू-पीयर रोबोट संचार को सक्षम बनाता है
आइए देखें कि आर्केड क्लॉ गेम के उदाहरण में यह कैसे काम करता है, जो दो मशीन भागों से बना है: एक कैमरा और एक हाथ।
Viam ऐप (app.viam.com) कनेक्शन अनुरोधों को सुनता है, कनेक्शन विवरण भेजता है, और फिर दो साथियों को सीधे संवाद करने देता है। प्रारंभिक कनेक्शन gRPC पर सुगम होते हैं।
एक बार कनेक्ट होने के बाद, मशीन के हिस्से WebRTC पर संचार करते हैं, जिससे SDK और मशीनों के बीच सभी इंटरैक्शन gRPC विधि कॉल का उपयोग करके WebRTC पर हो सकते हैं। दूसरे शब्दों में, gRPC स्कीमा यह तय करती है कि डेटा कैसा दिखता है और इसे कैसे पैक किया जाता है, जबकि WebRTC उस डेटा को एक स्थान से दूसरे स्थान पर पहुँचाने का वास्तविक काम संभालता है।
Viam का उपयोग करके रोबोटिक्स शुरू करें
जबकि आप अपने दम पर एक समान बुनियादी ढांचा बना सकते हैं, वायम यह क्षमता ऑफ-द-शेल्फ रोबोटिक्स सॉफ़्टवेयर के साथ प्रदान करता है। ऑन-मशीन कार्यक्षमता ओपन-सोर्स है और इसे संचालित करना मुफ़्त है। यदि आप अंततः एक बेड़े का प्रबंधन करना शुरू करते हैं, तो यह क्लाउड सेवाओं और डेटा स्टोरेज के लिए उपयोग-आधारित बिलिंग है।
Viam वेब ऐप और SDK को आपकी मशीनों के साथ काम करने में आपकी मदद करने के लिए डिज़ाइन किया गया था। हालाँकि, यदि आप यह जानना चाहते हैं कि पर्दे के पीछे क्या हो रहा है, तो अंतर्निहित Viam gRPC API के साथ काम करने के चरण-दर-चरण निर्देशों के लिए Postman में Viam API सार्वजनिक कार्यक्षेत्र देखें, जिसमें शामिल हैं:
gRPC API कॉल को अधिकृत करना
हार्डवेयर घटकों को नियंत्रित करने के लिए विधियों का प्रयोग करना
सॉफ़्टवेयर सेवाओं के प्रबंधन के लिए विधियों का प्रयोग करना
हो सकता है कि आपके पास रोबोटिक आर्म न हो, लेकिन आप इसे याहूबूम या स्कटल जैसी रोवर जैसी अधिक किफायती मशीन के साथ आज़मा सकते हैं। लोगों को रोबोटिक्स के बारे में जानने में मदद करने के लिए वियाम ने एक ओपन-सोर्स रोवर भी डिज़ाइन किया है।
रोवर को संचालित करने के लिए gRPC और WebRTC का उपयोग करें
आरंभ करने के लिए, नीचे दिए गए पोस्टमैन में चलाएँ बटन पर क्लिक करके स्पिन ए वायम रोवर नमूना संग्रह को अपने स्वयं के कार्यक्षेत्र में फ़ॉर्क करें।
और इन संसाधनों का अनुसरण करें:
- चरण-दर-चरण कोडलैब: Viam के gRPC API के लिए पोस्टमैन ट्यूटोरियल
- प्रत्येक अनुरोध के बारे में अधिक जानकारी के लिए संग्रह दस्तावेज़ ब्राउज़ करें
- वीडियो देखें: Viam gRPC API के साथ रोवर को स्पिन करें
तकनीकी समीक्षा: निक हेहर