विषयसूची:

रूमबा एक्सप्लोरर: 4 कदम
रूमबा एक्सप्लोरर: 4 कदम

वीडियो: रूमबा एक्सप्लोरर: 4 कदम

वीडियो: रूमबा एक्सप्लोरर: 4 कदम
वीडियो: Gabriele Goffedo | Basic Rumba walks | Tutorial | Professional Latin 2024, जुलाई
Anonim
रूमबा एक्सप्लोरर
रूमबा एक्सप्लोरर

MATLAB और iRobot के Create2 रोबोट का उपयोग करके, यह प्रोजेक्ट किसी अज्ञात स्थान के विभिन्न क्षेत्रों का पता लगाएगा। हमने खतरनाक इलाके में पैंतरेबाज़ी करने में मदद करने के लिए रोबोट पर सेंसर लगाए हैं। संलग्न रास्पबेरी पाई से तस्वीरें और वीडियो फीड प्राप्त करके, हम रोबोट के सामने आने वाली बाधाओं को निर्धारित करने में सक्षम थे, और उन्हें वर्गीकृत किया जाएगा।

भागों और सामग्री

इस परियोजना के लिए, आपको आवश्यकता होगी

-एक कंप्यूटर

MATLAB का नवीनतम संस्करण (इस परियोजना के लिए MATLAB R2018b का उपयोग किया गया था)

- रूमबाइंस्टॉल टूलबॉक्स

-iRobot का Create2 रोबोट

कैमरा के साथ रास्पबेरी पाई

चरण 1: आरंभीकरण और सेंसर

आरंभीकरण और सेंसर
आरंभीकरण और सेंसर

किसी भी प्रोग्रामिंग को शुरू करने से पहले, हमने रूमबा इंस्टाल टूलबॉक्स डाउनलोड किया, जिसने रोबोट के विभिन्न घटकों तक पहुंच की अनुमति दी।

प्रारंभ में, हमने किसी भी रोबोट को इनिशियलाइज़ करने के लिए एक GUI बनाया। ऐसा करने के लिए, आपको इनपुट के रूप में रोबोट की संख्या टाइप करनी होगी। यह हमारे प्रोग्राम को रोबोट तक चलाने की अनुमति देगा हमने रोबोट को कई इलाकों में युद्धाभ्यास करने के लिए काम किया है। हमने क्लिफ सेंसर्स, लाइट बम्प सेंसर्स और फिजिकल बम्प सेंसर्स को लागू किया, उनके आउटपुट का उपयोग करके रोबोट की गति और दिशा बदलने के लिए यात्रा की। जब छह लाइट बंप सेंसर में से कोई भी किसी वस्तु का पता लगा रहा है, तो उनके द्वारा आउटपुट मूल्य कम हो जाएगा, जिससे पूर्ण गति टकराव से बचने के लिए रोबोट की गति कम हो जाएगी। जब रोबोट अंत में एक बाधा से टकराता है, तो भौतिक बंप सेंसर शून्य से अधिक मान की रिपोर्ट करेगा; इस वजह से, रोबोट रुक जाएगा, इसलिए आगे कोई टकराव नहीं होगा और अधिक कार्यों को क्रियान्वित किया जा सकता है। क्लिफ सेंसर के लिए, वे अपने आसपास के क्षेत्र की चमक को पढ़ेंगे। यदि मान 2800 से अधिक है, तो हमने निर्धारित किया कि रोबोट स्थिर जमीन पर और सुरक्षित होगा। लेकिन, यदि मान ८०० से कम है, तो क्लिफ सेंसर तुरंत एक चट्टान का पता लगाएंगे, ताकि गिर न जाए। बीच में कोई भी मूल्य पानी का प्रतिनिधित्व करने के लिए निर्धारित किया गया था और इससे रोबोट अपनी कार्रवाई बंद कर देगा। उपरोक्त सेंसर का उपयोग करके, रोबोट की गति को बदल दिया जाता है जिससे हम बेहतर ढंग से यह निर्धारित कर सकते हैं कि कोई खतरा है या नहीं।

नीचे कोड है (MATLAB R2018b से)

%% आरंभीकरण

dlgPrompts = {'रूमबा नंबर'};

dlgTitle = 'अपना रूमबा चुनें';

dlgDefaults = {''};

ऑप्ट। आकार बदलें = 'चालू';

dlgout = inputdlg(dlgPrompts, dlgTitle, 1, dlgDefaults, opts) % विंडो बनाएं जो उपयोगकर्ता को अपना रूमबा नंबर इनपुट करने के लिए प्रेरित करे

n=str2double(dlgout{1});

आर = रूमबा (एन); % लाइट बम्प सेंसर से उपयोगकर्ता निर्दिष्ट रूमबा %% गति निर्धारण को प्रारंभ करता है जबकि सही s=r.getLightBumpers; % लाइट बम्प सेंसर प्राप्त करें

lbumpout_1=extractfield(s, 'बाएं'); % सेंसर के संख्यात्मक मान लेता है और उन्हें अधिक उपयोगी बनाता है lbumpout_2=extractfield(s, 'leftFront');

lbumpout_3=extractfield(s, 'leftCenter');

lbumpout_4=extractfield(s, 'rightCenter');

lbumpout_5=extractfield(s, 'rightFront');

lbumpout_6=extractfield(s, 'right');

lbout=[lbumpout_1, lbumpout_2, lbumpout_3, lbumpout_4, lbumpout_5, lbumpout_6] % मानों को मैट्रिक्स में बदलता है

sLbump = सॉर्ट (एलबाउट); % प्रकार मैट्रिक्स को निम्नतम मान से निकाला जा सकता है

LowLbump = sLbump (1); speed=.05+(lowLbump)*.005% न्यूनतम मान का उपयोग करते हुए, जो करीब बाधाओं का प्रतिनिधित्व करता है, गति निर्धारित करने के लिए, उच्च गति जब कुछ भी पता नहीं चला

r.setDriveVelocity (गति, गति)

समाप्त

% भौतिक बंपर

b=r.getBumpers; %आउटपुट सत्य, असत्य

bsen_1=extractfield(b, 'बाएं')

bsen_2=extractfield(b, 'दाएं')

bsen_3=extractfield(b, 'सामने')

bsen_4=extractfield(b, 'लेफ्टव्हीलड्रॉप')

bsen_5=extractfield(b, 'rightWheelDrop')

धक्कों=[bsen_1, bsen_2, bsen_3, bsen_4, bsen_5] tbump=sum(bums)

अगर tbump>0 r.setDriveVelocity(0, 0)

समाप्त

% चट्टान सेंसर

c=r.getCliffSensors %% 2800 सुरक्षित, अन्यथा पानी

csen_1=extractfield(c, 'बाएं')

csen_2=extractfield(c, 'दाएं')

csen_3=extractfield(c, 'लेफ्टफ्रंट')

csen_4=extractfield(c, 'राइटफ्रंट')

चट्टानें = [csen_1, csen_2, csen_3, csen_4]

ऑर्डक्लिफ = सॉर्ट (चट्टानें)

अगर ऑर्डक्लिफ(1) <2750

r.setDriveVelocity(0, 0)

अगर चट्टान<800

डिस्प 'क्लिफ'

अन्यथा

डिस्प 'पानी'

समाप्त

आर.टर्नएंगल(45)

समाप्त

चरण 2: डेटा प्राप्त करना

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

img = r.getImage; आईएमशो (आईएमजी);

imwrite(img, 'imgfromcamera.jpg')

फोटो = इमरीड ('imgfromcamera.jpg')

ओसीआर परिणाम = ओसीआर (फोटो)

मान्यता प्राप्त टेक्स्ट = ocrResults. Text;

आकृति;

imshow(फोटो) टेक्स्ट (२२०, ०, मान्यता प्राप्त टेक्स्ट, 'बैकग्राउंड कलर', [१ १ १]);

चरण 3: मिशन खत्म करना

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

% ईमेल भेज रहा हूं

setpref ('इंटरनेट', 'SMTP_Server', 'smtp.gmail.com');

setpref ('इंटरनेट', 'ईमेल', '[email protected]'); % मेल खाता setpref से भेजने के लिए ('इंटरनेट', 'SMTP_Username', 'प्रेषक ईमेल दर्ज करें'); % प्रेषक उपयोगकर्ता नाम setpref ('इंटरनेट', 'SMTP_Password', 'प्रेषक पासवर्ड दर्ज करें'); % प्रेषक पासवर्ड

सहारा = java.lang. System.getProperties; props.setProperty('mail.smtp.auth', 'true'); props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory'); props.setProperty('mail.smtp.socketFactory.port', '465');

Sendmail ('ईमेल प्राप्त करना दर्ज करें', 'Roomba', 'Roomba घर लौट आया है !!', 'imgfromcamera.jpg') % मेल खाता जिसे भेजना है

रोबोट तो समाप्त हो गया है।

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

निष्कर्ष
निष्कर्ष

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

*रिमाइंडर: यह मत भूलो कि रोबोट और ऑन बोर्ड रास्पबेरी पाई के साथ बातचीत करने के लिए MATLAB के लिए रूमबा इंस्टाल टूलबॉक्स की आवश्यकता है।

सिफारिश की: