فهرست مطالب:

شبیه سازی روبات Nao با استفاده از Kinect: 7 مرحله
شبیه سازی روبات Nao با استفاده از Kinect: 7 مرحله

تصویری: شبیه سازی روبات Nao با استفاده از Kinect: 7 مرحله

تصویری: شبیه سازی روبات Nao با استفاده از Kinect: 7 مرحله
تصویری: رافائلو آندره آ: توانایی های ورزشی خیره کننده ی کوادکوپتر ها 2024, ژوئن
Anonim
شبیه سازی روبات Nao با استفاده از Kinect
شبیه سازی روبات Nao با استفاده از Kinect

در این قسمت آموزشی به شما توضیح خواهم داد که چگونه به روبات Nao اجازه می دهیم حرکات ما را با استفاده از سنسور کینکت تقلید کند. هدف واقعی پروژه یک هدف آموزشی است: یک معلم توانایی ضبط مجموعه ای از حرکات (به عنوان مثال رقص) را دارد و می تواند از این ضبط ها برای اجازه دادن به بچه های کلاس درس برای تقلید از ربات استفاده کند. با گذراندن کل این مرحله آموزشی گام به گام ، باید بتوانید این پروژه را به طور کامل بازسازی کنید.

این یک پروژه مرتبط با مدرسه است (NMCT @ Howest، Kortrijk).

مرحله 1: دانش اولیه

برای بازآفرینی این پروژه باید دانش اولیه ای داشته باشید:

- دانش پایه پایتون

- دانش پایه C# (WPF)

- دانش پایه مثلثاتی

- دانش نحوه تنظیم MQTT بر روی تمشک pi

مرحله 2: به دست آوردن مواد لازم

مواد مورد نیاز این پروژه:

- تمشک پای

- Kinect Sensor v1.8 (Xbox 360)

- ربات Nao یا ربات virutal (Choregraph)

مرحله 3: چگونه کار می کند

Image
Image
چگونه کار می کند
چگونه کار می کند

سنسور kinect به رایانه ای که برنامه WPF را اجرا می کند متصل است. برنامه WPF با استفاده از MQTT داده ها را به برنامه پایتون (ربات) ارسال می کند. در صورت انتخاب کاربر ، فایلهای محلی ذخیره می شوند.

توضیح مفصل:

قبل از شروع به ضبط ، کاربر باید آدرس IP کارگزار MQTT را وارد کند. علاوه بر این ، ما همچنین به موضوعی نیاز داریم که می خواهیم داده ها را روی آن منتشر کنیم. پس از فشار دادن شروع ، برنامه بررسی می کند که آیا می توان با کارگزار ارتباط برقرار کرد یا خیر و بازخورد به ما می دهد. بررسی اینکه آیا موضوعی وجود دارد یا خیر امکان پذیر نیست ، بنابراین شما مسئولیت کامل این موضوع را به عهده دارید. هنگامی که هر دو ورودی خوب هستند ، برنامه شروع به ارسال داده ها (مختصات x ، y & z از هر مفصل) از اسکلتی که در کارگزار MQTT به موضوع ردیابی می شود ، می کند.

از آنجا که ربات با همان کارگزار MQTT متصل است و در یک موضوع مشترک است (این مورد باید در برنامه پایتون نیز وارد شود) برنامه پایتون اکنون داده ها را از برنامه WPF دریافت می کند. با استفاده از مثلثات و الگوریتم های خود نوشته ، مختصات را به زاویه و رادیان تبدیل می کنیم ، که از آنها برای چرخاندن موتورهای داخل ربات در زمان واقعی استفاده می کنیم.

پس از اتمام ضبط کاربر ، دکمه توقف را فشار می دهد. اکنون کاربر یک پنجره بازشو می پرسد که آیا می خواهد ضبط را ذخیره کند یا خیر. وقتی کاربر لغو می کند ، همه چیز بازنشانی می شود (داده ها از بین می روند) و می توان ضبط جدیدی را شروع کرد. اگر کاربر می خواهد ضبط را ذخیره کند ، باید عنوان را وارد کرده و "ذخیره" را فشار دهد. هنگام زدن "ذخیره" همه داده های به دست آمده در یک فایل محلی با استفاده از عنوان ورودی به عنوان نام فایل نوشته می شود. فایل همچنین به نمای لیست در سمت راست صفحه اضافه می شود. به این ترتیب ، پس از دوبار کلیک بر روی ورودی جدید در listview ، فایل خوانده شده و برای کارگزار MQTT ارسال می شود. در نتیجه ، ربات ضبط را پخش می کند.

مرحله 4: راه اندازی کارگزار MQTT

راه اندازی کارگزار MQTT
راه اندازی کارگزار MQTT

برای ارتباط بین kinect (پروژه WPF) و ربات (پروژه پایتون) از MQTT استفاده کردیم. MQTT شامل یک کارگزار (رایانه لینوکس است که نرم افزار mqtt (به عنوان مثال Mosquitto) روی آن کار می کند) و موضوعی که مشتریان می توانند در آن مشترک شوند (پیامی از موضوع دریافت می کنند) و منتشر می کنند (پیامی در این زمینه ارسال می کنند) به

برای راه اندازی کارگزار MQTT کافی است این کل تصویر جسی را بارگیری کنید. این یک نصب پاک برای شما Raspberry Pi با یک کارگزار MQTT روی آن است. موضوع "/ساندرو" است.

مرحله 5: نصب Kinect SDK V1.8

برای اینکه kinect روی رایانه شما کار کند ، باید Microsoft Kinect SDK را نصب کنید.

می توانید آن را از اینجا بارگیری کنید:

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

مرحله 6: نصب Python V2.7

این ربات با چارچوب NaoQi کار می کند ، این چارچوب فقط برای پایتون 2.7 (NOT 3.x) در دسترس است ، بنابراین بررسی کنید که چه نسخه ای از پایتون را نصب کرده اید.

می توانید python 2.7 را از اینجا بارگیری کنید:

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

مرحله 7: کد نویسی

برنامه نویسی
برنامه نویسی
برنامه نویسی
برنامه نویسی
برنامه نویسی
برنامه نویسی

Github:

یادداشت:

- کدنویسی با کینکت: ابتدا به دنبال کینکت متصل شده باشید. پس از ذخیره این در یک ویژگی ، ما رنگ و اسکلت را در کینکت فعال کردیم. Colorstream ویدئوی زنده است ، در حالی که skeletonstream به این معنی است که اسکلت شخص مقابل دوربین نمایش داده می شود. برای راه اندازی این پروژه ، Colorstream واقعاً ضروری نیست ، ما فقط آن را فعال کردیم زیرا bitmapping جریان اسکلت در جریان رنگها صاف به نظر می رسد!

- در واقع این جریان اسکلتی است که کار را انجام می دهد. فعال کردن skeletonstream به این معنی است که اسکلت فرد در حال ردیابی است. از این اسکلت انواع اطلاعات را دریافت می کنید ، به عنوان مثال. جهت گیری استخوانی ، اطلاعات مشترک ، … کلید پروژه ما اطلاعات مشترک بود. با استفاده از مختصات x-y & z هر یک از مفاصل اسکلت ردیابی شده ، می دانستیم که می توانیم ربات را حرکت دهیم. بنابراین ، هر 0.8 ثانیه (با استفاده از یک تایمر) مختصات x ، y & z هر یک از اتصالات را برای کارگزار mqtt منتشر می کنیم.

- از آنجا که پروژه پایتون دارای حق عضویت در کارگزار mqtt است ، اکنون می توانیم داده های داخل این پروژه را دریافت کنیم. در داخل هر مفصل ربات دو موتور قرار دارد. این موتورها را نمی توان فقط با استفاده از مختصات x ، y & z به طور مستقیم هدایت کرد. بنابراین ، با استفاده از مثلثات و برخی از عقل سلیم ، مختصات x ، y & z مفاصل را به زاویه های قابل فهم به روبات ها تبدیل کردیم.

بنابراین اساساً هر 0.8 ثانیه پروژه WPF مختصات x ، y & z هر یک از اتصالات را منتشر می کند. در نتیجه ، در داخل پروژه پایتون ، این هماهنگ کننده ها به زاویه تبدیل می شوند و سپس به موتورهای مربوطه روبات ارسال می شوند.

توصیه شده: