Съдържание:

Нао робот, имитиращ движения с помощта на Kinect: 7 стъпки
Нао робот, имитиращ движения с помощта на Kinect: 7 стъпки

Видео: Нао робот, имитиращ движения с помощта на Kinect: 7 стъпки

Видео: Нао робот, имитиращ движения с помощта на Kinect: 7 стъпки
Видео: Leap Motion SDK 2024, Юни
Anonim
Нао робот, имитиращ движения с помощта на Kinect
Нао робот, имитиращ движения с помощта на Kinect

В тази инструкция ще ви обясня как позволяваме на робот Nao да имитира движенията ни, използвайки сензор за кинект. Действителната цел на проекта е образователна цел: учителят има способността да записва определени набори движения (например танц) и може да използва тези записи, за да позволи на децата в класната стая да имитират робота. Преминавайки през цялата инструкция стъпка по стъпка, трябва да можете да пресъздадете напълно този проект.

Това е проект, свързан с училище (NMCT @ Howest, Kortrijk).

Стъпка 1: Основни знания

За да пресъздадете този проект, трябва да притежавате някои основни познания:

- Основни познания за питон

- Основни знания на C# (WPF)

- Основни познания по тригонометрия

- Знания за това как да настроите MQTT на малиново пи

Стъпка 2: Придобиване на необходимите материали

Необходими материали за този проект:

- Малина Пи

- Kinect Sensor v1.8 (Xbox 360)

- робот Nao или вирулен робот (хореграф)

Стъпка 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 брокера, просто изтеглете цялото изображение на Джеси. Това е чиста инсталация за вас 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, тази рамка е достъпна само за python 2.7 (НЕ 3.x), така че проверете коя версия на python сте инсталирали.

Можете да изтеглите python 2.7 тук:

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

Стъпка 7: Кодиране

Кодиране
Кодиране
Кодиране
Кодиране
Кодиране
Кодиране

Github:

Бележки:

- Кодиране с kinect: първо търсите свързания kinect. След като запазихме това в свойство, активирахме потока от цветове и скелети на kinect. Colorstream е видеото на живо, докато skeletonstream означава, че ще бъде показан скелет на лицето пред камерата. Colorstream всъщност не е необходим, за да работи този проект, просто го активирахме, защото растерното картографиране на скелетния поток към цветовия поток изглежда хлъзгаво!

- В действителност наистина скелетният поток върши работата. Активирането на скелетния поток означава, че скелетът на човека се проследява. От този скелет получавате всякаква информация, напр. костни ориентации, съвместна информация, … Ключът към нашия проект беше съвместната информация. Използвайки координатите x-y & z на всяка от фугите от проследения скелет, знаехме, че можем да накараме робота да се движи. И така, на всеки 0,8 секунди (с помощта на таймер) публикуваме координатите x, y & z на всяка от фугите в брокера mqtt.

- Тъй като проектът python има абонамент на брокера на mqtt, сега можем да получим достъп до данните в този проект. Вътре във всяко съединение на робота има два двигателя. Тези двигатели не могат просто да се управляват, като се използват директно координатите x, y & z. Така че, използвайки тригонометрия и малко здрав разум, ние преобразувахме координатите x, y & z на ставите в ъгли, разбираеми за роботи.

По принцип на всеки.8 секунди проектът WPF публикува x, y & z координати на всяка от фугите. Следователно, в проекта python тези координати се преобразуват в ъгли, които след това се изпращат до съответните двигатели на робота.

Препоръчано: