Inhoudsopgave:
- Stap 1: Basiskennis
- Stap 2: De benodigde materialen aanschaffen
- Stap 3: Hoe het werkt
- Stap 4: De MQTT-makelaar instellen
- Stap 5: De Kinect SDK V1.8 installeren
- Stap 6: Python V2.7 installeren
- Stap 7: Coderen
Video: Nao-robot die bewegingen nabootst met Kinect - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
In deze instructable zal ik je uitleggen hoe we een Nao-robot onze bewegingen laten nabootsen met behulp van een kinect-sensor. Het eigenlijke doel van het project is een educatief doel: een leraar heeft de mogelijkheid om bepaalde bewegingen (bijvoorbeeld een dans) op te nemen en kan deze opnames gebruiken om de kinderen in de klas de robot te laten nabootsen. Door dit hele instructable stap voor stap door te nemen, zou je dit project volledig moeten kunnen recreëren.
Dit is een schoolgerelateerd project (NMCT @ Howest, Kortrijk).
Stap 1: Basiskennis
Om dit project opnieuw te maken, moet u over enige basiskennis beschikken:
- Basiskennis van python
- Basis C# kennis (WPF)
- Basiskennis trigonometrie
- Kennis over het instellen van MQTT op een Raspberry Pi
Stap 2: De benodigde materialen aanschaffen
Benodigde materialen voor dit project:
- Raspberry Pi
- Kinect-sensor v1.8 (Xbox 360)
- Nao-robot of virtuele robot (Choregraph)
Stap 3: Hoe het werkt
Een kinect-sensor is aangesloten op een computer waarop de WPF-toepassing wordt uitgevoerd. De WPF-applicatie stuurt gegevens naar de Python-applicatie (robot) met behulp van MQTT. Lokale bestanden worden opgeslagen als de gebruiker daarvoor kiest.
Gedetailleerde uitleg:
Voordat we beginnen met opnemen, moet de gebruiker het ip-adres van de MQTT-makelaar invoeren. Daarnaast hebben we ook het onderwerp nodig waarover we de gegevens willen publiceren. Nadat u op start heeft gedrukt, controleert de applicatie of er een verbinding tot stand kan worden gebracht met de makelaar en geeft deze ons feedback. Controleren of een onderwerp bestaat is niet mogelijk, dus je bent hier volledig verantwoordelijk voor. Wanneer beide ingangen in orde zijn, begint de applicatie met het verzenden van gegevens (x-, y- en z-coördinaten van elk gewricht) van het skelet dat wordt gevolgd naar het onderwerp op de MQTT-broker.
Omdat de robot met dezelfde MQTT-broker is verbonden en op hetzelfde onderwerp is geabonneerd (dit moet ook in de python-applicatie worden ingevoerd) zal de python-applicatie nu de gegevens van de WPF-applicatie ontvangen. Met behulp van trigonometrie en zelfgeschreven algoritmen zetten we de coördinaten om in hoeken en radialen, die we gebruiken om de motoren in de robot in realtime te laten draaien.
Wanneer de gebruiker klaar is met opnemen, drukt hij op de stopknop. Nu krijgt de gebruiker een pop-up met de vraag of hij de opname wil opslaan. Wanneer de gebruiker op annuleren drukt, wordt alles gereset (gegevens gaan verloren) en kan een nieuwe opname worden gestart. Als de gebruiker de opname wil opslaan, moet hij een titel invoeren en op 'opslaan' drukken. Als u op 'opslaan' drukt, worden alle verkregen gegevens naar een lokaal bestand geschreven met de titelinvoer als bestandsnaam. Het bestand wordt ook toegevoegd aan de lijstweergave aan de rechterkant van het scherm. Op deze manier wordt het bestand na dubbelklikken op het nieuwe item in de lijstweergave gelezen en verzonden naar MQTT-broker. Bijgevolg zal de robot de opname afspelen.
Stap 4: De MQTT-makelaar instellen
Voor de communicatie tussen de kinect (WPF-project) en de robot (Python-project) gebruikten we MQTT. MQTT bestaat uit een broker (een linux-computer waarop de mqtt-software (bijv. Mosquitto)) draait en een onderwerp waarop klanten zich kunnen abonneren (ze ontvangen een bericht van het onderwerp) en publiceren (ze plaatsen een bericht over het onderwerp).
Download deze hele jessie-afbeelding om de MQTT-makelaar in te stellen. Dit is een schone installatie voor je Raspberry Pi met een MQTT-broker erop. Het onderwerp is "/Sandro".
Stap 5: De Kinect SDK V1.8 installeren
Om de kinect op uw computer te laten werken, moet u de Microsoft Kinect SDK installeren.
Je kunt het hier downloaden:
www.microsoft.com/en-us/download/details.a…
Stap 6: Python V2.7 installeren
De robot werkt met het NaoQi-framework, dit framework is alleen beschikbaar voor python 2.7 (NIET 3.x), dus controleer welke versie van python je hebt geïnstalleerd.
U kunt python 2.7 hier downloaden:
www.python.org/downloads/release/python-27…
Stap 7: Coderen
Github:
Opmerkingen:
- Coderen met de kinect: eerst ga je op zoek naar de aangesloten kinect. Nadat we dit in een eigenschap hadden opgeslagen, hebben we color- en skeletonstream op de kinect ingeschakeld. Colorstream is de live video, terwijl skeletonstream betekent dat een skelet van de persoon voor de camera wordt weergegeven. Colorstream is niet echt nodig om dit project te laten werken, we hebben het gewoon ingeschakeld omdat bitmapping van de skeletonstream naar de colorstream er gelikt uitziet!
- In werkelijkheid is het echt de skeletonstream die het werk doet. Het inschakelen van skeletonstream betekent dat het skelet van de persoon wordt gevolgd. Van dit skelet krijg je allerlei informatie bv. botoriëntaties, gewrichtsinformatie, … De sleutel tot ons project was de gewrichtsinformatie. Met behulp van de x-y & z-coördinaten van elk van de gewrichten van het gevolgde skelet, wisten we dat we de robot konden laten bewegen. Dus elke 0,8 seconden (met behulp van een timer) publiceren we de x-, y- en z-coördinaten van elk van de verbindingen naar de mqtt-makelaar.
- Aangezien het python-project een abonnement heeft op de mqtt-broker, hebben we nu toegang tot de gegevens in dit project. Binnen elk gewricht van de robot bevinden zich twee motoren. Deze motoren kunnen niet zomaar rechtstreeks met de x-, y- en z-coördinaten worden bestuurd. Dus, met behulp van trigonometrie en wat gezond verstand, hebben we de x-, y- en z-coördinaten van de gewrichten omgezet in onderstabiele hoeken voor robots.
Dus eigenlijk publiceert het WPF-project elke 0,8 seconden x-, y- en z-coördinaten van elk van de gewrichten. Bijgevolg worden deze coördinaten binnen het pythonproject omgezet in hoeken, die vervolgens naar de overeenkomstige motoren van de robot worden gestuurd.
Aanbevolen:
Broek die je telefoon oplaadt: 6 stappen (met afbeeldingen)
Broek die je telefoon oplaadt: Dus we zetten bijna 1000 stappen per dag zonder mijn fysieke activiteiten te tellen die ik gewoonlijk heb en als je een regelmatige fietser bent zoals ik, telt dat ook. Dus wat als we die elektriciteit op de een of andere manier zouden kunnen gebruiken om dingen op te laden. DUS dit is een instructie
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een Kinect aansluiten: 8 stappen
Een Kinect aansluiten: Kinect van Microsoft is een veelzijdig multimedia-invoerapparaat dat als 3D-scanner kan worden gebruikt. Oorspronkelijk werd het gelanceerd als een uitbreiding op de Xbox-gameconsole. We beschrijven hoe je een Kinect aansluit op je Windows-pc. Nintendo's Wii-spelconsole i
Wat te doen met al die AOL-cd's: 6 stappen (met afbeeldingen)
Wat te doen met al die AOL-cd's: Ik wilde iets met plastic cd's doen, behalve ze aan de stortplaats toe te voegen - Mijn oplossing was om ze te gebruiken om geometrische 3D-constructies te bouwen. Ik beschrijf hier hoe ik 12 cd's heb gebruikt om een dodecaëder te bouwen. Ik bouwde ook een 32 CD trucated Icosahedron, 1
Bouw een echte klok die op uw pc slaat en een brandblusser die opvalt: 3 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Bouw een echte klok die op je pc slaat en een klok die op een brandblusser slaat: een koperen bel, een klein relais, nog een paar dingen en een echte bel kunnen de uren op je bureaublad slaan. Hoewel dit project op Windows en Mac draait OS X ook, ik besloot Ubuntu Linux te installeren op een pc die ik in de prullenbak vond en daaraan te werken: ik had nog nooit