Хюманоиден робот, управляван с мисъл



Дата09.09.2016
Размер111.61 Kb.
#8640


НАЦИОНАЛНА СТУДЕНТСКА НАУЧНО-

ТЕХНИЧЕСКА КОНФЕРЕНЦИЯ 2016

ТЕХНИЧЕСКИ УНИВЕРСИТЕТ – СОФИЯ

Copyright © 2016 НСНТК

ХЮМАНОИДЕН РОБОТ, УПРАВЛЯВАН С МИСЪЛ

Я. Йорданов, ТУ-София, jasen.jordanov@abv.bg

Абстракт: В доклада ще бъде разгледана една от най-иновативните теми в момента, а именно изучаването на човешкия мозък и сигналите, които протичат в него. На база на тях ще бъде управляван хюманоиден робот, извършващ три основни действия – наклон наляво, наклон надясно, сядане, както и връщане в неутрална позиция. За реализирането на връзката от човешкия мозък до робота, в проекта се използват различни видове комуникация – серийна, блутут и WiFi.

Ключови думи: Блутут, ЕЕГ (Eлектроенцефалография), Емотив, Разбери Пи, Серво мотор, Серво контролер, Хюманоид, Python, WiFi

MIND-CONTROLLED HUMANOID ROBOT

Y. Yordanov, TU-Sofia, jasen.jordanov@abv.bg

Abstract: This report will look at one of the most popular research topics of current times - the human brain and the signals, which flow in it. Based on such brain signals, a humanoid robot will be controlled, which robot will perform three different actions - lean left, lean right, sit plus a neutral position. For the implementation of the connection between the human brain to the robot, different communication protocols will be used - Serial communication, Bluetooth and Wifi.

Keywords: Bluetooth, EEG (Electroencephalography), Emotiv Epoc, Humanoid, Python, Raspberry Pi, Servo motor, Servo controller, WiFi


  1. ЕMOTIV EPOC+


1.1 Описание
Този харуер е създаден за специализирани мозъчни изследвания, както и за апликации, свързани с контрол посредством мозъка ( BCI – brain-computer interface). Той дава достъп до голямо количесто висококачествени ЕЕГ данни, както и съответния софтуер за обработката им. Позволява засичането на лицеви изражения, емоции и мисловни команди. Преди работа е задължително сензорите на каската да бъдат навлажнени със специален лосион, което гарантира доброто улавяне на мозъчната активност.
1.2. Сигнали
Emotiv Epoc+ притежава 14 канала за данни - AF3, F7, F3, FC5, T7, P7, O1, O2, P8, T8, FC6, F4, F8, AF4. Те са стандартизирани спрямо международната система „10-20“ - за позиционниране на електроди по скалпа. Съшо така притежава 2 референтни канала, които се поставят на места, където няма електрически импулси от мозъка – в случая зад ушите. На база на тях се отчита информацията от другите 14 канала. Ето и някои характеристики:



  • Честота на отчитане – 128/256 SPS

  • Канали – 14

  • Честотна лента - 0.2 – 43Hz, с филтри на 50Hz и 60Hz


1.3. Връзка
За връзка с компютър се предлагат два варианта – единят е да се използва блутут, а другият – вграден WiFi на 2.4GHz. В комплект на каската е включен USB приемник.
1.4. Захранване
За захранване на Emotiv Epoc+ е избрана литиево-полимерна батерия с капацитет 480mAh. Тя е вградена и позволява непрестанна работа и предоставя възможност за до 12 часа непрекъсната работа чрез WiFi или до 6 часа чрез Bluetooth.


2. СОФТУЕР
2.1. Emotiv Control Panel
Контролният панел осъшествява връзката между сензорната каска и персоналният компютър (лаптоп). Той получава изпратените по блутут данни и ги обработва. В него могат да се извършват следните проверки и да се извършват следните действия:

2.1.1. Проверка за разположението на сензорите по главата
Всеки сензор си има точно определено място, на което трябва да бъде поставен (т.н. система 10-20). Чрез контролният панел се визуализира дали датчика е на мястото си и каква е силата на сигнала, който се получава от всеки един - `чрез цветове зелено, жълто и червено. Ако няма връзка с дадения сензор, то той бива оцветен в черно.
2.1.2. Отчитане на лицеви изражения
Софтуерът дава възможност да се засичат лицеви изражения – от движение на веждите, през мигане до усмихване. Също така има фини настройки на отчитане – ако софтуерът е засякъл, че потребителят е мигнал, а той реално не е – може да бъде настроен така, че да отчита по-рядко (или по-често, в зависимост от необходимостта).
2.1.3. Отчитане на емоции
На потребителят се предлага възмоцност за отчитане на следните емоции във времето:



  • Отегчение

  • Напрежение

  • Медитация

  • Ентусиазъм

  • Ентусиазъм в по-дълъг прериод от време

Емоциите се отчитат в стойностти между 0 (емоцията не фигурира или е лош сигнала) и 1 (силна емоция). Чрез тези стойности и софтуер, който ще бъде разгледан по-надолу в доклада, могат да се създадат условия, при които дадена команда да бъде изпълнена – например ако стойността на „Медитация/Спокойствие“ е над 0.5, да бъде отключена дадена ключалка.



2.1.4. Движение на предмет с мисъл
Последният раздел от софтуера отговаря за обучение на потребителя да контролира с мисълта си предмет – в случая 3D кубче. След многобройни тренировъчни сесии потребителят се обучава да управлява кубчето нагоре, надолу, да го завърта около оста му и дори да го накара да изчезне. Задължително е първоначално да бъде тренирана неутрална позиция, на базата на която се обучават останалите команди. Отново има вариант за връзка с допълнителн софтуер, който да извежда командите извън контролния панел.
2.2. Emokey
Този софтуер също се предлага от производителя. Неговата задача се състои в това да се свързва с контролния панел, описан в предната точка, и на базата на резултатите, които панелът отчита, да изпраща предварително зададени клавишни комбинации, символи, кликания на мишката или цели думи (разнообразието е голямо – в зависимост от нуждите на потребителя) към вече отворен в операционната система прозорец. Първоначално трябва да се създаде правило. В него се задава какво да бъде изпращано към зададения прозорец. Към вече създадено правило се добавя условие – правилното да се изпълнява когато усливието е изпълнено/не е изпълнено, да се изчака определено време след изпълнено условие и т.н.
2.3. Python скриптове за комуникация между персоналния компютър и хюманоида
Тези скриптове отговарят за комуникацията между персоналния компютър и хюманоида. Написани са на Python 2.7. Те са два на брой - сървър и клиент, като сървърът е на контролера на робота, а клиентът на персоналния компютър.
2.3.1. Сървър
Неговата задача е да чака връзка от клиента. Комуникацията се осъшествява чрез сокети. Когато има успешна връзка с клиент, информацията, която бива получена, се обработва и на база на нея се управлява хюманоида в една от четирите пози – наклон наляво, надясно, седнало или неутрално положение.
2.3.2. Клиент
Клиентският скрипт седи като активен прозорец в операционната система, за да може да получава команди от описания по-горе софтуер “Emokey”. Веднъж осъществил връзка със сървъра, той изпраща информацията, която получава.
3. УПРАВЛЕНИЕ
Управлението на робота е реализирано на базата на микроконтролер Raspberry Pi model B1. Чрез него се постига нужното бързодействие и необходимият контрол и комуникация между всички използвани компоненти – серво мотори, серво контролер, персонален компютър и т.н. За разлика от основния си опонент на пазара – Arduino, Raspberry Pi съдържа в себе си Linux базирана операционна система – Raspbian. Има възможност и да бъдат използвани Debian или Ubuntu, които, заедно с Raspbian, могат свободно да се свалят от сайта на производителя.
3.1. Raspberry Pi model B
Вeче заменен от моделите B+, Pi 2, Pi 3, Zero, които предлагат по-добри параметри на същата или по-ниска цена, този модел има следните характеристики:


  • Процесор - Broadcom BCM2835 SoC

  • Работна честота на процесора - 700 MHz ARM1176JZF-S core CPU

  • Видео: Broadcom VideoCore IV GPU

  • 512 MB RAM

  • 2 x USB 2.0 порта

  • Изходен видео сигнал: Composite (PAL and NTSC), HDMI or Raw LCD (DSI)

  • Изходен аудио сигнал: 3.5mm Jack or Audio over HDMI

  • Памет: SD/MMC/SDIO

  • Връзка с интернет: 10/100 Ethernet (RJ45)

  • Размери: 85.60mm x 53.98mm x 17mm


3.2. Захранване
За правилната работа на контролера са необходими 5VDC, както и 700 mA. За удобство на платката има изводи за напрежения (до 300 mA) – два броя 5V и също толкова 3,3V, както и няколко извода за земя (GND). Платката предлага възможност за работа и ако през извода за 5V и земя бъде подадено съответното напрежение.
3.3. Пинове (изовди)
Всеки от 17-те дигитални пина може да се използва както като вход, така и като изход. Пиновете работят на 3.3V напрежение, като нямат защита от пренапрежение, което ознчава, че 5V, подадени на пин, могат да изгорят както него, така и контролера. Контролерът не разполага с аналогови входове и изходи, затова за работа с аналогови сензори например трябва да се използват допълнителни надрагждащи модули. Всеки от дигиталните пинове обаче може да бъде използван да предоставя PWM (ШИМ) по софтуерен път.
3.4. Комуникация и програмиране
Raspberry Pi разполага с голям набор от варианти за комуникация с други контролери, компютри или периферия. Контролерът има възможност за:



  • UART – на пинове 14 и 15

  • I2C – на пинове 2 и 3

  • 2 SPI шини – съответно на пинове 9, 10 и 11, както и 7 и 8

  • Ethernet

  • 2 USB порта

Лесно могат да бъдат добавени различни модули – за Bluetooth и Wifi например, чрез двата USB порта на платката. За реализиране на проекта се използват UART и WiFi на контролера.


3.5. Сорс код
Поради факта, че в съдържа в себе си опреационна система, сорс код може да бъде писан на езици както от високо, така и от ниско ниво – зависи от предпочитанията, знанията и уменията на програмиста. Примерни езици за управление на периферията на Raspberry Pi (пинове, аудио вход/изход, камера), за които не е нужна инсталация, са:



  • Python

  • Java

  • C

  • C++

  • Scratch (за деца)

  • Ruby

При допълнително желание могат да бъдат използвани (след инсталация) NodeJS и други. За програмиране на хюманоида се използва Python 2.7.


4. СЕРВО КОНТРОЛЕР
Заради големият брой серво мотори (и съответно голямата консумация на ток), както и липсата на достатъчно пинове на контролера, този компонент от ситемата няма как да бъде пропуснат. Серво контролерите се предлагат в няколко основни категории:


  • За малки проекти – контрол на 6 серово мотора

  • За паяци, само крака на роботи – контрол на до 12 серво мотора

  • За големи проекти (хюманоиди в цял размер, големи роботизирани паяци) – серво контролери до 32 серво мотора

Тъй като хюманоида е цял – ръце, крака, тяло, глава, за проекта е избран серво контролер от третия тип – в частност SSC-32.




    1. Основни характеристики на SSC-32

Този серво контролер е с малки размери, но за сметка на това притежава големи възможности. Има разделителна способност от 1uS за точно позициониране и гладки движения на моторите. Притежава възможност за групово движение на необходим брой мотори, независимо от разстоянието, което трябва да измине сервото. Има възможност за контрол на преместването до желаната позиция:





  • Веднага

  • За определено време

  • С определена скорост

  • Комбинирано

Също така позициите на моторите могат да бъдат връщани към управляващия контролер/компютър с цел обратна връзка. Контролерът притежава и лесна връзка с персонален компютър чрез DB9 порта си, а за връзка с контролери се осъществява чрез UART. Някой основни характеристики на SSC-32 са:





  • Микроконтролер - Atmel ATMEGA168-20PU

  • EEPROM - 24LC256P

  • Скорост - 14.75 MHz

  • Серийна комуникация - True RS-232 или TTL, 2400, 9600, 38.4k, 115.2k, N81

  • Изходи - 32 (Servo or TTL)

  • Входове - 4 (аналогови или дигитални)

  • Необходим ток за работа на контролера - 31mA

  • PC интерфейс - DB9F

  • Серво контрол – До 32 серовта, свързани директно

  • Видове поддържани серво мотори - Futaba или Hitec

  • Обхват на сервотата - 180°

  • Минимална стъпка - 1uS, .09°

  • Размери - 3.0" x 2.3"

  • Максимален ток - максимално 15А на страна (2 страни)

  • Номинален режим - 3-5А на страна

Проблем при използването на този тип серво контролер се явява фактът, че на входа си той няма предвиден стабилизатор на напрежение. Това означава, че захранването трябва да се подбере така, че да не надхвърля 7.2VDC и да не пада под 5VDC – чрез съответните схеми преди контролера или чрез източник на напрежение с фиксиран изход в споменатия диапазон.


5. МОТОРИ И ШАСИ
5.1 Серво мотори
Серво моторите, управляващи хюманоида, са 17 на брой. Те се контролират от специализирана платка – серво контролер (SSC-32)
5.1.1. Основни характеристики на серво моторите
В хюманоида са използвани моторите MG996R. Те са с крайно въртене – от 0 до 180 градуса. Техните характеристики са както следва:


  • Работно напрежение: 4,8 – 7,2VDC

  • Максимален въртящ момент при 6V: 39.2 oz·in (0.27 N-m)

  • Скорост при 4.8V: 0.20 sec/60°

  • Максимален въртящ момент: 10 кг/см.

  • Тегло: 55г.

  • Размери: 40.7*19.7*42.9 mm 

Тези сервота спадат към стандартния клас сервота (по размери). Избрани са за системата поради съвпадение с размерите на шасито на робота. След поредица от експерименти се оказва обаче, че въртящият им момент е прекалено малък за тежестта на хюманоида, затова и движения като ходене и изправяне не са реализирани. Сервото се предлага в комплект с допълнителен хардуер – пластмасови рамена и винтове, които го правят удобно за различни приложения, включително тази система.


5.2.2. Управляващ софтуер в микроконтролера
За да бъдат управлявани всичките 17 серво мотора, управляващият микроконтролер (в случая - Raspberry Pi) подава сигнали през серийния си порт към платката за серво управление. Началната позиция (0 градуса) отговаря на числото „500“. Най-далечната позиция (180 градуса) отговаря съответно на числото „2500“. Ето и един пример. Да приемем, че пращаме към SSC-32 (серво контролера) следния ред:

#15 P1500 T500





  • # - представя номера на пина на серво контролера, който искаме да управляваме – в случая пин номер 15

  • P – представлява позицията, на която искаме да се завърти мотора

  • Т – представлява времето, за което сервото трябва да достигне зададената от нас позиция.

Така този ред код казва на серво, свързано към пин номер 15 да се завърти на позиция 1500 за 500 милисекунди.



5.2. Шаси
Шасито представлява метални скоби и крепежни елементи, които в комбинация с моторите оформят цялостния вид на хюманоида. Предвидено е за 17 серво мотора, които са разпределени както следва:


  • 1 серво мотор за глава

  • 4 серво мотора за ръце

  • 2 серво мотора за рамене

  • 2 серво мотора за бедра

  • 6 серво мотора за крака

  • 2 серво мотора за стъпала


6. ЗАХРАНВАНЕ
Захранването е сравнително неприятна, но особено важна част от всеки един проект. То трябва да предоставя ток и напрежение, гарантиращи постоянна работа на хюманоида и отговарящи на консумацията му, а тоест:



  • Контролер – 700mA, 5VDC

  • Мотори – 17 х 700mA, 4.8 – 7.2VDC

  • Общо – 12.6А в установен режим


6.1 PSU
Тъй като в този проект идеята не е хюманоидът да е мобилен, а да изпълнява определени пози, използване на батерия, която да осигури свобода на движение, не се налага. Затова за захранване на робота бива избран вариант с PSU (захранване за персонален компютър). То притежава необходимите +5VDC за правилната работа на серво моторите, както и голям изходен ток, което го прави идеален избор за проекта. В допълнение то може да захранва и контролера, стига да му се добави microUSB накрайник. Използване на PSU решава още един проблем – не се налага използването на регулатори на напрежение преди входа на серво контролера. Разбира се захрванването предлага и +12V, както и +3.3V, които могат да бъдат използвани за оживяване на сензорика в по-нататъчното

развитие на хюманоида. Някои основни характеристики на използваното захранване са:




  • Входно напрежение – 220VAC 50-60Hz

  • Изходно напрежение:

  1. +5V – 14A MAX

  2. +12V – 11A MAX

  3. +3.3V – 12A MAX

Разбира се захранването има и някои ограничения:





  • Комбинираната мощност от шините за +5V и +3,3V не трябва да надвишава 100W

  • Комбинирата мощност от всички шини на захранването не трябва да надвишава 230W


7. ФИГУРИ, ТАБЛИЦИ И ФОРМУЛИ

Фиг.1. Изглед на Еmotiv Epoc+



Фиг.2. Цялостен изглед на хюманоидния робот



Фиг.3. Изглед на 3D куба, който потребителят се обучава да контролира с мисъл



ЛИТЕРАТУРА

  1. http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx

  2. http://www.emotiv.com/product/emotiv-epoc-14-channel-mobile-eeg/

  3. https://www.raspberrypi.org/

  4. https://emotiv.zendesk.com/hc/en-us/articles/201453885-Emotiv-Xavier-Tools-XavierEmoKey









Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница