रोबोवर्क्स-लोगो

रोबोवर्क्स रोबोफ्लीट मल्टी-एजेंट एल्गोरिदम

ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-उत्पाद

विशेष विवरण

  • उत्पाद का नाम: रोबोवर्क्स
  • संस्करण: 20240501
  • तैयारकर्ता: वेन लियू और जैनेट लिन
  • दिनांक: 1 मई 2024

उत्पाद की जानकारी

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

पूछे जाने वाले प्रश्न

प्रश्न: यदि रोबोट स्वचालित रूप से वाई-फाई से कनेक्ट नहीं हो पाता है तो मुझे क्या करना चाहिए?

उत्तर: यदि रोबोट स्वचालित रूप से कनेक्ट होने में विफल रहता है, तो नेटवर्क कार्ड को अनप्लग करके पुनः प्लग करें और पुनः कनेक्ट करने का प्रयास करें।

सारांश

यह दस्तावेज़ मुख्य रूप से wheeltec_multi नामक बहु-रोबोट निर्माण फ़ंक्शन पैकेज के उपयोग की व्याख्या करता है।

यह दस्तावेज़ चार भागों में विभाजित है:

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

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

मल्टी-एजेंट एल्गोरिदम का परिचय

बहु-एजेंट निर्माण एल्गोरिदम

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

बाधा परिहार एल्गोरिदम

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

मल्टी-एजेंट संचार सेटअप

मल्टी-एजेंट संचार मल्टी-रोबोट निर्माण को पूरा करने के लिए महत्वपूर्ण चरणों में से एक है। जब कई रोबोटों की सापेक्ष स्थिति अज्ञात होती है, तो कनेक्शन की स्थापना को सुविधाजनक बनाने के लिए रोबोट को संचार के माध्यम से एक-दूसरे की जानकारी साझा करने की आवश्यकता होती है। ROS-वितरित वास्तुकला और नेटवर्क संचार बहुत शक्तिशाली हैं। यह न केवल अंतर-प्रक्रिया संचार के लिए बल्कि विभिन्न उपकरणों के बीच संचार के लिए भी सुविधाजनक है। नेटवर्क संचार के माध्यम से, सभी नोड्स किसी भी कंप्यूटर पर चल सकते हैं। डेटा प्रोसेसिंग जैसे मुख्य कार्य होस्ट साइड पर पूरे किए जाते हैं। स्लेव मशीनें विभिन्न सेंसर द्वारा एकत्र किए गए पर्यावरणीय डेटा को प्राप्त करने के लिए जिम्मेदार हैं। यहां होस्ट वह प्रबंधक है जो ROS में मास्टर नोड चलाता है। वर्तमान मल्टी-एजेंट संचार ढांचा एक नोड प्रबंधक और एक पैरामीटर प्रबंधक के माध्यम से कई रोबोटों के बीच संचार को संभालने के लिए है।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (1)

बहु-एजेंट संचार स्थापित करने के चरण

  • उसी नेटवर्क में ROS नियंत्रण स्थापित करें
    • एक ही नेटवर्क के अंतर्गत मास्टर/स्लेव ROS नियंत्रण स्थापित करने के 2 तरीके हैं।

विकल्प 1:

मास्टर होस्ट मास्टर नोड मैनेजर चलाकर एक स्थानीय वाईफ़ाई बनाता है। आम तौर पर, मास्टर के रूप में नामित रोबोट में से एक इस वाईफ़ाई नेटवर्क को बनाता है। अन्य रोबोट या वर्चुअल मशीन इस वाईफ़ाई नेटवर्क में स्लेव के रूप में शामिल होते हैं।

विकल्प 2:

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

मास्टर/स्लेव पर्यावरण चर कॉन्फ़िगर करें

सभी ROS मास्टर्स के एक ही नेटवर्क में होने के बाद, मल्टी-एजेंट संचार के लिए पर्यावरण चर सेट करने की आवश्यकता होती है। यह पर्यावरण चर मुख्य निर्देशिका में .bashrc फ़ाइल में कॉन्फ़िगर किया गया है। इसे लॉन्च करने के लिए gedit ~/.bashrc कमांड चलाएँ। कृपया ध्यान दें कि मल्टी-एजेंट संचार में मास्टर और स्लेव दोनों की .bashrc फ़ाइलों को कॉन्फ़िगर करने की आवश्यकता है। फ़ाइल के अंत में जो बदलने की आवश्यकता है वह है IP पते। ROS_MASTER_URI और ROS_HOSTNAME की दो पंक्तियाँ हैं, जैसा कि चित्र 2-1-4 में दिखाया गया है। ROS होस्ट के ROS_MASTER_URI और ROS_HOSTNAME दोनों स्थानीय IP हैं। ROS स्लेव .bashrc फ़ाइल में ROS_MASTER_URI को होस्ट के IP पते में बदलने की आवश्यकता है जबकि ROS_HOSTNAME स्थानीय IP पते के रूप में बना रहता है।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (2)

ROS मल्टी-मशीन संचार ROS रिलीज़ संस्करण द्वारा सीमित नहीं है। मल्टी-मशीन संचार की प्रक्रिया में, किसी को निम्नलिखित बातों का ध्यान रखना चाहिए:

  1. ROS स्लेव प्रोग्राम का संचालन ROS मास्टर डिवाइस के ROS मास्टर प्रोग्राम पर निर्भर करता है। ROS मास्टर प्रोग्राम को स्लेव डिवाइस पर स्लेव प्रोग्राम निष्पादित करने से पहले मास्टर डिवाइस पर पहले लॉन्च करना चाहिए।
  2. मल्टी-मशीन संचार में मास्टर और स्लेव मशीनों के आईपी पते एक ही नेटवर्क में होने चाहिए। इसका मतलब है कि आईपी पता और सबनेट मास्क एक ही नेटवर्क के अंतर्गत हैं।
  3. पर्यावरण कॉन्फ़िगरेशन फ़ाइल .bashrc में ROS_HOSTNAME को localhost का उपयोग करने के लिए अनुशंसित नहीं किया जाता है। एक विशिष्ट IP पते का उपयोग करने की अनुशंसा की जाती है।
  4. यदि स्लेव IP पता सही ढंग से सेट नहीं किया गया है, तो स्लेव डिवाइस अभी भी ROS मास्टर तक पहुंच सकता है, लेकिन नियंत्रण जानकारी इनपुट नहीं कर सकता है।
  5. यदि वर्चुअल मशीन मल्टी-एजेंट संचार में भाग लेती है, तो इसके नेटवर्क मोड को ब्रिज मोड पर सेट किया जाना चाहिए। नेटवर्क कनेक्शन के लिए स्टेटिक आईपी का चयन नहीं किया जा सकता है।
  6. बहु-मशीन संचार संभव नहीं है view या ऐसे संदेश डेटा प्रकार के विषयों की सदस्यता लें जो स्थानीय रूप से मौजूद नहीं हैं।
  7. आप यह सत्यापित करने के लिए लिटिल टर्टल सिमुलेशन डेमो का उपयोग कर सकते हैं कि रोबोटों के बीच संचार सफल है या नहीं:
    • a. मालिक से भागो
      • रीस्कोर # लॉन्च ROS सेवाएं
      • रोस्ट्रम टर्टल टर्टलसिम_नोड #लॉन्च टर्टल इंटरफ़ेस
    • bगुलाम से भागो
      • टर्टल को पुनः चलाएँ turtle_teleop_key #टर्टल के लिए कीबोर्ड नियंत्रण नोड लॉन्च करें

यदि आप कीबोर्ड से स्लेव पर टर्टल मूवमेंट में हेरफेर कर सकते हैं, तो इसका मतलब है कि मास्टर/स्लेव संचार सफलतापूर्वक स्थापित हो गया है।

ROS में स्वचालित वाईफ़ाई कनेक्शन

नीचे दी गई प्रक्रियाएं बताती हैं कि रोबोट को होस्ट नेटवर्क या राउटर नेटवर्क से स्वचालित रूप से कनेक्ट करने के लिए कैसे कॉन्फ़िगर किया जाए।

जेटसन नैनो के लिए स्वचालित वाईफ़ाई कनेक्शन सेटअप

  1. जेटसन नैनो को VNC रिमोट टूल या सीधे कंप्यूटर स्क्रीन से कनेक्ट करें। ऊपरी दाएँ कोने पर वाईफ़ाई आइकन पर क्लिक करें और फिर "कनेक्शन संपादित करें" पर क्लिक करें।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (3)
  2. नेटवर्क कनेक्शन में + बटन पर क्लिक करें:ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (4)
  3. “कनेक्शन प्रकार चुनें” विंडो के अंतर्गत, ड्रॉप-डाउन मेनू पर क्लिक करें और “बनाएँ…” बटन पर क्लिक करें:ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (5)
  4. कंट्रोल पैनल में, Wi-Fi विकल्प पर क्लिक करें। “कनेक्शन नाम” और SSID फ़ील्ड में कनेक्ट करने के लिए Wi-Fi नाम दर्ज करें। “मोड” ड्रॉपडाउन मेनू में “क्लाइंट” चुनें और “डिवाइस” ड्रॉपडाउन मेनू में “wlan0” चुनें।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (6)
  5. कंट्रोल पैनल में, “सामान्य” विकल्प पर क्लिक करें और “स्वचालित रूप से इस नेटवर्क से कनेक्ट करें…” को चेक करें। “स्वचालित सक्रियण के लिए कनेक्शन प्राथमिकता” विकल्प में कनेक्शन प्राथमिकता को 1 पर सेट करें। “सभी उपयोगकर्ता इस नेटवर्क से कनेक्ट हो सकते हैं” विकल्प को चेक करें। जब अन्य वाईफ़ाई के लिए “स्वचालित सक्रियण के लिए कनेक्शन प्राथमिकता” में विकल्प 0 पर सेट किया जाता है, तो इसका मतलब है कि यह अतीत में पसंदीदा वाईफ़ाई नेटवर्क है।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (7)
  6. कंट्रोल पैनल में “वाई-फाई सिक्योरिटी” विकल्प पर क्लिक करें। “सिक्योरिटी” फ़ील्ड में “WPA और WPA2 पर्सनल” चुनें। फिर “पासवर्ड” फ़ील्ड में वाई-फाई पासवर्ड डालें।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (8)

टिप्पणी: यदि वाईफ़ाई प्राथमिकता 0 पर सेट होने पर बूट होने के बाद रोबोट स्वचालित रूप से वाईफ़ाई नेटवर्क से कनेक्ट नहीं हो सकता है, तो यह कमजोर वाईफ़ाई सिग्नल की समस्या के कारण हो सकता है। इस समस्या से बचने के लिए, आप अतीत में कनेक्ट किए गए सभी वाईफ़ाई विकल्पों को हटाना चुन सकते हैं। केवल होस्ट या राउटर द्वारा बनाए गए वाईफ़ाई नेटवर्क को ही रखें। नेटवर्क सेटिंग्स कंट्रोल पैनल में "IPv4 सेटिंग्स" विकल्प पर क्लिक करें। "विधि" फ़ील्ड में "मैनुअल" विकल्प चुनें। फिर "जोड़ें" पर क्लिक करें, "पता" फ़ील्ड में स्लेव मशीन का आईपी पता भरें। "नेटमास्क" फ़ील्ड में "24" भरें। "गेटवे" में आईपी नेटवर्क सेगमेंट भरें। आईपी नेटवर्क सेगमेंट के अंतिम तीन अंकों को "1" में बदलें। इस चरण का मुख्य उद्देश्य आईपी पता तय करना है। पहली बार ऐसा पूरा होने के बाद, उसी वाई-फाई से बाद में कनेक्ट होने पर आईपी पता अपरिवर्तित रहेगा।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (9)

सभी सेटिंग्स कॉन्फ़िगर होने के बाद, सेटिंग्स को सहेजने के लिए "सहेजें" पर क्लिक करें। सहेजने के सफल होने के बाद, रोबोट स्वचालित रूप से होस्ट या राउटर के नेटवर्क से कनेक्ट हो जाएगा जब इसे चालू किया जाएगा।

टिप्पणी:

  1. यहां सेट किया गया IP पता अनुभाग 2.1 में .bashrc फ़ाइल में सेट किए गए IP पते के समान होना चाहिए।
  2. मास्टर और प्रत्येक स्लेव का आईपी पता अद्वितीय होना चाहिए।
  3. मास्टर और स्लेव आईपी पते एक ही नेटवर्क सेगमेंट में होने चाहिए।
  4. स्लेव रोबोट को चालू करने और स्वचालित रूप से वाई-फाई नेटवर्क से कनेक्ट करने से पहले आपको होस्ट या राउटर द्वारा वाई-फाई सिग्नल भेजे जाने की प्रतीक्षा करनी होगी।
  5. सेटिंग कॉन्फ़िगर होने के बाद, यदि रोबोट चालू होने पर स्वचालित रूप से वाईफ़ाई से कनेक्ट नहीं हो पाता है, तो कृपया नेटवर्क कार्ड को प्लग-इन करके अनप्लग करें और पुनः कनेक्ट करने का प्रयास करें।

रास्पबेरी पाई के लिए स्वचालित वाईफ़ाई कनेक्शन सेटअप

रास्पबेरी पाई की प्रक्रिया जेटसन नैनो के समान ही है।

जेटसन TX1 के लिए स्वचालित वाईफ़ाई कनेक्शन सेटअप

जेटसन TX1 में सेटअप लगभग जेटसन नैनो के समान ही है, केवल एक अपवाद के साथ कि जेटसन TX1 को नेटवर्क सेटिंग नियंत्रण पैनल में "डिवाइस" में "wlan1" डिवाइस का चयन करना चाहिए।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (10)

मल्टी-एजेंट सिंक्रोनाइजेशन सेटअप

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

सफल मास्टर/स्लेव नेटवर्क कनेक्शन

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

नेटवर्क डिसकनेक्शन का समस्या निवारण

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

सबसे पहले, टर्मिनेटर टूल इंस्टॉल करें। टर्मिनेटर टूल से, मास्टर और स्लेव के कंट्रोल टर्मिनल को एक ही टर्मिनल विंडो में रखने के लिए विंडो स्प्लिटिंग टूल का उपयोग करें (स्प्लिट विंडो सेट करने के लिए राइट-क्लिक करें, और अलग-अलग विंडो में ssh द्वारा मास्टर और स्लेव मशीनों में लॉग इन करें)।

  • sudo apt-get install terminator # टर्मिनल विंडो को विभाजित करने के लिए टर्मिनेटर डाउनलोड करें

ऊपर बाईं ओर बटन पर क्लिक करें, विकल्प [सभी को प्रसारित करें]/[सभी को प्रसारित करें] चुनें, और निम्न कमांड दर्ज करें। फिर मास्टर और स्लेव के लिए एक ही समय सेट करने के लिए टर्मिनेटर टूल का उपयोग करें।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (11)

  • sudo date -s “2022-01-30 15:15:00” # मैनुअल समय सेटअप

मल्टी-एजेंट आरओएस पैकेज

आरओएस पैकेज परिचय

दास नाम सेट करें

व्हीलटेक_मल्टी फ़ंक्शन पैकेज में, त्रुटियों से बचने के लिए प्रत्येक स्लेव रोबोट के लिए एक अद्वितीय नाम सेट करना आवश्यक है। उदाहरण के लिएampले, स्लेव 1 के लिए नंबर 1 और स्लेव 2 के लिए नंबर 2, आदि। अलग-अलग नाम सेट करने का उद्देश्य चल रहे नोड्स को समूहीकृत करना और उन्हें अलग-अलग नामस्थानों द्वारा अलग करना है। उदाहरण के लिएampले, स्लेव 1 का रडार विषय /slave1/scan है, और स्लेव 1 का LiDAR नोड /slave1/laser है।

स्लेव निर्देशांक सेट करें

व्हीलटेक_मल्टी पैकेज कस्टम फॉर्मेशन को लागू कर सकता है। जब अलग-अलग फॉर्मेशन की आवश्यकता होती है, तो बस स्लेव रोबोट के वांछित निर्देशांक को संशोधित करें। Slave_x और Slave_y मूल संदर्भ बिंदु के रूप में मास्टर के साथ स्लेव के x और y निर्देशांक हैं। मास्टर का अगला भाग x निर्देशांक की सकारात्मक दिशा है, और बायाँ भाग y निर्देशांक की सकारात्मक दिशा है। सेटिंग पूरी होने के बाद, स्लेव के अपेक्षित निर्देशांक के रूप में एक TF निर्देशांक स्लेव1 जारी किया जाएगा। यदि एक मास्टर और दो स्लेव हैं, तो निम्नलिखित फॉर्मेशन सेट किया जा सकता है:

  1. क्षैतिज गठन: आप बाईं ओर स्थित स्लेव के निर्देशांक को Slave_x:0, Slave_y: 0.8, तथा दाईं ओर स्थित स्लेव के निर्देशांक को Slave_x:0, Slave_y:-0.8 पर सेट कर सकते हैं।
  2. स्तंभ निर्माण: एक स्लेव के निर्देशांक इस प्रकार सेट किए जा सकते हैं: स्लेव_x:-0.8, स्लेव_y:0, तथा दूसरे स्लेव के निर्देशांक इस प्रकार सेट किए जा सकते हैं: स्लेव_x:-1.8, स्लेव_y:0.
  3. त्रिकोणीय संरचना: एक दास के निर्देशांक को इस प्रकार सेट किया जा सकता है: दास_x:-0.8, दास_y: 0.8, तथा दूसरे दास के निर्देशांक को इस प्रकार सेट किया जा सकता है: दास_x:-0.8, दास_y:-0.8।

अन्य संरचनाओं को आवश्यकतानुसार अनुकूलित किया जा सकता है।

टिप्पणी:

  • दो रोबोट के बीच अनुशंसित दूरी 0.8 पर सेट की गई है, और इसे 0.6 से कम नहीं होने की सलाह दी जाती है। दास और मास्टर के बीच की दूरी 2.0 से कम सेट करने की सिफारिश की जाती है। यह मास्टर से जितना दूर होगा, मास्टर के मुड़ने पर दास की रैखिक गति उतनी ही अधिक होगी। अधिकतम गति की सीमा के कारण, यदि यह आवश्यकताओं को पूरा नहीं करता है तो दास की गति विचलित हो जाएगी। रोबोट का निर्माण अव्यवस्थित हो जाएगा।

दास स्थिति का आरंभीकरण

  1. स्लेव की प्रारंभिक स्थिति डिफ़ॉल्ट रूप से अपेक्षित निर्देशांक पर होती है। प्रोग्राम चलाने से पहले, आरंभीकरण को पूरा करने के लिए स्लेव रोबोट को उसके अपेक्षित निर्देशांक के करीब रखें। यह फ़ंक्शन wheeltec_multi पैकेज में turn_on_wheeltec_robot.launch नामक फ़ाइल में pose_setter नोड द्वारा कार्यान्वित किया जाता है, जैसा कि चित्र 4-1-3 में दिखाया गया है।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (12)

यदि उपयोगकर्ता स्लेव की प्रारंभिक स्थिति को अनुकूलित करना चाहता है, तो उसे केवल स्लेव_x और स्लेव_y मान सेट करने की आवश्यकता है जैसा कि wheeltec_slave.launch में चित्र 4-1-4 में दिखाया गया है। स्लेव_x और स्लेव_y मान turn_on_wheeltec_robot.launch को पास किए जाएंगे और pose_setter नोड को असाइन किए जाएंगे। प्रोग्राम चलाने से पहले रोबोट को कस्टम स्थिति में रखें।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (13)

स्थिति विन्यास

मल्टी-एजेंट संरचना में, हल की जाने वाली पहली समस्या मास्टर और स्लेव की स्थिति है। मास्टर सबसे पहले 2D मानचित्र का निर्माण करेगा। मानचित्र बनाने और सहेजने के बाद, 2D नेविगेशन पैकेज चलाएँ और मास्टर की स्थिति को कॉन्फ़िगर करने के लिए 2D नेविगेशन पैकेज में अनुकूली मोंटे कार्लो पोजिशनिंग एल्गोरिदम (amcl पोजिशनिंग) का उपयोग करें। चूँकि मास्टर और स्लेव एक ही नेटवर्क में हैं और एक ही नोड मैनेजर को साझा करते हैं, इसलिए मास्टर ने 2D नेविगेशन पैकेज से मानचित्र लॉन्च किया है, सभी स्लेव एक ही नोड मैनेजर के तहत एक ही मानचित्र का उपयोग कर सकते हैं। इसलिए, स्लेव को मानचित्र बनाने की आवश्यकता नहीं है। wheeltec_slave.launch में, मोंटे कार्लो पोजिशनिंग (amcl पोजिशनिंग) चलाएँ, स्लेव मास्टर द्वारा बनाए गए मानचित्र का उपयोग करके अपनी स्थिति को कॉन्फ़िगर कर सकते हैं।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (14)

गठन कैसे बनाएं और गठन कैसे बनाए रखें

फॉर्मेशन मूवमेंट की प्रक्रिया में, मास्टर मूवमेंट को Rviz, कीबोर्ड, रिमोट कंट्रोल और अन्य तरीकों से नियंत्रित किया जा सकता है। स्लेव अपनी गति को नियंत्रित करने और फॉर्मेशन के लक्ष्य को प्राप्त करने के लिए स्लेव_tf_listener नोड के माध्यम से अपनी गति की गणना करता है। स्लेव_tf_listener नोड नोड गणना द्वारा अत्यधिक गति से बचने के लिए स्लेव गति को सीमित करता है, जो प्रभावों की एक श्रृंखला का कारण होगा। विशिष्ट मान को wheeltec_slave.launch में संशोधित किया जा सकता है।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (15)

गठन एल्गोरिथ्म के प्रासंगिक पैरामीटर निम्नानुसार हैं: ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (16)

बाधा से बचने की जानकारी

मल्टी-एजेंट फॉर्मेशन में, मास्टर बाधा से बचने के लिए move_base नोड का उपयोग कर सकता है। हालाँकि, स्लेव का आरंभीकरण move_base नोड का उपयोग नहीं करता है। इस बिंदु पर, स्लेव प्रोग्राम में multi_avoidance नोड को कॉल करने की आवश्यकता होती है। पैकेज में बाधा से बचने वाला नोड डिफ़ॉल्ट रूप से सक्षम होता है। यदि आवश्यक हो, तो बाधा से बचने वाले नोड को अक्षम करने के लिए परिहार को "गलत" पर सेट किया जा सकता है। ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (17)

बाधा परिहार नोड के कुछ प्रासंगिक पैरामीटर नीचे दिए गए चित्र में दिखाए गए हैं, जहाँ safe_distance बाधा की सुरक्षित दूरी सीमा है, और danger_distance बाधा की खतरनाक दूरी सीमा है। जब बाधा सुरक्षित दूरी और खतरे की दूरी के भीतर होती है, तो दास बाधा से बचने के लिए अपनी स्थिति को समायोजित करता है। जब बाधा खतरे के भीतर होती है, तो दास बाधा से दूर चला जाएगा।ROBOWORKS-रोबोफ्लीट-मल्टी-एजेंट-एल्गोरिदम-FIG- (18)

संचालन प्रक्रिया

निष्पादन आदेश दर्ज करें

मल्टी-एजेंट निर्माण शुरू करने से पहले की तैयारियाँ:

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

सुडो दिनांक -s “2022-04-01 15:15:00”

  • स्टेप 1: मास्टर से 2D मानचित्र खोलें.

roslaunch turn_on_wheeltec_robot navigation.launch

  • स्टेप 2: सभी दासों से गठन कार्यक्रम चलाएं।

रोसलॉन्च व्हीलटेक_मल्टी व्हीलटेक_स्लेव.लॉन्च

  • स्टेप 3: मास्टर से कीबोर्ड नियंत्रण नोड खोलें या मास्टर मूवमेंट को रिमोट कंट्रोल करने के लिए जॉयस्टिक का उपयोग करें।

पुनः लॉन्च wheeltec_robot_rc keyboard_teleop.launch

  • स्टेप 4: (वैकल्पिक) Rviz से रोबोट की गतिविधियों का निरीक्षण करें।

आरवीज़

टिप्पणी: 

  1. प्रोग्राम को निष्पादित करने से पहले समय सिंक्रनाइज़ेशन ऑपरेशन पूरा करना सुनिश्चित करें।
  2. मल्टी-एजेंट फॉर्मेशन के मास्टर को नियंत्रित करते समय, कोणीय वेग बहुत तेज़ नहीं होना चाहिए। अनुशंसित रैखिक गति 0.2 मीटर/सेकंड है, कोणीय गति डिग्री 0.3 रेड/सेकंड से कम है। जब मास्टर मोड़ ले रहा होता है, तो स्लेव मास्टर से जितना दूर होता है, उतनी ही अधिक रैखिक गति की आवश्यकता होती है। पैकेज में रैखिक गति और कोणीय गति की सीमा के कारण, जब स्लेव कार आवश्यक गति तक नहीं पहुंच पाती है, तो फॉर्मेशन अव्यवस्थित हो जाएगा। कुल मिलाकर, अत्यधिक रैखिक गति रोबोट को आसानी से नुकसान पहुंचा सकती है।
  3. जब स्लेव की संख्या एक से ज़्यादा होती है, तो ROS होस्ट के सीमित ऑन-बोर्ड वाई-फाई बैंडविड्थ के कारण, मल्टी-एजेंट संचार में महत्वपूर्ण देरी और डिस्कनेक्शन होना आसान होता है। राउटर का उपयोग करके इस समस्या को अच्छी तरह से हल किया जा सकता है।
  4. बहु-रोबोट संरचना (2 दास) का TF वृक्ष है: rqt_tf_tree
  5. बहु-रोबोट संरचना (2 दास) का नोड संबंध आरेख है: rqt_graph

दस्तावेज़ / संसाधन

रोबोवर्क्स रोबोफ्लीट मल्टी-एजेंट एल्गोरिदम [पीडीएफ] उपयोगकर्ता पुस्तिका
रोबोफ्लीट मल्टी एजेंट एल्गोरिदम, रोबोफ्लीट, मल्टी एजेंट एल्गोरिदम, एजेंट एल्गोरिदम, एल्गोरिदम

संदर्भ

एक टिप्पणी छोड़ें

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड चिह्नित हैं *