Sisukord:

Nao robot jäljendab liigutusi Kinecti abil: 7 sammu
Nao robot jäljendab liigutusi Kinecti abil: 7 sammu

Video: Nao robot jäljendab liigutusi Kinecti abil: 7 sammu

Video: Nao robot jäljendab liigutusi Kinecti abil: 7 sammu
Video: Leap Motion SDK 2024, Juuni
Anonim
Nao robot jäljendab liigutusi Kinecti abil
Nao robot jäljendab liigutusi Kinecti abil

Selles juhendis selgitan teile, kuidas lasime Nao robotil kinect -anduri abil meie liigutusi matkida. Projekti tegelik eesmärk on hariduslik eesmärk: õpetajal on võimalus salvestada teatud liigutusi (nt tants) ja ta saab nende salvestiste abil lastel klassiruumis roboti jäljendada. Läbides kogu selle juhendi samm -sammult, peaksite saama selle projekti täielikult uuesti luua.

See on kooliga seotud projekt (NMCT @ Howest, Kortrijk).

Samm: põhiteadmised

Selle projekti taastamiseks peavad teil olema mõned põhiteadmised:

- põhilised teadmised püütonist

- C# põhiteadmised (WPF)

- Algteadmised trigonomeetriast

- Teadmised MQTT seadistamise kohta vaarika pi

2. samm: vajalike materjalide hankimine

Selle projekti jaoks vajalikud materjalid:

- Vaarika Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robot või virutal robot (Choregraph)

3. toiming: kuidas see toimib

Image
Image
Kuidas see töötab
Kuidas see töötab

Kinect -andur on ühendatud arvutiga, kus töötab WPF -rakendus. WPF -rakendus saadab MQTT abil andmed Pythoni rakendusele (robotile). Kohalikud failid salvestatakse, kui kasutaja seda valib.

Üksikasjalik selgitus:

Enne salvestamise alustamist peab kasutaja sisestama MQTT maakleri IP-aadressi. Peale selle vajame ka teemat, mille kohta me andmeid avaldada soovime. Pärast käivitamise vajutamist kontrollib rakendus, kas maakleriga saab ühenduse luua, ja annab meile tagasisidet. Teema olemasolu kontrollimine pole võimalik, seega olete selle teema eest täielikult vastutav. Kui mõlemad sisendid on korras, hakkab rakendus saatma andmeid (x, y ja z koordinaadid igast liigendist) jälgitavast skeletist MQTT maakleri teemal jälgitavale teemale.

Kuna robot on ühendatud sama MQTT maakleriga ja tellitud samal teemal (see tuleb sisestada ka pythoni rakendusse), saab pythoni rakendus nüüd andmed WPF -i rakendusest. Kasutades trigonomeetriat ja ise kirjutatud algoritme, teisendame koordinaadid nurkadeks ja radiaanideks, mida kasutame roboti sees olevate mootorite reaalajas pööramiseks.

Kui kasutaja on salvestamise lõpetanud, vajutab ta stopp -nuppu. Nüüd kuvab kasutaja hüpikakna, kas ta soovib salvestuse salvestada. Kui kasutaja vajutab tühistamisnuppu, lähtestatakse kõik (andmed lähevad kaduma) ja saab alustada uut salvestamist. Kui kasutaja soovib salvestuse salvestada, peaks ta sisestama pealkirja ja klõpsama nuppu "salvesta". Kui vajutate nuppu „Salvesta”, kirjutatakse kõik saadud andmed kohalikku faili, kasutades failinimena pealkirja sisendit. Fail lisatakse ka ekraani paremas servas olevasse loendivaatesse. Nii loetakse fail pärast loendivaates uue kirje topeltklõpsamist ja saadetakse see MQTT maaklerile. Järelikult mängib robot salvestust.

Samm: seadistage MQTT maakler

MQTT maakleri seadistamine
MQTT maakleri seadistamine

Kinecti (WPF -projekt) ja roboti (Pythoni projekt) vaheliseks suhtluseks kasutasime MQTT -d. MQTT koosneb maaklerist (linuxi arvuti, millel töötab mqtt -tarkvara (nt. Mosquitto)) ja teemast, mille kohta kliendid saavad tellida (nad saavad teemast sõnumi) ja avaldada (nad postitavad teema kohta sõnumi).

MQTT maakleri seadistamiseks laadige alla kogu see jessie pilt. See on teie Raspberry Pi jaoks puhas install, millel on MQTT maakler. Teemaks on "/Sandro".

Samm: Kinect SDK V1.8 installimine

Et kinect teie arvutis töötaks, peate installima Microsoft Kinect SDK.

Saate selle alla laadida siit:

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

Samm: Python V2.7 installimine

Robot töötab NaoQi raamistikuga, see raamistik on saadaval ainult python 2.7 (MITTE 3.x) jaoks, seega kontrollige, milline pythoni versioon olete installinud.

Python 2.7 saate alla laadida siit:

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

Samm: kodeerimine

Kodeerimine
Kodeerimine
Kodeerimine
Kodeerimine
Kodeerimine
Kodeerimine

Github:

Märkused:

- Kinectiga kodeerimine: kõigepealt otsige ühendatud kinect. Pärast selle salvestamist kinnisvarasse lubasime kinectis värvi- ja skeletivoo. Värvivoo on reaalajas video, skeleti voog aga tähendab, et kuvatakse kaamera ees oleva inimese skelett. Colorstream ei ole selle projekti toimimiseks tegelikult vajalik, me lihtsalt lubasime selle, sest skeleti voo bittkaardistamine värvivooga tundub libe!

- Tegelikkuses teeb seda tööd tõesti skeleti voog. Skeletivoo lubamine tähendab, et inimese luustikku jälgitakse. Sellest skeletist saate igasugust teavet, nt. luude orientatsioonid, ühine teave… Meie projekti võtmeks oli ühine teave. Kasutades jälgitava luustiku iga liigese x-y & z koordinaate, teadsime, et suudame roboti liikuma panna. Niisiis avaldame iga 0,8 sekundi järel (taimerit kasutades) mqtt maaklerile iga liigendi x, y & z koordinaadid.

- Kuna python -projektil on mqtt -maakleri alamkirje, saame nüüd selle projekti andmetele juurde pääseda. Roboti iga liigendi sees on kaks mootorit. Neid mootoreid ei saa lihtsalt juhtida, kasutades otse x, y & z koordinaate. Niisiis muutsime trigonomeetria ja mõne terve mõistuse abil liigeste x, y & z koordinaadid robotiteks alalaugudeks.

Põhimõtteliselt avaldab WPF -projekt iga 0,8 sekundi järel iga liigendi x, y & z koordinaadid. Järelikult teisendatakse need püütoniprojektis need koordinaadid nurkadeks, mis seejärel saadetakse roboti vastavatele mootoritele.

Soovitan: