Բովանդակություն:

Roomba Scout Explorer: 8 քայլ
Roomba Scout Explorer: 8 քայլ

Video: Roomba Scout Explorer: 8 քայլ

Video: Roomba Scout Explorer: 8 քայլ
Video: The Best Robot Vacuum Tier List 2024, Նոյեմբեր
Anonim
Roomba Scout Explorer
Roomba Scout Explorer

Որպես ամերիկյան ամենասպասված և շատ հետազոտված նախագծերից մեկը, Mars rover- ի նախագծերը դարձել են մարդկային նվաճումներ բարձր տեխնոլոգիական ինքնավար համակարգերի անընդհատ առաջընթացում `միակ նպատակը կարմիր մոլորակի հետևում գտնվող ցամաքների և մակերեսների ուսումնասիրման և մեկնաբանման համար: Մոլորակը. Որպես Մարսի առաքելություններին նվիրված ավելի անհատական ծրագրի մաս, մեր նպատակն էր ստեղծել roomba ռոբոտ, որը կարող էր ինքնուրույն գործել որոշակի ժամանակահատվածում և համապատասխանաբար արձագանքել դրա մերձակայքում գտնվող որոշակի չափանիշներին:

Ինչ վերաբերում է յուրահատկությանը, մենք կենտրոնացանք դիագրամ ստեղծելու վրա, որը ցույց տվեց ռոբոտի յուրաքանչյուր սկզբնաղբյուրը իր սկզբնաղբյուրներից: Բացի այդ, ռոբոտը կկարողանա համայնապատկերային ոճով հաշվել իր մերձակայքում գտնվող օբյեկտների թիվը:

Քայլ 1: Սարքավորումներ

-Roomba w/ կցվող տեսախցիկով (հայտնի անունով հայտնի)

-Միացված սերվեր

-Windows 10 / Mac ՝ ինտերնետ կապով

-Պայծառ հարթակ

-Մուգ հատակ

-Մոնոխրագույն դիզայնի ցանկացած թափառող առարկա

Քայլ 2: MATLAB- ի կարգավորում

MATLAB- ի կարգավորում
MATLAB- ի կարգավորում

Ձեր սենյակի համար առաջադրանքներ և գործառույթներ ստեղծելու համար դուք պետք է ունենաք սենյակի հրամանները պարունակող հատուկ ծածկագրեր և գործիքակազմեր:

MATLAB 2016a- ի և ներբեռնման միջոցով ստեղծեք մի թղթապանակ, որը կպարունակի այս ռոբոտային ֆայլերը և ներքևում տեղադրեք հետևյալ MATLAB ֆայլը թղթապանակի մեջ և գործարկեք այն, որպեսզի տեղադրեք սենյակի մնացած անհրաժեշտ ֆայլերը:

Դրանից հետո, ընթացիկ թղթապանակի պատուհանում աջ սեղմեք, մկնիկը դրեք «Ավելացնել ուղի» վրա և կտտացրեք «Ընթացիկ պանակ»: Այժմ, պետք է այնպիսի ուղի ստեղծվի, որ այս ֆայլերից յուրաքանչյուրը օգտագործվի սենյակը ակտիվացնելու համար:

Այժմ, roomba- ն կարգավորելու համար օգտագործեք ստորև բերված հրամանը հրամանի պատուհանում.

r = roomba (#):

# Խորհրդանիշը նշված սենյակի «համարն» է. Այնուամենայնիվ, եթե դուք պարզապես ցանկանում եք սենյակի սիմուլյատոր, պարզապես մուտքագրեք հետևյալ հրամանը.

r = roomba (0):

Սիմուլյացիան խորհուրդ կտա շարժման օրինաչափությունները փորձարկելու համար:

Եթե ձեզ հետաքրքիր է, թե ինչ հրամաններ կարող է կատարել roomba- ն, հրամանի պատուհանում մուտքագրեք հետևյալը.

դոկ սենյա

Լրացուցիչ մանրամասների համար այցելեք հետևյալ կայքը ՝

ef.engr.utk.edu/ef230-2017-08/projects/roomba-s/setup-roomba-instructable.php

Քայլ 3. Գործառույթ. Շարժում

Գործառույթ. Շարժում
Գործառույթ. Շարժում
Գործառույթ. Շարժում
Գործառույթ. Շարժում

Ինչ վերաբերում է շարժմանը, ապա roomba- ն պետք է ինքնաբերաբար շարժվի որոշ ժամանակով, որը տրված է մուտքերում: Ռոբոտի շարժման նպատակն է ճիշտ արձագանքել, երբ տարբեր խոչընդոտների առկայության դեպքում փոխվում են նրա սենսորները (բամպեր, լուսային բամպերներ և ժայռերի տվիչներ): Այս հատվածը հիմք կհանդիսանա սենյակի բոլոր հրամանների համար, քանի որ ավելի ուշ կոդին ավելացվում են լրացուցիչ հնարավորություններ: Որոշ ճշգրտումներ էին անհրաժեշտ.

-Վնասը նվազեցնելու համար ռոբոտը պետք է արագությունը իջեցնի ավելի ցածր արագության:

-clայռին կամ պատին մոտենալիս ռոբոտը կշարժվի հակառակ ուղղությամբ և կփոխի իր անկյունը `կախված հարվածի վայրից:

-Որոշ ժամանակ անց մեքենա վարելուց հետո, roomba- ն, ի վերջո, կդադարի և լուսանկարներ կանի շրջակայքից

Նկատի ունեցեք, որ օգտագործված արժեքները վերաբերում էին սիմուլյատորին. այնպիսի արժեքներ, ինչպիսին են պտույտի անկյունները և արագության ռոբոտների սենսորների նախադրվածները, պետք է փոփոխվեն բուն ռոբոտն օգտագործելիս `սարքավորման սխալի կայունությունն ու հաշվապահությունը ապահովելու համար:

Քայլ 4: Գործառույթ. Պատկերի մշակում

Գործառույթ. Պատկերի մշակում
Գործառույթ. Պատկերի մշակում

Ըստ խնդրանքի, մեզ հանձնարարվեց փոփոխել ռոբոտի տեսախցիկի կողմից ստացված պատկերի տվյալները (կամ մի քանի պատկերներ), որոնց որոշեցինք սենյակը ստիպել «հաշվել» այն օբյեկտների քանակով, որոնք նա տեսնում է պատկերում:

Մենք հետևեցինք MATLAB- ի տեխնիկային, որը սահմաններ է գծում սևացած առարկաների շուրջ, որոնք հակադրվում են սպիտակ ֆոնին: Այնուամենայնիվ, այս գործառույթը հակված է դժվարությունների ունենալ բաց տարածքում, քանի որ տեսախցիկն ընկալում է տարբեր ձևերն ու գույները, ինչը հանգեցնում է անսովոր բարձր ցուցանիշների:

Նկատի ունեցեք, որ այս գործառույթը չի կարող աշխատել սիմուլյատորի մեջ, քանի որ տեսախցիկը տրամադրված չէ. փորձի դեպքում տեղի կունենա սխալ ՝ հայտարարելով, որ կարող է օգտագործվել միայն (:,:, 3) մատրիցան:

Քայլ 5: Գործառույթ. Քարտեզագրում

Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում
Գործառույթը ՝ քարտեզագրում

Լրացուցիչ գործառույթը, որը մենք ցանկանում էինք ունենալ ռոբոտը, դրա գտնվելու վայրի քարտեզագրումն էր, քանի որ այն անմիջականորեն փոխազդում է շրջակա միջավայրի հետ: Այսպիսով, ստորև բերված ծածկագիրը ձգտում է բացել քարտեզ և ստեղծել կոորդինատային համակարգ, որը մանրամասնում է ռոբոտի բամպերի տվիչների սեղմման յուրաքանչյուր վայրը: Սա երեք մասերից ամենաերկար հատվածն էր, որը պետք է առանձին փորձարկվեր, բայց այն շատ ավելի պարզ դարձավ, երբ կիրառվում էր վերջնական սցենարի համար:

Ֆունկցիայի գործարկման ժամանակի տևողությանը սահմանափակում ավելացնելու նպատակով, the while օղակի n <20 սահմանափակումն օգտագործվել է փորձարկման նպատակով:

Հիշեք, որ կոդի բարդության պատճառով ավելի շատ սխալներ են տեղի ունենում, քանի որ կոդի հատվածը երկար է աշխատում. Նախորդ փորձարկումներից, ըստ երևույթին, տասը հարվածներ միավորների քանակն են `մինչև էական սխալների առաջացումը:

Քայլ 6: Համադրում

Համադրումը
Համադրումը
Համադրումը
Համադրումը
Համադրումը
Համադրումը
Համադրումը
Համադրումը

Քանի որ այս ամենը տեղադրվելու է մեկ ֆայլում, մենք ստեղծեցինք գործառույթ ՝ օգտագործելով նախորդ երկու քայլերից յուրաքանչյուրը որպես ենթաֆունկցիաներ: Վերջնական նախագիծը կատարվեց redux գործառույթի հետևյալ փոփոխությամբ ՝ «recon»: MATLAB- ի շփոթությունից խուսափելու համար «հաշվիչ» և «rombplot3» սցենարները վերանվանվեցին համապատասխանաբար «CountR» և «plotr» ներդրված գործառույթների:

Ի տարբերություն նախորդ սցենարների, վերջնական տարբերակում պետք է կատարվեին մի քանի փոփոխություններ.

-originագումը միշտ նշվելու է կարմիր շրջանակով

-Ամեն անգամ, երբ սենյակը դադարում է իր բամպերից, գտնվելու վայրը նշվում է սև շրջանակով

-Ամեն անգամ, երբ սենյակը դադարում է ժայռի տվիչներից, գտնվելու վայրը նշվում է կապույտ շրջանակով

-Ամեն անգամ, երբ սենյակը դադարում է ուսումնասիրել տարածքը, գտնվելու վայրը նշվում է կանաչ շրջանակով

-Պատկերները ձևափոխված են, որպեսզի վերին հատվածը հեռացվի, քանի որ ժամանակի կնիքը կարող է միջամտել արդյունքներին

-Սահմաները չեն հաշվարկվի որպես օբյեկտ `ձեռք բերված բավականին մեծ թվերի պատճառով

-Մի քանի փոփոխականներ փոխվել են, ուստի շփոթությունից խուսափելու համար հղման համար օգտագործեք վերը նշված տարբերակները:

Քայլ 7: Փորձարկում

Փորձարկում
Փորձարկում

Individualամանակ առ ժամանակ յուրաքանչյուր առանձին բաղադրիչի համար թեստերը բավականին խառը էին, այդ իսկ պատճառով անհրաժեշտ էին որոշակի կանխորոշված արժեքների փոփոխություններ: Թեմատիկ ֆոնը, որի վրա մենք ցանկանում էինք ռոբոտի հնարավորությունները ստուգել փակ տարածքում, պարզապես բաղկացած էր շատ ավելի մուգ հատակին դրված գրատախտակից: Դուք կարող եք ցրել օբյեկտները տարածքի շուրջ; ստիպել նրանց գործել որպես ռոբոտի շարժվող տարածքից բախվող կամ հեռավոր օբյեկտների:

Իր կարգավորվող ժամանակը և բազային արագությունը սահմանելուց հետո, roomba- ն ցուցադրեց շարժման համարժեք վարքագիծ ՝ կանգ առնելով և հետ կանգնելով յուրաքանչյուր «ժայռից» կամ օբյեկտից, որի մեջ ընկնում է, ինչպես նաև դանդաղեցնելով մոտակայքում ինչ -որ բան հայտնաբերելը: Հասնելով ցանկալի երեք մետր ճանապարհորդության հեռավորությանը ՝ ռոբոտը կշարունակի կանգ առնել և գնահատել տարածքը ՝ լուսանկարելով յուրաքանչյուր 45 աստիճանի շրջանի պատկերները և շարունակել, եթե ժամանակը թույլ տա: Այնուամենայնիվ, նրա շրջադարձերը ավելի մեծ թվացին, քան պահանջվում էր, ինչը նշանակում էր, որ կոորդինատային տվյալները մթագնած կլինեին:

Ամեն անգամ, երբ կանգ է առնում, նոր կետ է տեղադրվում կոորդինատային համակարգի դիրքի մոտավոր շրջանում. Այնուամենայնիվ, նշվում է, որ նախնական ուղղությունը, որից սկսվում է սենյակը, առանցքային դեր է խաղում քարտեզի ձևավորման մեջ: Եթե կողմնացույցի հնարավորությունը հնարավոր լիներ իրականացնել, այն կօգտագործվեր որպես քարտեզի նախագծման կարևոր մաս:

Ֆունկցիայի լիարժեք գործարկման համար պահանջվող փաստացի ժամանակը միշտ գերազանցում է պահանջվող ժամանակը, ինչը իմաստ ունի հաշվի առնելով, որ այն չի կարող կանգ առնել դրա վերականգնման մեկի մեջտեղում: Unfortunatelyավոք, պատկերի հաշվման այս տարբերակն իր խնդիրներն ունի, հատկապես այն տարածքներում, որոնք կամ հիմնականում միագույն են կամ տարբերվում են պայծառությամբ. քանի որ այն փորձում է տարբերակել երկու երանգներ, այն հակված է ընկալել ոչ ցանկալի առարկաները, ուստի այն միշտ հաշվում է մինչև խելագարորեն բարձր թվեր:

Քայլ 8: Եզրակացություն

Եզրակացություն
Եզրակացություն

Թեև այս առաջադրանքը շատ արկածախնդիր և ստեղծագործական աշխատանք էր, որը բերում էր թեթևության ուրախություն, ես, իմ անձնական դիտարկումներից, կարող էի տեսնել բազմաթիվ սխալներ, որոնք կարող էին խնդրահարույց լինել ՝ ինչպես ռոբոտի ծածկագրում, այնպես էլ վարքագծում:

Theամանակի ճշգրտումը միաժամանակ օգտագործելու սահմանափակումը հանգեցնում է նրան, որ ժամանակի ընդհանուր գումարը ցանկալիից ավելի երկար է. համայնապատկերի տեխնիկայի և պատկերի մշակման գործընթացը կարող է իրականում ավելի երկար տևել, եթե այն վարվում է դանդաղ համակարգչի միջոցով կամ նախապես չի օգտագործվում: Բացի այդ, roomba- ն, որն օգտագործվել է մեր ներկայացման մեջ, գործել է մեծ թվով սխալներով, հատկապես շարժման մեջ, համեմատած սիմուլյատորի հետ: Unfortunatelyավոք, օգտագործված ռոբոտը հակված էր մի փոքր թեքվելու դեպի ձախ, քանի որ ուղիղ էր քշում և ավելի մեծ շրջադարձեր կատարում, քան ցանկալի էր: Այս պատճառով և շատ ուրիշներ, խիստ խորհուրդ է տրվում, որ այդ սխալները փոխհատուցելու համար անհրաժեշտ լինի փոփոխություններ կատարել իր շրջադարձի անկյունների համար:

Այնուամենայնիվ, սա երկար, բայց ինտելեկտուալ խթանող նախագիծ է, որը գործել է որպես ուսուցման հետաքրքիր փորձ ՝ կոդեր և հրամաններ կիրառելու համար, որոնք ուղղակիորեն ազդում են իրական ռոբոտի վարքագծի վրա:

Խորհուրդ ենք տալիս: