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

Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով. 7 քայլ
Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով. 7 քայլ

Video: Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով. 7 քայլ

Video: Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով. 7 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Սեպտեմբեր
Anonim
Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով
Nao Robot- ը նմանակում է շարժումները Kinect- ի միջոցով

Այս ուսանելի հոդվածում ես ձեզ կբացատրեմ, թե ինչպես ենք մենք թույլ տալիս, որ Նաո ռոբոտը կրկնօրինակի մեր շարժումները ՝ օգտագործելով kinect սենսոր: Theրագրի իրական նպատակը կրթական նպատակն է. Ուսուցիչը կարող է գրանցել որոշակի շարժումներ (օրինակ ՝ պար) և կարող է օգտագործել այդ ձայնագրությունները `լսարանում գտնվող երեխաներին թույլ տալու նմանակելու ռոբոտին: Այս ուսանելի ամբողջ քայլ առ քայլ անցնելով ՝ դուք պետք է կարողանաք ամբողջությամբ վերստեղծել այս նախագիծը:

Սա դպրոցին առնչվող նախագիծ է (NMCT @ Howest, Kortrijk):

Քայլ 1: Հիմնական գիտելիքներ

Այս նախագիծը վերստեղծելու համար դուք պետք է ունենաք որոշ հիմնական գիտելիքներ.

- Պիտոնի հիմնական գիտելիքներ

- C# հիմնական գիտելիքներ (WPF)

- Եռանկյունաչափության հիմնական գիտելիքներ

- Գիտելիքներ, թե ինչպես ստեղծել MQTT ազնվամորի պի վրա

Քայլ 2: Անհրաժեշտ նյութերի ձեռքբերում

Այս նախագծի համար անհրաժեշտ նյութեր.

- Ազնվամորի Պի

- Kinect Sensor v1.8 (Xbox 360)

- Նաո ռոբոտ կամ վիրուսային ռոբոտ (խորեոգրաֆ)

Քայլ 3: Ինչպես է այն աշխատում

Image
Image
Ինչպես է դա աշխատում
Ինչպես է դա աշխատում

Kinect սենսորը միացված է WPF հավելվածն աշխատող համակարգչին: WPF հավելվածը տվյալներ է ուղարկում Python հավելվածին (ռոբոտ) ՝ օգտագործելով MQTT: Տեղական ֆայլերը պահվում են, եթե օգտագործողը դա է որոշում:

Մանրամասն բացատրություն

Նախքան ձայնագրությունը սկսելը, օգտագործողը պետք է մուտքագրի MQTT բրոքերի IP հասցեն: Բացի այդ, մեզ պետք է նաև այն թեման, որի վրա ցանկանում ենք հրապարակել տվյալները: Start- ը սեղմելուց հետո դիմումը կստուգի, արդյոք հնարավոր է կապ հաստատել բրոքերի հետ, և դա մեզ հետադարձ կապ կտա: Թեման գոյություն ունենալը հնարավոր չէ ստուգել, այնպես որ դուք լիովին պատասխանատու եք այս թեմայի համար: Երբ երկու ներածումներն էլ կարգին են, ծրագիրը կսկսի տվյալներ ուղարկել (x, y & z կոորդինատները յուրաքանչյուր համատեղում) այն կմախքից, որը հետևվում է MQTT բրոքերի թեմային:

Քանի որ ռոբոտը կապված է նույն MQTT բրոքերի հետ և բաժանորդագրված է նույն թեմային (սա պետք է մուտքագրվի նաև python հավելվածում), այժմ python հավելվածը կստանա տվյալները WPF հավելվածից: Եռանկյունաչափության և ինքնագրավոր ալգորիթմների միջոցով կոորդինատները վերածում ենք անկյունների և ռադիաների, որոնք օգտագործում ենք ռոբոտի ներսում շարժիչները իրական ժամանակում պտտելու համար:

Երբ օգտագործողը ավարտում է ձայնագրությունը, նա սեղմում է կանգառի կոճակը: Այժմ օգտվողը ստանում է թռուցիկ, որը հարցնում է, թե արդյոք նա ցանկանում է պահպանել ձայնագրությունը: Երբ օգտվողը հարվածում է չեղարկում, ամեն ինչ վերակայվում է (տվյալները կորչում են) և կարող է սկսվել նոր ձայնագրություն: Եթե օգտագործողը ցանկանում է պահպանել ձայնագրությունը, նա պետք է մուտքագրի վերնագիր և հարվածի «պահպանել»: «Պահել» կոճակին հարվածելիս բոլոր ձեռք բերված տվյալները գրվում են տեղական ֆայլում ՝ օգտագործելով վերնագրի մուտքը որպես ֆայլի անուն: Ֆայլը նաև ավելացվում է էկրանի աջ կողմում գտնվող ցուցակագրմանը: Այս կերպ, ցուցակի նոր գրառումը կրկնակի սեղմելուց հետո ֆայլը կարդացվում և ուղարկվում է MQTT բրոքերին: Հետեւաբար, ռոբոտը կնվագարկի ձայնագրությունը:

Քայլ 4: MQTT բրոքերի ստեղծում

MQTT բրոքերի ստեղծում
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 կոորդինատները: Հետևաբար, պիթոնի նախագծի ներսում այս կոորդիանտները վերածվում են անկյունների, որոնք այնուհետ ուղարկվում են ռոբոտի համապատասխան շարժիչներին:

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