Բովանդակություն:
- Քայլ 1: Սարքավորումներ
- Քայլ 2: MATLAB- ի կարգավորում
- Քայլ 3. Գործառույթ. Շարժում
- Քայլ 4: Գործառույթ. Պատկերի մշակում
- Քայլ 5: Գործառույթ. Քարտեզագրում
- Քայլ 6: Համադրում
- Քայլ 7: Փորձարկում
- Քայլ 8: Եզրակացություն
Video: Roomba Scout Explorer: 8 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Որպես ամերիկյան ամենասպասված և շատ հետազոտված նախագծերից մեկը, Mars rover- ի նախագծերը դարձել են մարդկային նվաճումներ բարձր տեխնոլոգիական ինքնավար համակարգերի անընդհատ առաջընթացում `միակ նպատակը կարմիր մոլորակի հետևում գտնվող ցամաքների և մակերեսների ուսումնասիրման և մեկնաբանման համար: Մոլորակը. Որպես Մարսի առաքելություններին նվիրված ավելի անհատական ծրագրի մաս, մեր նպատակն էր ստեղծել roomba ռոբոտ, որը կարող էր ինքնուրույն գործել որոշակի ժամանակահատվածում և համապատասխանաբար արձագանքել դրա մերձակայքում գտնվող որոշակի չափանիշներին:
Ինչ վերաբերում է յուրահատկությանը, մենք կենտրոնացանք դիագրամ ստեղծելու վրա, որը ցույց տվեց ռոբոտի յուրաքանչյուր սկզբնաղբյուրը իր սկզբնաղբյուրներից: Բացի այդ, ռոբոտը կկարողանա համայնապատկերային ոճով հաշվել իր մերձակայքում գտնվող օբյեկտների թիվը:
Քայլ 1: Սարքավորումներ
-Roomba w/ կցվող տեսախցիկով (հայտնի անունով հայտնի)
-Միացված սերվեր
-Windows 10 / Mac ՝ ինտերնետ կապով
-Պայծառ հարթակ
-Մուգ հատակ
-Մոնոխրագույն դիզայնի ցանկացած թափառող առարկա
Քայլ 2: 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ավոք, օգտագործված ռոբոտը հակված էր մի փոքր թեքվելու դեպի ձախ, քանի որ ուղիղ էր քշում և ավելի մեծ շրջադարձեր կատարում, քան ցանկալի էր: Այս պատճառով և շատ ուրիշներ, խիստ խորհուրդ է տրվում, որ այդ սխալները փոխհատուցելու համար անհրաժեշտ լինի փոփոխություններ կատարել իր շրջադարձի անկյունների համար:
Այնուամենայնիվ, սա երկար, բայց ինտելեկտուալ խթանող նախագիծ է, որը գործել է որպես ուսուցման հետաքրքիր փորձ ՝ կոդեր և հրամաններ կիրառելու համար, որոնք ուղղակիորեն ազդում են իրական ռոբոտի վարքագծի վրա:
Խորհուրդ ենք տալիս:
Roomba Bot the Bulider: 5 քայլ (նկարներով)
Roomba Bot the Bulider. ճակատին ամրացված կկարողանա առարկաները տեղաշարժել: Նրա հետ ծածկագիրը սահմանված է գրանցելու առաջին շարժումը GUI տուփով, որը կարող եք կառավարել միայն մկնիկի կտտոցով: Հետո
MATLAB վերահսկվող Roomba: 5 քայլ
MATLAB Controlled Roomba. Այս նախագծի նպատակն է օգտագործել MATLAB- ը, ինչպես նաև փոփոխված iRobot ծրագրավորվող ռոբոտը: Մեր խումբը համատեղեց մեր կոդավորման հմտությունները `ստեղծելու համար MATLAB սցենար, որն օգտագործում է iRobot- ի բազմաթիվ գործառույթներ, ներառյալ ժայռերի տվիչները, բամպերի զգայունությունը
Roomba Explorer: 4 քայլ
Roomba Explorer. Օգտագործելով MATLAB- ը և iRobot- ի Create2 ռոբոտը ՝ այս նախագիծը կուսումնասիրի անհայտ վայրի տարբեր տարածքներ: Մենք ռոբոտի սենսորների օգնությամբ օգնեցինք վտանգավոր տեղանքով մանևրել: Raspberry Pi- ից լուսանկարներ և տեսանյութեր ստանալով, որը
Ստեղնաշարի դյուրանցումներ Internet Explorer- ի համար: 4 քայլ
Internet Explorer- ի ստեղնաշարի դյուրանցումներ
Bus Pirate 3EEPROM Explorer Board: 5 քայլ
Bus Pirate 3EEPROM Explorer Board. Եթե դուք ունեք Hack a Day's Bus Pirates- ից որևէ մեկը, ինչ եք անում դրա հետ: Իմացեք 1-մետաղալարերի, I2C- ի և SPI EEPROM- ների մասին 3EEPROM Explorer- ի տախտակով (մենք այն անվանում ենք THR-EE-PROM): EEPROM- ը հիշողության չիպի տեսակ է, որը պահպանում է տվյալները առանց շարունակական էներգիայի