Indholdsfortegnelse:

Nao -robot, der efterligner bevægelser ved hjælp af Kinect: 7 trin
Nao -robot, der efterligner bevægelser ved hjælp af Kinect: 7 trin

Video: Nao -robot, der efterligner bevægelser ved hjælp af Kinect: 7 trin

Video: Nao -robot, der efterligner bevægelser ved hjælp af Kinect: 7 trin
Video: Jeg spiller som sirenehoved og tegneseriekat! Nyt SCP - vandmonster! 2024, September
Anonim
Nao -robot efterligner bevægelser ved hjælp af Kinect
Nao -robot efterligner bevægelser ved hjælp af Kinect

I denne instruktive vil jeg forklare dig, hvordan vi lader en Nao -robot efterligne vores bevægelser ved hjælp af en kinect -sensor. Det egentlige mål med projektet er et uddannelsesmæssigt formål: En lærer har evnen til at registrere bestemte sæt træk (f.eks. En dans) og kan bruge disse optagelser til at lade børnene i klasseværelset efterligne robotten. Ved at gennemgå hele denne instruerbare trin for trin, bør du være i stand til fuldt ud at genskabe dette projekt.

Dette er et skolelateret projekt (NMCT @ Howest, Kortrijk).

Trin 1: Grundlæggende viden

For at genskabe dette projekt skal du have en vis grundlæggende viden:

- Grundlæggende python -viden

- Grundlæggende C# viden (WPF)

- Grundlæggende trigonometri -viden

- Viden om, hvordan man opsætter MQTT på en hindbærpi

Trin 2: Anskaffelse af de nødvendige materialer

Nødvendigt materiale til dette projekt:

- Hindbær Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robot eller virutal robot (Choregraph)

Trin 3: Sådan fungerer det

Image
Image
Hvordan det virker
Hvordan det virker

En kinect -sensor er forbundet til en computer, der kører WPF -applikationen. WPF -applikationen sender data til Python -applikationen (robotten) ved hjælp af MQTT. Lokale filer gemmes, hvis brugeren vælger det.

Detaljeret forklaring:

Inden vi begynder at optage, skal brugeren indtaste ip-adressen til MQTT-mægleren. Udover det har vi også brug for det emne, som vi vil offentliggøre dataene om. Efter at have trykket på start, vil applikationen kontrollere, om der kunne etableres en forbindelse med mægleren, og det vil give os feedback. Det er ikke muligt at kontrollere, om der findes et emne, så du er fuldt ansvarlig for dette. Når begge input er OK, begynder applikationen at sende data (x, y & z -koordinater fra hver led) fra skelettet, der spores til emnet på MQTT -mægleren.

Fordi robotten er forbundet med den samme MQTT -mægler og abonnerer på det samme emne (dette skal også indtastes i python -applikationen) vil python -applikationen nu modtage dataene fra WPF -applikationen. Ved hjælp af trigonometri og selvskrevne algoritmer konverterer vi koordinaterne til vinkler og radianer, som vi bruger til at rotere motorerne inde i robotten i realtid.

Når brugeren er færdig med at optage, trykker han på stopknappen. Nu får brugeren en pop-up, der spørger, om han vil gemme optagelsen. Når brugeren trykker på annullering, nulstilles alt (data går tabt), og en ny optagelse kan startes. Hvis brugeren ønsker at gemme optagelsen, skal han indtaste en titel og trykke på 'gem'. Når du trykker på 'gem', bliver alle erhvervede data skrevet til en lokal fil ved hjælp af titelinput som filnavn. Filen tilføjes også til listevisningen i højre side af skærmen. På denne måde læses filen og sendes til MQTT -mægler efter at have dobbeltklikket på den nye post i listevisningen. Derfor vil robotten afspille optagelsen.

Trin 4: Opsætning af MQTT -mægleren

Opsætning af MQTT -mægleren
Opsætning af MQTT -mægleren

Til kommunikationen mellem kinect (WPF -projektet) og robotten (Python -projekt) brugte vi MQTT. MQTT består af en mægler (en linux -computer, som mqtt -softwaren (f.eks. Mosquitto)) kører og et emne, som klienter kan abonnere på (de modtager en besked fra emnet) og udgive (de sender en besked om emnet).

For at oprette MQTT -mægleren skal du bare downloade hele dette jessie -billede. Dette er en ren installation for dig Raspberry Pi med en MQTT -mægler på. Emnet er "/Sandro".

Trin 5: Installation af Kinect SDK V1.8

For at kinect fungerer på din computer, skal du installere Microsoft Kinect SDK.

Du kan downloade den her:

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

Trin 6: Installation af Python V2.7

Robotten arbejder med NaoQi -rammen, denne ramme er kun tilgængelig for python 2.7 (IKKE 3.x), så tjek hvilken version af python du har installeret.

Du kan downloade python 2.7 her:

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

Trin 7: Kodning

Kodning
Kodning
Kodning
Kodning
Kodning
Kodning

Github:

Bemærkninger:

- Kodning med kinect: først leder du efter den tilsluttede kinect. Efter at have gemt dette inde i en ejendom aktiverede vi farve- og skeletstrøm på kinect. Colorstream er den levende video, mens skeletonstream betyder, at et skelet af personen foran kameraet vil blive vist. Colorstream er ikke rigtig nødvendigt for at få dette projekt til at fungere, vi aktiverede det bare, fordi bitmapping af skeletstrømmen til farvestrømmen ser glat ud!

- I virkeligheden er det virkelig skeletstrømmen, der gør jobbet. Aktivering af skeletstrøm betyder, at personens skelet spores. Fra dette skelet modtager du alle former for information f.eks. knogleorienteringer, fælles information, … Nøglen til vores projekt var den fælles information. Ved hjælp af x-y & z-koordinaterne for hver af leddene fra det sporede skelet vidste vi, at vi kunne få robotten til at bevæge sig. Så hvert.8 sekund (ved hjælp af en timer) offentliggør vi x, y & z -koordinaterne for hver af leddene til mqtt -mægleren.

- Da python -projektet har et abonnement på mqtt -mægleren, kan vi nu få adgang til dataene inde i dette projekt. Inde i hver led i robotten er to motorer. Disse motorer kan ikke bare styres ved hjælp af x, y & z koordinaterne direkte. Så ved hjælp af trigonometri og noget sund fornuft konverterede vi x, y & z koordinaterne for leddene til vinkler, der var understable til robotter.

Så stort set hvert.8 sekund udgiver WPF -projektet x, y & z koordinater for hver af leddene. Følgelig konverteres disse koordianter inde i pythonprojektet til vinkler, som derefter sendes til de tilsvarende motorer i robotten.

Anbefalede: