Բովանդակություն:
Video: Robotic Arm: Jensen: 4 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Jensen- ը ռոբոտային թև է, որը կառուցված է Arduino հարթակի վրա ՝ կենտրոնանալով շարժումների ինտուիտիվ պլանավորման վրա, որը կատարվել է որպես 1 վարկից անկախ նախագիծ, դոկտոր Չարլզ Բ. Այն կարող է կրկնել մի շարք շարժումներ, որոնք ծրագրված են ձեռքը ձեռքով շարժելով: Այն կառուցելու ոգեշնչում ստացա ՝ տեսնելով UMass Amherst M5 արտադրական տարածքում կառուցված այլ ռոբոտային զենքեր: Ավելին, ես ուզում էի սովորել, թե ինչպես օգտագործել CAD ծրագրակազմը և ցանկանում էի կատարելագործել Arduino նախագիծը: Ես սա դիտում էի որպես այդ բոլոր բաներն անելու հնարավորություն:
Քայլ 1. Բնօրինակ ձևավորում և շրջանակ
CAD ծրագրակազմը, որը ես ընտրեցի սովորել այս նախագծի համար, OnShape- ն էր, և առաջին բանը, որ մոդելավորեցի, HiTec HS-422 անալոգային սերվո էր: Ես ընտրեցի սերվոն, քանի որ այն հասանելի էր ինձ համար տեղական մակարդակում և դա ողջամիտ գին էր: Այն նաև ծառայեց որպես լավ պրակտիկա OnShape սովորելու համար ՝ նախքան իմ սեփական մասերի նախագծմանը անցնելը: Նախագծի այս սկզբնական փուլում ես ընդհանուր պատկերացում ունեի, թե ինչի եմ ուզում, որ թևը կարողանա: Ես ուզում էի, որ այն ունենար շարժման արժանապատիվ տիրույթ և բռնիչ ՝ իրերը հավաքելու համար: Այս ընդհանուր բնութագրերը տեղեկացրին դիզայնին, քանի որ ես շարունակում էի մոդելավորել այն CAD- ում: Մեկ այլ դիզայնի սահմանափակում, որն այս պահին ունեի, դա իմ 3D տպիչի տպագիր մահճակալի չափն էր: Ահա թե ինչու հիմքը, որը տեսնում եք վերը նշված լուսանկարում, համեմատաբար պարզունակ քառակուսի է:
Նախագծի այս փուլում ես նաև մտքում էի, թե ինչպես եմ ուզում վերահսկել ձեռքը: Մեկ ռոբոտային ձեռքը, որից ես ոգեշնչված էի ստեղծման տարածքում, տիկնիկային թևն էր օգտագործում վերահսկողության համար: Մեկ ուրիշը օգտագործեց ինտուիտիվ ուղու ծրագրավորման մեթոդ, որի համաձայն ձեռքը օգտագործողը տեղափոխեց տարբեր դիրքեր: Այնուհետև թևը հետ կշրջվի այդ դիրքերով:
Իմ սկզբնական ծրագիրն էր ավարտել թևի կառուցումը և այնուհետև իրականացնել վերահսկման այս երկու մեթոդները: Ես նաև ցանկանում էի համակարգչային ծրագիր կազմել `դրանից հետո ինչ -որ պահի այն վերահսկելու համար: Ինչպես հավանաբար կարող եք ասել, ես ավարտեցի նախագծի այս ասպեկտի ծավալը կրճատելով: Երբ ես սկսեցի աշխատել կառավարման առաջին երկու մեթոդների վրա, ես արագ պարզեցի, որ ինտուիտիվ ճանապարհի ծրագրավորումը ավելի բարդ էր, քան կարծում էի: Այդ ժամանակ ես որոշեցի այն դարձնել իմ ուշադրության կենտրոնում և վերահսկման մյուս մեթոդները դնել անորոշ ժամանակի վրա:
Քայլ 2: Վերահսկում
Իմ ընտրած վերահսկողության մեթոդը գործում է այսպես ՝ դուք ձեռքը ձեռքը տեղափոխում եք տարբեր դիրքերի և «փրկում» այդ դիրքերը: Յուրաքանչյուր դիրք ունի տեղեկատվություն թևի յուրաքանչյուր օղակի միջև եղած անկյունի մասին: Դիրքերի պահպանումն ավարտելուց հետո դուք սեղմում եք նվագարկման կոճակը, և ձեռքը հաջորդաբար վերադառնում է այդ դիրքերից յուրաքանչյուրին:
Վերահսկողության այս մեթոդում շատ բան կար պարզելու: Որպեսզի յուրաքանչյուր սերվո վերադառնա պահպանված անկյան, ես պետք է ինչ -որ կերպ «փրկեի» այդ անկյունները առաջին հերթին: Սա պահանջում էր, որ Arduino Uno- ն ես օգտագործում էի, որպեսզի կարողանայի ստանալ յուրաքանչյուր սերվոյի ընթացիկ անկյունը: Իմ ընկերը ՝ remերեմի Պարադին, որը ռոբոտացված թև էր պատրաստել, որն օգտագործում էր այս հսկողության մեթոդը, ինձ հուշեց, որ ես օգտագործում եմ յուրաքանչյուր հոբբի սերվոյի ներքին պոտենցիոմետրը: Սա պոտենցիոմետր է, որն servo- ն ինքն է օգտագործում `իր անկյունը կոդավորելու համար: Ես ընտրեցի փորձարկման սերվո, մետաղալար կպցրեցի ներքին պոտենցիոմետրի միջին քորոցին և պարիսպի մեջ անցք բացեցի, որպեսզի մետաղալարը դրսից կերակրեմ:
Այժմ ես կարող էի ստանալ ընթացիկ անկյունը ՝ կարդալ պոտենցիոմետրի միջին քորոցի լարումը: Այնուամենայնիվ, երկու նոր խնդիր կար. Նախ, միջին քորոցից եկող ազդանշանի վրա աղմուկ կար լարման թռիչքների տեսքով: Այս խնդիրը հետագայում դարձավ իրական խնդիր: Երկրորդ, անկյուն ուղարկելու և անկյուն ստանալու համար արժեքների շրջանակը տարբեր էր:
Հոբբի սերվո շարժիչներին 0 -ից 180 աստիճանի միջև որոշակի անկյան տակ շարժվելն ասելը ենթադրում է նրան PWM ազդանշանի ուղարկում `անկյունին համապատասխան բարձր ժամանակով: Հակառակ դեպքում, Arduino- ի անալոգային մուտքագրման քորոց օգտագործելը պոտենցիոմետրի միջին քորոցի լարումը 0 -ից 180 աստիճանի միջև շարժելիս վերադարձնում է արժեքների առանձին տիրույթ: Հետևաբար, որոշ մաթեմատիկա էր անհրաժեշտ ՝ պահպանված մուտքային արժեքը համապատասխան PWM ելքային արժեքի թարգմանելու համար, որն անհրաժեշտ էր սերվոն նույն տեսանկյունից վերադարձնելու համար:
Իմ առաջին միտքն էր օգտագործել պարզ տիրույթի քարտեզ ՝ յուրաքանչյուր պահված անկյունի համար համապատասխան ելքային PWM գտնելու համար: Սա աշխատեց, բայց դա շատ ճշգրիտ չէր: Իմ նախագծի դեպքում, PWM բարձր ժամանակի արժեքների տիրույթը, որը համապատասխանում է 180 աստիճանի անկյունային տիրույթին, շատ ավելի մեծ էր, քան անալոգային մուտքային արժեքների տիրույթը: Բացի այդ, այս երկու տիրույթներն էլ շարունակական չէին և կազմված էին միայն ամբողջ թվերից: Հետևաբար, երբ ես պահված մուտքային արժեքը քարտեզագրեցի ելքային արժեքի, ճշգրտությունը կորավ: Այս պահին ես հասկացա, որ ինձ անհրաժեշտ է հսկողության օղակ `իմ սերվոներին այնտեղ, որտեղ նրանք պետք է լինեին:
Ես գրել եմ PID կառավարման օղակի ծածկագիրը, որի մուտքը միջին քորոցային լարվածությունն էր, իսկ ելքը ՝ PWM ելքը, բայց արագ պարզեցի, որ ինձ միայն ինտեգրալ հսկողություն է պետք: Այս սցենարում ելքը և մուտքը երկուսն էլ ներկայացնում էին անկյունները, ուստի համամասնական և ածանցյալ վերահսկողություն ավելացնելը հակված էր այն գերազանցել կամ ունենալ անցանկալի վարք: Ինտեգրալ հսկողությունը կարգավորելուց հետո դեռ երկու խնդիր կար. Նախ, եթե ընթացիկ և ցանկալի անկյունի միջև եղած սկզբնական սխալը մեծ լիներ, սերվոն շատ արագ կարագանա: Ես կարող էի նվազեցնել հաստատունը ամբողջական կառավարման համար, բայց դա ընդհանուր շարժումը դանդաղեցրեց: Երկրորդը ՝ միջնորդությունը ցնցող էր: Սա անալոգային մուտքային ազդանշանի վրա աղմուկի հետեւանք էր: Կառավարման օղակը անընդհատ կարդում էր այս ազդանշանը, ուստի լարման թռիչքները առաջացնում էին ցնցող շարժում: (Այս պահին ես նաև իմ մեկ փորձարկման սերվոյից տեղափոխվեցի վերևում պատկերված հավաքածու: Ես նաև պատրաստեցի ծրագրակազմի յուրաքանչյուր սերվոյի կառավարման հանգույցի օբյեկտ):
Ես լուծեցի չափազանց արագ արագացման խնդիրը ՝ ելքի վրա դնելով երկրաչափական կշռված շարժվող միջին (EWMA) զտիչ: Միջին ելքի արդյունքում շարժման մեջ եղած մեծ թռիչքները նվազեցին (ներառյալ աղմուկի ցնցումը): Այնուամենայնիվ, մուտքային ազդանշանի աղմուկը դեռ խնդիր էր, ուստի իմ նախագծի հաջորդ փուլը փորձում էր դա լուծել:
Քայլ 3: Աղմուկ
Վերևում պատկերված
Կարմիրով `սկզբնական մուտքային ազդանշան
Կապույտ ՝ մուտքագրման ազդանշան մշակումից հետո
Մուտքային ազդանշանի վրա աղմուկը նվազեցնելու առաջին քայլը դրա պատճառը հասկանալն էր: Օսկիլոսկոպի վրա ազդանշանի ուսումնասիրությունը ցույց տվեց, որ լարման թռիչքները տեղի են ունենում 50 Հց հաճախականությամբ: Ես պատահաբար իմացա, որ սերվոներին ուղարկվող PWM ազդանշանը նույնպես 50 Հց հաճախականությամբ էր, ուստի կռահեցի, որ լարման թռիչքները դրա հետ կապ ունեն: Ես ենթադրեցի, որ սերվերի շարժումը ինչ -որ կերպ առաջացնում էր պոտենցիոմետրերի V+ կապում լարման թռիչքներ, ինչը, իր հերթին, խառնաշփոթ էր դնում միջին քորոցի ընթերցման վրա:
Ահա, որտեղ ես կատարեցի աղմուկը նվազեցնելու իմ առաջին փորձը: Ես նորից բացեցի յուրաքանչյուր սերվո և պոտենցիոմետրի վրա ավելացրեցի մետաղալար, որը գալիս էր V+ կապից: Ինձ ավելի շատ անալոգային մուտքագրումներ էին պետք դրանք կարդալու համար, քան Arduino Uno- ն, ուստի ես նույնպես այս պահին տեղափոխվեցի Arduino Mega: Իմ ծածկագրում ես փոխեցի անկյունի մուտքը միջին քորոցի լարման անալոգային ընթերցումից մինչև միջին քորոցի լարման և V+ քորոցի լարման միջև հարաբերակցության: Իմ հույսն այն էր, որ եթե կապերի վրա լարման թռիչք տեղի ունենար, այն կչեղարկվեր հարաբերակցության մեջ:
Ես ամեն ինչ հավաքեցի և փորձարկեցի, բայց բծերը դեռ տեղի էին ունենում: Այն, ինչ ես պետք է անեի այս պահին, իմ հիմքի ուսումնասիրությունն էր: Փոխարենը, իմ հաջորդ գաղափարը պոտենցիոմետրերն ամբողջությամբ առանձին սնուցման աղբյուրի վրա դնելն էր: Ես անջատեցի V+ լարերը Arduino- ի անալոգային մուտքերից և միացրեցի դրանք առանձին էներգիայի աղբյուրի: Ես նախկինում զննել էի կապերը, որպեսզի իմանայի, թե ինչ լարման դեպքում պետք է դրանք սնուցել: Ես նաև կտրեցի կապը կառավարման տախտակի և V+ կապի միջև յուրաքանչյուր սերվոյում: Ես ամեն ինչ նորից հավաքեցի, վերադարձրի անկյունի մուտքագրման ծածկագիրը նախկինի պես, այնուհետև փորձարկեցի այն: Ինչպես և սպասվում էր, մուտքային կապում լարման այլևս թռիչքներ չկային: Այնուամենայնիվ, նոր խնդիր կար. Պոտենցիոմետրերը առանձին էներգիայի մատակարարման վրա դնելը ամբողջովին խաթարել էր սերվերի ներքին հսկողության օղակները: Թեև V+ կապումներն ստանում էին նույն լարումը, ինչ նախկինում, սերվերի շարժումը անկանոն էր և անկայուն:
Ես չէի հասկանում, թե ինչու է դա տեղի ունենում, ուստի ես վերջապես զննեցի սերվիսներում իմ ցամաքային կապը: Միջին լարման անկումը եղել է մոտ 0,3 Վոլտ գետնին, և այն ավելի բարձրացել է, երբ սերվոները հոսանք են քաշում: Այն ժամանակ ինձ համար պարզ էր, որ այդ քորոցներն այլևս չեն կարող համարվել «հիմնավորված», և ավելի լավ կարելի է բնութագրել որպես «տեղեկատու» քորոցներ: Սպասարկումներում տեղադրվող կառավարման վահանակները պետք է չափած լինեն պոտենցիոմետրի միջին քորոցի լարումը ՝ համեմատած ինչպես V +- ի, այնպես էլ տեղեկատուի լարերի հետ: Պոտենցիոմետրերի սնուցումը առանձին խաթարեց այդ հարաբերական չափումը, որովհետև այժմ բոլոր պիների վրա լարման թռիչքի փոխարեն, դա տեղի ունեցավ միայն հղման քորոցում:
Իմ ուսուցիչը ՝ դոկտոր Մալլոխը, օգնեց ինձ կարգավորել այս ամենը և առաջարկեց չափել նաև միջին քորոցի լարումը մյուս կապերի համեմատ: Դա այն է, ինչ ես արեցի անկյունային մուտքի աղմուկը նվազեցնելու իմ երրորդ և վերջին փորձի համար: Ես բացում էի յուրաքանչյուր սերվո, նորից ամրացնում էի իմ կտրած մետաղալարը և ավելացնում էի երրորդ լարը, որը գալիս էր պոտենցիոմետրի վրա տեղադրված հղման պինից: Իմ ծածկագրում ես անկյան մուտքագրումը համարժեք եմ հետևյալ արտահայտությանը. Ես փորձարկեցի այն և այն հաջողությամբ նվազեցրեց լարման թռիչքների հետևանքները: Բացի այդ, ես նաև EWMA զտիչ եմ դնում այս մուտքի վրա: Այս մշակված ազդանշանը և սկզբնական ազդանշանը պատկերված են վերևում:
Քայլ 4: Իրերի փաթեթավորում
Աղմուկի խնդիրը լուծելով իմ հնարավորությունների սահմաններում, ես ձեռնամուխ եղա դիզայնի վերջնական մասերի ամրագրմանը և պատրաստմանը: Ձեռքը չափազանց մեծ ծանրություն էր դնում հիմքի վրա գտնվող սերվոյի վրա, ուստի ես պատրաստեցի նոր հիմք, որը պահում է թևի քաշը ՝ օգտագործելով մեծ կրող: Ես նաև տպեցի բռնիչը և մի փոքր հղկեցի դրա վրա, որպեսզի այն աշխատի:
Ես շատ գոհ եմ վերջնական արդյունքից: Շարժման ինտուիտիվ պլանավորումը հետևողականորեն աշխատում է, և շարժումը հարթ և ճշգրիտ է ՝ հաշվի առնելով ամեն ինչ: Եթե մեկ ուրիշը ցանկանար կատարել այս նախագիծը, ես նախ խստորեն կխրախուսեի նրան պատրաստել դրա ավելի պարզ տարբերակը: Հետևյալ տեսանկյունից, հոբբի սերվո շարժիչների միջոցով նման բան սարքելը շատ միամիտ էր, և այն աշխատելու դժվարությունը, որը ցույց է տալիս դա: Ես հրաշք եմ համարում, որ թևն աշխատում է նույնքան լավ, որքան այն: Ես դեռ ուզում եմ ռոբոտային թև պատրաստել, որը կարող է միանալ համակարգչին, գործարկել ավելի բարդ ծրագրեր և շարժվել ավելի մեծ ճշգրտությամբ, այնպես որ իմ հաջորդ նախագծի համար դա կանեմ: Ես կօգտագործեմ բարձրորակ թվային ռոբոտաշինության ծառայություններ, և հուսով եմ, որ դա թույլ կտա ինձ խուսափել այս նախագծում հանդիպած բազմաթիվ խնդիրներից:
CAD փաստաթուղթ.
cad.onshape.com/documents/818ea878dda7ca2f…
Խորհուրդ ենք տալիս:
Robotic Arm with Gripper: 9 քայլ (նկարներով)
Robotic Arm With Gripper. Կիտրոնի ծառերի բերքը համարվում է ծանր աշխատանք `ծառերի մեծ չափերի և նաև այն շրջանների տաք կլիմայի պատճառով, որտեղ կիտրոնի ծառեր են տնկվում: Ահա թե ինչու մեզ այլ բան է պետք, որը կօգնի գյուղատնտեսության ոլորտի աշխատողներին ավելի հեշտությամբ ավարտին հասցնել իրենց աշխատանքը
Moslty եռաչափ տպված Robotic Arm, որը նմանակում է տիկնիկային վերահսկիչին. 11 քայլ (նկարներով)
Moslty 3D տպված Robotic Arm That Mimics Puppet Controller. Ես ինժեներական ճարտարագիտության ուսանող եմ Հնդկաստանից և սա My Undergrad աստիճանի նախագիծն է: Այս նախագիծը կենտրոնացած է ցածր գնով ռոբոտային թևի մշակման վրա, որը հիմնականում 3D տպված է և ունի 5 DOF 2 մատով բռնիչ Ռոբոտային ձեռքը վերահսկվում է
Robotic Arm: 3 քայլ
Robotic Arm: Ciao a tutti! Vediamo come si può costruire un braccio robotico controllabile da remoto
Arduino Robotic Arm: 12 քայլ
Arduino Robotic Arm. Այս հրահանգը ստեղծվել է Հարավային Ֆլորիդայի համալսարանի Makecourse- ի նախագծի պահանջի կատարման համար: Սրանք այն հիմնական բաղադրիչներն են, որոնք անհրաժեշտ են այս նախագիծը հավաքելու համար
DIY Arduino Robotic Arm, Քայլ առ քայլ ՝ 9 քայլ
DIY Arduino Robotic Arm, Քայլ առ քայլ. Այս ձեռնարկը սովորեցնում է ձեզ, թե ինչպես ինքնուրույն կառուցել ռոբոտ -բազուկ