Taula de continguts:
- Pas 1: coneixements bàsics
- Pas 2: Adquisició dels materials necessaris
- Pas 3: Com funciona
- Pas 4: Configuració del corredor MQTT
- Pas 5: Instal·lació del Kinect SDK V1.8
- Pas 6: Instal·lació de Python V2.7
- Pas 7: Codificació
Vídeo: Moviments d'imitació de robots Nao mitjançant Kinect: 7 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
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
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
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ó
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:
Convertir Stepper en moviments de joc: 4 passos
Convertir Stepper en moviments de joc: Introducció: aquest dispositiu converteix el moviment d’un stepper (màquina pas a pas) casolà en moviment de joc. Funcionarà per a qualsevol joc que rebi ("w") com a moviment cap endavant. També pot funcionar per als jocs de realitat virtual si accepten l'entrada de teclat. Probablement va guanyar
Moviments de còpia del robot Nao mitjançant la càmera Xbox Kinect: 4 passos
Nao Robot Copying Movements Through Xbox Kinect Camera: Com a projecte de la nostra classe d'informàtica a l'escola secundària (Porter Gaud), jo mateix (Legare Walpole) i un altre estudiant (Martin Lautenschlager) ens vam proposar aconseguir un robot humanoide Nao que imités els nostres moviments a través de una càmera cinètica Xbox. Durant mesos no hi ha cap pro
RC Rover controlat per gestos i moviments: 8 passos
RC Rover controlat per Gestions Motions & Joyestick: RC Rover és un projecte de robòtica que té com a objectiu millorar el control del rover mitjançant l’ús de radiofreqüència i la interacció del moviment del rover amb el moviment de la mà mitjançant la unitat inercial (MPU6050), però també el control d’aquest Rover amb un Joyestik. Tot
La "flauta" de la imitació: 13 passos (amb imatges)
La "flauta" de la imitació: com un dels deu instruments més comuns que es toquen a tot el món, la quantitat d'iniciadors que estudien la flauta és molt gran. Mentre que la " Flauta " de la imitació no ensenya el control de la respiració, l '"instrument" es concentra en el fons
Com fer un signe de neó imitació realista: súper brillant: 8 passos (amb imatges)
Com fer un signe de neó imitació realista: súper brillant!: Hola nois, aquest és el meu mètode original i original per crear un signe de neó simulat amb LEDs que sembli realista. Realment sembla un tub de vidre bufat, amb tota la llum variada que comporta la refracció a través del vidre a diferència