Բովանդակություն:
- Քայլ 1: Անհրաժեշտ նյութեր
- Քայլ 2: Կարգավորում/ներբեռնում
- Քայլ 3. Կոդ Մաս 1. Հետևման գործառույթ
- Քայլ 4: Կոդ Մաս 2. Կապ
- Քայլ 5. Կոդ 3. Մաս 3. Էլեկտրոնային բաժին
Video: UTK EF 230 MarsRoomba Project Fall 2018: 5 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Ներկայումս մարսագնացները օգտագործվում են Մարսի մակերևույթի վերաբերյալ տարբեր եղանակներով տվյալներ հավաքելու համար ՝ վերջնականապես վերջնականապես իմանալով մոլորակի մանրէաբանական կյանքի ներուժի մասին: Թռչող սարքերը տվյալների հավաքագրման համար հիմնականում օգտագործում են լուսանկարչության և հողի վերլուծության գործիքներ, սակայն արկածախնդիր սարքերը ներառում են նաև նավիգացիոն գործիքներ, ճառագայթման դետեկտորներ, մթնոլորտային տվիչներ և լազեր ՝ ժայռերի նմուշի գոլորշիացման համար: ՆԱՍԱ -ի տվյալներով ՝ 2020 թ. Մոլորակագնացների առաքելության նպատակը հիմնականում նույնն է, բայց հատուկ առաջադրանքն է ՝ «հողի և ժայռի նմուշներ հավաքելը և դրանք մակերևույթում պահելը ՝ ապագա առաքելությամբ Երկիր հնարավոր վերադարձի համար»:
Այնուամենայնիվ, այն ենթադրությամբ, որ ապագա թռչող սարքերը կօգտագործվեն մարդկանց օգնության համար, մեր թիմը հաշվի առավ, թե մարդկանց որ կողմերը կարող է վերահսկել արբանյակը: Մենք եկանք այն եզրակացության, որ եթե ինչ -որ արտակարգ իրավիճակ տիեզերագնացին անգիտակից վիճակում դնի կյանքի և սարքավորումների խափանումների պատճառով, մեր արբանյակը կարող է ծառայել որպես շարժական մայիսյան փարոս ՝ նկատելով, որ տիեզերագնացն անշարժ է և փոխանցում է անհանգստության ուղերձ: Մարդուն հետևելու և անշարժությունը որոշելու համար, արբանյակը պետք է օգտագործի այնպիսի տվյալներ, ինչպիսիք են մարդու կոշիկի գույնը և դրանց շարժումները: Մեկ այլ ներդրում, որը պետք է հաշվի առնել, այն է, որ այն պետք է հիշի իր ուղին, որպեսզի արտակարգ իրավիճակների դեպքում փոխանցի անհանգստության ազդանշանը: Մեր տիեզերագնացը բավարարում է Մարսի կարիքն այն առումով, որ նման թանկարժեք առաքելություն կատարելը նման օտարերկրյա տեղանքում պահանջում է խափանման սարքերի բազմաթիվ շերտեր, և եթե տիեզերագնացը չկարողանա ինքնուրույն օգնություն ստանալ կոստյումի անսարքության կամ անգիտակից վիճակի պատճառով, արբանյակը կարող է զգուշացնել ուրիշներին:.
Այս հրահանգը նախատեսված է օգնելու ընթերցողին ծրագրել իր Roomba- ին հաջողությամբ հետևել «տիեզերագնացին» և անհրաժեշտության դեպքում ազդանշանի ուղարկել:
Քայլ 1: Անհրաժեշտ նյութեր
1) ինտերնետ հասանելի համակարգիչ/նոութբուք
2) MATLAB_R2018 ա
3) Roomba և Roomba ներբեռնում
Քայլ 2: Կարգավորում/ներբեռնում
Գործարկեք այս սցենարը MATLAB- ում, որպեսզի ներբեռնեք Roomba մուտք գործելու համար անհրաժեշտ ծրագրակազմը (որը պահվում է նախագծի թղթապանակի իր սեփական ֆայլում):
Լրացուցիչ օգնություն ՝
% Տեղադրման ծրագիր EF 230 Roomba Project- ի համար Վերջին թարմացումը `սեպտեմբերի 13, 2017 (Անվտանգության շտկված խնդիրներ ՝ կապված https սերվերի հետ և հեռացված ֆայլի ջնջման նախազգուշացումը, եթե առաջացել են սխալներ) roombaInstall clc; % ֆայլերի ցանկ ֆայլեր տեղադրելու համար = {'roomba.m', 'roombaSim.m', 'roombaSimGUI.m', 'roombaSimGUI.fig'}; % location to install from options = weboptions ('CertificateFilename', ''); % ասեք նրան, որ անտեսի սերտիֆիկատի պահանջները սերվեր = 'https://ef.engr.utk.edu/ef230/projects/roomba-f2016/install/'; dlgTitle = 'Roomba- ի տեղադրում/թարմացում'; % ցուցադրման նպատակը և ստացեք հաստատման հուշում = {'Այս ծրագիրը կներբեռնի այս EF 230 Roomba ֆայլերը.' '' strjoin (ֆայլեր, '') '' 'այս պանակին.' '' ' '}; ազդանշան; yn = questdlg (հուշում,… dlgTitle,… 'Այո', 'Ոչ', 'Այո');
եթե ~ strcmp (yn, 'Yes'), վերադառնալ; վերջ
% ստանալ գոյություն ունեցող ֆայլերի ցանկ = ֆայլեր (cellfun (@exist, files)> 0); if ~ isempty (գոյություն ունեցող_ֆայլեր) % համոզվեք, որ իսկապես լավ է դրանք փոխարինել հուշել = {'Դուք փոխարինում եք այս ֆայլերը (ներ):' '' strjoin (գոյություն ունեցող_ֆայլեր, '') '' 'Լավ է փոխարինել?' }; ազդանշան; yn = questdlg (հուշում,… dlgTitle,… 'Այո', 'Ոչ', 'Այո'); եթե ~ strcmp (yn, 'Yes'), վերադառնալ; վերջ վերջ
% բեռնել ֆայլերը cnt = 0; համար i = 1: երկարություն (ֆայլեր) f = ֆայլեր {i}; disp (['' Ներբեռնում 'f]); փորձեք url = [սերվեր f]; websave (f, url, ընտրանքներ); % ավելացված տարբերակներ `անվտանգության սխալներից խուսափելու համար cnt = cnt + 1; catch disp (['Ներբեռնման սխալ' f]); կեղծ = [f '.html']; եթե գոյություն ունի (կեղծ, 'ֆայլ') == 2 ջնջել (կեղծ) վերջի վերջը
եթե cnt == երկարությունը (ֆայլեր) msg = 'Տեղադրումը հաջողված է'; սպասել (msgbox (msg, dlgTitle)); else msg = 'Տեղադրման սխալ. մանրամասների համար տե՛ս հրամանի պատուհանը'; սպասել (errordlg (msg, dlgTitle)); վերջ
վերջ %roombaInstall
Քայլ 3. Կոդ Մաս 1. Հետևման գործառույթ
Այս գործառույթը վերցնում է Roomba փոփոխականը և նկարը Roomba- ի տեսախցիկից և գտնում է հետագծվող օբյեկտի կենտրոնական xy կոորդինատները:
Պահեք այս կոդը նույն պանակի մեկ այլ ֆայլում:
գործառույթ [xm, ym] = trackingblue (r) %Մուտքեր. արժեք] = trackingblue (roomba փոփոխական) img = r.getImage; % կարդում է ռոբոտի ենթածրագրի (1, 2, 2) ենթապատկերի տեսախցիկը (img); %-ը ցույց է տալիս պատկերը նույն պատուհանում, որտեղ նշված է ուղու վերնագիրը ('Հետևող պատկերը') red = img (:,,: 1); կանաչ = img (:,:, 2); կապույտ = img (:,:, 3); justBlue = կապույտ - կանաչ/2 - կարմիր/2; bw = պարզապես Կապույտ> 40; պահել ենթահողում (1, 2, 2) ենթապատկերում (bw); [x, y] = գտնել (bw); եթե ~ դատարկ (x) && ~ դատարկ (y) xm = կլոր (միջին (x)); ym = կլոր (միջին (y)); xx = առավելագույն (1, xm-5) ՝ րոպե (xm+5, չափ (bw, 1)); yy = առավելագույնը (1, ym-5): min (ym+5, չափը (bw, 2)); bwbw = զրո (չափ (bw), 'uint8'); bwbw (xx, yy) = 255; պահել ենթահողում (1, 2, 2) ենթապատկերում (justBlue + bwbw); վերջ
Քայլ 4: Կոդ Մաս 2. Կապ
Այս ծածկագիրը Roomba- ն քշում է ՝ հետևելով գործառույթի օբյեկտի x և y տեղադրությանը: Սա կստիպի Roomba- ին զգույշ լինել պատերից և ժայռերից `միաժամանակ փնտրելով կապույտ: Սա նաև կվերցնի Roomba ուղու x և y կոորդինատները և կստեղծի համապատասխան գծապատկեր հետևման պատկերով: Եթե հարվածի սենսորը միացված է, այն կտեղափոխվի էլ
Rover նախագիծ
Jonah Zahn, Wade Price, Noah Sloan %jzahn2, wprice15, nsloan1 %Մուտքեր. Սենյակի արժեք, տեսախցիկի տվյալներ, հարվածի, լույսի և պատի տվիչներ %Նպատակը. Եթե զգուշացնեն, roomba- ն էլ. Նամակ է ուղարկում, որը մանրամասնում է քարտեզը և գտնվելու վայրը `ըստ իր սկզբնական դիրքի: %Օգտագործում. Պարզապես գործարկեք ծրագիրը ՝ roomba փոփոխական հայտարարելով, նաև %ունեն շարժվող կանաչ օբյեկտ %Արդյունքներ. Ցույց է տալիս պատկերին հետևող նկարը, էլ. %Փոփոխականների սկզբնականացում c = 0; x = 0; y = 0; թետա = 0; իսկ c == 0 %Loop ՝ այն կապույտ առարկան և խոչընդոտները հայտնաբերելու համար t = r.timeGet; d = r.getDistance; [xval, yval] = հետևման կապույտ (r); ժայռ = getCliffSensors (r); %սենսորային արժեքների կառուցվածքների նախաստորագրում լույս = getLightBumpers (r); bump = getBumpers (r); եթե light.leftCenter> = 10 || light.rightCenter> = 10 % ensesգում է, եթե կա պատ r. կանգառի մոտ r.setLEDDigits ('օգնություն') c = 1 %, իսկ b == 0 %, եթե bump.right == 1 || bump.left == 1 || bump.front == 1 % ensesգում է, եթե ինչ -որ բան բախվել է պատը զգալուց հետո % c = 1 % b = 1 % disp ('bump') % end % end elseif bump.right == 1 || bump.left == 1 || bump.front == 1 %ensesգում է, եթե ինչ -որ բան բախվել է, եթե այո, այն էլ.փոստ կուղարկի r.stop c = 1 b = 1 elseif cliff.leftFront <= 100 || cliff.rightF Front <= 100 || ժայռ. ձախ <= 100 || cliff.right <= 100 %ensesգում է, եթե կա ժայռ r. մոտ 400 r.turnAngle (-5) վերջի վերջ theta = theta + r.getAngle; x = d.*cosd (theta) + x; սենյակի % x կոորդինատ y = d.*sind (theta).*d + y; roomba ենթածրագրի (1, 2, 1) սյուժեի (x, y, 'bd') % y կոորդինատը գծում է ուղին և ավելացնում վերնագրի վերնագիրը ('Roomba Path') պահելը; վերջ
Քայլ 5. Կոդ 3. Մաս 3. Էլեկտրոնային բաժին
Սա կտանի գծագրված ուղին և պատկերը և կուղարկի այն նշված էլ. Հասցեին:
(Ownուցադրված է այստեղ էլ.փոստի օրինակով)
%% Էլեկտրոնային բաժին
եթե b == 1 saveas (gcf, 'rovermap.png') %պահում է գործիքի setpref- ը ('ինտերնետ', 'SMTP_Server', 'smtp.gmail.com'); setpref («Ինտերնետ», «E_mail», «[email protected]»); % փոստի հաշիվ ՝ setpref- ից ուղարկելու համար («Ինտերնետ», «SMTP_Username», «[email protected]»); % ուղարկողների օգտվողի անուն setpref ('ինտերնետ', 'SMTP_Password', 'gssegsse'); % Ուղարկողների գաղտնաբառեր = 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 («օրինակ էլ.», «RoverBeacon», «Տիեզերագնացը դադարել է շարժվել: Վերականգնման համար հետևեք կից ֆայլում տրված ցուցումներին»: «rovermap.png») disp («ուղարկված էլ.
Խորհուրդ ենք տալիս:
230 Վ AC լամպը USB հոսանքի փոխակերպում. 6 քայլ (նկարներով)
230 Վ AC լամպը փոխարկելով USB հոսանքի. կեղծ բոցավառ ջահը կամ լապտերը սա իդեալական չէ: Ես փոփոխում եմ
Robot Project UTK 2017: 3 քայլ
Robot Project UTK 2017. Առաքելություն. Մեր ինժեներների թիմը վարձվել է Froogle- ի կողմից, որը բաց կոդով տեխնոլոգիաների զարգացման ոչ առևտրային հիմնադրամ է, մշակելու համար նորարական Մարդկային օժանդակող Mars Rover- ը:-Out թիմեր " rover " սա մի սենյակ է, որը մենք կոդավորեցինք ՝ մի շարք
Venus Flytrap - ITM Fall 2019. 5 քայլ
Venus Flytrap - ITM Fall 2019. Ի՞նչ է պակասում բոլորի գրասեղանին: Վեներայի մեխանիկական թռիչք, որը պահում է մատիտներ, գրիչներ և այլ առարկաներ
Mars Roomba Project UTK: 4 քայլ
Mars Roomba Project UTK. ՀԱՅՏԱՐԱՐՈԹՅՈՆ. ՍԱ ՄԻԱՅՆ ԱՇԽԱՏԱՆՔ ԵԹԵ ՌՈՄԲԱ -ն ՇԱՏ ՇԱՏ ՀԱՏՈԿ ԱՆԱՊԱՐՀՈՄ Է, ԱՅՍ հրահանգը ստեղծվել և մտադրվել է օգտագործել ՏԵՆԱՆՍԱԿԱՆ ՈIVՍԱՆՈՆԵՐԻ ՀԱՄԱԼՍԱՐԱՆՈ ANDԹՅՈՆԸ և ֆակուլտետային ծառայություն: գրված է և
Ինչպես տեղադրել անհատական պատկեր ձեր Xbox 360 վահանակի վրա: (Pre Fall Fall 08 Update). 8 քայլ
Ինչպես տեղադրել անհատական պատկեր ձեր Xbox 360 կառավարման վահանակի վրա: (Pre Fall 08- ի թարմացում) նոր և հին վահանակը: երբ հնարավորություն կունենամ, ամբողջը կթարմացնեմ նոր նկարներով