विषयसूची:

अपने रूमबा को मंगल रोवर में बदलना: 5 कदम
अपने रूमबा को मंगल रोवर में बदलना: 5 कदम

वीडियो: अपने रूमबा को मंगल रोवर में बदलना: 5 कदम

वीडियो: अपने रूमबा को मंगल रोवर में बदलना: 5 कदम
वीडियो: डैनियल श्माख्तेनबर्गर: क्या प्रौद्योगिकी हमें नष्ट कर देगी? 2024, नवंबर
Anonim
अपने रूमबा को मार्स रोवर में बदलना
अपने रूमबा को मार्स रोवर में बदलना

चरण 1: अपनी सामग्री इकट्ठा करें

इस परियोजना को पूरा करने के लिए, आपको निम्नलिखित सामग्रियों को इकट्ठा करना होगा:

1 रूमबा रोबोट

1 रास्पबेरी पाई किट

1 वीडियो कैमरा

MATLAB तक पहुंच

चरण 2: MATLAB के लिए रूमबा टूलबॉक्स डाउनलोड करें

MATLAB के लिए Roomba टूलबॉक्स डाउनलोड करें
MATLAB के लिए Roomba टूलबॉक्स डाउनलोड करें
MATLAB के लिए Roomba टूलबॉक्स डाउनलोड करें
MATLAB के लिए Roomba टूलबॉक्स डाउनलोड करें

इस प्रोजेक्ट को पूरा करने के लिए आवश्यक टूलबॉक्स स्थापित करने के लिए निम्न कोड चलाएँ।

फंक्शन रूमबाइंस्टॉल

सीएलसी;

स्थापित करने के लिए फाइलों की % सूची

फ़ाइलें = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'};

% स्थान से स्थापित करने के लिए

विकल्प = वेब विकल्प ('सर्टिफिकेटफाइलनाम', ''); % इसे प्रमाणपत्र आवश्यकताओं को अनदेखा करने के लिए कहें

सर्वर = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/';

dlgTitle = 'रूमबा इंस्टाल/अपडेट';

% प्रदर्शन उद्देश्य और पुष्टि प्राप्त करें

शीघ्र = {

'यह प्रोग्राम इन EF 230 Roomba फ़ाइलों को डाउनलोड करेगा:'

''

strjoin (फ़ाइलें, '')

''

'इस फ़ोल्डर में:'

''

सीडी

''

'क्या आप जारी रखना चाहते हैं? '

};

बीप;

yn = questdlg (शीघ्र,…

डीएलजीटाइटल,…

'हां', 'नहीं', 'हां');

अगर ~ strcmp (yn, 'हां'), वापसी; समाप्त

% मौजूद फाइलों की सूची प्राप्त करें

मौजूदा_फाइल्स = फाइलें (सेलफन (@exist, फाइलें)> 0);

अगर ~ खाली (मौजूदा_फाइल)

% सुनिश्चित करें कि उन्हें बदलना वास्तव में ठीक है

प्रॉम्प्ट = {'आप इन फाइलों को बदल रहे हैं:'

''

strjoin (मौजूदा_फाइल, '')

''

'बदलने के लिए ठीक है?'

};

बीप;

yn = questdlg (शीघ्र,…

डीएलजीटाइटल,…

'हां', 'नहीं', 'हां');

अगर ~ strcmp (yn, 'हां'), वापसी; समाप्त

समाप्त

% फ़ाइलें डाउनलोड करें

सीएनटी = 0;

i=1 के लिए: लंबाई (फ़ाइलें)

एफ = फ़ाइलें {i};

disp (['डाउनलोडिंग' f]);

प्रयत्न

यूआरएल = [सर्वर एफ];

वेबसेव (एफ, यूआरएल, विकल्प); सुरक्षा त्रुटियों से बचने के लिए % जोड़े गए विकल्प

सीएनटी = सीएनटी + 1;

पकड़

disp (['डाउनलोड करने में त्रुटि' f]);

डमी = [एफ '.html'];

यदि मौजूद है (डमी, 'फ़ाइल') == 2

हटाएं (डमी)

समाप्त

समाप्त

समाप्त

अगर सीएनटी == लंबाई (फाइलें)

संदेश = 'स्थापना सफल';

प्रतीक्षा करें (msgbox (संदेश, dlgTitle));

अन्यथा

संदेश = 'स्थापना त्रुटि - विवरण के लिए कमांड विंडो देखें';

प्रतीक्षा करें (errordlg (msg, dlgTitle));

समाप्त

अंत %roombaइंस्टॉल

चरण 3: अपने रूमबा से कनेक्ट करें

अब वाईफाई का उपयोग करके अपने रूमबा से जुड़ने का समय आ गया है। अपने रूमबा को चालू या रीसेट करने के लिए 2 अंगुलियों का उपयोग करते हुए, डॉक और स्पॉट बटन को एक साथ दबाएं। इसके बाद, अपने रोबोट से कनेक्ट करने के लिए MATLAB की कमांड विंडो में कोड r=roomba(# of your Roomba) चलाएँ। एक बार जब आप इस आदेश को निष्पादित कर लेते हैं, तो आपका रूमबा जाने के लिए तैयार होना चाहिए।

चरण 4: चुनें कि आप अपने रूमबा को कैसे नियंत्रित करना चाहते हैं

चुनें कि आप अपने रूमबा को कैसे नियंत्रित करना चाहते हैं
चुनें कि आप अपने रूमबा को कैसे नियंत्रित करना चाहते हैं
चुनें कि आप अपने रूमबा को कैसे नियंत्रित करना चाहते हैं
चुनें कि आप अपने रूमबा को कैसे नियंत्रित करना चाहते हैं

आप अपने रूमबा को दो तरीकों से नियंत्रित कर सकते हैं: स्वायत्त रूप से या नियंत्रक के रूप में स्मार्टफोन का उपयोग करना।

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

स्मार्टफोन का उपयोग करने के लिए, आपको सबसे पहले नीचे दिए गए चरणों का पालन करके अपने स्मार्टफोन को अपने कंप्यूटर से कनेक्ट करना होगा।

नोट: ठीक से कनेक्ट होने के लिए आपका कंप्यूटर और स्मार्टफोन एक ही वाईफाई नेटवर्क पर होना चाहिए!

1. अपने डिवाइस पर ऐप स्टोर से MATLAB ऐप डाउनलोड करें।

2. अपनी कमांड विंडो में "कनेक्टर ऑन" टाइप करें और एक पासवर्ड सेट करें जिसे दोनों उपकरणों में इनपुट करने की आवश्यकता होगी।

3. इतना करने के बाद MATLAB आपको आपके कंप्यूटर का IP पता देगा। आपको अपने स्मार्टफोन पर MATLAB ऐप में सेटिंग पेज पर जाना होगा और दिए गए आईपी पते और आपके द्वारा पहले दर्ज किए गए पासवर्ड का उपयोग करके एक कंप्यूटर जोड़ना होगा।

4. अपने कंप्यूटर पर कमांड विंडो में, कोड m=mobiledev टाइप करें और यह आपके स्मार्टफोन को आपके Roomba के कंट्रोलर के रूप में इनिशियलाइज़ करना चाहिए।

5. आपका कंप्यूटर और स्मार्टफोन अब जाने के लिए तैयार होना चाहिए।

चरण 5: ड्राइव योर रूमबा

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

स्वायत्त ड्राइविंग

फ़ंक्शन एक्सप्लोर_मोडिफाइड (आर)

% इनपुट तर्क: 1 रूमबा ऑब्जेक्ट, r

% आउटपुट तर्क: कोई नहीं

%विवरण:

% फ़ंक्शन एक अनंत का उपयोग करता है जबकि लूप स्वायत्तता की अनुमति देता है

बॉट के परिवेश का %अन्वेषण।

%

%funciton रूमबा को निर्देश भी प्रदान करता है कि क्या करना है

%निम्नलिखित स्थितियाँ: पहिए जमीन के साथ संपर्क खो देते हैं, an

%ऑब्जेक्ट बॉट के सामने या दोनों ओर पाया जाता है, और a

%अचानक गिरावट बॉट के सामने या दोनों ओर पाई जाती है।

%

% विशिष्ट निर्देशों में अधिकतम करने के उद्देश्य से आंदोलन आदेश शामिल हैं

%अन्वेषण या एक ज्ञात खतरे से बचें और संवाद करने के लिए आदेश दें

बॉट्स की खोजों (चित्र), स्थिति (ग्राफ) के बारे में% जानकारी, मैटलैब और/या ईमेल के माध्यम से उपयोगकर्ता के साथ% और स्थिति (फंसे चेतावनी)। कई

%ध्वनि आदेश आनंद के लिए जोड़े गए हैं।

%सेटअप ईमेल क्षमताएं

मेल = '[email protected]';

पासवर्ड = 'EF230Roomba';

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

setpref ('इंटरनेट', 'ईमेल', मेल);

setpref ('इंटरनेट', 'SMTP_Username', मेल);

setpref ('इंटरनेट', 'SMTP_Password', पासवर्ड);

सहारा = java.lang. System.getProperties;

props.setProperty('mail.smtp.starttls.enable', 'true');

props.setProperty('mail.smtp.auth', 'true');

props.setProperty('mail.smtp.socketFactory.class', 'javax.net.ssl. SSLSocketFactory');

props.setProperty('mail.smtp.socketFactory.port', '465');

% आर = रूमबा(19)

r.beep('G2^^, G2^^, G2^^, G2^^, A2^^, A2^^, G1^^, E1^^, C2^^, C2^^, C1^^, C1 ^^, D1^^, C1^^, D2^^, E4^^, G2^^, G2^^, G2^^, G2^^, A2^^, A2^^, G1^^, E1^^, C2^^, C2^^, C2^^, E1^^, E1^^, E1^^, D1^^, C4^^');

वी =.1;

प्रतिबिंबित_डेटम = 2700; %सेट क्लिफ सेंसर संदर्भ मान

लाइटबम्पर_डेटम = २००; %सेट लाइट बंपर सेंसर संदर्भ मूल्य

स्थिति = [0, 0]; प्रारंभिक डेटा के साथ स्थिति भंडारण के लिए% चर

कोण = 0; %सेट संदर्भ कोण

जाल = 0; % शुद्ध कोण विस्थापन

मैं = २; भंडारण चर की स्थिति में पंक्तियों को जोड़ने के लिए% iterator

जिला = 0;

r.setDriveVelocity (वी, वी); %स्टार्ट रूमबा आगे बढ़ रहा है

जबकि सच

क्लिफ = r.getCliffSensors;

टक्कर = r.getBumpers;

लाइट = r.getLightBumpers;

रैंडएंगल = रैंडी ([२०, ६०], १); % 20 और 60 डिग्री के बीच 1 यादृच्छिक कोण उत्पन्न करता है। बॉट को लूप में फंसने से रोकने के लिए उपयोग किया जाता है

%यदि एक या अधिक पहिए का जमीन से संपर्क टूट जाए तो क्या करें:

% गति रोकें, परिवेश की तस्वीर के साथ एक चेतावनी ईमेल भेजें, % और उपयोगकर्ता से पूछें कि क्या आगे बढ़ना है या मदद के लिए प्रतीक्षा करना है

अगर बम्प.राइटव्हीलड्रॉप == 1 || बम्प.लेफ्टव्हीलड्रॉप == 1

आर.स्टॉप

जिला = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.beep('F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^, F#1^^, C1^^')

img = r.getImage;

इमराइट (आईएमजी, 'अटक। पीएनजी');

%--------------------------

imfile = 'अटक गया। पीएनजी';

स्थिति = सेवपोस (स्थिति);

%---------------------------

Sendmail (मेल, 'सहायता!', 'मैं एक चट्टान पर फंसा हुआ हूँ!', {imfile, position})

सूची = {'जारी रखें', 'रोकें'};

idx = मेनू ('मुझे क्या करना चाहिए?', सूची);

अगर आईडीएक्स == 2

टूटना

समाप्त

% अगर बॉट के सामने कोई वस्तु पाई जाती है तो क्या करें:

%रोकें, पीछे हटें, चित्र लें, खोज के उपयोगकर्ता को सचेत करें

%ईमेल के माध्यम से, ९० डिग्री मुड़ें, और एक्सप्लोर करते रहें

एल्सिफ़ लाइट.लेफ्टसेंटर > लाइटबम्पर_डेटम || Light.rightCenter > lightBumper_datum || टक्कर.सामने == 1

आर.स्टॉप;

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.moveDistance(-.125);

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.beep('A1^, A1^, A4^, A2^, G2^, G2^, G4^, Bb2^, Bb2^, Bb3.5^, G1^, A8^')

img = r.getImage;

imwrite(img, 'FrontBump.png')

%--------------------------

imfile='फ्रंटबंप.png';

स्थिति = सेवपोस (स्थिति);

%---------------------------

Sendmail (मेल, 'अलर्ट!', 'मुझे कुछ मिला!', {imfile, स्थिति})

कोण = ९०;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.setDriveVelocity (वी, वी);

% अगर बॉट के बाईं ओर वस्तु का पता चलता है तो क्या करें:

% रुकें, वस्तु की ओर मुड़ें, बैकअप लें, चित्र लें, चेतावनी

ईमेल के माध्यम से खोज के %उपयोगकर्ता, ९० डिग्री मुड़ें और एक्सप्लोर करते रहें

एल्सिफ़ लाइट.लेफ्टफ्रंट > लाइटबम्पर_डेटम || लाइट.बाएं > लाइटबम्पर_डेटम || टक्कर.बाएं == 1

आर.स्टॉप;

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

कोण = 30;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.moveDistance(-.125);

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.beep('A4^, A4^, G1^, E1^, C3.5^, C2^^, C1^, C1^, C2^, D2^, D2^, E8^')

img = r.getImage;

imwrite(img, 'LeftBump.png')

%--------------------------

imfile = 'वामपंथी.पीएनजी';

स्थिति = सेवपोस (स्थिति);

%---------------------------

sendmail (मेल, 'अलर्ट!', 'मुझे कुछ मिला!', {imfile, स्थिति})

कोण=-९०;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.setDriveVelocity (वी, वी);

% अगर बॉट के दायीं ओर वस्तु का पता चलता है तो क्या करें:

% रुकें, वस्तु की ओर मुड़ें, बैकअप लें, चित्र लें, चेतावनी

ईमेल के माध्यम से खोज के %उपयोगकर्ता, ९० डिग्री मुड़ें और एक्सप्लोर करते रहें

एल्सिफ़ लाइट.राइटफ्रंट > लाइटबम्पर_डेटम || Light.right > lightBumper_datum || टक्कर.दाएं == 1

आर.स्टॉप;

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

कोण = -30;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.moveDistance(-.125);

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

विराम (1.5);

r.beep('C1^, C1^, C2^, D2^, D2^, C8^')

img = r.getImage;

इमराइट (आईएमजी, 'राइटबंप.पीएनजी')

%--------------------------

इम्फाइल = 'राइटबम्प.पीएनजी';

स्थिति = सेवपोस (स्थिति);

%---------------------------

Sendmail (मेल, 'अलर्ट!', 'मुझे कुछ मिला!', {imfile, स्थिति});

कोण = ९०;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.setDriveVelocity (वी, वी);

% अगर बॉट के बाईं ओर चट्टान का पता चलता है तो क्या करें:

%रोकें, पीछे की ओर बढ़ें, दाएं मुड़ें, एक्सप्लोर करना जारी रखें

एल्सिफ़ क्लिफ.लेफ्ट <reflect_datum || क्लिफ.लेफ्टफ्रंट <reflect_datum

आर.स्टॉप;

जिला = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.moveDistance(-.125);

डिस्ट = r.getDistance;

pos(i, 1)= pos(i-1, 1) + dist * sind(netangle); %x निर्देशांक प्राप्त करें

pos(i, 2)= pos(i-1, 2) + dist * cosd(netangle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

कोण=-रैंडएंगल;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.setDriveVelocity (वी, वी);

% अगर बॉट के दाईं ओर चट्टान का पता चलता है तो क्या करें:

%रोकें, पीछे की ओर बढ़ें, बाएं मुड़ें, एक्सप्लोर करना जारी रखें

एल्सिफ़ क्लिफ.राइट <reflect_datum || क्लिफ.राइटफ्रंट <reflect_datum

आर.स्टॉप;

जिला = r.getDistance;

पॉज़ (i, १) = डिस्ट * सिंध (कोण); %x निर्देशांक प्राप्त करें

pos(i, 2)= dist * cosd(angle); % y निर्देशांक प्राप्त करें

मैं = मैं+1;

r.moveDistance(-.125);

कोण = रैंडएंगल;

जाल = जाल + कोण;

आर.टर्नएंगल (कोण);

r.setDriveVelocity (वी, वी);

समाप्त

समाप्त

स्मार्टफोन नियंत्रक

विकल्प = {'स्वायत्त', 'मैनुअल नियंत्रण'}

प्रॉम्प्ट = मेनू ('आप रोवर को कैसे नियंत्रित करना चाहेंगे?', विकल्प)

एम = मोबाइलदेव

आर = रूमबा(१९)

अगर शीघ्र == 1

एक्सप्लोर करें (आर)

अन्यथा

जबकि सच

विराम (.5)

PhoneData=m.अभिविन्यास;

अज़ी = फोनडाटा (1);

पिच = फोनडाटा (2);

साइड = फोनडाटा (3);

अगर साइड>130 || साइड<-130% अगर फोन नीचे की ओर फ़्लिप किया जाता है तो रूमबा को रोकें और लूप से बाहर निकलें

आर.स्टॉप

आर बीप ('सी, सी, सी, सी')

टूटना

अन्य साइड>25 && साइड<40% अगर फोन 25 और 40 डिग्री के बीच बग़ल में घुमाया जाता है तो 5 डिग्री बाएं मुड़ें

r.turnAngle(-5);

अन्य साइड> ४०% अगर फोन को ४० डिग्री से अधिक बग़ल में घुमाया जाता है तो ४५ डिग्री बाएँ मुड़ें

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

और अगर साइड -40% अगर फोन -25 और -40 डिग्री के बीच बग़ल में घुमाया जाता है तो दाएँ मुड़ें 5 डिग्री

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

अन्य साइड<-40% यदि फोन -40 डिग्री से कम बग़ल में घुमाया जाता है तो बाएं मुड़ें 45 डिग्री

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

समाप्त

%अगर फोन को वर्टिकल के पास रखा गया है तो एक इमेज लें और उसे प्लॉट करें

अगर पिच<-60 && छवि<=9

आर.बीप

img=r.getImage;

सबप्लॉट(3, 3, छवि)

आईएमशो (आईएमजी)

समाप्त

% आगे और पीछे के अभिविन्यास के आधार पर आगे और पीछे ले जाएँ

अगर पिच>15 && पिच<35% अगर 15 और 35 डिग्री के बीच की पिच कम दूरी पर आगे बढ़ती है

चलने से पहले %हल्का बंपर डेटा प्राप्त करें

litBump=r.getLightBumpers;

अगर litBump.leftFront>500 || litBump.leftCenter>500 || litBump.rightCenter>500 || litBump.rightFront> ५००% अगर रूमबा के सामने कुछ है और अगर वह आगे बढ़ता है तो हिट होगा शोर करें और संदेश प्रदर्शित करें

r.beep('C^^, F#^, C^^, F#^')

अन्य % चाल

r.moveDistance(.03);

%चलने के बाद बंपर डेटा प्राप्त करें

बम्प = r.getBumpers;

अगर टक्कर.दाएं == 1 || टक्कर.बाएं==1 || टक्कर.सामने==1

आर बीप ('ए, सी, ई')

r.moveDistance(-.01)

समाप्त

%क्लिफ सेंसर डेटा प्राप्त करें

क्लिफ = r.getCliffSensors;

अगर चट्टान.बाएं>1500 || क्लिफ.लेफ्टफ्रंट>१५०० || क्लिफ.राइटफ्रंट>1500 || क्लिफ.दाएं>150% अगर कोई चीज क्लिफ सेंसर को ट्रिगर करती है तो उसे लावा और बैक अप के रूप में मानते हैं

आर.बीप ('सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी')

r.moveDistance(-.031)

समाप्त

समाप्त

एल्सिफ पिच> 35% यदि पिच 35 डिग्री से अधिक हो तो लंबी दूरी आगे बढ़ें

चलने से पहले %हल्का बंपर डेटा प्राप्त करें

litBump=r.getLightBumpers;

अगर litBump.leftFront>15 || litBump.leftCenter>15 || litBump.rightCenter>15 || litBump.rightFront>15% अगर रूमबा के सामने कुछ है और आगे बढ़ने पर हिट होगा तो शोर करें और संदेश प्रदर्शित करें

r.beep('C^^, F#^, C^^, F#^')

अन्य % चाल

r.moveDistance(.3)

%चलने के बाद बंपर डेटा प्राप्त करें

बम्प = r.getBumpers;

अगर टक्कर.दाएं == 1 || टक्कर.बाएं==1 || Bump.front==1% यदि आप कुछ हिट करते हैं तो शोर करें, संदेश प्रदर्शित करें और बैक अप लें

आर बीप ('ए, सी, ई')

r.moveDistance(-.01)

समाप्त

%चलने के बाद क्लिफ सेंसर डेटा प्राप्त करें

क्लिफ = r.getCliffSensors;

अगर चट्टान.बाएं>1500 || क्लिफ.लेफ्टफ्रंट>१५०० || क्लिफ.राइटफ्रंट>1500 || क्लिफ.दाएं>150% अगर कोई चीज क्लिफ सेंसर को ट्रिगर करती है तो उसे लावा और बैक अप के रूप में मानते हैं

आर.बीप ('सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी')

r.moveDistance(-.31)

समाप्त

समाप्त

अन्य पिच -35% यदि -15 और -35 डिग्री के बीच की पिच कम दूरी पर वापस जाती है

r.moveDistance(-.03);

चलने के बाद %क्लिफ सेंसर डेटा प्राप्त करें

क्लिफ = r.getCliffSensors;

अगर चट्टान.बाएं>1500 || क्लिफ.लेफ्टफ्रंट>१५०० || क्लिफ.राइटफ्रंट>1500 || क्लिफ.दाएं>150% अगर कोई चीज क्लिफ सेंसर को ट्रिगर करती है तो उसे लावा और बैक अप के रूप में मानते हैं

आर.बीप ('सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी')

r.moveDistance(.04)

समाप्त

अन्य पिच -60% यदि -35 और -60 डिग्री के बीच की पिच लंबी दूरी तक पीछे जाती है

r.moveDistance(-.3)

%चलने के बाद क्लिफ सेंसर डेटा प्राप्त करें

क्लिफ = r.getCliffSensors;

अगर चट्टान.बाएं>1500 || क्लिफ.लेफ्टफ्रंट>१५०० || क्लिफ.राइटफ्रंट>1500 || क्लिफ.दाएं>150% अगर कोई चीज क्लिफ सेंसर को ट्रिगर करती है तो उसे लावा और बैक अप के रूप में मानते हैं

आर.बीप ('सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी, सी^^, सी')

r.moveDistance(.31)

समाप्त

समाप्त

समाप्त

समाप्त

सिफारिश की: