Tartalomjegyzék:

A Nao robot mozgásait utánozza a Kinect segítségével: 7 lépés
A Nao robot mozgásait utánozza a Kinect segítségével: 7 lépés

Videó: A Nao robot mozgásait utánozza a Kinect segítségével: 7 lépés

Videó: A Nao robot mozgásait utánozza a Kinect segítségével: 7 lépés
Videó: Нова (2022) Научная фантастика | Полнометражный фильм 2024, November
Anonim
A Nao Robot mozgásokat utánoz a Kinect segítségével
A Nao Robot mozgásokat utánoz a Kinect segítségével

Ebben az utasításban elmagyarázom nektek, hogyan hagyjuk, hogy egy Nao robot utánozza a mozgásunkat egy kinect érzékelő segítségével. A projekt tényleges célja oktatási cél: a tanár képes rögzíteni bizonyos mozdulatsorokat (pl. Táncot), és ezekkel a felvételekkel hagyhatja, hogy a gyerekek az osztályteremben utánozzák a robotot. Lépésről lépésre végigjárva ezt az egész utasítást, képesnek kell lennie arra, hogy teljesen újrateremtse ezt a projektet.

Ez egy iskolával kapcsolatos projekt (NMCT @ Howest, Kortrijk).

1. lépés: Alapvető ismeretek

A projekt újbóli létrehozásához rendelkeznie kell néhány alapvető tudással:

- Python alapismeretek

- Alapvető C# tudás (WPF)

- Alapszintű trigonometriai ismeretek

- Tudás az MQTT beállításáról egy málna pi -n

2. lépés: A szükséges anyagok beszerzése

A projekthez szükséges anyagok:

- Raspberry Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robot vagy virutal robot (Choregraph)

3. lépés: Hogyan működik?

Image
Image
Hogyan működik
Hogyan működik

Kinect érzékelő csatlakozik a WPF alkalmazást futtató számítógéphez. A WPF alkalmazás adatokat küld a Python alkalmazásnak (robotnak) az MQTT használatával. A helyi fájlok mentésre kerülnek, ha a felhasználó ezt választja.

Részletes magyarázat:

A felvétel megkezdése előtt a felhasználónak meg kell adnia az MQTT bróker ip-címét. Ezen kívül szükségünk van arra a témára is, amelyen közzé kívánjuk tenni az adatokat. A start gomb megnyomása után az alkalmazás ellenőrzi, hogy sikerült -e kapcsolatot létesíteni a brókerrel, és visszajelzést ad nekünk. Nem lehet ellenőrizni, hogy létezik -e téma, így ezért teljes mértékben Ön a felelős. Ha mindkét bemenet rendben van, az alkalmazás elkezd adatokat küldeni (x, y & z koordináták az egyes ízületekből) a nyomon követett csontvázból az MQTT közvetítő témájához.

Mivel a robot ugyanahhoz az MQTT brókerhez kapcsolódik, és ugyanazon a témán van előfizetve (ezt is be kell írni a python alkalmazásba), a python alkalmazás most megkapja az adatokat a WPF alkalmazástól. A trigonometria és a saját írásos algoritmusok segítségével a coördinatákat szögekké és radiánokká alakítjuk, amelyekkel valós időben forgathatjuk a robot belsejében lévő motorokat.

Amikor a felhasználó befejezte a felvételt, megnyomja a stop gombot. Most a felhasználó megjelenik egy felugró ablak, amely megkérdezi, hogy el akarja-e menteni a felvételt. Amikor a felhasználó leállítja a Mégse gombot, minden visszaáll (az adatok elvesznek), és új felvétel indítható. Ha a felhasználó el akarja menteni a felvételt, írjon be egy címet, és nyomja meg a „mentés” gombot. Amikor megnyomja a „mentés” gombot, az összes megszerzett adat egy helyi fájlba íródik, és a címbevitelt használja fájlnévként. A fájl hozzáadódik a képernyő jobb oldalán található listanézethez is. Ily módon, miután duplán kattintott az új bejegyzésre a listanézetben, a fájl beolvasásra kerül, és elküldésre kerül az MQTT brókernek. Következésképpen a robot lejátssza a felvételt.

4. lépés: Az MQTT Broker beállítása

Az MQTT bróker beállítása
Az MQTT bróker beállítása

A kinect (WPF projekt) és a robot (Python projekt) közötti kommunikációhoz MQTT -t használtunk. Az MQTT egy brókerből (egy linuxos számítógépről, amelyen az mqtt szoftver (pl. Mosquitto)) fut) és egy témakörből, amelyre az ügyfelek feliratkozhatnak (üzenetet kapnak a témából) és közzétehetnek (üzenetet tesznek közzé a témában).

Az MQTT bróker beállításához csak töltse le ezt az egész jessie képet. Ez egy tiszta telepítés a Raspberry Pi számára, amelyen egy MQTT bróker található. A téma "/Sandro".

5. lépés: A Kinect SDK V1.8 telepítése

Ahhoz, hogy a kinect működjön a számítógépen, telepítenie kell a Microsoft Kinect SDK -t.

Letöltheti innen:

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

6. lépés: A Python V2.7 telepítése

A robot a NaoQi keretrendszerrel működik, ez a keretrendszer csak a python 2.7 (NEM 3.x) verzióhoz érhető el, ezért ellenőrizze, hogy a python melyik verzióját telepítette.

A python 2.7 letölthető innen:

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

7. lépés: Kódolás

Kódolás
Kódolás
Kódolás
Kódolás
Kódolás
Kódolás

Github:

Megjegyzések:

- Kinect a kinect -el: először keresse meg a csatlakoztatott kinect -et. Miután ezt mentettük egy ingatlanba, engedélyeztük a szín- és csontvázfolyamot a kinect-en. A Colorstream az élő videó, míg a skeletonstream azt jelenti, hogy a kamera előtt álló személy csontváza jelenik meg. A Colorstream nem igazán szükséges a projekt működtetéséhez, csak engedélyeztük, mert a vázlatáram bitképzése a színáramhoz simán néz ki!

- A valóságban valóban a csontvázáram teszi a dolgát. A csontvázfolyam engedélyezése azt jelenti, hogy a személy csontvázát nyomon követik. Ebből a csontvázból mindenféle információt kap, pl. csontorientációk, közös információk,… A projektünk kulcsa a közös információ volt. A nyomon követett csontváz minden egyes csuklójának x-y & z koordinátáit használva tudtuk, hogy képesek vagyunk mozgatni a robotot. Tehát.8 másodpercenként (időzítő segítségével) közzétesszük az egyes kötések x, y & z koordinátáit az mqtt brókernek.

- Mivel a python projektnek előfizetése van az mqtt brókeren, most hozzáférhetünk a projekten belüli adatokhoz. A robot minden egyes csuklójában két motor található. Ezeket a motorokat nem lehet közvetlenül az x, y & z koordináták segítségével irányítani. Így a trigonometria és némi józan ész segítségével az ízületek x, y és z koordinátáit alstabil szögekké alakítottuk át robotokká.

Tehát a WPF projekt lényegében minden 8 másodpercben közzéteszi az egyes kötések x, y & z koordinátáit. Következésképpen a python projektben ezek a koordináták szögekké alakulnak, amelyeket aztán a robot megfelelő motorjaihoz küldenek.

Ajánlott: