विषयसूची:

लोकलिनो रूंबा आईरोबोट को ट्रैक करता है, पर्यावरण को मैप करता है और नियंत्रण की अनुमति देता है।: 4 कदम
लोकलिनो रूंबा आईरोबोट को ट्रैक करता है, पर्यावरण को मैप करता है और नियंत्रण की अनुमति देता है।: 4 कदम

वीडियो: लोकलिनो रूंबा आईरोबोट को ट्रैक करता है, पर्यावरण को मैप करता है और नियंत्रण की अनुमति देता है।: 4 कदम

वीडियो: लोकलिनो रूंबा आईरोबोट को ट्रैक करता है, पर्यावरण को मैप करता है और नियंत्रण की अनुमति देता है।: 4 कदम
वीडियो: [शान ज़ी मैन जियान जून] एक टुकड़ा के प्रत्येक प्रविष्टि में भ्रमित व्यवहार 2024, नवंबर
Anonim
Image
Image

वाईफाई-यूएआरटी ब्रिज बनाने के लिए, आप इस जीथब रेपो को देख सकते हैं:

इसके साथ शुरू करने के लिए एक अच्छा आधार है। सुनिश्चित करें कि आपने दिशानिर्देश को अच्छी तरह से पढ़ा है, क्योंकि चार्जिंग के दौरान Roomba VCC 20 वोल्ट तक बढ़ जाता है! यदि आप एक उचित हिरन-कन्वर्टर के बिना एक ESP8266 जोड़ते हैं जो 20V तक भी काम करता है और 3.3V में डाउन-कन्वर्ट करता है, तो आप अपने ESP को नुकसान पहुंचाएंगे।

5V UART लॉजिक लेवल को Roomba से 3.3V में शिफ्ट करने के लिए लेवल शिफ्टर (जैसे वोल्टेज डिवाइडर का उपयोग करना) का उपयोग करना भी सुनिश्चित करें, जो कि ESP द्वारा उपयोग किया जाता है।

एक और महत्वपूर्ण विवरण यह है कि हिरन कनवर्टर में 300mA होना चाहिए, लेकिन बहुत कम या बहुत अधिक (बकाया कनवर्टर के आधार पर)। वहाँ कुछ है जो बहुत अधिक करंट कर सकता है, लेकिन रूंबा के दुर्घटनाग्रस्त होने का कारण बनता है क्योंकि वे स्टार्ट-अप के दौरान बहुत अधिक करंट खींचते हैं। हमने पाया कि पोलोलू 3.3V, 300mA स्टेप-डाउन वोल्टेज रेगुलेटर (D24V3F3) एकदम सही काम करता है। 500mA / 600mA वाले वैकल्पिक संस्करणों के कारण Roomba UART इंटरफ़ेस क्रैश हो गया। मूल रूप से Roomba बटन प्रेस पर प्रतिक्रिया कर रहा था, लेकिन UART इंटरफ़ेस के माध्यम से कमांड पर नहीं। एक बार ऐसा होने पर हमें रूमबा बैटरी को हटाना पड़ा और रूमबा को वाईफाई-यूएआरटी ब्रिज के साथ ठंडा-पुनरारंभ करना पड़ा। हालाँकि, केवल D24V3F3 ने अच्छा काम किया।

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

Arduino IDE के भीतर उदाहरण:

शून्य गोफॉरवर्ड () {चार सी = {137, 0x00, 0xc8, 0x80, 0x00}; // 0x00c8 == 200 सीरियल.प्रिंट (सी); }

शून्य गोबैकवर्ड () {चार सी = {137, 0xff, 0x38, 0x80, 0x00}; // 0xff38 == -200 सीरियल.प्रिंट (सी); }

शून्य स्पिन लेफ्ट () {चार सी = {137, 0x00, 0xc8, 0x00, 0x01}; सीरियल.प्रिंट (सी); }

शून्य स्पिनराइट () {चार सी = {137, 0x00, 0xc8, 0xff, 0xff}; सीरियल.प्रिंट (सी); }

यदि आप लुआ में लिखते हैं तो यह थोड़ा अलग दिखता है, बाएं मोड़ के लिए एक उदाहरण इस तरह दिखेगा:

अगर (_GET.pin == "बाएं") तो प्रिंट करें ('\137'); --वोर

tmr.delay(100);

प्रिंट ('\ 00'); - वेग = 200 = 0x00C8 -> 0 और 200

tmr.delay(100);

प्रिंट ('\ 200'); -- वेग

tmr.delay(100);

प्रिंट ('\254'); - त्रिज्या = 500 = 0x01F4 = 0x01 0xF4 = 1 244

tmr.delay(100);

प्रिंट ('\ 12'); -- मोड़

समाप्त

सुनिश्चित करें कि आपको अपने रूमबा के लिए खुले इंटरफ़ेस विवरण को सही करना है। कम से कम दो खुले इंटरफ़ेस विनिर्देश उपलब्ध हैं।

रूमबा 5xx श्रृंखला के लिए:

Roomba 6xx सीरीज के लिए:

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

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

चरण 3: अपना इंडोर लोकलाइज़ेशन सिस्टम सेटअप करें

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

इस वीडियो में, रूंबा के स्थानीयकरण का प्रदर्शन किया गया है। इसलिए हमारे पास निश्चित स्थानों पर कमरे में 4 एंकर स्थापित हैं, जो रूमबा की 3डी स्थिति की अनुमति देते हैं। सामान्य तौर पर, हमें केवल 3 एंकर की आवश्यकता होगी, क्योंकि रूंबा शायद Z-अक्ष में नहीं चलेगा, इसलिए 2D पर्याप्त होगा। लेकिन चूंकि एंकर एसी के मुख्य प्लग की ऊंचाई (जो जमीन से लगभग 30 सेमी ऊपर है) पर स्थित होते हैं, इसलिए 2डी सेटअप से स्थिति अनुमान में बहुत कम त्रुटियां होती हैं। इसलिए हमने 4 एंकर रखने और 3D में स्थानीयकरण करने का निर्णय लिया।

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

सेटअप टिप्पणी

कमरे के अंदर लोकलिनो एंकर को अलग-अलग x, y पोजीशन पर और उनमें से तीन को एक ही z पोजीशन पर रखें। चार एंकरों में से एक को अलग-अलग ऊंचाई z प्रति कमरे पर रखें। सुनिश्चित करें कि लोकलिनो टैग से अच्छी कवरेज है, जो कि रूंबा के साथ चलती रहेगी।

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

एक्स, वाई, जेड और एंकर आईडी में पदों पर ध्यान दें। यह लोकलिनो प्रोसेसर सॉफ़्टवेयर के लिए आवश्यक है और इसे "लोकलिनोप्रोसेसर" फ़ोल्डर में "localino.ini" फ़ाइल में अनुकूलित किया जाना है।

एंकर को Z (जब XY क्षेत्र को कवर किया गया है) में ऊपर या नीचे की ओर इंगित करना चाहिए, लेकिन कवर किए गए क्षेत्र की दिशा में नहीं। एंकर को धातु या किसी अन्य वायरलेस सिग्नल डिस्टर्बिंग सामग्री से भी कवर नहीं किया जाना चाहिए। यदि यह संभव नहीं है, तो किसी सामग्री और लंगर के बीच एक निश्चित वायु अंतराल भी होना चाहिए।

…और भी आने को है।

चरण 4: पायथन सॉफ्टवेयर को अपनाएं

बने रहें। और भी आने को है।

सिफारिश की: