Taula de continguts:

Moviments d'imitació de robots Nao mitjançant Kinect: 7 passos
Moviments d'imitació de robots Nao mitjançant Kinect: 7 passos

Vídeo: Moviments d'imitació de robots Nao mitjançant Kinect: 7 passos

Vídeo: Moviments d'imitació de robots Nao mitjançant Kinect: 7 passos
Vídeo: Дэниел Крафт: Будущее медицины? Для него существуют приложения 2024, Desembre
Anonim
Moviments de simulació de robots Nao mitjançant Kinect
Moviments de simulació de robots Nao mitjançant Kinect

En aquest instructiu us explicaré com deixem que un robot Nao imiti els nostres moviments mitjançant un sensor kinect. L'objectiu real del projecte és un propòsit educatiu: un professor té la capacitat de gravar determinats conjunts de moviments (per exemple, un ball) i pot utilitzar aquests enregistraments per deixar que els nens de l'aula imitin el robot. En passar per tot aquest instructiu pas a pas, hauríeu de ser capaç de recrear completament aquest projecte.

Es tracta d’un projecte relacionat amb l’escola (NMCT @ Howest, Courtrai).

Pas 1: coneixements bàsics

Per recrear aquest projecte cal tenir alguns coneixements bàsics:

- Coneixements bàsics de pitó

- Coneixements bàsics de C # (WPF)

- Coneixements bàsics de trigonometria

- Coneixements sobre com configurar MQTT en un raspberry pi

Pas 2: Adquisició dels materials necessaris

Materials necessaris per a aquest projecte:

- Raspberry Pi

- Kinect Sensor v1.8 (Xbox 360)

- Robot Nao o robot virutal (Choregraph)

Pas 3: Com funciona

Image
Image
Com funciona
Com funciona

Un sensor kinect està connectat a un ordinador que executa l'aplicació WPF. L'aplicació WPF envia dades a l'aplicació Python (robot) mitjançant MQTT. Els fitxers locals es guarden si l'usuari ho decideix.

Explicació detallada:

Abans de començar a gravar, l'usuari ha d'introduir l'adreça IP del corredor MQTT. A més, també necessitem el tema sobre el qual volem publicar les dades. Després de prémer Start, l'aplicació comprovarà si es pot establir una connexió amb l'agent i ens donarà comentaris. No és possible comprovar si existeix un tema, de manera que en sou el màxim responsable. Quan les dues entrades estiguin bé, l'aplicació començarà a enviar dades (les coordenades x, y & z de cada articulació) des de l'esquelet que s'està rastrejant fins al tema del corredor MQTT.

Com que el robot està connectat amb el mateix broker MQTT i està subscrit al mateix tema (també s’ha d’introduir a l’aplicació Python), l’aplicació Python ara rebrà les dades de l’aplicació WPF. Mitjançant la trigonometria i algoritmes autoescrits, convertim els coordenats en angles i radians, que fem servir per fer girar els motors a l'interior del robot en temps real.

Quan l'usuari acaba de gravar, prem el botó d'aturada. Ara l’usuari rep una finestra emergent que li demana si vol desar la gravació. Quan l'usuari prem Cancel·lar, es restableix tot (es perden les dades) i es pot iniciar una nova gravació. Si l'usuari vol desar la gravació, ha d'introduir un títol i prémer "desa". En prémer "desa", totes les dades adquirides s'escriuen en un fitxer local mitjançant l'entrada de títol com a nom de fitxer. El fitxer també s'afegeix a la llista de visualitzacions de la part dreta de la pantalla. D’aquesta manera, després de fer doble clic a la nova entrada de la llista de visualització, el fitxer es llegeix i s’envia al corredor MQTT. En conseqüència, el robot reproduirà la gravació.

Pas 4: Configuració del corredor MQTT

Configuració del corredor MQTT
Configuració del corredor MQTT

Per a la comunicació entre el kinect (projecte WPF) i el robot (projecte Python) hem utilitzat MQTT. MQTT consisteix en un broker (un ordinador Linux en què s’executa el programari mqtt (per exemple, Mosquitto)) i un tema on els clients poden subscriure’s (reben un missatge del tema) i publicar-los (publiquen un missatge sobre el tema).

Per configurar l’agent MQTT, descarregueu tota aquesta imatge de Jessie. Es tracta d’una instal·lació neta per al vostre Raspberry Pi amb un corredor MQTT. El tema és "/ Sandro".

Pas 5: Instal·lació del Kinect SDK V1.8

Perquè el kinect funcioni al vostre ordinador, heu d’instal·lar l’SDK de Microsoft Kinect.

Podeu descarregar-lo aquí:

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

Pas 6: Instal·lació de Python V2.7

El robot funciona amb el framework NaoQi, aquest framework només està disponible per a python 2.7 (NO 3.x), així que comproveu quina versió de python heu instal·lat.

Podeu descarregar Python 2.7 aquí:

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

Pas 7: Codificació

Codificació
Codificació
Codificació
Codificació
Codificació
Codificació

Github:

Notes:

- Codificació amb el kinect: primer busqueu el kinect connectat. Després de desar-ho dins d'una propietat, vam habilitar el color i l'esquelet al kinect. Colorstream és el vídeo en directe, mentre que skeletonstream significa que es mostrarà un esquelet de la persona que hi ha davant de la càmera. Colorstream no és realment necessari per fer funcionar aquest projecte, només l’hem habilitat perquè el mapeig de bits de l’esquelet a la corrent de color sembla llis.

- En realitat, és realment l’esquelet que fa la feina. Habilitar l’esquelet significa que es fa un seguiment de l’esquelet de la persona. D’aquest esquelet rebeu tota mena d’informació, per exemple. orientacions òssies, informació conjunta, … La clau del nostre projecte era la informació conjunta. Utilitzant les coordenades x-y & z de cadascuna de les articulacions de l’esquelet rastrejat, sabíem que podríem fer moure el robot. Per tant, cada 0,8 segons (mitjançant un temporitzador) publiquem les coordenades x, y & z de cadascuna de les articulacions al corredor mqtt.

- Com que el projecte python té una subsecció al broker mqtt, ara podem accedir a les dades dins d’aquest projecte. Dins de cada unió del robot hi ha dos motors. Aquests motors no només es poden dirigir utilitzant les coordenades x, y & z directament. Així, utilitzant la trigonometria i una mica de sentit comú, hem convertit les coordenades x, y & z de les articulacions en angles que no es poden sotmetre a robots.

Per tant, bàsicament cada 0,8 segons el projecte WPF publica les coordenades x, y & z de cadascuna de les articulacions. En conseqüència, dins del projecte python aquestes coordinadores es converteixen en angles, que després s’envien als motors corresponents del robot.

Recomanat: