रोबोवर्क्स रोबोफ्लीट मल्टी-एजंट अल्गोरिदम
तपशील
- उत्पादनाचे नाव: ROBOWORKS
- आवृत्ती: 20240501
- तयार: वेन लिऊ आणि जेनेट लिन
- तारीख: ३१ मे २०२१
उत्पादन माहिती
ROBOWORKS ही एक मल्टी-एजंट प्रणाली आहे जी रोबोट समन्वय आणि संप्रेषणासाठी विविध अल्गोरिदमची अंमलबजावणी करण्यास अनुमती देते.
वारंवार विचारले जाणारे प्रश्न
प्रश्न: जर रोबोट स्वयंचलितपणे वायफायशी कनेक्ट होऊ शकत नसेल तर मी काय करावे?
A: रोबोट आपोआप कनेक्ट होण्यात अयशस्वी झाल्यास, नेटवर्क कार्ड अनप्लग करून पुन्हा जोडण्याचा प्रयत्न करा आणि पुन्हा कनेक्ट करण्याचा प्रयत्न करा.
सारांश
हा दस्तऐवज प्रामुख्याने wheeltec_multi नावाच्या मल्टी-रोबोट फॉर्मेशन फंक्शन पॅकेजचा वापर स्पष्ट करतो.
हा दस्तऐवज चार भागांमध्ये विभागलेला आहे:
- पहिला भाग प्रामुख्याने मल्टी-रोबोट निर्मिती पद्धतीचा परिचय आहे;
- दुसरा भाग प्रामुख्याने ROS मल्टी-मशीन कम्युनिकेशन सेटिंग्जचे वर्णन करतो, ज्यामध्ये ROS कंस्ट्रक्शन मल्टी-मशीन कम्युनिकेशन आणि ROS कम्युनिकेशनच्या प्रक्रियेत येणाऱ्या समस्यांचा समावेश आहे;
- तिसरा भाग प्रामुख्याने मल्टी-मशीन टाइम सिंक्रोनाइझेशनच्या ऑपरेशन चरणांचे वर्णन करतो;
- चौथा भाग मल्टी-मशीन फॉर्मेशन फंक्शन पॅकेजचा विशिष्ट वापर स्पष्ट करतो.
या दस्तऐवजाचा उद्देश मल्टी-एजंट रोबोटिक सिस्टमचा परिचय आहे आणि वापरकर्त्यांना मल्टी-रोबोट निर्मिती प्रकल्प लवकर सुरू करण्यास अनुमती देतो.
मल्टी-एजंट अल्गोरिदमचा परिचय
मल्टी-एजंट निर्मिती अल्गोरिदम
हे ROS पॅकेज फॉर्मेशन ड्राइव्ह दरम्यान सहयोगी नियंत्रणामध्ये मल्टी-एजंट्सची विशिष्ट समस्या सादर करते. हे ट्यूटोरियल या विषयावरील भविष्यातील विकासाचा पाया घालते. फॉर्मेशन कंट्रोल अल्गोरिदम एक अल्गोरिदमचा संदर्भ देते जे एक कार्य करण्यासाठी विशिष्ट निर्मिती तयार करण्यासाठी एकाधिक एजंट्स नियंत्रित करते. सहयोग म्हणजे एखादे कार्य पूर्ण करण्यासाठी विशिष्ट मर्यादा संबंध वापरून एकाधिक एजंट्समधील सहकार्याचा संदर्भ आहे. माजी म्हणून मल्टी-रोबोट फॉर्मेशन ड्राइव्ह घ्याample, collaboration चा अर्थ असा आहे की अनेक रोबोट्स एकत्रितपणे इच्छित निर्मिती तयार करतात. त्याचे सार एक विशिष्ट गणितीय संबंध आहे जे प्रत्येक रोबोटच्या स्थानांमध्ये समाधानी आहे. निर्मिती पद्धती मुख्यतः केंद्रीकृत निर्मिती नियंत्रण आणि वितरित निर्मिती नियंत्रणामध्ये विभागल्या जातात. केंद्रीकृत निर्मिती नियंत्रण पद्धतींमध्ये प्रामुख्याने आभासी रचना पद्धत, ग्राफिकल सिद्धांत पद्धत आणि मॉडेल प्रेडिक्टिव पद्धत यांचा समावेश होतो. वितरित निर्मिती नियंत्रण पद्धतींमध्ये मुख्यतः नेता-अनुयायी पद्धत, वर्तन-आधारित पद्धत आणि आभासी संरचना पद्धत समाविष्ट असते.
हे ROS पॅकेज मल्टी-रोबोट फॉर्मेशन ड्राइव्ह कार्यान्वित करण्यासाठी वितरित निर्मिती नियंत्रण पद्धतीमध्ये लीडर-फॉलोअर पद्धत लागू करते. निर्मितीतील एक रोबोट लीडर म्हणून नियुक्त केला जातो आणि इतर रोबोट्स नेत्याचे अनुसरण करण्यासाठी गुलाम म्हणून नियुक्त केले जातात. अल्गोरिदम विशिष्ट दिशा आणि गतीसह खालील रोबोटद्वारे ट्रॅक करण्यासाठी निर्देशांक सेट करण्यासाठी अग्रगण्य रोबोटच्या हालचालीचा मार्ग वापरतो. ट्रॅकिंग कोऑर्डिनेट्समधील स्थितीतील विचलन दुरुस्त करून, फॉलोअर्स शेवटी फॉलोअर आणि अपेक्षित ट्रॅकिंग निर्देशांक यांच्यातील विचलन शून्यावर कमी करतील जेणेकरून फॉर्मेशन ड्राइव्हची उद्दिष्टे साध्य होतील. अशा प्रकारे, अल्गोरिदम तुलनेने कमी क्लिष्ट आहे.
अडथळा टाळण्याचे अल्गोरिदम
एक सामान्य अडथळा टाळणे अल्गोरिदम कृत्रिम संभाव्य क्षेत्र पद्धत आहे. भौतिक वातावरणात रोबोटची हालचाल ही आभासी कृत्रिम शक्ती क्षेत्रातील हालचाल मानली जाते. सर्वात जवळचा अडथळा LiDAR द्वारे ओळखला जातो. अडथळा रोबोटला प्रतिकर्षण निर्माण करण्यासाठी एक तिरस्करणीय शक्ती क्षेत्र प्रदान करतो आणि लक्ष्य बिंदू रोबोटला गुरुत्वाकर्षण शक्ती निर्माण करण्यासाठी गुरुत्वीय क्षेत्र प्रदान करतो. अशाप्रकारे, ते प्रतिकर्षण आणि आकर्षण यांच्या संयुक्त क्रियेखाली रोबोटच्या हालचालीवर नियंत्रण ठेवते.
हे आरओएस पॅकेज कृत्रिम संभाव्य क्षेत्र पद्धतीवर आधारित सुधारणा आहे. प्रथम, निर्मिती अल्गोरिदम स्लेव्ह फॉलोअरच्या रेखीय आणि कोनीय वेगाची गणना करते. मग तो अडथळा टाळण्याच्या आवश्यकतेनुसार रेखीय आणि कोनीय वेग वाढवतो किंवा कमी करतो. जेव्हा गुलाम अनुयायी आणि अडथळा यांच्यातील अंतर जवळ असते, तेव्हा गुलाम अनुयायातील अडथळ्याची प्रतिकार शक्ती जास्त असते. दरम्यान, रेखीय वेगातील बदल आणि कोनीय वेगातील फरक जास्त आहेत. जेव्हा अडथळा गुलाम अनुयायांच्या समोरील जवळ असतो, तेव्हा स्लेव्ह अनुयायातील अडथळ्याचे तिरस्करण मोठे होते (समोरचे तिरस्करण सर्वात मोठे असते आणि बाजूचे प्रतिकर्षण सर्वात लहान असते). परिणामी, रेषीय वेग आणि कोनीय वेग यांच्यातील फरक जास्त आहेत. कृत्रिम संभाव्य क्षेत्र पद्धतीद्वारे, जेव्हा रोबोट एखाद्या अडथळ्यासमोर प्रतिसाद देणे थांबवू शकतो तेव्हा ते समाधान सुधारते. हे चांगले अडथळे टाळण्याच्या उद्देशाने कार्य करते.
मल्टी-एजंट कम्युनिकेशन सेटअप
मल्टी-एजंट संप्रेषण हे मल्टी-रोबोट निर्मिती पूर्ण करण्यासाठी मुख्य पायऱ्यांपैकी एक आहे. जेव्हा अनेक यंत्रमानवांची सापेक्ष स्थिती अज्ञात असते, तेव्हा रोबोंना एकमेकांची माहिती संप्रेषणाद्वारे सामायिक करणे आवश्यक असते. ROS-वितरित आर्किटेक्चर आणि नेटवर्क संप्रेषण खूप शक्तिशाली आहेत. हे केवळ आंतर-प्रक्रिया संप्रेषणासाठीच नाही तर विविध उपकरणांमधील संप्रेषणासाठी देखील सोयीचे आहे. नेटवर्क कम्युनिकेशनद्वारे, सर्व नोड्स कोणत्याही संगणकावर चालू शकतात. डेटा प्रोसेसिंग सारखी मुख्य कामे होस्टच्या बाजूने पूर्ण केली जातात. विविध सेन्सर्सद्वारे संकलित केलेला पर्यावरणीय डेटा प्राप्त करण्यासाठी स्लेव्ह मशीन जबाबदार आहेत. येथे होस्ट हा व्यवस्थापक आहे जो ROS मध्ये मास्टर नोड चालवतो. सध्याचे मल्टी-एजंट कम्युनिकेशन फ्रेमवर्क नोड मॅनेजर आणि पॅरामीटर मॅनेजर द्वारे एकाधिक रोबोट्समधील संप्रेषण हाताळण्यासाठी आहे.
मल्टी-एजंट संप्रेषण सेट करण्यासाठी पायऱ्या
- त्याच नेटवर्कमध्ये ROS नियंत्रणे सेट करा
- एकाच नेटवर्क अंतर्गत मास्टर/स्लेव्ह ROS नियंत्रणे सेट करण्याचे 2 मार्ग आहेत.
पर्याय १:
मास्टर नोड व्यवस्थापक चालवून मास्टर होस्ट स्थानिक वायफाय तयार करतो. सामान्यतः, मास्टर म्हणून नियुक्त केलेल्या रोबोटपैकी एक हे वायफाय नेटवर्क तयार करतो. इतर यंत्रमानव किंवा आभासी मशीन या वायफाय नेटवर्कमध्ये गुलाम म्हणून सामील होतात.
पर्याय १:
स्थानिक वायफाय नेटवर्क माहिती रिले केंद्र म्हणून तृतीय-पक्ष राउटरद्वारे प्रदान केले जाते. सर्व रोबोट्स एकाच राउटरला जोडलेले आहेत. इंटरनेट कनेक्शनशिवाय राउटर देखील वापरला जाऊ शकतो. मास्टर म्हणून रोबोटपैकी एक निवडा आणि मास्टर नोड व्यवस्थापक चालवा. इतर रोबोट्स गुलाम म्हणून नियुक्त केले जातात आणि मास्टरकडून मास्टर नोड व्यवस्थापक चालवतात.
कोणता पर्याय निवडायचा हा निर्णय तुमच्या प्रकल्पाच्या आवश्यकतांवर अवलंबून आहे. संवाद साधण्यासाठी आवश्यक असलेल्या रोबोट्सची संख्या मोठ्या प्रमाणात नसल्यास, पर्याय 1 ची शिफारस केली जाते कारण ते खर्च वाचवते आणि सेट करणे सोपे आहे. जेव्हा रोबोट्सची संख्या जास्त असते, तेव्हा पर्याय 2 ची शिफारस केली जाते. ROS मास्टर कंट्रोलच्या संगणकीय शक्तीवरील मर्यादा आणि मर्यादित ऑनबोर्ड वायफाय बँडविड्थ सहजपणे विलंब आणि नेटवर्क व्यत्यय आणू शकतात. राउटर सहजपणे या समस्यांचे निराकरण करू शकतो. कृपया लक्षात घ्या की मल्टी-एजंट संप्रेषण करत असताना, जर व्हर्च्युअल मशीन ROS स्लेव्ह म्हणून वापरत असेल, तर त्याचा नेटवर्क मोड ब्रिज मोडवर सेट करणे आवश्यक आहे.
मास्टर/स्लेव्ह पर्यावरण व्हेरिएबल्स कॉन्फिगर करा
सर्व ROS मास्टर्स एकाच नेटवर्कमध्ये आल्यानंतर, मल्टी-एजंट कम्युनिकेशनसाठी पर्यावरण व्हेरिएबल्स सेट करणे आवश्यक आहे. हे पर्यावरण व्हेरिएबल मुख्य निर्देशिकेतील .bashrc फाइलमध्ये कॉन्फिगर केले आहे. लाँच करण्यासाठी gedit ~/.bashrc कमांड चालवा. कृपया लक्षात घ्या की मल्टी-एजंट कम्युनिकेशनमध्ये मास्टर आणि स्लेव्हच्या दोन्ही .bashrc फाइल्स कॉन्फिगर करणे आवश्यक आहे. फाइलच्या शेवटी असलेले IP पत्ते बदलण्याची गरज आहे. आकृती 2-1-4 मध्ये दाखवल्याप्रमाणे ROS_MASTER_URI आणि ROS_HOSTNAME च्या दोन ओळी आहेत. ROS होस्टचे ROS_MASTER_URI आणि ROS_HOSTNAME दोन्ही स्थानिक IP आहेत. ROS स्लेव्ह .bashrc फाइलमधील ROS_MASTER_URI होस्टच्या IP पत्त्यावर बदलणे आवश्यक आहे तर ROS_HOSTNAME हा स्थानिक IP पत्ता आहे.
ROS मल्टी-मशीन कम्युनिकेशन ROS रिलीझ आवृत्तीद्वारे मर्यादित नाही. मल्टी-मशीन संप्रेषणाच्या प्रक्रियेत, खालील गोष्टींबद्दल जागरूक असले पाहिजे:
- आरओएस स्लेव्ह प्रोग्रामचे ऑपरेशन आरओएस मास्टर डिव्हाइसच्या आरओएस मास्टर प्रोग्रामवर अवलंबून असते. स्लेव्ह डिव्हाइसवर स्लेव्ह प्रोग्रॅम कार्यान्वित करण्यापूर्वी आरओएस मास्टर प्रोग्रॅम प्रथम मास्टर डिव्हाइसवर लाँच करणे आवश्यक आहे.
- मल्टी-मशीन कम्युनिकेशनमधील मास्टर आणि स्लेव्ह मशीनचे IP पत्ते समान नेटवर्कमध्ये असणे आवश्यक आहे. याचा अर्थ IP पत्ता आणि सबनेट मास्क एकाच नेटवर्क अंतर्गत आहेत.
- पर्यावरण कॉन्फिगरेशन फाइलमध्ये ROS_HOSTNAME .bashrc ला लोकलहोस्ट वापरण्याची शिफारस केलेली नाही. विशिष्ट IP पत्ता वापरण्याची शिफारस केली जाते.
- स्लेव्ह आयपी ॲड्रेस योग्यरित्या सेट केलेला नसल्यास, स्लेव्ह डिव्हाइस अद्याप ROS मास्टरमध्ये प्रवेश करू शकतो परंतु नियंत्रण माहिती इनपुट करू शकत नाही.
- व्हर्च्युअल मशीन मल्टी-एजंट कम्युनिकेशनमध्ये भाग घेत असल्यास, त्याचा नेटवर्क मोड ब्रिज मोडवर सेट करणे आवश्यक आहे. नेटवर्क कनेक्शनसाठी स्थिर आयपी निवडला जाऊ शकत नाही.
- मल्टी-मशीन संप्रेषण करू शकत नाही view किंवा स्थानिक पातळीवर अस्तित्वात नसलेल्या संदेश डेटा प्रकाराच्या विषयांची सदस्यता घ्या.
- रोबोट्समधील संवाद यशस्वी झाला आहे की नाही हे सत्यापित करण्यासाठी तुम्ही लिटल टर्टल सिम्युलेशन डेमो वापरू शकता:
- a. सद्गुरुकडून पळा
- rescore #launch ROS सेवा
- rostrum turtles turtlesim_node #launch turtles इंटरफेस
- b. दासापासून पळा
- turtles rerun turtle_teleop_key #कासवांसाठी कीबोर्ड कंट्रोल नोड लाँच करा
- a. सद्गुरुकडून पळा
जर तुम्ही स्लेव्हवरील कीबोर्डवरून कासवाच्या हालचाली हाताळू शकत असाल, तर याचा अर्थ मास्टर/स्लेव्ह संवाद यशस्वीरित्या स्थापित झाला आहे.
ROS मध्ये स्वयंचलित वायफाय कनेक्शन
होस्ट नेटवर्क किंवा राउटर नेटवर्कशी आपोआप कनेक्ट होण्यासाठी रोबोटला कसे कॉन्फिगर करावे हे खालील प्रक्रिया स्पष्ट करतात.
जेटसन नॅनोसाठी स्वयंचलित वायफाय कनेक्शन सेटअप
- जेटसन नॅनोला VNC रिमोट टूलद्वारे किंवा थेट संगणक स्क्रीनशी कनेक्ट करा. वरच्या उजव्या कोपर्यात वायफाय चिन्हावर क्लिक करा आणि नंतर "कनेक्शन संपादित करा.." क्लिक करा.
- नेटवर्क कनेक्शनमध्ये + बटण क्लिक करा:
- “एक कनेक्शन प्रकार निवडा” विंडो अंतर्गत, ड्रॉप-डाउन मेनूवर क्लिक करा आणि “तयार करा…” बटणावर क्लिक करा:
- कंट्रोल पॅनलमध्ये, वायफाय पर्यायावर क्लिक करा. “कनेक्शन नेम” आणि SSID फील्डमध्ये जोडण्यासाठी वायफायचे नाव एंटर करा. “मोड” ड्रॉपडाउन मेनूमध्ये “क्लायंट” निवडा आणि “डिव्हाइस” ड्रॉपडाउन मेनूमध्ये “wlan0” निवडा.
- नियंत्रण पॅनेलमध्ये, "सामान्य" पर्यायावर क्लिक करा आणि "या नेटवर्कशी स्वयंचलितपणे कनेक्ट करा..." तपासा. "स्वयं-ॲक्टिव्हेशनसाठी कनेक्शन प्राधान्य" पर्यायामध्ये कनेक्शन प्राधान्य 1 वर सेट करा. "सर्व वापरकर्ते या नेटवर्कशी कनेक्ट होऊ शकतात" पर्याय तपासा. जेव्हा इतर वायफायसाठी "स्वयं-ॲक्टिव्हेशनसाठी कनेक्शन प्राधान्य" मध्ये पर्याय 0 वर सेट केला जातो, तेव्हा याचा अर्थ भूतकाळातील हे पसंतीचे वायफाय नेटवर्क आहे.
- नियंत्रण पॅनेलमधील "वाय-फाय सुरक्षा" पर्यायावर क्लिक करा. "सुरक्षा" फील्डमध्ये "WPA आणि WPA2 वैयक्तिक" निवडा. नंतर "पासवर्ड" फील्डमध्ये WiFi पासवर्ड प्रविष्ट करा.
टीप: जेव्हा वायफाय प्राधान्य 0 वर सेट केले जाते तेव्हा बूट केल्यानंतर रोबोट स्वयंचलितपणे वायफाय नेटवर्कशी कनेक्ट होऊ शकत नसल्यास, ते कमकुवत वायफाय सिग्नलच्या समस्येमुळे होऊ शकते. ही समस्या टाळण्यासाठी, तुम्ही पूर्वी कनेक्ट केलेले सर्व वायफाय पर्याय हटवणे निवडू शकता. फक्त होस्ट किंवा राउटरने तयार केलेले वायफाय नेटवर्क ठेवा. नेटवर्क सेटिंग्ज कंट्रोल पॅनलमधील “IPv4 सेटिंग्ज” पर्यायावर क्लिक करा. "पद्धत" फील्डमधील "मॅन्युअल" पर्याय निवडा. नंतर "Add" वर क्लिक करा, "Address" फील्डमध्ये स्लेव्ह मशीनचा IP पत्ता भरा. "नेटमास्क" फील्डमध्ये "24" भरा. “गेटवे” मध्ये आयपी नेटवर्क विभाग भरा. IP नेटवर्क विभागातील शेवटचे तीन अंक “1” मध्ये बदला. या चरणाचा मुख्य उद्देश IP पत्ता निश्चित करणे हा आहे. हे प्रथमच पूर्ण झाल्यानंतर, नंतर त्याच WIFI शी कनेक्ट करताना IP पत्ता अपरिवर्तित राहील.
सर्व सेटिंग्ज कॉन्फिगर केल्यानंतर, सेटिंग्ज जतन करण्यासाठी "जतन करा" वर क्लिक करा. बचत यशस्वी झाल्यानंतर, रोबोट चालू झाल्यावर होस्ट किंवा राउटरच्या नेटवर्कशी आपोआप कनेक्ट होईल.
टीप:
- येथे सेट केलेला IP पत्ता विभाग 2.1 मधील .bashrc फाइलमध्ये सेट केलेल्या IP पत्त्यासारखाच असणे आवश्यक आहे.
- मास्टर आणि प्रत्येक स्लेव्हचा IP पत्ता अद्वितीय असणे आवश्यक आहे.
- मास्टर आणि स्लेव्ह IP पत्ते समान नेटवर्क विभागातील असणे आवश्यक आहे.
- स्लेव्ह रोबोट चालू होण्यापूर्वी आणि स्वयंचलितपणे वायफाय नेटवर्कशी कनेक्ट होण्यापूर्वी तुम्ही होस्ट किंवा राउटरने वायफाय सिग्नल पाठवण्याची प्रतीक्षा करावी.
- सेटिंग कॉन्फिगर केल्यानंतर, वायफाय चालू असताना रोबोट स्वयंचलितपणे कनेक्ट होऊ शकत नसल्यास, कृपया नेटवर्क कार्ड प्लग आणि अनप्लग करा आणि पुन्हा कनेक्ट करण्याचा प्रयत्न करा.
Raspberry Pi साठी स्वयंचलित वायफाय कनेक्शन सेटअप
रास्पबेरी पाईची प्रक्रिया जेटसन नॅनो सारखीच आहे.
Jetson TX1 साठी स्वयंचलित वायफाय कनेक्शन सेटअप
Jetson TX1 मधील सेटअप जवळजवळ Jetson Nano प्रमाणेच आहे एक अपवाद Jetson TX1 ने नेटवर्क सेटिंग्ज कंट्रोल पॅनेलमधील "डिव्हाइस" मधील "wlan1" चे डिव्हाइस निवडले पाहिजे.
मल्टी-एजंट सिंक्रोनाइझेशन सेटअप
मल्टी-एजंट निर्मिती प्रकल्पामध्ये, मल्टी-एजंट टाइम सिंक्रोनाइझेशन सेटिंग ही एक महत्त्वपूर्ण पायरी आहे. निर्मिती प्रक्रियेत, प्रत्येक रोबोटच्या असिंक्रोनस सिस्टमच्या वेळेमुळे अनेक समस्या उद्भवतील. मल्टी-एजंट टाइम सिंक्रोनाइझेशन दोन परिस्थितींमध्ये विभागले गेले आहे, म्हणजे, ज्या परिस्थितीत मास्टर आणि स्लेव्ह रोबोट दोन्ही नेटवर्कशी कनेक्ट केलेले आहेत आणि ज्या परिस्थितीत दोन्ही नेटवर्कवरून डिस्कनेक्ट झाले आहेत.
यशस्वी मास्टर/स्लेव्ह नेटवर्क कनेक्शन
मल्टी-एजंट संप्रेषण कॉन्फिगर केल्यानंतर, जर मास्टर आणि स्लेव्ह मशीन नेटवर्कशी यशस्वीरित्या कनेक्ट होऊ शकतील, तर ते नेटवर्क वेळ आपोआप सिंक्रोनाइझ करतील. या प्रकरणात, वेळ सिंक्रोनाइझेशन साध्य करण्यासाठी कोणत्याही पुढील क्रियांची आवश्यकता नाही.
नेटवर्क डिस-कनेक्शनचे समस्यानिवारण
मल्टी-एजंट संप्रेषण कॉन्फिगर केल्यानंतर, जर मास्टर आणि स्लेव्ह डिव्हाइस नेटवर्कशी यशस्वीरित्या कनेक्ट होऊ शकत नसतील, तर वेळ मॅन्युअली सिंक्रोनाइझ करणे आवश्यक आहे. वेळ सेटिंग पूर्ण करण्यासाठी आम्ही date कमांड वापरू.
प्रथम, टर्मिनेटर टूल स्थापित करा. टर्मिनेटर टूलमधून, मास्टर आणि स्लेव्हचे कंट्रोल टर्मिनल्स एकाच टर्मिनल विंडोमध्ये ठेवण्यासाठी विंडो स्प्लिटिंग टूल वापरा (स्प्लिट विंडो सेट करण्यासाठी उजवे-क्लिक करा आणि वेगवेगळ्या विंडोमध्ये ssh द्वारे मास्टर आणि स्लेव्ह मशीनमध्ये लॉग इन करा) .
- sudo apt-get install terminator # टर्मिनल विंडो विभाजित करण्यासाठी टर्मिनेटर डाउनलोड करा
वरच्या डावीकडील बटणावर क्लिक करा, [ब्रॉडकास्ट टू ऑल]/[ब्रॉडकास्ट ऑल] पर्याय निवडा आणि खालील कमांड एंटर करा. नंतर मास्टर आणि स्लेव्हसाठी समान वेळ सेट करण्यासाठी टर्मिनेटर टूल वापरा.
- sudo date -s “2022-01-30 15:15:00” # मॅन्युअल वेळ सेटअप
मल्टी-एजंट ROS पॅकेज
आरओएस पॅकेज परिचय
गुलाम नाव सेट करा
wheeltec_multi फंक्शन पॅकेजमध्ये, त्रुटी टाळण्यासाठी प्रत्येक स्लेव्ह रोबोटसाठी एक अद्वितीय नाव सेट करणे आवश्यक आहे. उदाample, slave1 साठी No. 1 आणि slave2 साठी No. 2, इ. वेगवेगळी नावे सेट करण्याचा उद्देश म्हणजे चालणाऱ्या नोड्सचे गट करणे आणि त्यांना वेगवेगळ्या नेमस्पेसने वेगळे करणे. उदाample, स्लेव्ह 1 चा रडार विषय/स्लेव्ह1/स्कॅन आहे आणि स्लेव्ह 1 चा लिडार नोड/स्लेव्ह1/लेसर आहे.
स्लेव्ह कोऑर्डिनेट्स सेट करा
wheeltec_multi पॅकेज सानुकूल फॉर्मेशन्स लागू करू शकते. जेव्हा विविध रचना आवश्यक असतात, तेव्हा फक्त स्लेव्ह रोबोट्सचे इच्छित निर्देशांक सुधारित करा. Slave_x आणि slave_y हे मूळ संदर्भ बिंदू म्हणून मास्टरसह गुलामाचे x आणि y समन्वय आहेत. मास्टरचा पुढचा भाग x समन्वयाची सकारात्मक दिशा आहे आणि डावी बाजू ही y समन्वयाची सकारात्मक दिशा आहे. सेटिंग पूर्ण झाल्यानंतर, गुलामाचा अपेक्षित समन्वय म्हणून TF समन्वय गुलाम1 जारी केला जाईल. एक मास्टर आणि दोन गुलाम असल्यास, खालील रचना सेट केली जाऊ शकते:
- क्षैतिज निर्मिती: तुम्ही डावीकडील स्लेव्हचे निर्देशांक slave_x:0, slave_y: 0.8 आणि उजवीकडील स्लेव्हचे निर्देशांक slave_x:0, slave_y:-0.8 वर सेट करू शकता.
- स्तंभ निर्मिती: एका स्लेव्हचे निर्देशांक: slave_x:-0.8, slave_y:0 आणि दुसऱ्या स्लेव्हचे निर्देशांक: slave_x:-1.8, slave_y:0 वर सेट केले जाऊ शकतात.
- त्रिकोणी निर्मिती: एका गुलामाचे निर्देशांक: slave_x:-0.8, slave_y: 0.8 वर सेट केले जाऊ शकतात आणि दुसऱ्या स्लेव्हचे निर्देशांक: slave_x:-0.8, slave_y:-0.8 वर सेट केले जाऊ शकतात.
इतर रचना आवश्यकतेनुसार सानुकूलित केल्या जाऊ शकतात.
नोंद:
- दोन रोबोटमधील शिफारस केलेले अंतर 0.8 वर सेट केले आहे आणि ते 0.6 पेक्षा कमी नसावे अशी शिफारस केली जाते. गुलाम आणि मास्टरमधील अंतर 2.0 च्या खाली सेट करण्याची शिफारस केली जाते. ते मालकापासून जितके दूर असेल, जेव्हा मास्टर वळत असेल तेव्हा गुलामाची रेषीय गती जास्त असते. कमाल वेगाच्या मर्यादेमुळे, स्लेव्हची गती आवश्यकता पूर्ण न केल्यास तो विचलित होईल. यंत्रमानव निर्मिती अव्यवस्थित होईल.
गुलाम पदाचा आरंभ
- स्लेव्हची प्रारंभिक स्थिती डीफॉल्टनुसार अपेक्षित निर्देशांकांवर असते. प्रोग्राम चालवण्यापूर्वी, प्रारंभ पूर्ण करण्यासाठी स्लेव्ह रोबोटला त्याच्या अपेक्षित निर्देशांकांच्या जवळ ठेवा. आकृती 4-1-3 मध्ये दर्शविल्याप्रमाणे, wheeltec_multi पॅकेजमधील turn_on_wheeltec_robot.launch नावाच्या फाइलमधील pose_setter नोडद्वारे हे कार्य लागू केले जाते.
जर वापरकर्त्याला स्लेव्हची प्रारंभिक स्थिती सानुकूलित करायची असेल, तर त्याला किंवा तिला wheeltec_slave.launch मधील आकृती 4-1-4 मध्ये दर्शविल्याप्रमाणे फक्त slave_x आणि slave_y व्हॅल्यू सेट करणे आवश्यक आहे. slave_x आणि slave_y मूल्ये turn_on_wheeltec_robot.launch वर पास केली जातील आणि pose_setter नोडला नियुक्त केली जातील. प्रोग्राम चालवण्यापूर्वी फक्त रोबोटला सानुकूल स्थितीत ठेवा.
पोझिशन कॉन्फिगरेशन
मल्टी-एजंट निर्मितीमध्ये, सोडवण्याची पहिली समस्या म्हणजे मालक आणि गुलाम यांची स्थिती. मास्टर प्रथम 2D नकाशा तयार करेल. नकाशा तयार केल्यानंतर आणि सेव्ह केल्यानंतर, 2D नेव्हिगेशन पॅकेज चालवा आणि मास्टरची पोझिशनिंग कॉन्फिगर करण्यासाठी 2D नेव्हिगेशन पॅकेजमध्ये अनुकूली मोंटे कार्लो पोझिशनिंग अल्गोरिदम (amcl पोझिशनिंग) वापरा. मास्टर आणि गुलाम एकाच नेटवर्कमध्ये असल्याने आणि समान नोड व्यवस्थापक सामायिक करत असल्याने, मास्टरने 2D नेव्हिगेशन पॅकेजमधून नकाशा लाँच केला आहे, सर्व गुलाम समान नोड व्यवस्थापक अंतर्गत समान नकाशा वापरू शकतात. म्हणून, गुलामाला नकाशा तयार करण्याची आवश्यकता नाही. wheeltec_slave.launch मध्ये, मॉन्टे कार्लो पोझिशनिंग (amcl पोझिशनिंग) चालवा, गुलाम मास्टरने तयार केलेला नकाशा वापरून त्यांची स्थिती कॉन्फिगर करू शकतात.
निर्मिती कशी तयार करावी आणि निर्मिती कशी राखावी
निर्मिती चळवळीच्या प्रक्रियेत, मास्टर चळवळ Rviz, कीबोर्ड, रिमोट कंट्रोल आणि इतर पद्धतींद्वारे नियंत्रित केली जाऊ शकते. स्लेव्ह त्याच्या हालचालीवर नियंत्रण ठेवण्यासाठी आणि निर्मितीचे ध्येय साध्य करण्यासाठी slave_tf_listener नोडद्वारे त्याच्या गतीची गणना करतो. slave_tf_listener नोड नोड गणनेद्वारे जास्त गती टाळण्यासाठी स्लेव्ह गती मर्यादित करते, ज्यामुळे परिणामांची मालिका होईल. विशिष्ट मूल्य wheeltec_slave.launch मध्ये सुधारित केले जाऊ शकते.
फॉर्मेशन अल्गोरिदमचे संबंधित पॅरामीटर्स खालीलप्रमाणे आहेत:
अडथळा टाळण्याची माहिती
मल्टी-एजंट फॉर्मेशनमध्ये, मास्टर अडथळा टाळणे पूर्ण करण्यासाठी move_base नोड वापरू शकतो. तथापि, स्लेव्हचे आरंभीकरण move_base नोड वापरत नाही. या टप्प्यावर, स्लेव्ह प्रोग्राममध्ये multi_avoidance नोडला कॉल करणे आवश्यक आहे. डिफॉल्टनुसार पॅकेजमध्ये अडथळा टाळणारा नोड सक्षम केला जातो. आवश्यक असल्यास, अडथळे टाळणे नोड अक्षम करण्यासाठी "असत्य" वर सेट केले जाऊ शकते.
अडथळा टाळण्याच्या नोडचे काही संबंधित पॅरामीटर्स खालील आकृतीमध्ये दाखवले आहेत, जेथे सुरक्षित_अंतर ही अडथळा सुरक्षित अंतर मर्यादा आहे आणि धोका_अंतर ही अडथळा धोकादायक अंतर मर्यादा आहे. जेव्हा अडथळा सुरक्षित अंतर आणि धोक्याच्या अंतरावर असतो, तेव्हा गुलाम अडथळा टाळण्यासाठी त्याची स्थिती समायोजित करतो. जेव्हा अडथळा धोक्यात असतो तेव्हा गुलाम अडथळ्यापासून दूर जातो.
ऑपरेशन प्रक्रिया
एक्झिक्युशन कमांड एंटर करा
मल्टी-एजंट निर्मिती सुरू करण्यापूर्वी तयारी:
- मास्टर आणि स्लेव्ह एकाच नेटवर्कशी कनेक्ट होतात आणि मल्टी-एजंट कम्युनिकेशन योग्यरित्या सेट करतात
- मास्टर आगाऊ 2D नकाशा तयार करतो आणि तो जतन करतो
- मास्टर नकाशाच्या सुरुवातीच्या बिंदूवर ठेवलेला असतो आणि स्लेव्हला सुरुवातीच्या स्थितीजवळ (डिफॉल्ट स्लेव्ह फॉर्मेशन पोझिशन) जवळ ठेवले जाते.
- Jetson Nano/Raspberry Pi वर दूरस्थपणे लॉग इन केल्यानंतर, वेळ सिंक्रोनाइझेशन करा.
sudo date -s "2022-04-01 15:15:00"
- पायरी 1: मास्टरकडून 2D नकाशा उघडा.
roslaunch turn_on_wheeltec_robot navigation.launch
- पायरी 2: सर्व दासांकडून निर्मिती कार्यक्रम चालवा.
roslaunch wheeltec_multi wheeltec_slave.launch
- पायरी 3: मास्टरकडून कीबोर्ड कंट्रोल नोड उघडा किंवा मास्टर हालचाली रिमोट कंट्रोल करण्यासाठी जॉयस्टिक वापरा.
wheeltec_robot_rc keyboard_teleop.launch पुन्हा लाँच करा
- पायरी 4: (पर्यायी) Rviz कडून रोबोटच्या हालचालींचे निरीक्षण करा.
rviz
टीप:
- प्रोग्राम कार्यान्वित करण्यापूर्वी वेळ सिंक्रोनाइझेशन ऑपरेशन पूर्ण करण्याचे सुनिश्चित करा.
- मल्टी-एजंट फॉर्मेशनचे मास्टर नियंत्रित करताना, कोनीय वेग खूप वेगवान नसावा. शिफारस केलेली रेखीय गती 0.2m/s आहे, कोनीय गती 0.3rad/s खाली आहे. जेव्हा मास्टर वळण घेतो तेव्हा, गुलाम मास्टरपासून जितका दूर असतो, तितकी जास्त रेषीय गती आवश्यक असते. पॅकेजमधील रेखीय गती आणि कोनीय गतीवरील मर्यादेमुळे, जेव्हा स्लेव्ह कार आवश्यक वेगाने पोहोचू शकत नाही, तेव्हा निर्मिती गोंधळलेली असेल. एकूणच, जास्त रेषीय गती रोबोटला सहजपणे नुकसान करू शकते.
- ROS होस्टच्या मर्यादित ऑन-बोर्ड वायफाय बँडविड्थमुळे, गुलामांची संख्या एकापेक्षा जास्त असते तेव्हा, बहु-एजंट संप्रेषणामध्ये लक्षणीय विलंब आणि डिस्कनेक्शन करणे सोपे होते. राउटर वापरल्याने ही समस्या चांगली सुटू शकते.
- मल्टी-रोबोट निर्मितीचे TF वृक्ष (2 स्लेव्ह) आहे: rqt_tf_tree
- मल्टी-रोबोट निर्मितीचा नोड संबंध आकृती (2 स्लेव्ह) आहे: rqt_graph
कागदपत्रे / संसाधने
![]() | रोबोवर्क्स रोबोफ्लीट मल्टी-एजंट अल्गोरिदम [pdf] वापरकर्ता मॅन्युअल रोबोफ्लीट मल्टी एजंट अल्गोरिदम, रोबोफ्लीट, मल्टी एजंट अल्गोरिदम, एजंट अल्गोरिदम, अल्गोरिदम |