Përmbajtje:

Robo Nao që imiton lëvizjet duke përdorur Kinect: 7 hapa
Robo Nao që imiton lëvizjet duke përdorur Kinect: 7 hapa

Video: Robo Nao që imiton lëvizjet duke përdorur Kinect: 7 hapa

Video: Robo Nao që imiton lëvizjet duke përdorur Kinect: 7 hapa
Video: Leap Motion SDK 2024, Qershor
Anonim
Roboti Nao që imiton lëvizjet duke përdorur Kinect
Roboti Nao që imiton lëvizjet duke përdorur Kinect

Në këtë udhëzues do t'ju shpjegoj se si e lëmë një robot Nao të imitojë lëvizjet tona duke përdorur një sensor kinect. Qëllimi aktual i projektit është një qëllim arsimor: një mësues ka aftësinë të regjistrojë grupe të caktuara lëvizjesh (p.sh. një vallëzim) dhe mund t'i përdorë këto regjistrime për t'i lënë fëmijët në klasë të imitojnë robotin. Duke kaluar nëpër të gjithë këtë udhëzues hap pas hapi, ju duhet të jeni në gjendje ta rikrijoni plotësisht këtë projekt.

Ky është një projekt i lidhur me shkollën (NMCT @ Howest, Kortrijk).

Hapi 1: Njohuritë themelore

Për të rikrijuar këtë projekt ju duhet të zotëroni disa njohuri themelore:

- Njohuri themelore për pitonin

- Njohuri bazë C# (WPF)

- Njohuri themelore për trigonometrinë

- Njohuri se si të vendosni MQTT në një pi mjedër

Hapi 2: Marrja e materialeve të nevojshme

Materialet e nevojshme për këtë projekt:

- mjedër Pi

- Kinect Sensor v1.8 (Xbox 360)

- Robot Nao ose robot virutal (Koregrafi)

Hapi 3: Si funksionon

Image
Image
Si punon
Si punon

Një sensor kinect është i lidhur me një kompjuter që përdor aplikacionin WPF. Aplikacioni WPF dërgon të dhëna në aplikacionin Python (robot) duke përdorur MQTT. Skedarët lokalë ruhen nëse përdoruesi e zgjedh këtë.

Shpjegim i hollësishëm:

Para se të fillojmë regjistrimin, përdoruesi duhet të vendosë adresën ip të ndërmjetësit MQTT. Përveç kësaj, ne gjithashtu kemi nevojë për temën në të cilën duam të publikojmë të dhënat. Pas shtypjes së fillimit, aplikacioni do të kontrollojë nëse mund të krijohet një lidhje me ndërmjetësin dhe do të na japë reagime. Nuk është e mundur të kontrolloni nëse ekziston një temë, kështu që ju jeni plotësisht përgjegjës për këtë. Kur të dy hyrjet janë në rregull, aplikacioni do të fillojë të dërgojë të dhëna (koordinatat x, y & z nga secila bashkim) nga skeleti që po gjurmohet te tema në ndërmjetësin MQTT.

Për shkak se roboti është i lidhur me të njëjtin ndërmjetës MQTT dhe është regjistruar në të njëjtën temë (kjo duhet të futet edhe në aplikacionin python) aplikacioni python tani do të marrë të dhënat nga aplikacioni WPF. Duke përdorur trigonometri dhe algoritme të shkruara vetë, ne i konvertojmë koordinatat në kënde dhe radianë, të cilat i përdorim për të rrotulluar motorët brenda robotit në kohë reale.

Kur përdoruesi mbaron regjistrimin, ai shtyp butonin e ndalimit. Tani përdoruesi merr një dritare që pyet nëse dëshiron të ruajë regjistrimin. Kur përdoruesit godasin anulimin, gjithçka rivendoset (të dhënat humbasin) dhe mund të fillojë një regjistrim i ri. Nëse përdoruesi dëshiron të ruajë regjistrimin, ai duhet të vendosë një titull dhe të godasë 'ruaj'. Kur shtypni 'ruaj' të gjitha të dhënat e fituara shkruhen në një skedar lokal duke përdorur hyrjen e titullit si emrin e skedarit. Skedari gjithashtu shtohet në listview në anën e djathtë të ekranit. Në këtë mënyrë, pasi të keni klikuar dy herë hyrjen e re në listview, skedari lexohet dhe i dërgohet ndërmjetësit MQTT. Si pasojë, roboti do të luajë regjistrimin.

Hapi 4: Vendosja e ndërmjetësit MQTT

Vendosja e ndërmjetësit MQTT
Vendosja e ndërmjetësit MQTT

Për komunikimin midis kinect (projekti WPF) dhe robotit (projekti Python) kemi përdorur MQTT. MQTT përbëhet nga një ndërmjetës (një kompjuter Linux që funksionon softueri mqtt (p.sh. Mosquitto)) dhe një temë në të cilën klientët mund të regjistrohen (ata marrin një mesazh nga tema) dhe publikojnë (ata postojnë një mesazh mbi temën) Me

Për të konfiguruar ndërmjetësin MQTT, thjesht shkarkoni këtë imazh të tërë jessie. Ky është një instalim i pastër për ju Raspberry Pi me një ndërmjetës MQTT në të. Tema është "/Sandro".

Hapi 5: Instalimi i Kinect SDK V1.8

Që kinect të funksionojë në kompjuterin tuaj duhet të instaloni Microsoft Kinect SDK.

Mund ta shkarkoni këtu:

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

Hapi 6: Instalimi i Python V2.7

Roboti punon me kuadrin NaoQi, ky kuadër është i disponueshëm vetëm për python 2.7 (JO 3.x), kështu që kontrolloni se çfarë versioni të python keni instaluar.

Mund të shkarkoni python 2.7 këtu:

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

Hapi 7: Kodimi

Kodimi
Kodimi
Kodimi
Kodimi
Kodimi
Kodimi

Github:

Shënime:

- Kodimi me kinect: së pari ju kërkoni kinectin e lidhur. Pasi e ruajtëm këtë brenda një prone, ne aktivizuam ngjyrën dhe skeletonstream në kinect. Colorstream është video e drejtpërdrejtë, ndërsa skeletonstream do të thotë që do të shfaqet një skelet i personit para kamerës. Colorstream nuk është vërtet i nevojshëm për të vënë në funksion këtë projekt, ne thjesht e aktivizuam atë sepse bitmapping e skeletonstream në ngjyra të rrjedhës duket e shkëlqyeshme!

- Në realitet është me të vërtetë skeletonstream që bën punën. Aktivizimi i skeletonstream do të thotë që skeleti i personit po gjurmohet. Nga ky skelet ju merrni të gjitha llojet e informacionit p.sh. orientimet kockore, informacioni i përbashkët,… Çelësi i projektit tonë ishte informacioni i përbashkët. Duke përdorur koordinatat x-y & z të secilit prej nyjeve nga skeleti i gjurmuar, ne e dinim se mund ta bënim robotin të lëvizte. Pra, çdo.8 sekonda (duke përdorur një kohëmatës) ne publikojmë koordinatat x, y & z të secilës prej nyjeve tek ndërmjetësi mqtt.

- Meqenëse projekti python ka një nënshkrim në ndërmjetësin mqtt, tani mund të hyjmë në të dhënat brenda këtij projekti. Brenda secilës nyje të robotit janë dy motorë. Këta motorë nuk mund të drejtohen thjesht duke përdorur koordinatat x, y & z drejtpërdrejt. Pra, duke përdorur trigonometrinë dhe një sens të përbashkët, ne i shndërruam koordinatat x, y & z të nyjeve në kënde të kuptueshme për robotët.

Pra, në thelb çdo.8 sekonda projekti WPF publikon koordinatat x, y & z të secilit prej nyjeve. Si pasojë, brenda projektit python këto koordinante konvertohen në kënde, të cilat më pas dërgohen në motorët përkatës të robotit.

Recommended: