
Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-23 14:37

U ovom uputstvu ću vam objasniti kako smo dopustili Nao robotu da oponaša naša kretanja pomoću kinect senzora. Stvarni cilj projekta je obrazovna svrha: učitelj ima sposobnost snimanja određenih setova pokreta (npr. Ples) i može koristiti te snimke kako bi djeca u učionici imitirala robota. Prolazeći kroz cijeli ovaj korak po korak instrukcije, trebali biste biti u mogućnosti ponovno stvoriti ovaj projekt.
Ovo je projekat povezan sa školom (NMCT @ Howest, Kortrijk).
Korak 1: Osnovno znanje
Za ponovno stvaranje ovog projekta morate posjedovati osnovno znanje:
- Osnovno znanje o pythonu
- Osnovno znanje C# (WPF)
- Osnovno znanje trigonometrije
- Znanje o tome kako postaviti MQTT na pi od maline
Korak 2: Nabavka potrebnih materijala
Potrebni materijali za ovaj projekat:
- Raspberry Pi
- Kinect Sensor v1.8 (Xbox 360)
- Nao robot ili virutalni robot (Choregraph)
Korak 3: Kako to funkcionira



Kinect senzor je povezan sa računarom na kojem radi aplikacija WPF. WPF aplikacija šalje podatke Python aplikaciji (robotu) koristeći MQTT. Lokalne datoteke se spremaju ako korisnik tako odluči.
Detaljno objašnjenje:
Prije nego započnemo snimanje, korisnik mora unijeti ip-adresu brokera MQTT. Osim toga, potrebna nam je i tema o kojoj želimo objaviti podatke. Nakon pritiska na start, aplikacija će provjeriti može li se uspostaviti veza s posrednikom i dat će nam povratne informacije. Nije moguće provjeriti postoji li tema, pa ste za nju u potpunosti odgovorni. Kada su oba ulaza u redu, aplikacija će početi slati podatke (koordinate x, y & z iz svakog zgloba) sa kostura koji se prati do teme na MQTT brokeru.
Budući da je robot povezan s istim MQTT posrednikom i pretplaćen na istu temu (ovo se mora unijeti i u aplikaciju python), aplikacija python će sada primati podatke iz aplikacije WPF. Koristeći trigonometriju i samostalno napisane algoritme, koordinate pretvaramo u kutove i radijane, koje koristimo za rotiranje motora unutar robota u stvarnom vremenu.
Kada korisnik završi snimanje, on pritisne dugme za zaustavljanje. Sada korisnik dobiva skočni prozor s pitanjem želi li sačuvati snimak. Kada korisnik pritisne dugme za otkazivanje, sve se resetira (podaci se gube) i može se započeti novo snimanje. Ako korisnik želi spremiti snimak, trebao bi unijeti naslov i pritisnuti 'spremi'. Kada pritisnete 'spremi', svi prikupljeni podaci se upisuju u lokalnu datoteku koristeći naslov kao naziv datoteke. Datoteka se takođe dodaje u prikaz liste sa desne strane ekrana. Na ovaj način, nakon dvostrukog klika na novi unos u prikazu liste, datoteka se čita i šalje MQTT brokeru. Posljedično, robot će reproducirati snimak.
Korak 4: Postavljanje MQTT brokera

Za komunikaciju između kinecta (WPF projekt) i robota (Python projekt) koristili smo MQTT. MQTT se sastoji od posrednika (linux računara na kojem je pokrenut softver mqtt (npr. Mosquitto)) i teme na koju se klijenti mogu pretplatiti (dobiju poruku s teme) i objaviti (objave poruku na tu temu).
Za postavljanje MQTT brokera samo preuzmite cijelu ovu sliku jessie. Ovo je čista instalacija za vas Raspberry Pi sa MQTT posrednikom na njoj. Tema je "/Sandro".
Korak 5: Instaliranje Kinect SDK V1.8
Da bi kinect radio na vašem računaru, morate instalirati Microsoft Kinect SDK.
Možete ga preuzeti ovdje:
www.microsoft.com/en-us/download/details.a…
Korak 6: Instaliranje Python V2.7
Robot radi s okvirom NaoQi, ovaj okvir je dostupan samo za python 2.7 (NE 3.x), pa provjerite koju ste verziju pythona instalirali.
Python 2.7 možete preuzeti ovdje:
www.python.org/downloads/release/python-27…
Korak 7: Kodiranje



Github:
Napomene:
- Kodiranje pomoću kinecta: prvo potražite povezani kinect. Nakon što smo ovo spremili unutar svojstva, omogućili smo tok boja i skeleta na kinektu. Colorstream je video zapis uživo, dok skeletonstream znači da će biti prikazan kostur osobe ispred kamere. Colorstream zapravo nije neophodan za uspješan rad ovog projekta, samo smo ga omogućili jer bitmapiranje skeletnog toka u tok boja izgleda glatko!
- U stvarnosti, to je skelet koji obavlja posao. Omogućavanje skeletnog toka znači da se prati kostur osobe. Iz ovog kostura primate sve vrste informacija, npr. orijentacije kostiju, zajedničke informacije,… Ključ našeg projekta bile su zajedničke informacije. Koristeći x-y & z koordinate svakog od zglobova iz praćenog kostura, znali smo da možemo pokrenuti robota. Dakle, svakih 0,8 sekundi (pomoću tajmera) objavljujemo x, y & z koordinate svakog od zglobova u mqtt brokeru.
- Budući da python projekt ima pretplatu na mqtt brokeru, sada možemo pristupiti podacima unutar ovog projekta. Unutar svakog zgloba robota nalaze se dva motora. Ovim motorima se ne može upravljati samo pomoću koordinata x, y & z. Dakle, koristeći trigonometriju i neki zdrav razum, pretvorili smo x, y & z koordinate zglobova u kutove razumljive robotima.
Dakle, u osnovi svakih 0,8 sekundi WPF projekt objavljuje x, y & z koordinate svakog od spojeva. Shodno tome, unutar python projekta ti se koordinatni kordanti pretvaraju u kutove, koji se zatim šalju odgovarajućim motorima robota.
Preporučuje se:
Moslty 3D štampana robotska ruka koja oponaša lutkarski kontroler: 11 koraka (sa slikama)

Moslty 3D štampana robotska ruka koja oponaša lutkarskog kontrolera: Ja sam student mašinstva iz Indije i ovo je moj diplomski projekat. Ovaj projekat je fokusiran na razvoj jeftine robotske ruke koja je uglavnom 3D štampana i ima 5 DOF-ova sa 2 prsta hvataljka. Robotskom rukom upravlja se
Pretvaranje stepera u pokrete igre: 4 koraka

Pretvaranje stepera u pokrete igre: UvodOvaj uređaj pretvara pokrete iz domaćeg stepera (koračne mašine) u kretanje igre. Radit će za svaku igru koja primi (" w ") kao kretanje prema naprijed. Može raditi i za VR igre ako prihvate unos sa tastature. Vjerovatno je pobijedio
Koristite pokrete za kontrolu reprodukcije YouTubea s Arduinom: 5 koraka

Koristite pokrete za kontrolu reprodukcije YouTubea s Arduinom: StoryYouTube vam omogućuje samo premotavanje unaprijed 5 sekundi svaki put kada pritisnete desno dugme. Pa sam odlučio koristiti Arduino i python za izradu kontrolera koji će mi pomoći da premotam unaprijed 20 sekundi svaki put kad odmahujem rukom
DIY kućna sigurnost - kako jednostavno detektovati pokrete - Nova verzija: 6 koraka

DIY kućna sigurnost - kako jednostavno detektovati pokrete | Nova verzija: U ovom projektu pokazat ću vam kako napraviti jeftin alarm za obavještenja o kretanju kućne sigurnosti! Pogledajte staru verziju: Kako napraviti WiFi sigurnosni sistem od 10 USD kod kuće
Nao Robot Kopiranje kretanja kroz Xbox Kinect kameru: 4 koraka

Nao Robot Kopiranje kretanja kroz Xbox Kinect kameru: Kao projekat na času računarskih nauka u srednjoj školi (Porter Gaud), ja (Legare Walpole) i još jedan učenik (Martin Lautenschlager) smo krenuli u pokušaj da nao humanoidnog robota Nao imitiramo naša kretanja kroz kinetička kamera za Xbox. Mesecima bez profesionalaca