جدول المحتويات:

روبوت ناو يقلد الحركات باستخدام Kinect: 7 خطوات
روبوت ناو يقلد الحركات باستخدام Kinect: 7 خطوات

فيديو: روبوت ناو يقلد الحركات باستخدام Kinect: 7 خطوات

فيديو: روبوت ناو يقلد الحركات باستخدام Kinect: 7 خطوات
فيديو: Robot imitates human motion with help from LabVIEW 2024, شهر نوفمبر
Anonim
روبوت ناو يقلد الحركات باستخدام Kinect
روبوت ناو يقلد الحركات باستخدام Kinect

سأشرح لك في هذا الدليل كيف نسمح لروبوت Nao بتقليد حركاتنا باستخدام مستشعر kinect. الهدف الفعلي للمشروع هو غرض تعليمي: يمتلك المعلم القدرة على تسجيل مجموعات معينة من الحركات (مثل الرقص) ويمكنه استخدام هذه التسجيلات للسماح للأطفال في الفصل بتقليد الروبوت. من خلال متابعة هذه التعليمات خطوة بخطوة بالكامل ، يجب أن تكون قادرًا على إعادة إنشاء هذا المشروع بالكامل.

هذا مشروع متعلق بالمدرسة (NMCT @ Howest، Kortrijk).

الخطوة 1: المعرفة الأساسية

لإعادة إنشاء هذا المشروع ، يجب أن تمتلك بعض المعرفة الأساسية:

- المعرفة الأساسية بيثون

- المعرفة الأساسية C # (WPF)

- المعرفة الأساسية لعلم المثلثات

- معرفة كيفية إعداد MQTT على raspberry pi

الخطوة الثانية: الحصول على المواد اللازمة

المواد المطلوبة لهذا المشروع:

- فطيرة التوت

- مستشعر Kinect v1.8 (Xbox 360)

- روبوت ناو أو روبوت فيروتال (كوريغراف)

الخطوة 3: كيف يعمل

Image
Image
كيف تعمل
كيف تعمل

يتم توصيل مستشعر kinect بجهاز كمبيوتر يقوم بتشغيل تطبيق WPF. يرسل تطبيق WPF البيانات إلى تطبيق Python (الروبوت) باستخدام MQTT. يتم حفظ الملفات المحلية إذا اختار المستخدم ذلك.

شرح مفصل:

قبل أن نبدأ التسجيل ، يجب على المستخدم إدخال عنوان IP الخاص بالوسيط MQTT. إلى جانب ذلك ، نحتاج أيضًا إلى الموضوع الذي نريد نشر البيانات عنه. بعد الضغط على زر البدء ، سيتحقق التطبيق مما إذا كان من الممكن إنشاء اتصال مع الوسيط وسيقدم لنا ملاحظات. لا يمكن التحقق مما إذا كان الموضوع موجودًا ، لذا فأنت مسؤول مسؤولية كاملة عن هذا الموضوع. عندما يكون كلا المدخلين على ما يرام ، سيبدأ التطبيق في إرسال البيانات (إحداثيات x و y و z من كل مفصل) من الهيكل العظمي الذي يتم تتبعه إلى الموضوع على وسيط MQTT.

نظرًا لأن الروبوت متصل بنفس وسيط MQTT واشترك في نفس الموضوع (يجب إدخال هذا في تطبيق python أيضًا) ، سيتلقى تطبيق python الآن البيانات من تطبيق WPF. باستخدام علم المثلثات والخوارزميات المكتوبة ذاتيًا ، نقوم بتحويل الإحداثيات إلى الزوايا والراديان ، والتي نستخدمها لتدوير المحركات داخل الروبوت في الوقت الفعلي.

عندما ينتهي المستخدم من التسجيل ، يضغط على زر الإيقاف. الآن يحصل المستخدم على نافذة منبثقة تسأل عما إذا كان يريد حفظ التسجيل. عندما يضرب المستخدم "إلغاء" ، تتم إعادة تعيين كل شيء (تُفقد البيانات) ويمكن بدء تسجيل جديد. إذا رغب المستخدم في حفظ التسجيل ، فعليه إدخال عنوان والضغط على "حفظ". عند الضغط على "حفظ" ، تتم كتابة جميع البيانات المكتسبة في ملف محلي باستخدام إدخال العنوان باعتباره اسم الملف. يُضاف الملف أيضًا إلى عرض القائمة على الجانب الأيمن من الشاشة. بهذه الطريقة ، بعد النقر المزدوج على الإدخال الجديد في عرض القائمة ، تتم قراءة الملف وإرساله إلى وسيط MQTT. وبالتالي ، سوف يقوم الروبوت بتشغيل التسجيل.

الخطوة 4: إعداد وسيط MQTT

إعداد وسيط MQTT
إعداد وسيط MQTT

للتواصل بين kinect (مشروع WPF) والروبوت (مشروع Python) ، استخدمنا MQTT. يتكون MQTT من وسيط (كمبيوتر يعمل بنظام Linux يعمل عليه برنامج mqtt (مثل Mosquitto)) وموضوع يمكن للعملاء الاشتراك فيه (يتلقون رسالة من الموضوع) وينشرونه (ينشرون رسالة حول الموضوع).

لإعداد وسيط MQTT ، ما عليك سوى تنزيل صورة jessie هذه بالكامل. هذا تثبيت نظيف لك Raspberry Pi مع وسيط MQTT عليه. الموضوع هو "ساندرو".

الخطوة 5: تثبيت Kinect SDK V1.8

لكي يعمل kinect على جهاز الكمبيوتر الخاص بك ، يجب عليك تثبيت Microsoft Kinect SDK.

يمكنك تحميله من هنا:

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

الخطوة 6: تثبيت Python V2.7

يعمل الروبوت مع إطار عمل NaoQi ، وهذا الإطار متاح فقط لبايثون 2.7 (ليس 3.x) ، لذا تحقق من إصدار python الذي قمت بتثبيته.

يمكنك تنزيل python 2.7 من هنا:

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

الخطوة 7: التشفير

الترميز
الترميز
الترميز
الترميز
الترميز
الترميز

جيثب:

ملحوظات:

- الترميز باستخدام kinect: أولاً ، ابحث عن kinect المتصل. بعد حفظ هذا داخل خاصية قمنا بتمكين color- and skeletonstream على kinect. Colorstream هو الفيديو المباشر ، بينما يعني تدفق الهيكل العظمي أنه سيتم عرض هيكل عظمي للشخص الموجود أمام الكاميرا. Colorstream ليس ضروريًا حقًا لتشغيل هذا المشروع ، لقد قمنا بتمكينه فقط لأن رسم نقطي لتيار الهيكل العظمي إلى تدفق الألوان يبدو سلسًا!

- في الواقع ، فإن الهيكل العظمي هو الذي يقوم بهذه المهمة. يعني تمكين تدفق الهيكل أنه يتم تعقب الهيكل العظمي للشخص. من هذا الهيكل العظمي تتلقى جميع أنواع المعلومات على سبيل المثال. التوجهات العظمية ، المعلومات المشتركة ، … مفتاح مشروعنا هو المعلومات المشتركة. باستخدام إحداثيات x-y & z لكل مفاصل من الهيكل العظمي المتعقب ، علمنا أنه يمكننا جعل الروبوت يتحرك. لذلك ، كل 8 ثوانٍ (باستخدام جهاز توقيت) ننشر إحداثيات x و y و z لكل من المفاصل إلى وسيط mqtt.

- نظرًا لأن مشروع Python له اشتراك في وسيط mqtt ، يمكننا الآن الوصول إلى البيانات الموجودة داخل هذا المشروع. يوجد داخل كل مفصل للروبوت محركان. لا يمكن توجيه هذه المحركات باستخدام إحداثيات x و y و z مباشرة. لذلك ، باستخدام علم المثلثات وبعض الفطرة السليمة ، قمنا بتحويل إحداثيات x و y و z للمفاصل إلى زوايا مفهومة للروبوتات.

لذلك كل 8 ثوانٍ ينشر مشروع WPF إحداثيات x و y و z لكل مفاصل. وبالتالي ، داخل مشروع الثعبان ، يتم تحويل هذه المنسقات إلى زوايا ، والتي يتم إرسالها بعد ذلك إلى المحركات المقابلة للروبوت.

موصى به: