विषयसूची:

रूमबा पार्किंग पाल: 6 कदम
रूमबा पार्किंग पाल: 6 कदम

वीडियो: रूमबा पार्किंग पाल: 6 कदम

वीडियो: रूमबा पार्किंग पाल: 6 कदम
वीडियो: Numb (Official Music Video) [4K UPGRADE] – Linkin Park 2024, जुलाई
Anonim
रूमबा पार्किंग पालो
रूमबा पार्किंग पालो

यह प्रोजेक्ट iRobot क्रिएट प्रोग्रामेबल रूमबा, MATLAB r2018a और MATLAB मोबाइल का उपयोग करता है। इन तीन माध्यमों और कोडिंग के अपने ज्ञान का उपयोग करते हुए, हमने रंगों की व्याख्या करने और कार्यों को पूरा करने के लिए ऑन-बोर्ड सेंसर का उपयोग करने के लिए iRobot Create को प्रोग्राम किया। यह प्रोजेक्ट इन कार्यों को करने के लिए रास्पबेरी पाई और MATLAB संचार पर निर्भर करता है।

चरण 1: सामग्री

सामग्री
सामग्री
सामग्री
सामग्री

1. iRobot रोबोट बनाएं

2. MATLAB r2018a

3. रास्पबेरी पाई

4. कैमरा मॉड्यूल

5. 3-डी प्रिंटेड कैमरा स्टेबलाइजर स्टैंड

6. स्मार्टफोन MATLAB मोबाइल के साथ स्थापित

7. लैपटॉप/कंप्यूटर MATLAB के साथ स्थापित

चरण 2: कनेक्शन

यह कदम रास्पबेरी पाई को रोबोट से जोड़ने के बारे में है, दूसरा रोबोट को आपके कंप्यूटर से जोड़ने और स्मार्टफोन को कंप्यूटर से जोड़ने के बारे में है।

इस प्रक्रिया का सबसे आसान हिस्सा रास्पबेरी पाई को आपके रोबोट से जोड़ना है, क्योंकि रास्पबेरी पाई को रोबोट के शीर्ष पर रखा गया है। रोबोट से एक कॉर्ड है जो आपको बस इतना करना है कि रास्पबेरी पाई के किनारे में प्लग करना है।

अगला कदम रोबोट को आपके कंप्यूटर से जोड़ना है ताकि आप रोबोट के प्रदर्शन के लिए कमांड चला सकें। पहली चीज जो आपको करनी चाहिए वह है अपने कंप्यूटर को उस वायरलेस नेटवर्क से कनेक्ट करना जो आपका रूमबा बना रहा है। अब, यह अनुशंसा की जाती है कि आप पथ सेट करने के लिए MATLAB में पथ सेट करें चिह्न का उपयोग करें ताकि आप MATLAB से Roomba टूलबॉक्स में फ़ंक्शन का उपयोग कर सकें। हर बार जब आप रोबोट के साथ प्रयोग शुरू कर रहे हैं और समाप्त कर रहे हैं, तो आपको रोबोट को "टू-फिंगर सैल्यूट" हार्ड रीसेट करना होगा, जिसका अर्थ है कि आप दस सेकंड के लिए डॉक और स्पॉट बटन दबाए रखें जब तक कि प्रकाश रिलीज होने का संकेत न दे। यदि आप रोबोट को छोटे पैमाने पर खेलते हुए सुनते हैं तो आप इस हार्ड रीसेट के साथ सफल रहे। इसके बाद आपको इस "r=roomba(x)" जैसे कोड की एक पंक्ति का उपयोग करके रूमबा से कनेक्ट करना होगा जहां 'x' आपके पास मौजूद रोबोट के लिए निर्दिष्ट संख्या है।

अंत में, आपको MATLAB मोबाइल को इस प्रोजेक्ट के लिए उपयोग किए जाने वाले किसी भी मोबाइल डिवाइस पर डाउनलोड करने की आवश्यकता है, और यह एप्लिकेशन Android और Apple दोनों उपकरणों पर उपलब्ध है। एक बार एप्लिकेशन इंस्टॉल हो जाने के बाद, आपको क्रेडेंशियल्स का उपयोग करके लॉगिन करना होगा। फिर आपको "मोर" लेबल वाले टैब का उपयोग करके इस डिवाइस को अपने कंप्यूटर से कनेक्ट करना होगा -> फिर "सेटिंग्स' पर क्लिक करें -> फिर "कंप्यूटर जोड़ें" पर क्लिक करें, इससे ऊपर की तस्वीरों में दिखाई गई स्क्रीन आ जाएगी। इसे देखने के बाद अगला चरण जो आपको पूरा करना होगा, वह है केवल उस जानकारी को प्लग करना और चिपकाना जो वह अनुरोध करता है। एक बार जब आप सफलतापूर्वक कनेक्ट हो जाते हैं, तो आप अपने रोबोट को नियंत्रित करने के लिए अपने कंप्यूटर पर अपने फोन पर परिभाषित कार्यों को कॉल करने में सक्षम होंगे।

चरण 3: तार्किक रूप से सेंसर का उपयोग करने के लिए MATLAB कोड बनाना

तार्किक रूप से सेंसर का उपयोग करने के लिए MATLAB कोड बनाना
तार्किक रूप से सेंसर का उपयोग करने के लिए MATLAB कोड बनाना

कोड बनाना सबसे आसान होगा जब इसका अधिकांश हिस्सा लूप के भीतर हो, ताकि रूमबा लगातार मान्य मानों को अपडेट कर सके जो वह देख रहा है। यदि कोई त्रुटि है, तो MATLAB एक त्रुटि प्रदर्शित करेगा और जहां यह कोड में दिखाई देगा, समस्या निवारण को अपेक्षाकृत सरल बना देगा।

r2018a MATLAB में डिज़ाइन किया गया, यह कोड मानक टूलबॉक्स, iRobot Create टूलबॉक्स, साथ ही MATLAB मोबाइल टूलबॉक्स का उपयोग करता है। इस उदाहरण में उपयोग किए गए रूमबा को 26 के रूप में नामित किया गया है, और आर = रूमबा (26) को रूमबा के साथ पूरी तरह से संवाद करने के लिए केवल एक बार चलाने की आवश्यकता है।

कोड:

फ़ंक्शन पार्कसिस्ट (x) यदि x==1

r=roomba(26) % रूमबा से जुड़ता है

जबकि सच

r.setDriveVelocity(.05,.05) % रूमबा को धीमी ड्राइविंग गति पर सेट करता है

बम्प=r.getBumpers % को बम्प सेंसर से डेटा मिलता है

क्लिफ=r.getCliffSensors % को क्लिफ सेंसर से डेटा मिलता है

light=r.getLightBumpers % को लाइट बम्प सेंसर से डेटा मिलता है

img=r.getImage;% रोबोट के कैमरे को बंद कर देता है

red_mean = माध्य (माध्य (img (:,:, 1)))% लाल पिक्सेल की औसत मात्रा को पढ़ता है

Green_mean = माध्य (माध्य (img (:,:, 2)))% हरे पिक्सेल की औसत मात्रा को पढ़ता है

blue_mean = माध्य (माध्य (img (:,:, 3)))% नीले पिक्सेल की औसत मात्रा को पढ़ता है

अगर बम्प.फ्रंट == 1% फ्रंट बम्प सेंसर पढ़ता है

r.stop %stops Roomba

msgbox('पथ अस्पष्ट है!', 'पार्किंग सहायक संदेश')% संदेश प्रदर्शित करता है कि पथ अस्पष्ट है ब्रेक% लूप समाप्त करता है

अन्य हरी_मीन >150

r.stop %stops Roomba

cont = questdlg ('जारी रखें?', 'पथ पूर्ण') % जारी रखने के लिए कहते हुए प्रश्न बॉक्स प्रदर्शित करता है

अगर cont == 'हां'

पार्कसिस्ट (1)% कोड को पुनः आरंभ करता है

अन्यथा

समाप्त

ब्रेक% लूप को समाप्त करता है

अन्य लाल_मीन > 140

r.turnAngle(45) % रूमबा को 45 डिग्री घुमाता है

r.timeStart %एक समय काउंटर शुरू करता है

जबकि सच

r.setDriveVelocity(.05,.05) % रूमबा की गति सेट करता है

time=r.timeGet % एक चर के लिए समय निर्दिष्ट करता है

बम्प=r.getBumpers % को बम्प सेंसर से डेटा मिलता है

क्लिफ=r.getCliffSensors % को क्लिफ सेंसर से डेटा मिलता है

light=r.getLightBumpers % को लाइट बम्प सेंसर से डेटा मिलता है

img=r.getImage;% रोबोट के कैमरे को बंद कर देता है

red_mean = माध्य (माध्य (img (:,:, 1)))% लाल पिक्सेल की औसत मात्रा को पढ़ता है

Green_mean = माध्य (माध्य (img (:,:, 2)))% हरे पिक्सेल की औसत मात्रा को पढ़ता है

blue_mean = माध्य (माध्य (img (:,:, 3)))% नीले पिक्सेल की औसत मात्रा को पढ़ता है

अगर नीला_मीन> 120

r.moveDistance(-0.01) % रूंबा को पीछे की ओर एक निर्धारित दूरी की ओर ले जाता है songPlay(r, 'T400, C, D, E, F, G, A, B, C^', 'true') % एक राइजिंग म्यूजिकल स्केल बजाता है

msgbox('Water Found!', 'Parking Assistant Message') % यह कहते हुए एक संदेश प्रदर्शित करता है कि पानी मिल गया है r.turnAngle(-80) % Roomba 80 डिग्री घुमाता है

ब्रेक% वर्तमान लूप को समाप्त करता है

एल्सिफ़ लाइट.राइटफ्रंट > 25 || light.leftFront > 25% लाइट बम्प सेंसर पढ़ता है

r.moveDistance(-0.01) % रूमबा को एक निर्धारित दूरी पर पीछे की ओर ले जाता है

r.turnAngle(-35) % रूमबा को 35 डिग्री घुमाता है

ब्रेक% वर्तमान लूप को समाप्त करता है

इल्सिफ क्लिफ.राइटफ्रंट <२५०० && क्लिफ.लेफ्टफ्रंट <२५००% दोनों क्लिफ सेंसर पढ़ता है

r.moveDistance(-0.1) % रूमबा को एक निर्धारित दूरी पर पीछे की ओर ले जाता है

r.turnAngle(-80) % रूमबा को 80 डिग्री घुमाता है

ब्रेक% वर्तमान लूप को समाप्त करता है

अन्य समय>= 3

r.stop %stops Roomba

contin=questdlg('स्टेशन फ्री, कंटिन्यू?', 'पार्किंग असिस्टेंट मेसेज') % पूछता है कि क्या रूमबा को जारी रखना चाहिए अगर कंटिन्यू == 'हां'

r.turnAngle(-90) % रूमबा को 90 डिग्री घुमाता है

पार्कसिस्ट (1)% फ़ंक्शन को पुनरारंभ करता है

अन्यथा

r.stop % रूमबा को रोकता है

समाप्त

अन्यथा

समाप्त

समाप्त

इल्सिफ क्लिफ.राइटफ्रंट <२५०० && क्लिफ.लेफ्टफ्रंट <२५००% दोनों क्लिफ सेंसर पढ़ता है

r.moveDistance(-0.1) % रूमबा को एक निर्धारित दूरी पर पीछे की ओर ले जाता है

r.turnAngle(-90) % रूमबा 90 डिग्री घुमाता है

एल्सिफ क्लिफ.राइटफ्रंट <250% राइट क्लिफ सेंसर पढ़ता है

r.turnAngle(-5) % रूमबा को क्लिफ सेंसर की विपरीत दिशा में थोड़ा सा घुमाता है

एल्सिफ क्लिफ। लेफ्टफ्रंट <250% लेफ्ट क्लिफ सेंसर पढ़ता है

r.turnAngle(5) % रूमबा को क्लिफ सेंसर की विपरीत दिशा में थोड़ा सा घुमाता है

अन्यथा

समाप्त

समाप्त

समाप्त

चरण 4: कोड और रोबोट का परीक्षण

कोड और रोबोट का परीक्षण
कोड और रोबोट का परीक्षण
कोड और रोबोट का परीक्षण
कोड और रोबोट का परीक्षण
कोड और रोबोट का परीक्षण
कोड और रोबोट का परीक्षण

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

चरण 5: त्रुटि की पहचान

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

चरण 6: निष्कर्ष

अब आपके पास अपने रूमबा के साथ खेलने के लिए सभी उपकरण हैं, जिसका अर्थ है कि आप अपने इच्छित लक्ष्यों को प्राप्त करने के लिए कोड में हेरफेर कर सकते हैं। यह आपके दिन का सबसे अच्छा हिस्सा होना चाहिए, इसलिए मज़े करें और सुरक्षित रूप से ड्राइव करें!

सिफारिश की: