
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Այս ուսանելի հոդվածում ես ձեզ կբացատրեմ, թե ինչպես ենք մենք թույլ տալիս, որ Նաո ռոբոտը կրկնօրինակի մեր շարժումները ՝ օգտագործելով kinect սենսոր: Theրագրի իրական նպատակը կրթական նպատակն է. Ուսուցիչը կարող է գրանցել որոշակի շարժումներ (օրինակ ՝ պար) և կարող է օգտագործել այդ ձայնագրությունները `լսարանում գտնվող երեխաներին թույլ տալու նմանակելու ռոբոտին: Այս ուսանելի ամբողջ քայլ առ քայլ անցնելով ՝ դուք պետք է կարողանաք ամբողջությամբ վերստեղծել այս նախագիծը:
Սա դպրոցին առնչվող նախագիծ է (NMCT @ Howest, Kortrijk):
Քայլ 1: Հիմնական գիտելիքներ
Այս նախագիծը վերստեղծելու համար դուք պետք է ունենաք որոշ հիմնական գիտելիքներ.
- Պիտոնի հիմնական գիտելիքներ
- C# հիմնական գիտելիքներ (WPF)
- Եռանկյունաչափության հիմնական գիտելիքներ
- Գիտելիքներ, թե ինչպես ստեղծել MQTT ազնվամորի պի վրա
Քայլ 2: Անհրաժեշտ նյութերի ձեռքբերում
Այս նախագծի համար անհրաժեշտ նյութեր.
- Ազնվամորի Պի
- Kinect Sensor v1.8 (Xbox 360)
- Նաո ռոբոտ կամ վիրուսային ռոբոտ (խորեոգրաֆ)
Քայլ 3: Ինչպես է այն աշխատում



Kinect սենսորը միացված է WPF հավելվածն աշխատող համակարգչին: WPF հավելվածը տվյալներ է ուղարկում Python հավելվածին (ռոբոտ) ՝ օգտագործելով MQTT: Տեղական ֆայլերը պահվում են, եթե օգտագործողը դա է որոշում:
Մանրամասն բացատրություն
Նախքան ձայնագրությունը սկսելը, օգտագործողը պետք է մուտքագրի MQTT բրոքերի IP հասցեն: Բացի այդ, մեզ պետք է նաև այն թեման, որի վրա ցանկանում ենք հրապարակել տվյալները: Start- ը սեղմելուց հետո դիմումը կստուգի, արդյոք հնարավոր է կապ հաստատել բրոքերի հետ, և դա մեզ հետադարձ կապ կտա: Թեման գոյություն ունենալը հնարավոր չէ ստուգել, այնպես որ դուք լիովին պատասխանատու եք այս թեմայի համար: Երբ երկու ներածումներն էլ կարգին են, ծրագիրը կսկսի տվյալներ ուղարկել (x, y & z կոորդինատները յուրաքանչյուր համատեղում) այն կմախքից, որը հետևվում է MQTT բրոքերի թեմային:
Քանի որ ռոբոտը կապված է նույն MQTT բրոքերի հետ և բաժանորդագրված է նույն թեմային (սա պետք է մուտքագրվի նաև python հավելվածում), այժմ python հավելվածը կստանա տվյալները WPF հավելվածից: Եռանկյունաչափության և ինքնագրավոր ալգորիթմների միջոցով կոորդինատները վերածում ենք անկյունների և ռադիաների, որոնք օգտագործում ենք ռոբոտի ներսում շարժիչները իրական ժամանակում պտտելու համար:
Երբ օգտագործողը ավարտում է ձայնագրությունը, նա սեղմում է կանգառի կոճակը: Այժմ օգտվողը ստանում է թռուցիկ, որը հարցնում է, թե արդյոք նա ցանկանում է պահպանել ձայնագրությունը: Երբ օգտվողը հարվածում է չեղարկում, ամեն ինչ վերակայվում է (տվյալները կորչում են) և կարող է սկսվել նոր ձայնագրություն: Եթե օգտագործողը ցանկանում է պահպանել ձայնագրությունը, նա պետք է մուտքագրի վերնագիր և հարվածի «պահպանել»: «Պահել» կոճակին հարվածելիս բոլոր ձեռք բերված տվյալները գրվում են տեղական ֆայլում ՝ օգտագործելով վերնագրի մուտքը որպես ֆայլի անուն: Ֆայլը նաև ավելացվում է էկրանի աջ կողմում գտնվող ցուցակագրմանը: Այս կերպ, ցուցակի նոր գրառումը կրկնակի սեղմելուց հետո ֆայլը կարդացվում և ուղարկվում է MQTT բրոքերին: Հետեւաբար, ռոբոտը կնվագարկի ձայնագրությունը:
Քայլ 4: MQTT բրոքերի ստեղծում

Kinect- ի (WPF նախագիծ) և ռոբոտի (Python նախագիծ) միջև հաղորդակցության համար մենք օգտագործեցինք MQTT: MQTT- ը բաղկացած է բրոքերից (Linux համակարգիչ, որի վրա աշխատում է mqtt ծրագիրը (օրինակ ՝ Mosquitto)) և մի թեմա, որի վրա հաճախորդները կարող են բաժանորդագրվել (նրանք թեմայից հաղորդագրություն են ստանում) և հրապարակել (նրանք հաղորդագրություն են տեղադրում թեմայի վերաբերյալ).
MQTT բրոքեր ստեղծելու համար պարզապես ներբեռնեք այս ամբողջ jessie պատկերը: Սա մաքուր տեղադրում է Raspberry Pi- ի համար, որի վրա կա MQTT բրոքեր: Թեման ՝ «/Սանդրո»:
Քայլ 5. Տեղադրեք Kinect SDK V1.8
Որպեսզի kinect- ն աշխատի ձեր համակարգչի վրա, դուք պետք է տեղադրեք Microsoft Kinect SDK- ն:
Կարող եք ներբեռնել այստեղ ՝
www.microsoft.com/hy-us/download/details.a…
Քայլ 6: Տեղադրեք Python V2.7
Ռոբոտը աշխատում է NaoQi շրջանակով, այս շրջանակը հասանելի է միայն 2.7 (ոչ 3.x) պիթոնի համար, այնպես որ ստուգեք, թե ինչ տարբերակի պիթոնի եք տեղադրել:
Դուք կարող եք ներբեռնել python 2.7 այստեղ ՝
www.python.org/downloads/release/python-27…
Քայլ 7: Կոդավորում



Github ՝
Նշումներ.
- Կինեկտի հետ կոդավորում. Նախ դուք փնտրում եք կապված քինեկտ: Սա գույքի ներսում պահպանելուց հետո մենք միացրեցինք kinect- ի գույնը և skeletonstream- ը: Colorstream- ը կենդանի տեսահոլովակն է, մինչդեռ skeletonstream- ը նշանակում է, որ կցուցադրվի տեսախցիկի դիմաց գտնվող մարդու կմախքը: Colorstream- ը իրականում անհրաժեշտ չէ այս նախագիծը գործի դնելու համար, մենք պարզապես միացրել ենք այն, քանի որ skeletonstream- ը դեպի colorstream- ը հարթ տեսք ունի:
- Իրականում դա իսկապես կմախքային հոսքն է, որ կատարում է իր աշխատանքը: Skeletonstream- ը միացնելը նշանակում է, որ անձի կմախքին հետևում են: Այս կմախքից դուք ստանում եք բոլոր տեսակի տեղեկությունները, օրինակ. ոսկրային կողմնորոշումներ, համատեղ տեղեկատվություն,… Մեր նախագծի բանալին համատեղ տեղեկատվությունն էր: Օգտագործելով հետագծված կմախքի յուրաքանչյուր հոդի x-y & z կոորդինատները, մենք գիտեինք, որ կարող ենք ռոբոտին շարժել: Այսպիսով, յուրաքանչյուր.8 վայրկյան (ժմչփ օգտագործելով) մենք հրապարակում ենք mqtt բրոքերին յուրաքանչյուր հոդի x, y & z կոորդինատները:
- Քանի որ python- ի նախագիծը ունի mqtt միջնորդի բաժանորդագրություն, մենք այժմ կարող ենք միանալ այս նախագծի տվյալներին: Ռոբոտի յուրաքանչյուր հոդի ներսում կա երկու շարժիչ: Այս շարժիչները չեն կարող ուղղակիորեն ուղղորդվել ՝ օգտագործելով ուղղակիորեն x, y & z կոորդինատները: Այսպիսով, օգտագործելով եռանկյունաչափություն և որոշ ողջամտություն, մենք փոխակերպեցինք հոդերի x, y & z կոորդինատները ռոբոտների համար անհասկանալի անկյունների:
Այսպիսով, հիմնականում յուրաքանչյուր.8 վայրկյանում WPF նախագիծը հրապարակում է յուրաքանչյուր հոդի x, y & z կոորդինատները: Հետևաբար, պիթոնի նախագծի ներսում այս կոորդիանտները վերածվում են անկյունների, որոնք այնուհետ ուղարկվում են ռոբոտի համապատասխան շարժիչներին:
Խորհուրդ ենք տալիս:
Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարում. 5 քայլ

Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարելը. Բարև բոլորին, այսօր մենք ձեզ ցույց կտանք, թե ինչպես կարող եք վերահսկել LED- ը սմարթֆոնի միջոցով ինտերնետում
Moslty եռաչափ տպված Robotic Arm, որը նմանակում է տիկնիկային վերահսկիչին. 11 քայլ (նկարներով)

Moslty 3D տպված Robotic Arm That Mimics Puppet Controller. Ես ինժեներական ճարտարագիտության ուսանող եմ Հնդկաստանից և սա My Undergrad աստիճանի նախագիծն է: Այս նախագիծը կենտրոնացած է ցածր գնով ռոբոտային թևի մշակման վրա, որը հիմնականում 3D տպված է և ունի 5 DOF 2 մատով բռնիչ Ռոբոտային ձեռքը վերահսկվում է
N64 խաղերի նմանակում (ROMS) ՝ 5 քայլ

Ընդօրինակելով N64 խաղերը (ROMS). Nintendo 64 -ը (և դեռ մնում է) բոլոր ժամանակների ամենահետաքրքիր կոնսուլներից մեկը: Կարո՞ղ եք այս խաղերը խաղալ ձեր համակարգչի վրա: Այո (չնայած դուք իրականում ենթադրված չեք, բայց ես չեմ պատրաստվում ծեծել): Այս քայլ առ քայլ ձեռնարկը կստիպի ձեզ խաղալ ձեր
Նաո ռոբոտը շարժումներ է պատճենում Xbox Kinect տեսախցիկի միջոցով. 4 քայլ

Նաո ռոբոտը պատճենեց շարժումները Xbox Kinect տեսախցիկի միջոցով. Որպես ծրագիր ավագ դպրոցում (Պորտեր Գոդ) մեր համակարգչային գիտության դասին, ես (Լեգարե Ուոլպոլ) և մեկ այլ աշակերտ (Մարտին Լաուտենշլագեր) ձեռնամուխ եղանք Nao մարդածին ռոբոտի ձեռքբերմանը, որն ընդօրինակում է մեր շարժումները: Xbox կինետիկ տեսախցիկ: Ամիսներ շարունակ ոչ մի պրոֆեսիոնալ
Քայլ Servo շարժիչը սերիական հսկողության միջոցով Arduino- ի միջոցով օգտագործելով 3D տպիչ - Pt4: 8 քայլ

Arduino- ի միջոցով եռաչափ տպիչի միջոցով Step Servo Motor- ի սերիական կառավարում - Pt4. Motor Step շարքի այս չորրորդ տեսանյութում մենք կօգտագործենք այն, ինչ սովորել էինք նախկինում սերիական հաղորդակցության և իրական վերահսկողության միջոցով stepper servo շարժիչ կառուցելու համար: դիրքի հետադարձ կապ ՝ օգտագործելով դիմադրիչ կոդավորիչ, որը վերահսկվում է Arduino- ի կողմից: