Innholdsfortegnelse:

Nao robot etterligner bevegelser ved hjelp av Kinect: 7 trinn
Nao robot etterligner bevegelser ved hjelp av Kinect: 7 trinn

Video: Nao robot etterligner bevegelser ved hjelp av Kinect: 7 trinn

Video: Nao robot etterligner bevegelser ved hjelp av Kinect: 7 trinn
Video: SCP-093 Красное море Объект (Все тесты и вторичного сырья Журналы) 2024, September
Anonim
Nao -robot etterligner bevegelser ved hjelp av Kinect
Nao -robot etterligner bevegelser ved hjelp av Kinect

I denne instruksen vil jeg forklare deg hvordan vi lar en Nao -robot etterligne bevegelsene våre ved hjelp av en kinect -sensor. Selve målet med prosjektet er et pedagogisk formål: en lærer har evnen til å registrere visse sett med trekk (f.eks. En dans) og kan bruke disse opptakene til å la barna i klasserommet etterligne roboten. Ved å gå gjennom hele denne instruerbare trinn for trinn, bør du kunne gjenskape dette prosjektet fullt ut.

Dette er et skolerelatert prosjekt (NMCT @ Howest, Kortrijk).

Trinn 1: Grunnleggende kunnskap

For å gjenskape dette prosjektet må du ha noen grunnleggende kunnskaper:

- Grunnleggende pytonkunnskaper

- Grunnleggende C# kunnskap (WPF)

- Grunnleggende kunnskap om trigonometri

- Kunnskap om hvordan du setter opp MQTT på en bringebærpi

Trinn 2: Innhente de nødvendige materialene

Nødvendig materiale for dette prosjektet:

- Bringebær Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao -robot eller virutal robot (Choregraph)

Trinn 3: Slik fungerer det

Image
Image
Hvordan det fungerer
Hvordan det fungerer

En kinect -sensor er koblet til en datamaskin som kjører WPF -applikasjonen. WPF -applikasjonen sender data til Python -applikasjonen (roboten) ved hjelp av MQTT. Lokale filer lagres hvis brukeren velger det.

Detaljert forklaring:

Før vi begynner å spille inn, må brukeren angi ip-adressen til MQTT-megleren. Dessuten trenger vi også emnet vi ønsker å publisere dataene om. Etter å ha trykket på start, vil programmet sjekke om det kan opprettes en forbindelse med megleren, og det vil gi oss tilbakemelding. Det er ikke mulig å kontrollere om det finnes et emne, så du er fullt ansvarlig for dette. Når begge inngangene er OK, begynner applikasjonen å sende data (x, y & z -koordinater fra hver ledd) fra skjelettet som spores til emnet på MQTT -megleren.

Fordi roboten er koblet til den samme MQTT -megleren og abonnerer på samme emne (dette må også angis i python -applikasjonen) vil python -applikasjonen nå motta dataene fra WPF -applikasjonen. Ved å bruke trigonometri og selvskrevne algoritmer konverterer vi koordinatene til vinkler og radianer, som vi bruker til å rotere motorene inne i roboten i sanntid.

Når brukeren er ferdig med innspillingen, trykker han på stoppknappen. Nå får brukeren en popup som spør om han vil lagre opptaket. Når brukeren treffer avbryt, tilbakestilles alt (data går tapt) og et nytt opptak kan startes. Hvis brukeren ønsker å lagre opptaket, bør han skrive inn en tittel og trykke "lagre". Når du trykker på "lagre", blir alle ervervede data skrevet til en lokal fil med tittelinndata som filnavn. Filen legges også til i listevisningen på høyre side av skjermen. På denne måten, etter å ha dobbeltklikket på den nye oppføringen i listevisningen, blir filen lest og sendt til MQTT -megler. Følgelig vil roboten spille av innspillingen.

Trinn 4: Konfigurere MQTT -megleren

Sette opp MQTT -megleren
Sette opp MQTT -megleren

For kommunikasjonen mellom kinect (WPF -prosjektet) og roboten (Python -prosjektet) brukte vi MQTT. MQTT består av en megler (en linux -datamaskin som mqtt -programvaren (f.eks. Mosquitto)) kjører og et emne som klienter kan abonnere på (de mottar en melding fra emnet) og publisere (de legger ut en melding om emnet).

For å sette opp MQTT -megleren, bare last ned hele dette jessie -bildet. Dette er en ren installasjon for deg Raspberry Pi med en MQTT -megler på den. Temaet er "/Sandro".

Trinn 5: Installere Kinect SDK V1.8

For at kinect skal fungere på datamaskinen din, må du installere Microsoft Kinect SDK.

Du kan laste den ned her:

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

Trinn 6: Installere Python V2.7

Roboten fungerer med NaoQi -rammeverket, dette rammeverket er bare tilgjengelig for python 2.7 (IKKE 3.x), så sjekk hvilken versjon av python du har installert.

Du kan laste ned python 2.7 her:

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

Trinn 7: Koding

Koding
Koding
Koding
Koding
Koding
Koding

Github:

Merknader:

- Koding med kinect: først ser du etter den tilkoblede kinecten. Etter å ha lagret dette inne i en eiendom aktiverte vi farge- og skjelettstrøm på kinect. Colorstream er livevideoen, mens skeletonstream betyr at et skjelett av personen foran kameraet vil bli vist. Colorstream er egentlig ikke nødvendig for å få dette prosjektet til å fungere, vi har bare aktivert det fordi bitmapping av skjelettstrømmen til fargestrømmen ser glatt ut!

- I virkeligheten er det virkelig skeletonstream som gjør jobben. Aktivering av skeletonstream betyr at skjelettet til personen blir sporet. Fra dette skjelettet får du all slags informasjon, f.eks. beinorientering, felles informasjon, … Nøkkelen til prosjektet vårt var felles informasjon. Ved å bruke x-y & z-koordinatene til hver av leddene fra det sporede skjelettet, visste vi at vi kunne få roboten til å bevege seg. Så, hvert.

- Siden python -prosjektet har et abonnement på mqtt -megleren, kan vi nå få tilgang til dataene i dette prosjektet. Inne i hver ledd i roboten er to motorer. Disse motorene kan ikke bare styres ved å bruke x, y & z -koordinatene direkte. Så ved å bruke trigonometri og litt sunn fornuft konverterte vi x, y & z -koordinatene til leddene til vinkler som var understable til roboter.

Så i utgangspunktet hvert.8 sekund publiserer WPF -prosjektet x, y & z koordinater for hver av leddene. Følgelig blir disse koordiantene i pythonprosjektet konvertert til vinkler, som deretter sendes til de tilsvarende motorene i roboten.

Anbefalt: