Mündəricat:

Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir: 7 addım
Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir: 7 addım

Video: Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir: 7 addım

Video: Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir: 7 addım
Video: Leap Motion SDK 2024, Sentyabr
Anonim
Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir
Nao Robot Kinect istifadə edərək hərəkətləri təqlid edir

Bu təlimatda sizə Nao robotunun kinect sensoru istifadə edərək hərəkətlərimizi necə təqlid etməsinə icazə verdiyimizi izah edəcəyəm. Layihənin əsl məqsədi təhsil məqsədidir: müəllim müəyyən hərəkət dəstlərini (məsələn, rəqs) qeyd etmək qabiliyyətinə malikdir və sinifdəki uşaqların robotu təqlid etməsi üçün bu qeydlərdən istifadə edə bilər. Təlim olunan bütün bu addımları addım -addım keçərək, bu layihəni tam şəkildə yenidən yaratmalısınız.

Bu məktəblə əlaqəli bir layihədir (NMCT @ Howest, Kortrijk).

Addım 1: Əsas biliklər

Bu layihəni yenidən yaratmaq üçün bəzi əsas biliklərə sahib olmalısınız:

- Əsas piton bilikləri

- Əsas C# bilikləri (WPF)

- Əsas trigonometriya bilikləri

- Moruq pi üzərində MQTT -nin necə qurulacağına dair məlumat

Addım 2: Lazımi materialların alınması

Bu layihə üçün tələb olunan materiallar:

- Moruq Pi

- Kinect Sensor v1.8 (Xbox 360)

- Nao robot və ya virutal robot (Choregraph)

Addım 3: Necə Çalışır

Image
Image
Bu necə işləyir
Bu necə işləyir

Bir kinect sensoru WPF tətbiqi ilə işləyən bir kompüterə qoşulur. WPF proqramı MQTT istifadə edərək məlumatları Python tətbiqinə (robot) göndərir. İstifadəçi bunu seçərsə, yerli fayllar saxlanılır.

Ətraflı izahat:

Yazmağa başlamazdan əvvəl istifadəçi MQTT brokerinin ip ünvanını daxil etməlidir. Bundan əlavə, məlumatları dərc etmək istədiyimiz mövzuya da ehtiyacımız var. Başlat düyməsini basdıqdan sonra, proqram brokerlə əlaqənin qurula biləcəyini yoxlayacaq və bizə rəy verəcəkdir. Bir mövzunun olub olmadığını yoxlamaq mümkün deyil, buna görə də bu mövzuya tam cavabdehsiniz. Hər iki giriş düzgün olduqda, tətbiq MQTT brokerində mövzuya baxılan skeletdən məlumat (hər bir birləşmədən x, y & z koordinatları) göndərməyə başlayacaq.

Robot eyni MQTT brokerinə qoşulduğu və eyni mövzuya abunə olduğu üçün (bu da python tətbiqinə daxil edilməlidir) python tətbiqi artıq WPF tətbiqindən məlumat alacaq. Triqonometriya və öz-özünə yazılmış alqoritmlərdən istifadə edərək, robotun içərisindəki mühərrikləri real vaxtda döndərmək üçün istifadə etdiyimiz kordinatları açı və radiana çeviririk.

İstifadəçi qeydini bitirdikdən sonra dayan düyməsini basır. İndi istifadəçi qeydini saxlamaq istədiyini soruşan bir pop-up alır. İstifadəçi ləğv etməyi vurduqda, hər şey sıfırlanır (məlumatlar itir) və yeni bir qeydə başlaya bilərsiniz. İstifadəçi qeydini saxlamaq istəyirsə, bir başlıq daxil etməli və 'kaydet' düyməsini basmalıdır. "Saxla" düyməsini vuranda əldə edilən bütün məlumatlar fayl adı olaraq başlıq girişindən istifadə edərək yerli bir fayla yazılır. Fayl, ekranın sağ tərəfindəki siyahı görünüşünə də əlavə olunur. Bu şəkildə, siyahıdakı yeni girişi iki dəfə tıkladıqdan sonra fayl oxunur və MQTT brokerinə göndərilir. Nəticədə, robot qeydləri oynayacaq.

Addım 4: MQTT Brokerinin qurulması

MQTT Brokerinin qurulması
MQTT Brokerinin qurulması

Kinect (WPF layihəsi) ilə robot (Python layihəsi) arasındakı əlaqə üçün MQTT -dən istifadə etdik. MQTT bir brokerdən (mqtt proqramının (məsələn, Mosquitto) işlədiyi bir linux kompüteri) və müştərilərin abunə ola biləcəyi bir mövzudan (mövzudan bir mesaj alırlar) və dərc etməkdən (mövzu ilə bağlı bir mesaj göndərməkdən) ibarətdir..

MQTT brokerini qurmaq üçün bütün bu jessie görüntüsünü yükləyin. Üzərində MQTT brokeri olan Raspberry Pi üçün təmiz bir quraşdırmadır. Mövzu "/Sandro" dur.

Addım 5: Kinect SDK V1.8 -in quraşdırılması

Kinectin kompüterinizdə işləməsi üçün Microsoft Kinect SDK yükləməlisiniz.

Buradan yükləyə bilərsiniz:

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

Addım 6: Python V2.7 quraşdırın

Robot NaoQi çərçivəsi ilə işləyir, bu çərçivə yalnız python 2.7 (NOT 3.x) üçün mövcuddur, buna görə hansı python versiyasını quraşdırdığınızı yoxlayın.

Python 2.7 -ni buradan yükləyə bilərsiniz:

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

Addım 7: Kodlaşdırma

Kodlaşdırma
Kodlaşdırma
Kodlaşdırma
Kodlaşdırma
Kodlaşdırma
Kodlaşdırma

Github:

Qeydlər:

- Kinekt ilə kodlaşdırma: əvvəlcə bağlı kineti axtarın. Bunu bir mülkün içərisində saxladıqdan sonra kinekt üzərində rəng və skeleton axını aktiv etdik. Colorstream canlı videodur, skeletonstream isə kamera qarşısındakı şəxsin skeletinin göstəriləcəyini bildirir. Colorstream bu layihəni işə salmaq üçün həqiqətən lazım deyil, yalnız skeleton axını rəng axınına bitmapping hamar göründüyü üçün onu aktivləşdirdik!

- Əslində işi görən əslində skeletonstreamdir. Skeletonstream -in aktivləşdirilməsi, şəxsin skeletinin izlənilməsi deməkdir. Bu skeletdən hər cür məlumat alırsınız, məsələn. sümük oriyentasiyaları, birgə məlumatlar,… Layihəmizin açarı ortaq məlumat idi. İzlənilən skeletdən oynaqların hər birinin x-y & z koordinatlarını istifadə edərək, robotu hərəkət etdirə biləcəyimizi bilirdik. Beləliklə, hər 8 saniyədə (bir taymerdən istifadə edərək) mqtt brokerində hər bir birləşmənin x, y & z koordinatlarını dərc edirik.

- Python layihəsinin mqtt brokerində abunəliyi olduğu üçün indi bu layihə daxilindəki məlumatlara daxil ola bilərik. Robotun hər birləşməsinin içərisində iki mühərrik var. Bu mühərrikləri birbaşa x, y & z koordinatları ilə idarə etmək olmaz. Beləliklə, trigonometriya və bəzi sağlam düşüncədən istifadə edərək oynaqların x, y & z koordinatlarını robotlara nisbətən qeyri -sabit açılara çevirdik.

Beləliklə, hər 8 saniyədə WPF layihəsi oynaqların hər birinin x, y & z koordinatlarını dərc edir. Nəticə etibarilə, python layihəsi daxilində bu coordiantes bucaqlara çevrilir və daha sonra robotun müvafiq mühərriklərinə göndərilir.

Tövsiyə: