ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट 

ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट

सारांश

हा दस्तऐवज प्रामुख्याने wheeltec_multi नावाच्या मल्टी-रोबोट फॉर्मेशन फंक्शन पॅकेजचा वापर स्पष्ट करतो.

हा दस्तऐवज चार भागांमध्ये विभागलेला आहे:

  • पहिला भाग प्रामुख्याने बहु-रोबोट निर्मिती पद्धतीच्या परिचयाविषयी आहे;
  • दुसरा भाग प्रामुख्याने ROS मल्टी-मशीन कम्युनिकेशन सेटिंग्जचे वर्णन करतो, ज्यामध्ये मल्टी-मशीन कम्युनिकेशनचे ROS बांधकाम आणि ROS कम्युनिकेशनच्या प्रक्रियेत येणाऱ्या समस्यांचा समावेश आहे;
  • तिसरा भाग प्रामुख्याने मल्टी-मशीन टाइम सिंक्रोनाइझेशनच्या ऑपरेशन चरणांचे वर्णन करतो;
  • चौथा भाग मल्टी-मशीन फॉर्मेशन फंक्शन पॅकेजचा विशिष्ट वापर स्पष्ट करतो.

या दस्तऐवजाचा उद्देश मल्टी-एजंट रोबोटिक प्रणालीचा परिचय आहे आणि वापरकर्त्याला मल्टी-रोबोट निर्मिती प्रकल्प लवकर सुरू करण्यास अनुमती देतो.

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

मल्टी-एजंट निर्मिती अल्गोरिदम

हे ROS पॅकेज फॉर्मेशन ड्राइव्ह दरम्यान सहयोगी नियंत्रणामध्ये मल्टी-एजंट्सची विशिष्ट समस्या सादर करते. हे ट्यूटोरियल या विषयावरील भविष्यातील विकासाचा पाया घालते. फॉर्मेशन कंट्रोल अल्गोरिदम एक अल्गोरिदमचा संदर्भ देते जे एक कार्य करण्यासाठी विशिष्ट निर्मिती तयार करण्यासाठी एकाधिक एजंट नियंत्रित करते. सहयोग म्हणजे एखादे कार्य पूर्ण करण्यासाठी विशिष्ट मर्यादा संबंध वापरून एकाधिक एजंट्समधील सहकार्याचा संदर्भ आहे. माजी म्हणून मल्टी-रोबोट फॉर्मेशन ड्राइव्ह घ्याample, collaboration चा अर्थ असा आहे की अनेक रोबोट्स एकत्रितपणे इच्छित निर्मिती तयार करतात. त्याचे सार प्रत्येक रोबोटच्या पोझिशन्स दरम्यान एक विशिष्ट गणितीय संबंध समाधानी आहे. निर्मिती पद्धती मुख्यतः केंद्रीकृत निर्मिती नियंत्रण आणि वितरित निर्मिती नियंत्रणामध्ये विभागल्या जातात. केंद्रीकृत निर्मिती नियंत्रण पद्धतींमध्ये प्रामुख्याने आभासी संरचना पद्धत, ग्राफिकल सिद्धांत पद्धत आणि मॉडेल अंदाज पद्धती यांचा समावेश होतो. वितरीत निर्मिती नियंत्रण पद्धतींमध्ये प्रामुख्याने नेता-अनुयायी पद्धत, वर्तन-आधारित पद्धत आणि आभासी रचना पद्धत यांचा समावेश होतो.

हे ROS पॅकेज मल्टी-रोबोट फॉर्मेशन ड्राइव्ह कार्यान्वित करण्यासाठी वितरित निर्मिती नियंत्रण पद्धतीमध्ये लीडर-फॉलोअर पद्धत लागू करते. निर्मितीतील एक रोबोट लीडर म्हणून नियुक्त केला जातो आणि इतर रोबोट्स नेत्याचे अनुसरण करण्यासाठी गुलाम म्हणून नियुक्त केले जातात. अल्गोरिदम विशिष्ट दिशा आणि गतीसह खालील रोबोटद्वारे ट्रॅक करण्यासाठी निर्देशांक सेट करण्यासाठी अग्रगण्य रोबोटच्या हालचालीचा मार्ग वापरतो. ट्रॅकिंग कोऑर्डिनेट्समधील स्थितीचे विचलन दुरुस्त करून, फॉलोअर्स शेवटी फॉलोअर आणि अपेक्षित ट्रॅकिंग कोऑर्डिनेट्समधील विचलन शून्यावर कमी करतील जेणेकरून फॉर्मेशन ड्राइव्हची उद्दिष्टे साध्य होतील. अशा प्रकारे, अल्गोरिदम तुलनेने कमी क्लिष्ट आहे.

अडथळा टाळण्याचे अल्गोरिदम

एक सामान्य अडथळा टाळणे अल्गोरिदम कृत्रिम संभाव्य फील्ड पद्धत आहे. भौतिक वातावरणात रोबोटची हालचाल ही आभासी कृत्रिम शक्ती क्षेत्रातील हालचाल मानली जाते. सर्वात जवळचा अडथळा LiDAR द्वारे ओळखला जातो. अडथळा रोबोटला प्रतिकर्षण निर्माण करण्यासाठी एक तिरस्करणीय बल क्षेत्र प्रदान करतो आणि लक्ष्य बिंदू रोबोटला गुरुत्वाकर्षण शक्ती निर्माण करण्यासाठी गुरुत्वीय क्षेत्र प्रदान करतो. अशाप्रकारे, ते प्रतिकर्षण आणि आकर्षण यांच्या संयुक्त क्रियेखाली रोबोटच्या हालचालीवर नियंत्रण ठेवते.

हे आरओएस पॅकेज कृत्रिम संभाव्य क्षेत्र पद्धतीवर आधारित सुधारणा आहे. प्रथम, निर्मिती अल्गोरिदम स्लेव्ह फॉलोअरच्या रेखीय आणि कोनीय वेगाची गणना करते. मग तो अडथळा टाळण्याच्या आवश्यकतेनुसार रेखीय आणि कोनीय वेग वाढवतो किंवा कमी करतो. जेव्हा स्लेव्ह अनुयायी आणि अडथळा यांच्यातील अंतर जवळ असते, तेव्हा स्लेव्ह अनुयायातील अडथळ्याचे प्रतिकर्षण बल जास्त असते. दरम्यानच्या काळात रेषीय वेगातील बदल आणि कोनीय वेगातील फरक जास्त आहेत. जेव्हा अडथळा गुलाम अनुयायांच्या समोरील जवळ असतो, तेव्हा स्लेव्ह अनुयायातील अडथळ्याचे तिरस्करण मोठे होते (समोरचे तिरस्करण सर्वात मोठे असते आणि बाजूचे प्रतिकर्षण सर्वात लहान असते). परिणामी, रेषीय वेग आणि कोनीय वेग यांच्यातील फरक जास्त आहेत. कृत्रिम संभाव्य क्षेत्र पद्धतीद्वारे, ते समाधान सुधारते

जेव्हा रोबो अडथळ्यासमोर प्रतिसाद देणे थांबवू शकतो. हे चांगले अडथळे टाळण्याचा उद्देश पूर्ण करते.

मल्टी-एजंट कम्युनिकेशन सेटअप

मल्टी-एजंट संप्रेषण हे मल्टी-रोबोट निर्मिती पूर्ण करण्यासाठी मुख्य पायऱ्यांपैकी एक आहे. जेव्हा अनेक यंत्रमानवांची सापेक्ष स्थिती अज्ञात असते, तेव्हा रोबोंना एकमेकांची माहिती संप्रेषणाद्वारे सामायिक करणे आवश्यक असते. ROS वितरित आर्किटेक्चर आणि नेटवर्क संप्रेषण खूप शक्तिशाली आहेत. हे केवळ आंतर-प्रक्रिया संप्रेषणासाठीच नाही तर विविध उपकरणांमधील संप्रेषणासाठी देखील सोयीचे आहे. नेटवर्क कम्युनिकेशनद्वारे, सर्व नोड्स कोणत्याही संगणकावर चालू शकतात. डेटा प्रोसेसिंग सारखी मुख्य कामे होस्टच्या बाजूने पूर्ण केली जातात. विविध सेन्सर्सद्वारे संकलित केलेला पर्यावरणीय डेटा प्राप्त करण्यासाठी स्लेव्ह मशीन जबाबदार आहेत. येथे होस्ट हा व्यवस्थापक आहे जो ROS मध्ये मास्टर नोड चालवतो. सध्याचे मल्टी-एजंट कम्युनिकेशन फ्रेमवर्क नोड मॅनेजर आणि पॅरामीटर मॅनेजर द्वारे एकाधिक रोबोट्समधील संप्रेषण हाताळण्यासाठी आहे.

मल्टी-एजंट कम्युनिकेशन सेटअप

मल्टी-एजंट संप्रेषण सेट करण्यासाठी पायऱ्या

त्याच नेटवर्कमध्ये ROS नियंत्रणे सेट करा

एकाच नेटवर्क अंतर्गत मास्टर/स्लेव्ह ROS नियंत्रणे सेट करण्याचे 2 मार्ग आहेत.

पर्याय १:

मास्टर नोड व्यवस्थापक चालवून मास्टर होस्ट स्थानिक वायफाय तयार करतो. सामान्यतः, मास्टर म्हणून नियुक्त केलेल्या रोबोटपैकी एक हे वायफाय नेटवर्क तयार करतो. इतर रोबोट किंवा आभासी मशीन या वायफाय नेटवर्कमध्ये गुलाम म्हणून सामील होतात.

पर्याय १:

स्थानिक वायफाय नेटवर्क माहिती रिले केंद्र म्हणून तृतीय-पक्ष राउटरद्वारे प्रदान केले जाते. सर्व रोबोट्स एकाच राउटरला जोडलेले आहेत. इंटरनेट कनेक्शनशिवाय राउटर देखील वापरता येतो. मास्टर म्हणून रोबोटपैकी एक निवडा आणि मास्टर नोड व्यवस्थापक चालवा. इतर रोबोट्स गुलाम म्हणून नियुक्त केले जातात आणि मास्टरकडून मास्टर नोड व्यवस्थापक चालवतात.

कोणता पर्याय निवडायचा हा निर्णय तुमच्या प्रकल्पाच्या आवश्यकतांवर अवलंबून आहे. संवाद साधण्यासाठी आवश्यक असलेल्या रोबोट्सची संख्या जास्त नसल्यास, पर्याय 1 ची शिफारस केली जाते कारण ते खर्च वाचवते आणि ते सेट करणे सोपे आहे. जेव्हा रोबोट्सची संख्या मोठ्या प्रमाणात असते, तेव्हा पर्याय 2 ची शिफारस केली जाते. ROS मास्टर कंट्रोलच्या कंप्युटिंग पॉवरवरील मर्यादा आणि मर्यादित ऑनबोर्ड वायफाय बँडविड्थ सहजपणे विलंब आणि नेटवर्क व्यत्यय आणू शकतात. राउटर सहजपणे या समस्यांचे निराकरण करू शकतो.

कृपया लक्षात घ्या की मल्टी-एजंट संप्रेषण करत असताना, जर व्हर्च्युअल मशीनचा वापर ROS स्लेव्ह म्हणून केला जात असेल, तर त्याचा नेटवर्क मोड ब्रिज मोडवर सेट करणे आवश्यक आहे.

मास्टर/स्लेव्ह पर्यावरण व्हेरिएबल्स कॉन्फिगर करा 

सर्व ROS मास्टर्स एकाच नेटवर्कमध्ये आल्यानंतर, मल्टी-एजंट कम्युनिकेशनसाठी पर्यावरण व्हेरिएबल्स सेट करणे आवश्यक आहे. हे पर्यावरण व्हेरिएबल .bashrc मध्ये कॉन्फिगर केले आहे file मुख्य निर्देशिकेत. लाँच करण्यासाठी gedit ~/.bashrc कमांड चालवा. कृपया लक्षात घ्या की दोन्ही .bashrc fileमल्टी-एजंट कम्युनिकेशनमधील मास्टर आणि स्लेव्हचे कॉन्फिगर करणे आवश्यक आहे. च्या शेवटी आयपी पत्ते काय बदलणे आवश्यक आहे file. आकृती 2-1-4 मध्ये दाखवल्याप्रमाणे ROS_MASTER_URI आणि ROS_HOSTNAME च्या दोन ओळी आहेत. ROS होस्टचे ROS_MASTER_URI आणि ROS_HOSTNAME दोन्ही स्थानिक IP आहेत. ROS स्लेव्ह मधील ROS_MASTER_URI .bashrc file ROS_HOSTNAME हा स्थानिक IP पत्ता म्हणून राहिल्यास होस्टच्या IP पत्त्यावर बदलणे आवश्यक आहे.

मल्टी-एजंट कम्युनिकेशन सेटअप

ROS मल्टी-मशीन कम्युनिकेशन ROS रिलीझ आवृत्तीद्वारे मर्यादित नाही. मल्टीमशीन संप्रेषणाच्या प्रक्रियेत, एखाद्याला खालील गोष्टींबद्दल माहिती असणे आवश्यक आहे:

  1. आरओएस स्लेव्ह प्रोग्रामचे ऑपरेशन आरओएस मास्टर डिव्हाइसच्या आरओएस मास्टर प्रोग्रामवर अवलंबून असते.
    स्लेव्ह डिव्हाइसवर स्लेव्ह प्रोग्रॅम कार्यान्वित करण्यापूर्वी आरओएस मास्टर प्रोग्रॅम प्रथम मास्टर डिव्हाइसवर लाँच करणे आवश्यक आहे.
  2. मल्टी-मशीन कम्युनिकेशनमधील मास्टर आणि स्लेव्ह मशीनचे IP पत्ते समान नेटवर्कमध्ये असणे आवश्यक आहे. याचा अर्थ IP पत्ता आणि सबनेट मास्क एकाच नेटवर्क अंतर्गत आहेत.
  3. पर्यावरण कॉन्फिगरेशनमध्ये ROS_HOSTNAME file .bashrc ला लोकलहोस्ट वापरण्याची शिफारस केलेली नाही. विशिष्ट IP पत्ता वापरण्याची शिफारस केली जाते.
  4. स्लेव्ह आयपी ॲड्रेस योग्यरित्या सेट केलेला नसल्यास, स्लेव्ह डिव्हाइस अद्याप ROS मास्टरमध्ये प्रवेश करू शकतो परंतु नियंत्रण माहिती इनपुट करू शकत नाही.
  5.  व्हर्च्युअल मशीन मल्टी-एजंट कम्युनिकेशनमध्ये भाग घेत असल्यास, त्याचा नेटवर्क मोड ब्रिज मोडवर सेट करणे आवश्यक आहे. नेटवर्क कनेक्शनसाठी स्थिर आयपी निवडला जाऊ शकत नाही.
  6. मल्टी-मशीन संप्रेषण करू शकत नाही view किंवा स्थानिक पातळीवर अस्तित्वात नसलेल्या संदेश डेटा प्रकाराच्या विषयांची सदस्यता घ्या.
  7. रोबोट्समधील संवाद यशस्वी झाला आहे की नाही हे सत्यापित करण्यासाठी तुम्ही लिटल टर्टल सिम्युलेशन डेमो वापरू शकता:
    a. सद्गुरुकडून पळा
    roscore # आरओएस सेवा लाँच करा
    rosrun turtlesim turtlesim_node #launch turtlesim इंटरफेस
    b.
    दासापासून पळा
    rosrun turtlesim turtle_teleop_key #टर्टलसिमसाठी कीबोर्ड कंट्रोल नोड लाँच करा

जर तुम्ही स्लेव्हवरील कीबोर्डवरून कासवाच्या हालचाली हाताळू शकत असाल, तर याचा अर्थ मास्टर/स्लेव्ह संवाद यशस्वीरित्या स्थापित झाला आहे.

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

होस्ट नेटवर्क किंवा राउटर नेटवर्कशी आपोआप कनेक्ट होण्यासाठी रोबोटला कसे कॉन्फिगर करावे हे खालील प्रक्रिया स्पष्ट करतात.

जेटसन नॅनोसाठी स्वयंचलित वायफाय कनेक्शन सेटअप

  1. जेटसन नॅनोला VNC रिमोट टूलद्वारे किंवा थेट संगणक स्क्रीनशी कनेक्ट करा. वरच्या उजव्या कोपर्यात वायफाय चिन्हावर क्लिक करा आणि नंतर "कनेक्शन संपादित करा.." क्लिक करा.
    मल्टी-एजंट कम्युनिकेशन सेटअप
  2. नेटवर्क कनेक्शनमध्ये + बटण क्लिक करा:
    मल्टी-एजंट कम्युनिकेशन सेटअप
  3. “एक कनेक्शन प्रकार निवडा” विंडो अंतर्गत, ड्रॉप-डाउन मेनूवर क्लिक करा आणि “तयार करा…” बटणावर क्लिक करा:
    मल्टी-एजंट कम्युनिकेशन सेटअप
  4. नियंत्रण पॅनेलमध्ये, Wifi पर्यायावर क्लिक करा. "कनेक्शन नाव" आणि SSID फील्डमध्ये कनेक्ट करण्यासाठी Wifi नाव प्रविष्ट करा. "मोड" ड्रॉपडाउन मेनूमध्ये "क्लायंट" निवडा आणि "डिव्हाइस" ड्रॉपडाउन मेनूमध्ये "wlan0" निवडा.
    मल्टी-एजंट कम्युनिकेशन सेटअप
  5. नियंत्रण पॅनेलमध्ये, "सामान्य" पर्यायावर क्लिक करा आणि "या नेटवर्कशी स्वयंचलितपणे कनेक्ट करा..." तपासा. "स्वयं-ॲक्टिव्हेशनसाठी कनेक्शन प्राधान्य" पर्यायामध्ये कनेक्शन प्राधान्य 1 वर सेट करा. "सर्व वापरकर्ते या नेटवर्कशी कनेक्ट होऊ शकतात" पर्याय तपासा. जेव्हा इतर वायफायसाठी "स्वयं-ॲक्टिव्हेशनसाठी कनेक्शन प्राधान्य" मध्ये पर्याय 0 वर सेट केला जातो, तेव्हा याचा अर्थ भूतकाळातील हे पसंतीचे वायफाय नेटवर्क आहे.
    मल्टी-एजंट कम्युनिकेशन सेटअप
  6. नियंत्रण पॅनेलमधील "वाय-फाय सुरक्षा" पर्यायावर क्लिक करा. "सुरक्षा" फील्डमध्ये "WPA आणि WPA2 वैयक्तिक" निवडा. नंतर Wifi पासवर्ड टाका
    मल्टी-एजंट कम्युनिकेशन सेटअप

नोंद:

जेव्हा वायफाय प्राधान्य 0 वर सेट केले जाते तेव्हा बूट केल्यानंतर रोबोट स्वयंचलितपणे वायफाय नेटवर्कशी कनेक्ट होऊ शकत नसल्यास, ते कमकुवत वायफाय सिग्नलच्या समस्येमुळे होऊ शकते. ही समस्या टाळण्यासाठी, तुम्ही पूर्वी कनेक्ट केलेले सर्व वायफाय पर्याय हटवणे निवडू शकता. फक्त होस्ट किंवा राउटरने तयार केलेले वायफाय नेटवर्क ठेवा.

नेटवर्क सेटिंग्ज कंट्रोल पॅनलमधील “IPv4 सेटिंग्ज” पर्यायावर क्लिक करा. "पद्धत" फील्डमध्ये "मॅन्युअल" पर्याय निवडा. नंतर “Add” वर क्लिक करा, “Address” फील्डमध्ये स्लेव्ह मशीनचा IP पत्ता भरा. "नेटमास्क" फील्डमध्ये "24" भरा. “गेटवे” मध्ये IP नेटवर्क विभाग भरा. IP नेटवर्क विभागातील शेवटचे तीन अंक “1” मध्ये बदला. या चरणाचा मुख्य उद्देश IP पत्ता निश्चित करणे आहे. हे प्रथमच पूर्ण झाल्यानंतर, नंतर त्याच WIFI शी कनेक्ट करताना IP पत्ता अपरिवर्तित राहील.

मल्टी-एजंट कम्युनिकेशन सेटअप

सर्व सेटिंग्ज कॉन्फिगर केल्यानंतर, सेटिंग्ज जतन करण्यासाठी "जतन करा" वर क्लिक करा. बचत यशस्वी झाल्यानंतर, रोबोट चालू झाल्यावर होस्ट किंवा राउटरच्या नेटवर्कशी आपोआप कनेक्ट होईल.

नोंद:

  1. येथे सेट केलेला IP पत्ता .bashrc मध्ये सेट केलेल्या IP पत्त्यासारखाच असणे आवश्यक आहे file कलम 2.1 मध्ये.
  2. मास्टर आणि प्रत्येक स्लेव्हचा IP पत्ता अद्वितीय असणे आवश्यक आहे.
  3. मास्टर आणि स्लेव्ह IP पत्ते समान नेटवर्क विभागातील असणे आवश्यक आहे.
  4. स्लेव्ह रोबोट चालू होण्यापूर्वी आणि स्वयंचलितपणे वायफाय नेटवर्कशी कनेक्ट होण्यापूर्वी तुम्ही होस्ट किंवा राउटरने वायफाय सिग्नल पाठवण्याची प्रतीक्षा करावी.
  5. सेटिंग कॉन्फिगर केल्यानंतर, वायफाय चालू असताना रोबोट स्वयंचलितपणे कनेक्ट होऊ शकत नसल्यास, कृपया नेटवर्क कार्ड प्लग आणि अनप्लग करा आणि पुन्हा कनेक्ट करण्याचा प्रयत्न करा.

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

रास्पबेरी पाईची प्रक्रिया जेटसन नॅनो सारखीच आहे.

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, गुलाम1 साठी क्रमांक 1 आणि स्लेव्ह2 साठी क्रमांक 2 इ.

वेगवेगळी नावे सेट करण्याचा उद्देश म्हणजे चालू नोड्सचे गट करणे आणि त्यांना वेगवेगळ्या नेमस्पेसने वेगळे करणे. उदाample, स्लेव्ह 1 चा रडार विषय आहे: /slave1/scan, आणि स्लेव्ह 1 चा LiDAR नोड आहे: / slave1/laser.

स्लेव्ह कोऑर्डिनेट्स सेट करा

wheeltec_multi पॅकेज सानुकूल फॉर्मेशन्स लागू करू शकते. जेव्हा विविध रचना आवश्यक असतात, तेव्हा फक्त स्लेव्ह रोबोट्सचे इच्छित निर्देशांक सुधारित करा. 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. स्तंभ निर्मिती: एका स्लेव्हचे निर्देशांक: slave_x:-0.8, slave_y:0 ​​आणि दुसऱ्या स्लेव्हचे निर्देशांक: slave_x:-1.8, slave_y:0 ​​वर सेट केले जाऊ शकतात.
  3. त्रिकोणी निर्मिती: एका गुलामाचे निर्देशांक: slave_x:-0.8, slave_y: 0.8 वर सेट केले जाऊ शकतात आणि दुसऱ्या स्लेव्हचे निर्देशांक: slave_x:-0.8, slave_y:-0.8 वर सेट केले जाऊ शकतात.

इतर रचना आवश्यकतेनुसार सानुकूलित केल्या जाऊ शकतात.

नोंद

दोन रोबोटमधील शिफारस केलेले अंतर 0.8 वर सेट केले आहे आणि ते 0.6 पेक्षा कमी नसावे अशी शिफारस केली जाते. गुलाम आणि मास्टरमधील अंतर 2.0 च्या खाली सेट करण्याची शिफारस केली जाते. ते मालकापासून जितके दूर असेल, जेव्हा मास्टर वळत असेल तेव्हा गुलामाची रेषीय गती जास्त असते. कमाल वेगाच्या मर्यादेमुळे, स्लेव्हची गती आवश्यकता पूर्ण न केल्यास तो विचलित होईल. यंत्रमानव निर्मिती अव्यवस्थित होईल.

गुलाम पदाचा आरंभ

स्लेव्हची प्रारंभिक स्थिती डीफॉल्टनुसार अपेक्षित निर्देशांकांवर असते. प्रोग्राम चालवण्यापूर्वी, प्रारंभ पूर्ण करण्यासाठी स्लेव्ह रोबोटला त्याच्या अपेक्षित निर्देशांकांच्या जवळ ठेवा.

हे फंक्शन मध्ये pose_setter नोडद्वारे लागू केले जाते file wheeltec_multi पॅकेजमध्ये turn_on_wheeltec_robot.launch असे नाव दिले आहे, आकृती 4-1-3 मध्ये दाखवल्याप्रमाणे.

मल्टी-एजंट Ros पॅकेज

जर वापरकर्त्याला स्लेव्हची प्रारंभिक स्थिती सानुकूलित करायची असेल, तर त्याला किंवा तिला wheeltec_slave.launch मधील आकृती 4-1-4 मध्ये दर्शविल्याप्रमाणे फक्त slave_x आणि slave_y व्हॅल्यू सेट करणे आवश्यक आहे. slave_x आणि slave_y मूल्ये turn_on_wheeltec_robot.launch वर पास केली जातील आणि pose_setter नोडला नियुक्त केली जातील. प्रोग्राम चालवण्यापूर्वी फक्त रोबोटला सानुकूल स्थितीत ठेवा.

मल्टी-एजंट Ros पॅकेज

स्थिती कॉन्फिगरेशन 

मल्टी-एजंट फॉर्मेशनमध्ये, सोडवण्याची पहिली समस्या म्हणजे मास्टर आणि स्लेव्हची स्थिती. मास्टर प्रथम 2D नकाशा तयार करेल. नकाशा तयार केल्यानंतर आणि सेव्ह केल्यानंतर, 2D नेव्हिगेशन पॅकेज चालवा आणि मास्टरची पोझिशनिंग कॉन्फिगर करण्यासाठी 2D नेव्हिगेशन पॅकेजमध्ये अनुकूली मोंटे कार्लो पोझिशनिंग अल्गोरिदम (amcl पोझिशनिंग) वापरा.

मास्टर आणि गुलाम एकाच नेटवर्कमध्ये असल्याने आणि समान नोड व्यवस्थापक सामायिक करत असल्याने, मास्टरने 2D नेव्हिगेशन पॅकेजमधून नकाशा लाँच केला आहे, सर्व गुलाम समान नोड व्यवस्थापक अंतर्गत समान नकाशा वापरू शकतात. म्हणून, गुलामाला नकाशा तयार करण्याची आवश्यकता नाही. wheeltec_slave.launch मध्ये, मॉन्टे कार्लो पोझिशनिंग (amcl पोझिशनिंग) चालवा, गुलाम मास्टरने तयार केलेला नकाशा वापरून त्यांची स्थिती कॉन्फिगर करू शकतात.

मल्टी-एजंट Ros पॅकेज

निर्मिती कशी तयार करावी आणि निर्मिती कशी राखावी 

निर्मिती चळवळीच्या प्रक्रियेत, मास्टर चळवळ Rviz, कीबोर्ड, रिमोट कंट्रोल आणि इतर पद्धतींद्वारे नियंत्रित केली जाऊ शकते. स्लेव्ह त्याच्या हालचालीवर नियंत्रण ठेवण्यासाठी आणि निर्मितीचे ध्येय साध्य करण्यासाठी slave_tf_listener नोडद्वारे त्याच्या गतीची गणना करतो.

slave_tf_listener नोड नोड गणनेद्वारे अत्याधिक गती टाळण्यासाठी स्लेव्ह गती मर्यादित करते, ज्यामुळे परिणामांची मालिका होईल. विशिष्ट मूल्य wheeltec_slave.launch मध्ये सुधारित केले जाऊ शकते.

मल्टी-एजंट Ros पॅकेज

फॉर्मेशन अल्गोरिदमचे संबंधित पॅरामीटर्स खालीलप्रमाणे आहेत:

मल्टी-एजंट Ros पॅकेज

निर्मितीमध्ये अडथळा टाळणे

मल्टी-एजंट फॉर्मेशनमध्ये, मास्टर अडथळा टाळणे पूर्ण करण्यासाठी move_base नोड वापरू शकतो. तथापि, स्लेव्हचे आरंभीकरण move_base नोड वापरत नाही. या टप्प्यावर, स्लेव्ह प्रोग्राममध्ये multi_avoidance नोडला कॉल करणे आवश्यक आहे. डिफॉल्टनुसार पॅकेजमध्ये अडथळा टाळणारा नोड सक्षम केला जातो. आवश्यक असल्यास, अडथळे टाळणे नोड अक्षम करण्यासाठी "असत्य" वर सेट केले जाऊ शकते.

मल्टी-एजंट Ros पॅकेज

अडथळा टाळण्याच्या नोडचे काही संबंधित पॅरामीटर्स खालील आकृतीमध्ये दाखवले आहेत, जेथे सुरक्षित_अंतर ही अडथळा सुरक्षित अंतर मर्यादा आहे आणि धोका_अंतर ही अडथळा धोकादायक अंतर मर्यादा आहे. जेव्हा अडथळा सुरक्षित_अंतर आणि धोक्याच्या_अंतराच्या आत असतो, तेव्हा गुलाम अडथळा टाळण्यासाठी त्याची स्थिती समायोजित करतो. जेव्हा अडथळा धोक्याच्या_अंतरावर असतो, तेव्हा गुलाम अडथळ्यापासून दूर जातो.

मल्टी-एजंट Ros पॅकेज

ऑपरेशन प्रक्रिया 

एक्झिक्युशन कमांड एंटर करा 

मल्टी-एजंट निर्मिती सुरू करण्यापूर्वी तयारी:

  • मास्टर आणि स्लेव्ह एकाच नेटवर्कशी कनेक्ट होतात आणि मल्टी-एजंट कम्युनिकेशन योग्यरित्या सेट करतात
  • मास्टर आगाऊ 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: मास्टरकडून कीबोर्ड कंट्रोल नोड उघडा किंवा मास्टर हालचाली रिमोट कंट्रोल करण्यासाठी जॉयस्टिक वापरा.
roslaunch wheeltec_robot_rc keyboard_teleop.launch

पायरी 4: (पर्यायी) Rviz कडून रोबोटच्या हालचालींचे निरीक्षण करा.
rviz

नोंद

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

कागदपत्रे / संसाधने

ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट [pdf] वापरकर्ता मॅन्युअल
Orin Nano x3, Robofleet ROS रोबोट, Robofleet ROS, Robot, Robofleet Orin Nano x3 ROS रोबोट, Robofleet Orin Nano x3, Orin Nano x3 ROS रोबोट, Orin Nano x3

संदर्भ

एक टिप्पणी द्या

तुमचा ईमेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित आहेत *