
Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04

În acest instructiv vă voi explica cum lăsăm un robot Nao să imite mișcările noastre folosind un senzor kinect. Scopul real al proiectului este un scop educațional: un profesor are capacitatea de a înregistra anumite seturi de mișcări (de exemplu, un dans) și poate folosi aceste înregistrări pentru a permite copiilor din sala de clasă să imite robotul. Trecând prin întregul pas instructiv, ar trebui să puteți recrea pe deplin acest proiect.
Acesta este un proiect legat de școală (NMCT @ Howest, Kortrijk).
Pasul 1: cunoștințe de bază
Pentru a recrea acest proiect trebuie să dețineți câteva cunoștințe de bază:
- Cunoștințe de bază despre python
- Cunoștințe de bază C # (WPF)
- Cunoștințe de bază despre trigonometrie
- Cunoștințe despre cum să configurați MQTT pe un pi zmeură
Pasul 2: Achiziționarea materialelor necesare
Materiale necesare pentru acest proiect:
- Raspberry Pi
- Senzor Kinect v1.8 (Xbox 360)
- robot Nao sau robot virutal (Choregraph)
Pasul 3: Cum funcționează



Un senzor kinect este conectat la un computer care rulează aplicația WPF. Aplicația WPF trimite date către aplicația Python (robot) folosind MQTT. Fișierele locale sunt salvate dacă utilizatorul alege acest lucru.
Explicatie detaliata:
Înainte de a începe înregistrarea, utilizatorul trebuie să introducă adresa IP a brokerului MQTT. Pe lângă asta, avem nevoie și de subiectul pe care vrem să publicăm datele. După apăsarea Start, aplicația va verifica dacă s-ar putea stabili o conexiune cu brokerul și ne va oferi feedback. Verificarea dacă există un subiect nu este posibilă, deci sunteți pe deplin responsabil pentru acesta. Când ambele intrări sunt OK, aplicația va începe să trimită date (coordonatele x, y și z din fiecare articulație) din scheletul urmărit către subiectul brokerului MQTT.
Deoarece robotul este conectat cu același broker MQTT și este abonat la același subiect (acesta trebuie introdus și în aplicația python), aplicația python va primi acum datele de la aplicația WPF. Folosind trigonometrie și algoritmi de auto-scriere, convertim coordonatele în unghiuri și radiani, pe care le folosim pentru a roti motoarele din interiorul robotului în timp real.
Când utilizatorul termină înregistrarea, apasă butonul de oprire. Acum utilizatorul primește o fereastră pop-up care întreabă dacă dorește să salveze înregistrarea. Când utilizatorul dă clic pe anulare, totul este resetat (datele se pierd) și se poate începe o nouă înregistrare. Dacă utilizatorul dorește să salveze înregistrarea, ar trebui să introducă un titlu și să apese „Salvare”. Când apăsați „salvați” toate datele achiziționate sunt scrise într-un fișier local folosind titlul de intrare ca nume de fișier. Fișierul este, de asemenea, adăugat la listview din partea dreaptă a ecranului. În acest fel, după dublu clic pe noua intrare din listview, fișierul este citit și trimis brokerului MQTT. În consecință, robotul va reda înregistrarea.
Pasul 4: Configurarea brokerului MQTT

Pentru comunicarea dintre kinect (proiectul WPF) și robot (proiectul Python) am folosit MQTT. MQTT constă dintr-un broker (un computer Linux pe care rulează software-ul mqtt (de ex. Mosquitto)) și un subiect la care clienții se pot abona (primesc un mesaj din subiect) și pot publica (postează un mesaj pe subiect).
Pentru a configura brokerul MQTT, trebuie doar să descărcați întreaga imagine jessie. Aceasta este o instalare curată pentru dvs. Raspberry Pi cu un broker MQTT pe ea. Subiectul este „/ Sandro”.
Pasul 5: Instalarea Kinect SDK V1.8
Pentru ca kinect să funcționeze pe computer, trebuie să instalați Microsoft Kinect SDK.
O puteți descărca de aici:
www.microsoft.com/en-us/download/details.a…
Pasul 6: Instalarea Python V2.7
Robotul funcționează cu cadrul NaoQi, acest cadru este disponibil numai pentru python 2.7 (NU 3.x), deci verificați ce versiune de python ați instalat.
Puteți descărca Python 2.7 aici:
www.python.org/downloads/release/python-27…
Pasul 7: Codificare



Github:
Note:
- Codificare cu kinect: mai întâi căutați kinectul conectat. După ce am salvat acest lucru în interiorul unei proprietăți, am activat culoarea și scheletul pe kinect. Colorstream este videoclipul live, în timp ce scheletonstream înseamnă că va fi afișat un schelet al persoanei din fața camerei. Colorstream nu este cu adevărat necesar pentru ca acest proiect să funcționeze, doar l-am activat, deoarece bitmap-ul scheletului în fluxul de culori pare slab!
- În realitate, este într-adevăr scheletul care face treaba. Activarea scheletului înseamnă că scheletul persoanei este urmărit. Din acest schelet primiți tot felul de informații, de ex. orientări osoase, informații comune, … Cheia proiectului nostru a fost informația comună. Folosind coordonatele x-y & z ale fiecărei articulații din scheletul urmărit, am știut că putem face robotul să se miște. Deci, la fiecare.8 secunde (folosind un cronometru) publicăm coordonatele x, y & z ale fiecărei articulații către brokerul mqtt.
- Deoarece proiectul python are o subsecțiune pe brokerul mqtt, putem accesa acum datele din acest proiect. În interiorul fiecărei articulații a robotului sunt două motoare. Aceste motoare nu pot fi direcționate doar folosind coordonatele x, y & z direct. Deci, folosind trigonometria și ceva bun simț, am convertit coordonatele x, y & z ale articulațiilor în unghiuri subestabile în roboți.
Deci, la fiecare 0,8 secunde, proiectul WPF publică coordonatele x, y & z ale fiecărei articulații. În consecință, în interiorul proiectului python aceste coordonatoare sunt convertite în unghiuri, care sunt apoi trimise către motoarele corespunzătoare ale robotului.
Recomandat:
Conversia Stepper în mișcări de joc: 4 pași

Conversia Stepper în mișcări de joc: Introducere Acest dispozitiv convertește mișcarea de la un pas cu pas (mașină de trepte) în mișcare de joc. Va funcționa pentru orice joc care primește („w”) ca mișcare înainte. Poate funcționa și pentru jocurile VR dacă acceptă introducerea tastaturii. Probabil a câștigat
Mișcări de copiere a robotului Nao prin camera Xbox Kinect: 4 pași

Nao Robot Copying Movements Through Xbox Kinect Camera: Ca proiect în clasa noastră de informatică din liceu (Porter Gaud), eu (Legare Walpole) și un alt student (Martin Lautenschlager) ne-am propus să obținem un robot humanoid Nao care să imite mișcările noastre prin o cameră cinetică Xbox. De luni de zile nici un pro
RC Rover controlat de gesturi, mișcări și joystick: 8 pași

RC Rover Controled by Gestures Motions & Joyestick: RC Rover este un proiect de robotică care își propune să îmbunătățească controlul rover-ului prin utilizarea frecvenței radio și interacțiunea mișcării rover-ului cu mișcarea mâinii folosind unitatea inerțială (MPU6050), dar și controlul acestei Rover cu un Joyestik. Toate
Evitarea obstacolelor robotului folosind EBot8: 4 pași (cu imagini)

Obstacolul care evită robotul folosind EBot8: În acest tutorial, veți învăța cum să construiți o mașină robot care să evite obstacolele prezente în calea sa. Conceptul poate fi folosit și aplicat în diferite moduri, în funcție de condiții
Evitarea obstacolelor robotului folosind driverul motorului L298n: 5 pași

Obstacolul care evită robotul folosind driverul de motor L298n: Bună ziua, băieți astăzi vom face acest robot .. sper să vă placă