Мазмұны:

Nao роботының Kinect көмегімен қозғалыстарды қайталау: 7 қадам
Nao роботының Kinect көмегімен қозғалыстарды қайталау: 7 қадам

Бейне: Nao роботының Kinect көмегімен қозғалыстарды қайталау: 7 қадам

Бейне: Nao роботының Kinect көмегімен қозғалыстарды қайталау: 7 қадам
Бейне: Поражение дрона российским роботом «Маркер» 2024, Қараша
Anonim
Nao роботының Kinect көмегімен қозғалыстарды қайталау
Nao роботының Kinect көмегімен қозғалыстарды қайталау

Бұл нұсқаулықта мен сізге Nao роботы қозғалыстарымызды кинект сенсоры арқылы имитациялауға қалай рұқсат беретінін түсіндіремін. Жобаның нақты мақсаты - білім беру мақсаты: мұғалімнің белгілі бір қимылдар жиынтығын (мысалы, би) жазып алуға мүмкіндігі бар және бұл жазбаларды сыныптағы балаларға роботқа еліктеуге мүмкіндік беру үшін қолдана алады. Нұсқаулықты кезең -кезеңмен өту арқылы сіз бұл жобаны толығымен қайта жасай аласыз.

Бұл мектеппен байланысты жоба (NMCT @ Howest, Kortrijk).

1 -қадам: Негізгі білім

Бұл жобаны қайта құру үшін сізге негізгі білім қажет:

- Питон туралы негізгі білім

- C# туралы негізгі білім (WPF)

- тригонометрия туралы негізгі білім

- MQTT -ді таңқурай пиінде қалай орнату керектігін білу

2 -қадам: Қажетті материалдарды алу

Бұл жобаға қажетті материалдар:

- Raspberry Pi

- Kinect сенсоры v1.8 (Xbox 360)

- Нао роботы немесе вируталды робот (хореграф)

3 -қадам: Бұл қалай жұмыс істейді

Image
Image
Ол қалай жұмыс істейді
Ол қалай жұмыс істейді

WPF қосымшасы бар компьютерге кинект сенсоры қосылған. WPF қосымшасы деректерді Python қосымшасына (роботқа) MQTT көмегімен жібереді. Жергілікті файлдар пайдаланушы таңдаған жағдайда сақталады.

Толық түсініктеме:

Жазуды бастамас бұрын, пайдаланушы MQTT брокерінің IP-адресін енгізуі керек. Сонымен қатар, бізге деректерді жариялағымыз келетін тақырып қажет. Бастауды басқаннан кейін бағдарлама брокермен байланыс орнатуға болатынын тексереді және ол бізге кері байланыс береді. Тақырыптың бар -жоғын тексеру мүмкін емес, сондықтан сіз бұл үшін толық жауап бересіз. Екі кіріс те жақсы болған кезде, бағдарлама MQTT брокеріндегі тақырыпқа бақыланатын қаңқадан деректерді жібере бастайды (x, y & z координаттары әр буыннан).

Робот бір MQTT брокерімен байланысқандықтан және сол тақырыпқа жазылғандықтан (бұл python қосымшасына да енгізілуі керек), енді python қосымшасы WPF қосымшасынан деректерді алады. Тригонометрия мен өздігінен жазылған алгоритмдерді қолдана отырып, біз робот ішіндегі қозғалтқыштарды нақты уақытта айналдыру үшін қолданатын бұрыштарды радиандарға айналдырамыз.

Пайдаланушы жазуды аяқтаған кезде, ол тоқтату түймесін басады. Енді пайдаланушы жазбаны сақтағыңыз келетінін сұрайтын қалқымалы терезені алады. Пайдаланушы бас тартуды басқанда, бәрі қалпына келтіріледі (деректер жоғалады) және жаңа жазуды бастауға болады. Егер пайдаланушы жазбаны сақтағысы келсе, ол тақырыпты енгізіп, «сақтау» түймесін басуы керек. «Сақтау» түймесін басқанда, барлық алынған деректер файл атауының тақырыбы арқылы жергілікті файлға жазылады. Файл сонымен қатар экранның оң жағындағы тізім көрінісіне қосылады. Осылайша, тізім көрінісіндегі жаңа жазбаны екі рет басқаннан кейін, файл оқылады және MQTT брокеріне жіберіледі. Нәтижесінде робот жазбаны ойнатады.

4 -қадам: MQTT брокерін орнату

MQTT брокерін орнату
MQTT брокерін орнату

Кинект (WPF жобасы) мен робот (Python жобасы) арасындағы байланыс үшін MQTT қолдандық. MQTT брокерден (mqtt бағдарламасы (мысалы, Mosquitto) жұмыс істейтін Linux компьютері) және клиенттер жазыла алатын тақырыптан тұрады (олар тақырыптан хабарлама алады) және жариялайды (олар тақырып бойынша хабарлама жібереді).

MQTT брокерін орнату үшін осы Джесси бейнесін жүктеп алыңыз. Бұл сізге MQTT брокері бар Raspberry Pi үшін таза қондырғы. Тақырып «/Сандро».

5 -қадам: Kinect SDK V1.8 орнату

Кинект компьютерде жұмыс істеуі үшін сізге Microsoft Kinect SDK орнату қажет.

Сіз оны мына жерден жүктей аласыз:

www.microsoft.com/kz-us/download/details.a…

6 -қадам: Python V2.7 орнату

Робот NaoQi шеңберімен жұмыс істейді, бұл негіз тек python 2.7 (3. X емес) үшін қол жетімді, сондықтан сіз орнатқан python нұсқасын тексеріңіз.

Сіз python 2.7 нұсқасын мына жерден жүктей аласыз:

www.python.org/downloads/release/python-27…

7 -қадам: кодтау

Кодтау
Кодтау
Кодтау
Кодтау
Кодтау
Кодтау

Github:

Ескертулер:

- kinect көмегімен кодтау: алдымен сіз қосылған кинекті іздейсіз. Мұны меншіктің ішінде сақтағаннан кейін біз кинект бойынша түс пен қаңқалық ағынды қостық. Colorstream - бұл тікелей бейне, ал skeletonstream - бұл камераның алдында тұрған адамның қаңқасы көрсетілетінін білдіреді. Colorstream бұл жобаны іске қосу үшін қажет емес, біз оны іске қостық, себебі түс ағымына қаңқалық ағынды нүктелік кескіндеме тегіс болып көрінеді!

- Іс жүзінде бұл жұмысты қаңқа ағыны жасайды. Қаңқа ағынын қосу адамның қаңқасы бақыланып жатқанын білдіреді. Бұл қаңқадан сіз барлық ақпаратты аласыз, мысалы. сүйек бағдары, бірлескен ақпарат,… Біздің жобаның кілті бірлескен ақпарат болды. Бақыланған қаңқадан әрбір буынның x-y & z координаттарын қолдана отырып, біз роботты қозғалысқа келтіруге болатынын білдік. Сонымен, әрбір 8 секунд сайын (таймерді қолданып) mqtt брокеріне буындардың әрқайсысының x, y & z координаттарын жариялаймыз.

- Python жобасында mqtt брокерінде жазылу бар болғандықтан, біз енді осы жобаның ішіндегі деректерге қол жеткізе аламыз. Роботтың әр буынының ішінде екі қозғалтқыш бар. Бұл қозғалтқыштарды тек x, y & z координаттары арқылы басқаруға болмайды. Сонымен, тригонометрия мен кейбір ақылға қонымдылықты қолдана отырып, біз буындардың x, y & z координаттарын роботтар үшін тұрақсыз бұрыштарға айналдырдық.

Негізінде әр 8 секунд сайын WPF жобасы әрбір буынның x, y & z координаттарын шығарады. Демек, питон жобасында бұл кордианттар бұрыштарға айналады, содан кейін олар роботтың сәйкес қозғалтқыштарына жіберіледі.

Ұсынылған: