Mundarija:

Nao robotining Kinect yordamida harakatlarni taqlid qilish: 7 qadam
Nao robotining Kinect yordamida harakatlarni taqlid qilish: 7 qadam

Video: Nao robotining Kinect yordamida harakatlarni taqlid qilish: 7 qadam

Video: Nao robotining Kinect yordamida harakatlarni taqlid qilish: 7 qadam
Video: NAO Robot grasps a ball on the floor 2024, Iyun
Anonim
Nao Robot Kinect yordamida taqlid qiladigan harakatlar
Nao Robot Kinect yordamida taqlid qiladigan harakatlar

Men sizga Nao robotiga kinect sensor yordamida harakatlarimizni taqlid qilishiga qanday yo'l qo'yganimizni tushuntirib beraman. Loyihaning asl maqsadi ta'lim maqsadidir: o'qituvchi ma'lum harakatlarni yozib olish qobiliyatiga ega (masalan, raqs) va bu yozuvlardan foydalanib, sinfdagilarga robotga taqlid qilishlari mumkin. Ushbu bosqichma -bosqich ko'rsatmalarni bosib o'tib, siz ushbu loyihani to'liq qayta yaratishingiz kerak.

Bu maktab bilan bog'liq loyiha (NMCT @ Howest, Kortrijk).

1 -qadam: Asosiy bilimlar

Loyihani qayta tiklash uchun siz ba'zi asosiy bilimlarga ega bo'lishingiz kerak:

- Python haqida asosiy bilim

- C# bo'yicha asosiy bilimlar (WPF)

- Trigonometriya haqidagi asosiy bilimlar

- malina pi da MQTT ni sozlash bo'yicha bilim

2 -qadam: kerakli materiallarni olish

Ushbu loyiha uchun zarur materiallar:

- Raspberry Pi

- Kinect Sensor v1.8 (Xbox 360)

Nao robot yoki virusli robot (xoregraf)

3 -qadam: Bu qanday ishlaydi

Image
Image
U qanday ishlaydi
U qanday ishlaydi

Kinektsion sensori WPF dasturi bilan ishlaydigan kompyuterga ulangan. WPF dasturi MQTT yordamida Python dasturiga (robotga) ma'lumotlarni yuboradi. Agar foydalanuvchi xohlasa, mahalliy fayllar saqlanadi.

Batafsil tushuntirish:

Yozishni boshlashdan oldin, foydalanuvchi MQTT brokerining IP-manzilini kiritishi kerak. Bundan tashqari, bizga ma'lumotlarni nashr qilmoqchi bo'lgan mavzu ham kerak. Ishga tushirish tugmachasini bosgandan so'ng, dastur broker bilan aloqa o'rnatilishi mumkinligini tekshiradi va u bizga fikr bildiradi. Mavzu mavjudligini tekshirish mumkin emas, shuning uchun siz bu masala uchun to'liq javobgarsiz. Qachonki ikkala kirish ham yaxshi bo'lsa, dastur MQTT brokeridagi mavzu bo'yicha kuzatiladigan skeletdan ma'lumotlarni (x, y va z koordinatalari har bir bo'g'inni) yuborishni boshlaydi.

Robot bir xil MQTT brokeriga ulanganligi va shu mavzuga obuna bo'lganligi uchun (bu python ilovasiga ham kiritilishi kerak), endi python ilovasi ma'lumotlarni WPF ilovasidan oladi. Trigonometriya va o'z-o'zidan yozilgan algoritmlardan foydalanib, biz burchakli va radianli burchaklarni radianga aylantiramiz, ular yordamida robot ichidagi dvigatellarni real vaqtda aylantiramiz.

Foydalanuvchi yozishni tugatgandan so'ng, to'xtatish tugmasini bosadi. Endi foydalanuvchi yozuvni saqlashni xohlaysizmi, deb so'raladigan qalqib chiquvchi oyna oladi. Agar foydalanuvchi bekor qilsa, hamma narsa tiklanadi (ma'lumotlar yo'qoladi) va yangi yozuvni boshlash mumkin. Agar foydalanuvchi yozuvni saqlamoqchi bo'lsa, u sarlavha kiritishi va "saqlash" tugmasini bosishi kerak. "Saqlash" tugmachasini bosganda, olingan barcha ma'lumotlar fayl nomi sifatida sarlavha kiritilishi yordamida mahalliy faylga yoziladi. Fayl, shuningdek, ekranning o'ng tomonidagi ro'yxat ko'rinishiga qo'shiladi. Shunday qilib, ro'yxat ko'rinishidagi yangi yozuvni ikki marta bosgandan so'ng, fayl o'qiladi va MQTT brokeriga yuboriladi. Natijada, robot yozuvni ijro etadi.

4 -qadam: MQTT brokerini sozlash

MQTT brokerini sozlash
MQTT brokerini sozlash

Kinect (WPF loyihasi) va robot (Python loyihasi) o'rtasidagi aloqa uchun biz MQTT -dan foydalandik. MQTT brokerdan (mqtt dasturi (masalan, Mosquitto) ishlayotgan linux kompyuteri) va mijozlar obuna bo'lishi mumkin bo'lgan mavzudan iborat (ular mavzudan xabar oladilar) va e'lon qiladilar (ular mavzu bo'yicha xabar yuboradilar)..

MQTT brokerini o'rnatish uchun jessi tasvirini to'liq yuklab oling. Bu Raspberry Pi uchun MQTT brokeriga ega bo'lgan toza o'rnatish. Mavzu "/Sandro".

5 -qadam: Kinect SDK V1.8 ni o'rnatish

Kinect kompyuterda ishlashi uchun siz Microsoft Kinect SDK -ni o'rnatishingiz kerak.

Siz bu yerdan yuklab olishingiz mumkin:

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

6 -qadam: Python V2.7 ni o'rnatish

Robot NaoQi ramkasi bilan ishlaydi, bu ramka faqat python 2.7 (3. X emas) uchun mavjud, shuning uchun siz qaysi python versiyasini o'rnatganingizni tekshiring.

Python 2.7 -ni bu yerdan yuklab olishingiz mumkin:

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

7 -qadam: kodlash

Kodlash
Kodlash
Kodlash
Kodlash
Kodlash
Kodlash

Github:

Eslatmalar:

- Kinekt yordamida kodlash: avval siz ulangan kinektni qidirasiz. Buni mulk ichida saqlagandan so'ng, biz kinektdagi rang va skelet oqimini yoqdik. Colorstream - bu jonli video, skeletonstream - kamera oldidagi odamning skeleti ko'rsatilishini anglatadi. Colorstream bu loyihani ishga tushirish uchun kerak emas, biz uni faollashtirdik, chunki skelet oqimini rang oqimiga bitmaplash silliq ko'rinadi!

- Aslida, bu ishni skelet -oqim amalga oshiradi. Skeleton oqimini yoqish, odam skeleti kuzatilishini bildiradi. Bu skeletdan siz har xil ma'lumotlarni olasiz, masalan. suyak yo'nalishlari, qo'shma ma'lumotlar,… Bizning loyihamizning kaliti qo'shma ma'lumotlar edi. Kuzatilgan skeletning har bir bo'g'imining x-y & z koordinatalarini ishlatib, biz robotni harakatga keltira olishimizni bilardik. Shunday qilib, har 8 soniyada (taymer yordamida) har bir bo'g'inning x, y & z koordinatalarini mqtt brokeriga e'lon qilamiz.

- Python loyihasi mqtt brokeriga obunaga ega bo'lgani uchun, endi biz ushbu loyiha ichidagi ma'lumotlarga kirishimiz mumkin. Robotning har bir bo'g'ini ichida ikkita dvigatel bor. Bu dvigatellarni to'g'ridan -to'g'ri x, y & z koordinatalari yordamida boshqarish mumkin emas. Shunday qilib, trigonometriya va aql -idrok yordamida biz bo'g'imlarning x, y & z koordinatalarini robotlarga mos bo'lmagan burchaklarga aylantirdik.

Shunday qilib, har 8 soniyada WPF loyihasi har bir bo'g'inning x, y & z koordinatalarini e'lon qiladi. Shunday qilib, piton loyihasi doirasida bu kordiyantlar burchakka aylantiriladi va ular keyinchalik robotning mos keladigan motorlariga yuboriladi.

Tavsiya: