Sisällysluettelo:

Nao -robotti jäljittelee liikkeitä Kinectin avulla: 7 vaihetta
Nao -robotti jäljittelee liikkeitä Kinectin avulla: 7 vaihetta

Video: Nao -robotti jäljittelee liikkeitä Kinectin avulla: 7 vaihetta

Video: Nao -robotti jäljittelee liikkeitä Kinectin avulla: 7 vaihetta
Video: 💤 КАК УСНУТЬ ЗА 1 МИНУТУ? 3 ВОЕННЫХ СЕКРЕТА! 2024, Kesäkuu
Anonim
Nao -robotti jäljittelee liikkeitä Kinectin avulla
Nao -robotti jäljittelee liikkeitä Kinectin avulla

Tässä ohjeessa selitän sinulle, kuinka annamme Nao -robotin matkia liikkeitämme kinect -anturin avulla. Hankkeen todellinen tavoite on kasvatuksellinen tarkoitus: opettaja pystyy tallentamaan tiettyjä liikkeitä (esim. Tanssin) ja voi käyttää näiden tallenteiden avulla luokassa olevien lasten matkia robottia. Käymällä tämä koko opastettava vaihe vaiheelta läpi sinun pitäisi pystyä luomaan tämä projekti kokonaan uudelleen.

Tämä on kouluun liittyvä projekti (NMCT @ Howest, Kortrijk).

Vaihe 1: Perustiedot

Tämän projektin luomiseksi sinulla on oltava perustiedot:

- Pythonin perustiedot

- C# perustiedot (WPF)

- trigonometrian perustiedot

- Tietoa MQTT: n asettamisesta vadelmapiille

Vaihe 2: Tarvittavien materiaalien hankinta

Tarvittavat materiaalit tähän projektiin:

- Vadelma Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao -robotti tai virutal -robotti (Choregraph)

Vaihe 3: Näin se toimii

Image
Image
Kuinka se toimii
Kuinka se toimii

Kinect -anturi on kytketty tietokoneeseen, jossa on WPF -sovellus. WPF -sovellus lähettää tietoja Python -sovellukseen (robotti) MQTT: n avulla. Paikalliset tiedostot tallennetaan, jos käyttäjä valitsee niin.

Yksityiskohtainen selitys:

Ennen kuin aloitamme tallennuksen, käyttäjän on annettava MQTT-välittäjän ip-osoite. Tämän lisäksi tarvitsemme myös aiheen, josta haluamme tiedot julkaista. Käynnistyksen painamisen jälkeen sovellus tarkistaa, voidaanko yhteys muodostaa välittäjän kanssa, ja se antaa meille palautetta. Aiheen olemassaolon tarkistaminen ei ole mahdollista, joten olet täysin vastuussa tästä aiheesta. Kun molemmat tulot ovat kunnossa, sovellus alkaa lähettää tietoja (x, y & z -koordinaatit jokaisesta liitoksesta) seuratusta luuranosta MQTT -välittäjän aiheeseen.

Koska robotti on yhteydessä samaan MQTT -välittäjään ja tilataan samasta aiheesta (tämäkin täytyy syöttää python -sovellukseen), python -sovellus vastaanottaa nyt tiedot WPF -sovelluksesta. Käyttämällä trigonometriaa ja itse kirjoitettuja algoritmeja, muunnamme rinnakkaiset kulmiksi ja radiaaneiksi, joiden avulla pyöritämme robotteja sisällä olevia moottoreita reaaliajassa.

Kun käyttäjä on lopettanut tallennuksen, hän painaa pysäytyspainiketta. Nyt käyttäjä saa ponnahdusikkunan, jossa kysytään, haluaako hän tallentaa tallenteen. Kun käyttäjä painaa Peruuta, kaikki nollataan (tiedot häviävät) ja uusi tallennus voidaan aloittaa. Jos käyttäjä haluaa tallentaa tallenteen, hänen on annettava otsikko ja painettava Tallenna. Kun painat 'tallenna', kaikki hankitut tiedot kirjoitetaan paikalliseen tiedostoon käyttämällä otsikkotuloa tiedostonimenä. Tiedosto lisätään myös näytön oikeassa reunassa olevaan luettelonäkymään. Tällä tavalla, kun olet kaksoisnapsauttanut uutta merkintää luettelonäkymässä, tiedosto luetaan ja lähetetään MQTT -välittäjälle. Tämän seurauksena robotti toistaa tallennuksen.

Vaihe 4: MQTT -välittäjän käyttöönotto

MQTT -välittäjän asentaminen
MQTT -välittäjän asentaminen

Kinectin (WPF -projekti) ja robotin (Python -projekti) välisessä viestinnässä käytimme MQTT: tä. MQTT koostuu välittäjästä (linux -tietokone, jossa mqtt -ohjelmisto (esim. Mosquitto)) on käynnissä ja aihe, josta asiakkaat voivat tilata (he saavat viestin aiheesta) ja julkaista (he lähettävät viestin aiheesta).

Voit perustaa MQTT -välittäjän lataamalla tämän koko jessie -kuvan. Tämä on puhdas asennus sinulle Raspberry Pi, jossa on MQTT -välittäjä. Aiheena on "/Sandro".

Vaihe 5: Kinect SDK V1.8: n asennus

Jotta kinect toimisi tietokoneellasi, sinun on asennettava Microsoft Kinect SDK.

Voit ladata sen täältä:

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

Vaihe 6: Python V2.7: n asennus

Robotti toimii NaoQi -kehyksen kanssa, tämä kehys on saatavana vain python 2.7: lle (EI 3.x), joten tarkista, mikä python -versio olet asentanut.

Voit ladata python 2.7: n täältä:

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

Vaihe 7: Koodaus

Koodaus
Koodaus
Koodaus
Koodaus
Koodaus
Koodaus

Github:

Huomautuksia:

- Koodaus kinectin avulla: ensin etsit yhdistettyä kinectiä. Kun olemme tallentaneet tämän omaisuuteen, otimme kinectissä käyttöön väri- ja luurankon. Colorstream on live -video, kun taas luuranko tarkoittaa, että kameran edessä olevan henkilön luuranko näytetään. Värivirta ei todellakaan ole välttämätön tämän projektin toimimiseksi, otimme sen vain käyttöön, koska luurankon bittikarttaaminen värivirtaan näyttää liukkaalta!

- Todellisuudessa luustovirta tekee työnsä. Luuranovirran ottaminen käyttöön tarkoittaa, että henkilön luurankoa seurataan. Tästä luuranosta saat kaikenlaista tietoa, esim. luun suuntaukset, yhteinen tieto,… Projektimme avain oli yhteinen tieto. Käyttämällä jokaisen seuratun luuranon nivelen x-y & z-koordinaatteja tiesimme, että voimme saada robotin liikkumaan. Joten, joka 8. sekunti (ajastinta käyttämällä) julkaisemme kunkin liitoksen x, y & z -koordinaatit mqtt -välittäjälle.

- Koska python -projektilla on mqtt -välittäjän tilaus, voimme nyt päästä käsiksi projektin tietoihin. Robotin jokaisen liitoksen sisällä on kaksi moottoria. Näitä moottoreita ei voi vain ohjata suoraan x-, y & z -koordinaateilla. Joten trigonometriaa ja tervettä järkeä käyttämällä muutimme nivelten x-, y- ja z -koordinaatit robottien alavakaiksi kulmiksi.

Joten periaatteessa joka 8.8 sekunti WPF -projekti julkaisee kunkin liitoksen x-, y & z -koordinaatit. Näin ollen python -projektin sisällä nämä koordinaatit muunnetaan kulmiksi, jotka lähetetään sitten vastaaviin robottimoottoreihin.

Suositeltava: