فهرست مطالب:
- مرحله 1: دانش اولیه
- مرحله 2: به دست آوردن مواد لازم
- مرحله 3: چگونه کار می کند
- مرحله 4: راه اندازی کارگزار MQTT
- مرحله 5: نصب Kinect SDK V1.8
- مرحله 6: نصب Python V2.7
- مرحله 7: کد نویسی
تصویری: شبیه سازی روبات Nao با استفاده از Kinect: 7 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:57
در این قسمت آموزشی به شما توضیح خواهم داد که چگونه به روبات Nao اجازه می دهیم حرکات ما را با استفاده از سنسور کینکت تقلید کند. هدف واقعی پروژه یک هدف آموزشی است: یک معلم توانایی ضبط مجموعه ای از حرکات (به عنوان مثال رقص) را دارد و می تواند از این ضبط ها برای اجازه دادن به بچه های کلاس درس برای تقلید از ربات استفاده کند. با گذراندن کل این مرحله آموزشی گام به گام ، باید بتوانید این پروژه را به طور کامل بازسازی کنید.
این یک پروژه مرتبط با مدرسه است (NMCT @ Howest، Kortrijk).
مرحله 1: دانش اولیه
برای بازآفرینی این پروژه باید دانش اولیه ای داشته باشید:
- دانش پایه پایتون
- دانش پایه C# (WPF)
- دانش پایه مثلثاتی
- دانش نحوه تنظیم MQTT بر روی تمشک pi
مرحله 2: به دست آوردن مواد لازم
مواد مورد نیاز این پروژه:
- تمشک پای
- Kinect Sensor v1.8 (Xbox 360)
- ربات Nao یا ربات virutal (Choregraph)
مرحله 3: چگونه کار می کند
سنسور kinect به رایانه ای که برنامه WPF را اجرا می کند متصل است. برنامه WPF با استفاده از MQTT داده ها را به برنامه پایتون (ربات) ارسال می کند. در صورت انتخاب کاربر ، فایلهای محلی ذخیره می شوند.
توضیح مفصل:
قبل از شروع به ضبط ، کاربر باید آدرس IP کارگزار MQTT را وارد کند. علاوه بر این ، ما همچنین به موضوعی نیاز داریم که می خواهیم داده ها را روی آن منتشر کنیم. پس از فشار دادن شروع ، برنامه بررسی می کند که آیا می توان با کارگزار ارتباط برقرار کرد یا خیر و بازخورد به ما می دهد. بررسی اینکه آیا موضوعی وجود دارد یا خیر امکان پذیر نیست ، بنابراین شما مسئولیت کامل این موضوع را به عهده دارید. هنگامی که هر دو ورودی خوب هستند ، برنامه شروع به ارسال داده ها (مختصات x ، y & z از هر مفصل) از اسکلتی که در کارگزار MQTT به موضوع ردیابی می شود ، می کند.
از آنجا که ربات با همان کارگزار MQTT متصل است و در یک موضوع مشترک است (این مورد باید در برنامه پایتون نیز وارد شود) برنامه پایتون اکنون داده ها را از برنامه WPF دریافت می کند. با استفاده از مثلثات و الگوریتم های خود نوشته ، مختصات را به زاویه و رادیان تبدیل می کنیم ، که از آنها برای چرخاندن موتورهای داخل ربات در زمان واقعی استفاده می کنیم.
پس از اتمام ضبط کاربر ، دکمه توقف را فشار می دهد. اکنون کاربر یک پنجره بازشو می پرسد که آیا می خواهد ضبط را ذخیره کند یا خیر. وقتی کاربر لغو می کند ، همه چیز بازنشانی می شود (داده ها از بین می روند) و می توان ضبط جدیدی را شروع کرد. اگر کاربر می خواهد ضبط را ذخیره کند ، باید عنوان را وارد کرده و "ذخیره" را فشار دهد. هنگام زدن "ذخیره" همه داده های به دست آمده در یک فایل محلی با استفاده از عنوان ورودی به عنوان نام فایل نوشته می شود. فایل همچنین به نمای لیست در سمت راست صفحه اضافه می شود. به این ترتیب ، پس از دوبار کلیک بر روی ورودی جدید در listview ، فایل خوانده شده و برای کارگزار MQTT ارسال می شود. در نتیجه ، ربات ضبط را پخش می کند.
مرحله 4: راه اندازی کارگزار 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 هر یک از اتصالات را منتشر می کند. در نتیجه ، در داخل پروژه پایتون ، این هماهنگ کننده ها به زاویه تبدیل می شوند و سپس به موتورهای مربوطه روبات ارسال می شوند.
توصیه شده:
دریافت سیگنال ECG شبیه سازی شده با استفاده از LTSpice: 7 مرحله
دریافت سیگنال ECG شبیه سازی شده با استفاده از LTSpice: توانایی پمپاژ قلب تابعی از سیگنال های الکتریکی است. پزشکان می توانند این علائم را بر روی نوار قلب برای تشخیص مشکلات مختلف قلب بخوانند. قبل از اینکه سیگنال توسط پزشک به درستی آماده شود ، باید به درستی فیلتر و تقویت شود
ECG خودکار: شبیه سازی تقویت و فیلتر با استفاده از LTspice: 5 مرحله
ECG خودکار: شبیه سازی تقویت و فیلتر با استفاده از LTspice: این تصویر دستگاه نهایی است که شما خواهید ساخت و یک بحث بسیار عمیق در مورد هر قسمت است. همچنین محاسبات مربوط به هر مرحله را توضیح می دهد. تصویر نمودار بلوک این دستگاه را نشان می دهد روش ها و مواد: هدف از این روش
شبیه سازی ماشین ضدعفونی با استفاده از TINKERCAD: 6 مرحله
شبیه سازی ماشین ضدعفونی با استفاده از TINKERCAD: در این روش غیرقابل بررسی می بینیم که چگونه یک دستگاه ضدعفونی کننده را شبیه سازی کنیم ، با دستگاه ضدعفونی کننده اتوماتیک کمتر تماس بگیرید یک دستگاه ضدعفونی کننده است زیرا ما از دست خود برای کار با دستگاه به جای حسگر مادون قرمز مجاورت استفاده نمی کنیم
حلقه باز کردن شبیه سازی Opamp با استفاده از برنامه EveryCiruit: 5 مرحله
حلقه باز Opamp شبیه سازی با استفاده از برنامه EveryCiruit: EveryCircuit یکی از "بهترین" پلت فرم شبیه سازی برای لوازم الکترونیکی است. دارای وب سایت و برنامه می باشد. این دستورالعمل برای نسخه اندروید است. اما دقیقاً برای نسخه وب نیز دنبال می شود. در مورد این دستورالعمل: Opamp یا تقویت کننده عملیاتی
کپی حرکت روبات Nao از طریق دوربین Xbox Kinect: 4 مرحله
کپی حرکت روبات Nao از طریق دوربین Xbox Kinect: به عنوان یک پروژه در کلاس علوم کامپیوتر ما در دبیرستان (پورتر گود) ، من (Legare Walpole) و یک دانش آموز دیگر (Martin Lautenschlager) تصمیم گرفتیم تا از یک روبات انسان نما Nao استفاده کنیم تا از حرکات ما تقلید کند. یک دوربین جنبشی ایکس باکس ماه هاست هیچ حرفه ای