ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट 

ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट

सारांश

यो कागजातले मुख्यतया wheeltec_multi नामक बहु-रोबोट गठन प्रकार्य प्याकेजको प्रयोगको व्याख्या गर्दछ।

यो कागजात चार भागमा विभाजित छ:

  • पहिलो भाग मुख्यतया बहु-रोबोट गठन विधि को परिचय को बारे मा छ;
  • दोस्रो भागले मुख्यतया ROS बहु-मेसिन संचार सेटिङहरू वर्णन गर्दछ, बहु-मेसिन संचारको ROS निर्माण र ROS सञ्चारको प्रक्रियामा सामना गर्न सक्ने समस्याहरू सहित;
  • तेस्रो भागले मुख्यतया बहु-मेसिन समय सिंक्रोनाइजेसनको सञ्चालन चरणहरू वर्णन गर्दछ;
  • चौथो भागले बहु-मेसिन गठन प्रकार्य प्याकेजको विशिष्ट प्रयोगलाई व्याख्या गर्दछ।

यस कागजातको उद्देश्य बहु-एजेन्ट रोबोटिक प्रणालीको परिचय हो र प्रयोगकर्तालाई बहु-रोबोट निर्माण परियोजना छिटो सुरु गर्न अनुमति दिन्छ।

बहु-एजेन्ट एल्गोरिदमको परिचय

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

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

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

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

एक साझा अवरोध एल्गोरिथ्म कृत्रिम सम्भावित क्षेत्र विधि हो। भौतिक वातावरणमा रोबोटको आन्दोलनलाई भर्चुअल आर्टिफिसियल फोर्स फिल्डमा भएको आन्दोलनको रूपमा लिइन्छ। निकटतम अवरोध LiDAR द्वारा पहिचान गरिएको छ। अवरोधले रोबोटलाई प्रतिकर्षण उत्पन्न गर्न एक प्रतिकर्षण बल क्षेत्र प्रदान गर्दछ र लक्ष्य बिन्दुले रोबोटलाई गुरुत्वाकर्षण बल उत्पन्न गर्न गुरुत्वाकर्षण क्षेत्र प्रदान गर्दछ। यसरी, यसले प्रतिकर्षण र आकर्षणको संयुक्त कार्य अन्तर्गत रोबोटको गतिलाई नियन्त्रण गर्दछ।

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

जब रोबोटले अवरोधको अगाडि प्रतिक्रिया दिन रोक्न सक्छ। यसले राम्रो अवरोध जोगिनको उद्देश्यलाई सेवा गर्दछ।

बहु-एजेन्ट संचार सेटअप

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

बहु-एजेन्ट संचार सेटअप

बहु-एजेन्ट संचार सेट अप गर्न चरणहरू

एउटै नेटवर्कमा ROS नियन्त्रणहरू सेट अप गर्नुहोस्

एउटै नेटवर्क अन्तर्गत मास्टर/स्लेभ ROS नियन्त्रणहरू सेटअप गर्ने २ तरिकाहरू छन्।

विकल्प १:

मास्टर होस्टले मास्टर नोड प्रबन्धक चलाएर स्थानीय वाइफाइ सिर्जना गर्दछ। सामान्यतया, मास्टरको रूपमा तोकिएको रोबोट मध्ये एकले यो वाइफाइ नेटवर्क सिर्जना गर्दछ। अन्य रोबोट वा भर्चुअल मेसिनहरू दासको रूपमा यो वाइफाइ नेटवर्कमा सामेल हुन्छन्।

विकल्प १:

स्थानीय वाइफाइ नेटवर्क तेस्रो-पक्ष राउटरद्वारा सूचना रिले केन्द्रको रूपमा प्रदान गरिएको छ। सबै रोबोटहरू एउटै राउटरमा जोडिएका छन्। राउटर इन्टरनेट जडान बिना पनि प्रयोग गर्न सकिन्छ। कुनै एक रोबोटलाई मास्टरको रूपमा चयन गर्नुहोस् र मास्टर नोड प्रबन्धक चलाउनुहोस्। अन्य रोबोटहरू दासको रूपमा तोकिएका छन् र मास्टरबाट मास्टर नोड प्रबन्धक चलाउँछन्।

कुन विकल्प छनौट गर्ने निर्णय तपाईंको परियोजना आवश्यकताहरूमा निर्भर गर्दछ। यदि सञ्चार गर्न आवश्यक रोबोटहरूको संख्या ठूलो मात्रामा छैन भने, विकल्प 1 सिफारिस गरिन्छ किनभने यसले लागत बचत गर्छ र यसलाई सेटअप गर्न सजिलो छ। जब रोबोटहरूको संख्या ठूलो मात्रामा हुन्छ, विकल्प 2 सिफारिस गरिन्छ। ROS मास्टर नियन्त्रणको कम्प्युटिङ पावर र सीमित अनबोर्ड वाइफाइ ब्यान्डविथमा अवरोधले सजिलै ढिलाइ र नेटवर्क अवरोधहरू निम्त्याउन सक्छ। राउटरले यी समस्याहरू सजिलै समाधान गर्न सक्छ।

कृपया ध्यान दिनुहोस् कि बहु-एजेन्ट संचार प्रदर्शन गर्दा, भर्चुअल मेसिन ROS दासको रूपमा प्रयोग गरिन्छ भने, यसको नेटवर्क मोड ब्रिज मोडमा सेट गर्न आवश्यक छ।

मास्टर/स्लेभ वातावरण चर कन्फिगर गर्नुहोस् 

सबै ROS मास्टरहरू एउटै नेटवर्कमा भएपछि, बहु-एजेन्ट सञ्चारका लागि वातावरणीय चरहरू सेट गर्न आवश्यक छ। यो वातावरण चर .bashrc मा कन्फिगर गरिएको छ file मुख्य निर्देशिका मा। यसलाई सुरु गर्न gedit ~/.bashrc आदेश चलाउनुहोस्। कृपया ध्यान दिनुहोस् कि दुबै .bashrc fileबहु-एजेन्ट संचारमा मालिक र दासको s कन्फिगर गर्न आवश्यक छ। के परिवर्तन गर्न आवश्यक छ आईपी ठेगानाहरू अन्तमा छन् 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. ROS दास कार्यक्रमको सञ्चालन ROS मास्टर उपकरणको ROS मास्टर कार्यक्रममा निर्भर गर्दछ।
    ROS मास्टर प्रोग्रामले दास उपकरणमा दास कार्यक्रम कार्यान्वयन गर्नु अघि मास्टर यन्त्रमा पहिले सुरु गर्नुपर्छ।
  2. बहु-मेसिन संचारमा मास्टर र दास मेसिनहरूको IP ठेगानाहरू एउटै नेटवर्कमा हुन आवश्यक छ। यसको मतलब आईपी ठेगाना र सबनेट मास्क एउटै नेटवर्क अन्तर्गत छन्।
  3. वातावरण कन्फिगरेसनमा ROS_HOSTNAME file .bashrc लाई लोकलहोस्ट प्रयोग गर्न सिफारिस गरिएको छैन। यो एक विशिष्ट IP ठेगाना प्रयोग गर्न सिफारिस गरिएको छ।
  4. दास IP ठेगाना सही रूपमा सेट गरिएको छैन भने, दास उपकरणले अझै पनि ROS मास्टर पहुँच गर्न सक्छ तर इनपुट नियन्त्रण जानकारी गर्न सक्दैन।
  5.  यदि भर्चुअल मेसिनले बहु-एजेन्ट संचारमा भाग लिन्छ भने, यसको नेटवर्क मोडलाई ब्रिज मोडमा सेट गर्न आवश्यक छ। नेटवर्क जडानको लागि स्थिर आईपी चयन गर्न सकिँदैन।
  6. बहु-मेसिन संचार गर्न सक्दैन view वा स्थानीय रूपमा अवस्थित नभएको सन्देश डेटा प्रकारका विषयहरूमा सदस्यता लिनुहोस्।
  7. रोबोटहरू बीचको सञ्चार सफल छ कि छैन भनेर प्रमाणित गर्न तपाईंले सानो कछुवा सिमुलेशन डेमो प्रयोग गर्न सक्नुहुन्छ:
    a। मालिकबाट भाग्नुहोस्
    roscore #launch ROS सेवाहरू
    rosrun turtlesim turtlesim_node #launch turtlesim इन्टरफेस
    b.
    दासबाट भाग्नुहोस्
    rosrun turtlesim turtle_teleop_key #turtlesim को लागि किबोर्ड नियन्त्रण नोड लन्च गर्नुहोस्

यदि तपाईंले दासमा किबोर्डबाट कछुवाको चालहरू हेरफेर गर्न सक्नुहुन्छ भने, यसको मतलब मालिक/दास संचार सफलतापूर्वक स्थापित भएको छ।

ROS मा स्वचालित वाइफाइ जडान

तलका प्रक्रियाहरूले रोबोटलाई स्वचालित रूपमा होस्ट नेटवर्क वा राउटर नेटवर्कमा जडान गर्न कसरी कन्फिगर गर्ने भनेर व्याख्या गर्दछ।

Jetson Nano को लागि स्वचालित वाइफाइ जडान सेटअप

  1. Jetson Nano लाई VNC रिमोट उपकरण मार्फत वा सिधै कम्प्युटर स्क्रिनमा जडान गर्नुहोस्। माथिल्लो दायाँ कुनामा वाइफाइ आइकनमा क्लिक गर्नुहोस् त्यसपछि "कनेक्सनहरू सम्पादन गर्नुहोस्।" क्लिक गर्नुहोस्।
    बहु-एजेन्ट संचार सेटअप
  2. नेटवर्क जडानहरूमा + बटन क्लिक गर्नुहोस्:
    बहु-एजेन्ट संचार सेटअप
  3. "एक जडान प्रकार छान्नुहोस्" विन्डो अन्तर्गत, ड्रप-डाउन मेनुमा क्लिक गर्नुहोस् र "सिर्जना गर्नुहोस्..." बटनमा क्लिक गर्नुहोस्:
    बहु-एजेन्ट संचार सेटअप
  4. कन्ट्रोल प्यानलमा, Wifi विकल्पमा क्लिक गर्नुहोस्। "जडान नाम" र SSID क्षेत्रहरूमा जडान गर्न Wifi नाम प्रविष्ट गर्नुहोस्। "मोड" ड्रपडाउन मेनुमा "ग्राहक" चयन गर्नुहोस् र "उपकरण" ड्रपडाउन मेनुमा "wlan0" चयन गर्नुहोस्।
    बहु-एजेन्ट संचार सेटअप
  5. कन्ट्रोल प्यानलमा, "सामान्य" विकल्पमा क्लिक गर्नुहोस् र "यस नेटवर्कमा स्वचालित रूपमा जडान गर्नुहोस्..." जाँच गर्नुहोस्। "स्वत: सक्रियताको लागि जडान प्राथमिकता" विकल्पमा जडान प्राथमिकता 1 मा सेट गर्नुहोस्। "सबै प्रयोगकर्ताहरू यस नेटवर्कमा जडान हुन सक्छन्" विकल्प जाँच गर्नुहोस्। अन्य वाइफाइका लागि "स्वत: सक्रियताका लागि जडान प्राथमिकता" मा विकल्प ० मा सेट गर्दा, यसको मतलब यो विगतमा रुचाइएको वाइफाइ नेटवर्क हो।
    बहु-एजेन्ट संचार सेटअप
  6. नियन्त्रण कक्षमा "Wi-Fi सुरक्षा" विकल्प क्लिक गर्नुहोस्। "सुरक्षा" फिल्डमा "WPA र WPA2 व्यक्तिगत" चयन गर्नुहोस्। त्यसपछि वाइफाइ पासवर्ड प्रविष्ट गर्नुहोस्
    बहु-एजेन्ट संचार सेटअप

नोट:

यदि वाइफाइ प्राथमिकता ० मा सेट गरिएको बेला बुट गरेपछि रोबोट स्वचालित रूपमा वाइफाइ नेटवर्कमा जडान हुन सक्दैन भने, यो कमजोर वाइफाइ सिग्नलको समस्याको कारण हुन सक्छ। यस समस्याबाट बच्नको लागि, तपाईंले विगतमा जडान गरिएका सबै वाइफाइ विकल्पहरू मेटाउन छनौट गर्न सक्नुहुन्छ। होस्ट वा राउटरले बनाएको वाइफाइ नेटवर्क मात्र राख्नुहोस्।

नेटवर्क सेटिङहरू नियन्त्रण प्यानलमा "IPv4 सेटिङहरू" विकल्पमा क्लिक गर्नुहोस्। "विधि" फिल्डमा "म्यानुअल" विकल्प चयन गर्नुहोस्। त्यसपछि "थप्नुहोस्" मा क्लिक गर्नुहोस्, "ठेगाना" फिल्डमा दास मेसिनको आईपी ठेगाना भर्नुहोस्। "नेटमास्क" फिल्डमा "24" भर्नुहोस्। "गेटवे" मा आईपी नेटवर्क खण्ड भर्नुहोस्। IP नेटवर्क खण्डको अन्तिम तीन अंकहरूलाई "1" मा परिवर्तन गर्नुहोस्। यस चरणको मुख्य उद्देश्य आईपी ठेगाना ठीक गर्नु हो। यो पहिलो पटक पूरा भएपछि, पछि उही WIFI मा जडान गर्दा IP ठेगाना अपरिवर्तित रहनेछ।

बहु-एजेन्ट संचार सेटअप

सबै सेटिङहरू कन्फिगर भएपछि, सेटिङ्हरू बचत गर्न "बचत गर्नुहोस्" मा क्लिक गर्नुहोस्। बचत सफल भएपछि, रोबोट स्वचालित रूपमा होस्ट वा राउटरको नेटवर्कमा जडान हुनेछ जब यो पावर हुन्छ।

नोट:

  1. यहाँ सेट गरिएको IP ठेगाना .bashrc मा सेट गरिएको IP ठेगाना जस्तै हुनुपर्छ file खण्ड 2.1 मा।
  2. मालिक र प्रत्येक दासको IP ठेगाना अद्वितीय हुनुपर्छ।
  3. मास्टर र दास IP ठेगानाहरू एउटै नेटवर्क खण्डमा हुन आवश्यक छ।
  4. तपाईंले होस्ट वा राउटरको लागि वाइफाइ सिग्नल पठाउनको लागि कुर्नु पर्छ दास रोबोट सक्रिय हुन सक्नु अघि र स्वचालित रूपमा वाइफाइ नेटवर्कमा जडान हुन सक्छ।
  5. सेटिङ कन्फिगर गरिसकेपछि, यदि रोबोट स्वचालित रूपमा WiFi मा जडान हुन सक्दैन जब यो सक्रिय हुन्छ, कृपया नेटवर्क कार्ड प्लग र अनप्लग गर्नुहोस् र पुन: जडान गर्ने प्रयास गर्नुहोस्।

Raspberry Pi को लागि स्वचालित वाइफाइ जडान सेटअप 

Raspberry Pi को लागि प्रक्रिया Jetson Nano जस्तै हो।

Jetson TX1 को लागि स्वचालित वाइफाइ जडान सेटअप 

Jetson TX1 मा सेटअप लगभग Jetson Nano मा जस्तै छ कि Jetson TX1 ले नेटवर्क सेटिङ्स नियन्त्रण प्यानलमा "उपकरण" मा "wlan1" को यन्त्र चयन गर्नुपर्छ।

बहु-एजेन्ट संचार सेटअप

बहु-एजेन्ट सिंक्रोनाइजेसन सेटअप

बहु-एजेन्ट गठन परियोजनामा, बहु-एजेन्ट समय सिंक्रोनाइजेसन सेटिङ एक महत्त्वपूर्ण चरण हो। गठनको प्रक्रियामा, प्रत्येक रोबोटको एसिन्क्रोनस प्रणाली समयको कारणले धेरै समस्याहरू उत्पन्न हुनेछन्। बहु-एजेन्ट समय सिंक्रोनाइजेसनलाई दुई अवस्थाहरूमा विभाजन गरिएको छ, अर्थात्, मास्टर र दास रोबोटहरू नेटवर्कमा जडान भएको अवस्था र दुवै नेटवर्कबाट विच्छेद भएको अवस्था।

सफल मालिक/दास नेटवर्क जडान

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

नेटवर्क विच्छेदको समस्या निवारण 

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

पहिले, टर्मिनेटर उपकरण स्थापना गर्नुहोस्। टर्मिनेटर उपकरणबाट, मास्टर र दासको नियन्त्रण टर्मिनलहरू एउटै टर्मिनल सञ्झ्यालमा राख्नको लागि सञ्झ्याल विभाजन उपकरण प्रयोग गर्नुहोस् (विभाजित विन्डो सेट गर्न दायाँ क्लिक गर्नुहोस्, र विभिन्न विन्डोहरूमा ssh द्वारा मास्टर र दास मेसिनहरूमा लग इन गर्नुहोस्) ।

sudo apt-get install terminator # टर्मिनल विन्डो विभाजित गर्न टर्मिनेटर डाउनलोड गर्नुहोस् 

शीर्ष बायाँमा रहेको बटनमा क्लिक गर्नुहोस्, विकल्प चयन गर्नुहोस् [सबैमा प्रसारण गर्नुहोस्]/[सबै प्रसारण गर्नुहोस्], निम्न आदेश प्रविष्ट गर्नुहोस्। त्यसपछि मालिक र दासको लागि समान समय सेट गर्न टर्मिनेटर उपकरण प्रयोग गर्नुहोस्।

बहु-एजेन्ट सिंक्रोनाइजेसन सेटअप

sudo date -s "2022-01-30 15:15:00" # म्यानुअल समय सेटअप 

बहु-एजेन्ट ROS प्याकेज

ROS प्याकेज परिचय 

दास नाम सेट अप गर्नुहोस्

wheeltec_multi प्रकार्य प्याकेजमा, त्रुटिहरूबाट बच्नको लागि प्रत्येक दास रोबोटको लागि एक अद्वितीय नाम सेट गर्न आवश्यक छ। पूर्वका लागिample, दास १ को लागि नम्बर १ र दास २ को लागि नम्बर २ आदि।

विभिन्न नामहरू सेट गर्नुको उद्देश्य समूह चलिरहेको नोडहरू र तिनीहरूलाई विभिन्न नेमस्पेसहरूद्वारा छुट्याउनु हो। पूर्वका लागिample, दास १ को राडार विषय हो: /slave1/scan, र दास 1 को LiDAR नोड हो: / slave1/laser।

दास निर्देशांकहरू सेट अप गर्नुहोस्

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 मा सेट गर्न सक्नुहुन्छ।
  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 मा, Monte Carlo positioning (amcl positioning) चलाउनुहोस्, दासहरूले मालिकले बनाएको नक्सा प्रयोग गरेर आफ्नो स्थिति कन्फिगर गर्न सक्छन्।

बहु-एजेन्ट 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 मिति -s "2022-04-01 15:15:00" 

चरण १: मास्टरबाट 2D नक्सा खोल्नुहोस्।
roslaunch turn_on_wheeltec_robot navigation.launch

चरण १: सबै दासहरूबाट गठन कार्यक्रम चलाउनुहोस्।
roslaunch wheeltec_multi wheeltec_slave.launch

चरण १: मास्टरबाट किबोर्ड कन्ट्रोल नोड खोल्नुहोस् वा मास्टर आन्दोलनलाई रिमोट कन्ट्रोल गर्न जोइस्टिक प्रयोग गर्नुहोस्।
roslaunch wheeltec_robot_rc keyboard_teleop.launch

चरण १: (वैकल्पिक) Rviz बाट रोबोट चालहरू अवलोकन गर्नुहोस्।
rviz

नोट

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

कागजातहरू / स्रोतहरू

ROBOWORKS Robofleet Orin Nano x3 ROS रोबोट [pdf] प्रयोगकर्ता पुस्तिका
Orin Nano x3, Robofleet ROS रोबोट, Robofleet ROS, रोबोट, Robofleet Orin Nano x3 ROS रोबोट, Robofleet Orin Nano x3, Orin Nano x3 ROS रोबोट, Orin Nano x3

सन्दर्भहरू

एक टिप्पणी छोड्नुहोस्

तपाईंको इमेल ठेगाना प्रकाशित गरिने छैन। आवश्यक क्षेत्रहरू चिन्ह लगाइएका छन् *