UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA [617796]

UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA
FACULTATEA de INGINERIE ELECTRICĂ

CONTROLUL BRA ȚULUI ROBOT IN TIMP REAL
BAZAT PE SEMNALE ELECTROMIOGRAFIC E

I. ENUNȚUL TEMEI:

Controlul brațului robot in timp real bazat pe semnale electromiografie

II. CONȚINUTUL p roiectului d e diplomă/lucrării de disertație
a) Piese scrise
b) Piese dese nate
c) Anexe

III. LOCUL DOCUMENTĂRII:
…………………………………………………

IV. CONDUCĂTOR ȘTIINȚIFIC:
………………………………………………

V. Data emiterii temei: ………………………………………………

VI. Termen de predare: ……………………………………………….

Conducăt or ști ințific , Absolvent,
(funcția didactic ă, titlul ș tiințific, P renume ș i NUME ) (Prenume și NUME)
(semnătura) (semnătura)

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 2

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 3 Declarație- angajament : Deoarece acest proiect de diplomă/lucrare de disertație nu ar fi putut fi
finalizat( ă) fără ajutorul membrilor departamentului ……………………….… ș i a
echipamentelor de la departament , mă angajez să public informațiile conținute în lucrare numai
cu acordul scris al conducătorului științific și al directorului de departament.
Data: ………… Semnătura

Declarație: Subsemnatul …………………….……………… declar că am întocmit prezentul proiect de diplomă/lucrare de disertație prin eforturi proprii, fără nici un ajutor extern, sub
îndrumarea conducătorului științific și pe baza bibliografiei indica te de acesta.
Data: ………… Semnătura

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 4

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 5

Cuprins

CAPITOLUL I ……………………………………………………………………………………………………………….. 7
INTRODUCERE …………………………………………………………………………………………………………….. 7
Motivația ………………………………………………………………………………………………………………… 7
Introducere ……………………………………………………………………………………………………………… 7
Brațe robotice ………………………………………………………………………………………………………….. 8
Roboți autonomi …………………………………………………………………………………………………….. 10
Exemple de progrese în domeniul roboților comerciali autonomi …………………………………. 12
CAPITOLUL II …………………………………………………………………………………………………………….. 15
Considerații teoretice ……………………………………………………………………………………………………… 15
2.1 Myo ………………………………………………………………………………………………………………… 15
2.2 myRIO – National Instruments …………………………………………………………………………… 17
2.3 LeArm: Hiwonder 6DOF …………………………………………………………………………………… 18
CAPITOLUL III ……………………………………………………………………………………………………………. 20
CONTROLUL BRAȚULUI ROBOT ÎN TIMP REAL BAZAT PE SEM NALE EMG ………….. 22
3.1 Controlul brațului robot ………………………………………………………………………………… 22
3.1.1 Comunicarea dintre Myo și myRIO ……………………………………………………………….. 22
3.1.2 Deplasarea brațului robot ………………………………………………………………………………… 23
3.1.3 Comanda servomotoarelor ………………………………………………………………………………. 23
BIBLIOGRAFIE …………………………………………………………………………………………………………… 26
Anexa 1 ……………………………………………………………………………………………………………………….. 28

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 6

CAPITOLUL I
INTRODUCERE
Progres ele tehnologice î n domeniul producției dispozitivel or electronice inteligente ,
disponibile tot mai mult la costuri mai mici, în prezen t permit utiliz atorilor să îmbunătățească
calitatea vieții în multe domenii de aplicare . Astfel au fost inventate numeroase dis pozitive care
permit controlul de la distanț ă a activităților, fără interacțiunea directă u mană.

În această lucrare, i ntera cțiunea d intre om – braț robotic este obținut ă prin folosirea
dispozitivului de nouă genera ție, Myo arm band . Acest lucru es te datorat prin rec epționarea
contracțiilor muscu lare, electromiografia (EMG) .

Electromiografia este studiul funcției musculare prin analiza potențialu lui electric pro dus
de către mușchi. EMG în zilele noastre a devenit un inst rument important în aplicațiile
biomedicale și cl inice. Astfel, detectarea, prelucrarea și anali za semn alului EMG a devenit un
element major de cercetare în domeniul bio medical, care implică o gam ă largă de experți de la
medic, inginer, fizician la cercetător în domeniul informaticii. Dezvoltarea electr omiografiei
(EMG) a început cu documentația lui Fr ancesco Redi în 1666. Documentul informează că unele
grupe de mușchii a le țiparulu i generează electricitate. În 1773, Walsh a reușit să demonstreze că
țesutul muscular al țiparului ar putea genera o scântei e de electricitate. În 1792 a apărut o
publicație intitulată „Viri bus Electricitatis in Motu Musculari Commentarius”, scrisă de A.
Galvani, în care autorul a arătat că energia electrică ar putea declanșa contracții musculare.
Astfel pentru a identifica semnalele gesturilor , senzori i EMG sunt poziționați pe mușchii
corpului uman. Atunci c ând mușchii sunt contractați, electro zii EMG generează un semnal
analogic de date a impulsurilor nervoase, care determina mișcare a mușchilor . Pentru

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 7 CAPITOLUL I
INTRODUCE RE
Motivația
La momentul actual n evoia de utilizare a roboților nu mai poate fi negat ă. Datorită
dezvolt ării permanente a tehnologii lor, se poate crea cu ușurință u n robot însă acesta nu este
suficient de performant , ca să poată realiza diferite activități fără intervenția uman ă. Toate
activitățile realizate de roboți sunt deseori sarcini , care sunt prea periculoase pentr u a fi realizate
de către oameni . Un exemplu este explorarea lunii și a planetei Marte . De asem enea, în domeniul
medicini i uneori este nevoie de o precizie foarte ridicată, care un om nu este capabil s ă o aibă și
aici vine la ajutor un robot de precizie , un exemplu fiind robotul chiru rgical daVinci Xi cu o
precizie ridicată și o inv azie minimă , ceea ce reduce riscul de infecție .
Dorin ța de a crea un astfel de robot, mi-a trezit interesul să aprofundez cunoști nțele în
acest domeniu . Având la dispoziție o gamă largă de produse : de propulsie , de analiz ă, de control ,
de comandă , etc. am înc ercat cu pași înceți dar sigur i să dezvolt un produs , care în viitor s ă poată
fi folosit în s cop educat iv, să fie modernizat ca comenzile de execuție să fie cu mult mai precise .
În aceast ă lucrare, i ntera cțiunea dintre om – braț robotic este obținut ă prin folosirea
dispozitivului de nouă generație Myo arm band. Acest lu cru e ste datorat prin rec epționarea
contrac țiilor muscu lare, electromiografia (EMG). De asemenea, semnalele pr imite sunt trimise
mai departe la dispozitivul NI myRIO , iar cu ajutorul programului creat în LabVIEW , controlăm
brațul robotic .

Figur a 1.1. Robo t chirurgicali daVinci Xi utilizat în Rețeaua
privată de sănă tate REGINA MARIA

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 8 Introducere
Progres ele tehnologice în domeniul producției dispoz itivelor electronice inteligente ,
disponibile tot mai mult la cost uri mai mici, în prezen t permit utilizatorilor să îmbunătățească
calitatea vieții în multe domenii de aplicare . Astfel au fost inventat e numeroase dis pozitive care
permit controlul de la dis tanță în timp real a activităților, fără interacțiunea directă u mană.

Dezvoltarea electromiografiei a început cu docume ntația lui Fr ancesco Redi în 1666.
Documentul specifică faptul că un ele gr upe de mușchi ale țiparului generează electricitate . În
1773, Walsh a reușit să dem onstreze că țesutul muscular al țiparului ar putea gener a o scânteie de
electricitate. În 1792 a apărut o publicație intitulată „Viribus Electricitatis in Motu Musculari
Com mentarius”, scrisă de A. Galvani, în care autorul a arătat că energia electrică ar putea
declanșa contracții musculare[ 2].
Electromiog rafia este studiul fun cției musculare prin analiza pote nțialului electric pro dus
de către mușchi. EMG în zilele noastre a devenit un inst rume nt important în aplicațiile
biomedicale și clinice. Astfel, dete ctarea, prelucrarea și analiza semnalului EMG a dev enit un
element major de cercetare în domeniul biomedic al, care implică o gam ă largă de experți de la
medic, inginer, fizician la cercetă tor în domeniul informaticii.
Dispozitivul Myo armban d, este dotat cu 8 electrozi electro grafici pentru a identifica
semnal ele gesturilor . Când se poziționează d ispozitivul pe mușchii antebrațului , în momentul
când sunt contracta ți, electroz ii EMG generează u n semnal analog ic de date a impulsurilor
nervoase , care determin ă mișcare a mușchilor .
Brațe robotic e
În ultimii 20 de ani domeniul de utilizare a brațelor robo tice sunt în dezvoltare continuă,
dar cel mai folos it fiind în industrie. Un robot industria l este o mașină automată, staționară sau
mobilă, constând dintr -un dispozitiv de acționare sub forma unui braț cu mai m ulte grade de
mobilitate și un dispozitiv de control programat r eprogramabil , care să îndeplinească funcții de
control în procesul de producție [6] . Utilizarea roboților industriali, împreună cu alte mijloace d e
automatizare a producției (linii automate ), este rentab il din punct de vedere economic și a
managementul timpului. Începând cu anul 1998, la nivel mondia l aprovizionarea de roboți
industriali se estimează la circa 69 000 unități iar în anul 2018, la circa 422 271 de unităț i.
Potrivit s tudiului Feder ației Internaționale de Robotică (IFR) , la sfârșitul anului 2017 exista u
aproximativ 2 439 543 roboți industriali operaționali. Se estimează că acest num ăr să ajungă la

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 9
3 788 000 până la sfârșitul anului 2021. Cel mai mare client al roboților industriali este industria
auto cu cota de piață cu 30%, apoi industria electrică / electronică cu 25%, industria metalelor și
a mașinilor cu 10%, industria cauciucului și a plasticului cu 5%, industria alimentară cu 5%. În
industria textilelor, a îmbrăcămintei și a pielii, 1.580 de unități sunt funcționale [7].
În funcție de cerințel e existente, este selectată opț iunea optimă, care specifică tipul de
roboți necesari sarcinii date, numărul acestora și, de asemenea, abordarea problemelor
infrastructurii energetice (alimentare, alimentare lichid de răcire – în cazul utilizării răcirii cu
lichid a el ementelor de scule) și integrarea în procesul de producție (furnizarea cu semifabricate /
semifabricate și returnarea produsului finit la o linie automată pentru transferul următoarei
operații tehnologice). Roboții industr iali în procesul de producție sunt capabili să
efectu eze operațiuni tehnologice de bază și aux iliare . Principalele operații tehnologice includ
operațiunile de modelare directă, modificarea dimensiunilor liniare ale piesei de prelucrat , etc.
Operațiunile tehnologice auxiliare includ operațiunile de transport, inclusiv operațiunil e de
încărcare și d escărcare a echipamentelor tehnologice. Printre cele mai răspândite acțiuni
efectuate de roboții industriali se număr ă următoarele [ 6] :
• sudare cu arc și la fața locului ;
• forjare și ștanțare ;
• acoperire prin pulverizare ;
• monta j piese mecanice, electrice și electronice;
• contr olul calității pro duselor ;
Figur a 1.2. Robot industrial FANUC
R-2000iB într -o fabrică de automobile .
Figur a 1.3. Paint robot FANUC
P-50iA .

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 10

Figur a 1.4. Drawing robo t KUKA
Figur a 1.5. Metal cuttin g robo t AUROB
Figur a 1.6. Industrial robot for wood processin g KUKA

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 11 Roboți autonom i
Un pas important în evoluți a roboticii a fost crear ea roboților autonomi. Roboții autonomi
sunt roboții care execută sau î ndeplinesc diverse sarcini cu un grad sporit de autonomie. Aceștia
sunt extrem de necesari î n cele mai diverse domenii precum explorarea spațiului , gestion area
gospodă riilor, tratarea ap elor uzate, livrarea de bunuri și servicii. Procesul de dezvoltare a
roboților aut onomi a avut un drum lung, care a început cu mecanisme simple, care efectuau o
singur ă acțiune conform unui model bine prestabili t. Roboții modern i nu sunt doar mult mai
complicați , ci și necesită din ce î n ce mai puțin control în fiecare etapă, iar în viitorul apropiat
aceștia vor putea e xecuta majoritatea sarcinilor fără intervenția umană. Electronica menține pasul
cu procesul de evoluți e și acoperă necesitățile, care apar din ce în ce mai multe pentru o operare
mai rapidă și mai precisă , dec ât ar fi făcut -o un operator. De exemplu, poziționarea unei drone în
spațiu este estimată la zeci și sute de ori pe secundă. Stabiliz area acesteia poate fi efectuată atâ t
de rapid, încât activitatea sa este vizibilă numai la obținerea unui rezultat final. Una din
problemele principale ale ro boticii este crearea tuturor condiț iilor pen tru un robot, ca a cesta să -și
poată îndeplini toate sar cinile care îi sunt a tribuite în orice mediu : pe sol, sub apă, în aer,
subteran sau în spațiu [9].
În prezent se presupune că în componența roboților intelectuali trebuie să intre următoarele
sisteme:
• Mecanisme de execuție – manipulatoare, șasiu și alte dispozitive cu ajutorul cărora
robotul poate acționa asupra obiect elor de mediu. După structura lor acestea sunt
dispozitive tehnice complexe, care au în componența lor serv oacționare, piese
mecatronic ii, senzori și sisteme de control. Ca și în cazul organismelor vii, acestea sunt
mâinile și picioarele robotului.
• Senzori – sisteme de viziune tehnică, auz, palpare, senzori de di stanta, localizatori și alte
dispozitive care permit primirea informațiilor din lumea exterioară.
• Sistemul de control – este creierul robotului, care trebuie să primească informația de la
senzori și să controleze totul cu ajutorul mecanismelor de execuție. În componența
sistemului de control al robotului intelectual trebuie să intre următoarele componente:
○ Modelul mo ndial – reflectă starea mediului înconjurător robotului prin
intermediul unor termen i convenabili pentru depozitare și prelucrare.
○ Sistemul de recunoaștere – sistemele de recunoaștere a imaginilor, recunoașterea
vorbirii etc. Sarcina sistemului de recunoaștere este identificarea lucrurilor care -l
înconjoară pe robot și amplasarea lor în spațiu .
○ Sistemul de planificarea a acțiunilor – realizează o transforma re virtuală a
modelului mondial cu scopul de -a obține o oarecare acțiune . La această etapă, de
obicei, se verifică cât de realizabil este obiectivul pus. Rezultatul lucrului
sistemului de planificare a acțiunilor este elaborarea planurilor.
○ Sistemul de execuție – încearcă să efectueze acțiunile planificate, dând comanda
mecanismelor de execuție și controlând, totodată, procesul de execuție.

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 12 ○ Sistemul de gestionare a obiectivelor – stabilește semnificația și ordinea realizării
obiectivelor puse. Un atribut important al sistemului de gestionare este capacitatea
de învățare și adaptare, precum și capacitatea de a -și adapta comportamentul la
schimbarea condițiilor de mediu în scopul atingerii obiectivelor. [8]

• Sistemul de navigație – îndeplinește funcția de orientare a robotului într- o lume
tridimensională, precum și funcția de trasa rute rațion ale pentru deplasarea optimă a
robotului.
Exemple de progrese în domeniul roboților comerciali autonomi
Autoservi re
Prima cerință în subiectul autonomiei depline a robotului este capacitatea lui de a avea grija de
sine. În prezent, mulți roboți care se ali mentează de la baterii sunt capabili să găsească sursa de
alimentare și să se conecteze la acestea de sine stătător. Procesul de autoservire se bazează pe
principiul „proprioceptiv” sau evaluarea pr opriului statut intern. D e exemplu, î n cazul unui
dispozit iv de încărcare a bateriei, un robot poate spune, în mod proprioceptiv (după ce și -a
evaluat star ea), că are o baterie scăzută, prin urmare, robotul va începe să încerce să- și caute
încărcătorul. Alt senzor proprioceptiv comun este controlul încălzirii. Capacitățile proprioceptive
adecvate sunt necesare pentru ca roboții să lucreze independent într -un mod eficient sau în
condiții extrem de dure.
Senzori proprioceptiv i comuni:
• Senzorul termal ;
• Senzorul optic ;
• Senzorul ultrasonic ;
Scanarea mediului înconju rător
Exteroceptia este o evaluare a parametrilor de mediu. Roboții autonomi trebuie să aibă o
varietate de senzori de mediu pentru a -și îndeplini sar cinile și pentru a evita problemele.
Senzori exteroceptivi comuni:
• Senzorii spectrului electromagnetic;
• Senzori de sunet;
• Senzori tactili;
• Senzori chimici (miros);
• Senzori de temperatură;
• Senzori pe ntru evaluarea distanței față de obiect;
• Senzori de estima re a poziției (în raport cu obiectele) ;

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 13 Realizarea sarcinilor
Următorul pas în dezvoltarea comportamentului autonom este capacitatea de a îndeplini
unele sarcini fizice. Apariția noilor aspiratoare de tip robot, cum ar fi iRobot și Electrolux 2002 a
dat ma ri speranțe în dezvoltarea acestui domeniu de robotică. Deși încă există careva problem e
cu nivelul de inteligen ță a acestor sisteme robotizate, ele deja pot lucra și pe suprafețe mari și în
spatii înghesuite, manevrând eficient în in terior, deoarece folos esc senzori de contact și de
proximitate .
Probleme și provocări în procesul dezvoltarea industriei a robotului autonom
Există o mulțime de probleme în dezvoltarea roboților autonomi. P rincipala din tre
acestea fiind cr earea inteligenței artificiale. Mai există multe alte probleme mai mici, dar tot
întra-atât de semnificative.
Problema creării intelectului artificial
Pentru crearea unui program de acțiuni unui robot autonom, e nevoie de fiecare data s ă i se scrie
noi algoritmi: mașina nu are liber arbitru ch iar și în cadrul îndeplinirii sarcinilor: ea execută doar
codul programului, selectează opțiuni le pentru executarea cea mai eficient ă a sarcinii. Atunci
când sarcina este finalizată, robotul pierde motivul funcționării. Robotului nu i se pot da
instrucțiu ni abstracte , pentru că nu există o interpretare a conceptului de „instrucțiune abstractă”
sub forma unei „instrucțiuni specifice”. Singura c alea de ieșire din această situație este crearea
unui s istem care să creeze singur algoritmii de acțiune, comport ament ul sau judecată. Acestea
trebuie realizat pentru fiecare caz în parte , iar acest sistem ar trebui să acumuleze
informații /experiență și să analizeze, să facă concluzii și generalizări reieșind din astea toate. Un
sistem de așa gen, c are face generalizări – face construcții abstracte, și nu calcule aritmetice, si,
prin urmare, trebuie privit ca o formă de inteligenta. Natura lui artificială stă la baza
caracterizării lui ca “ inteligență artificia lă”. Autonomia robotului în mare măsură d epinde de
crearea inteligenței artificiale. Evoluțiile științifice în domeniul inteligenței artificiale se află într –
un impas. Nu există o opinie generală ce- ar însemna inteligenta artificială. Dar în schimb, fiecare
conferință nouă dă naștere la noi “ concepții ”, care au aceleași defecte. Foarte rar apar idei noi, cu
ar fi, idea rețelelor neuronale. În ziua de azi e nevoie de improvizație , gândire abstractă, lucru de
care mașinile nu sunt încă capabile, și din păcate încă nu există ieșire din această situație , nici în
plan filosofic, nici în plan matematic [8].
Problema alimentării
Una din problemele princ ipale în procesul creării roboților complet autonomi este problema
furnizării lor cu energie. Una din posibilele soluții ar fi echiparea acestora cu baterii solare, dar o
asemenea soluție nu este mereu accesibil ă. O metodă promițătoare ar fi “ învățarea” ro botului sa-

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 14 și dobâ ndească de sine stătător energia. Dar cu toate astea, intervine problema dobândirii unei
biometrii calitativ e pentru alimentare acestuia. În anul 2004, profesorul Chris Melhuish de la
Universit atea din vestul Angliei împreună cu echipa sa au creat robotul “EcoBot II”, care genera
energie pentru “ viața ” sa alimentându -se cu mușt e și cu bucățele de mere putrezite. Varianta lui
mai modernizată și avansată este “EcoBot III”. În anul 2010 acest robot a fost învățat să scape de
deșeurile apărute în urma activităț ilor bacteriilor în așa fel, încât beceriile , care asigură
funcționarea pilei de combustie microbiene , sa nu moara din cauza propriilor „impurități ”. Astăzi
deja se montează un nou model al rob otului “EcoBot IV”, ale cărui pile de combustie, desp re
care dezvoltatorii si proiectanții lui cred ca ar putea să funcționeze 20-30 de ani, pentru c ă în pila
de combustie microbiana nu exista particule în mișcare . Funcționează doar bateriile, ceea ce
înseamnă ca nu exista practic nimic ce s -ar putea deterior a[9] [11].
Problema navigării
Până în prezent, problema cea mai principală a tuturor dispozitivelor mobile existente, care se
deplasează de sine stătător, fără intervenția omului, rămâne a fi nav igare a.
În legătură cu toate încercările de a crea o modalitate auton omă de deplasare apar o serie de
problem , denumite colectiv «probleme de navigație». Navigația este știința despre controlul
deplasării robotului mobil sau a unui alt obiect în spațiu . Pentru o navigare reușită în spațiu ,
sistemul de bord al robotului treb uie să poată :
• să creeze un traseu/o traiectorie ;
• să gestioneze parametrii de mișcare , și anume să seteze unghiul de rotație a roților /
volanului și viteza de rotație a acestora;
• să interp reteze într-un mod corect toate informațiile despre lumea înconjurăto are, care au
fost primite de la senzori ;
• mereu sa urmărească și să tina cont de propriile coordonate ;
Sarcinile de navigație includ în sine două sub activi tăți, care pot fi împărțite în timp:
• localizarea în spațiu ;
• planificarea traseului.
Localizarea con stă în evaluarea poziției curente a robotului față de anumite puncte de referință
cunoscute a mediu înconjurător , exprimate în coordonate absolute.
Planificarea constă în căutarea, dacă acest lucru e posibil, a traseului celui mai scurt și în
deplasarea s pre destinație . [9] [10]
Oamenii vor aborda în mod constant problema inteligenței artificiale, confruntându -se
constant cu noi proble me. Ia r acest lucru pare, să nu fie rezolvat î n următoarele decenii .

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 15 CAPITOLUL II
Considera ții teoret ice
Componentele care au stat la baza func ționării acestui pro iect sunt :
• Myo armband;
• myRIO – National Instrument s ;
• Braț robotic cu 6 grade de li bertate – LeArm: Hiwonder 6DOF ;
2.1 Myo
Myo armband este produs de către compania
Thalmic Labs Canadian , și după cum s- a dis cutat ,
permite să control ați disp ozitivele electronice cu
simple gesturi de m ână și braț. Prevăzut cu opt
elect rozi elect rografic i, o unitate de măsură inerția lă
cu 9 axe și un modul de transmisie (Bluetoo th), Myo
măsoară activitatea musculară pentru a det ecta
gesturile f ăcute cu m ana.
Este capabil să recunoască 5 gesturi (Figu ră. 2.4),
cu posibilitatea de a completa această li stă. Folosind
senzorii de poziție unghiular ă ( I M U ) c u 9 a xe (giroscop cu 3 axe, accelerometru cu 3 axe ș i
magnetometru cu 3 axe), află cu ex actitate mișcarea, orientarea și rotația antebrațului , iar toate
informațiile su nt transmise p rintr-o cone xiune Bluetoot h Smart unui d ispozitiv compatibil .

Mai jos sunt prezentate două exemple de grafi ce EMG. În figura 2.2 este r eprezentat
semnalul EMG recepționat din con tracțiile mu sculare, în momentul când strân gi degetele în
pumn iar fi gura 2.3 este reprezenta t semna lul EMG recepționat din contracțiile mus culare, în
momentul c ând desfaci degetel e.
Figur a 2.2. Myo armband

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 16

În următoarea figură este reprezen tat cele 5 gesturi cunoscut e de căt re dispozitivul Myo,
cu posibilitatea de a fi completată. Datorită program ului Myo Connect , se poate seta unui gest o
anumită comand ă, de exemplu pumn să fie setat ca un clic al unui mouse sau în mo mentul c ând
desfaci degetele să începi o prezenta re cu pointe r.

Pentru a detecta mișcarea, ori entarea și rotația la antebraț, Myo folosește InvenSens e
MPU -9150. E ste prim ul dispozi tiv pentru urmărirea mișcării pe 9 axe din lu me. A f ost conceput
pentru cerin țele de putere redusă, co sturi reduse și performanțe ale echi pamentelor electronice de
consum , cum ar fi smartphone -uri, tablete și senzori de purtat . Dato rită tehnologi ei
MotionFus ion și calibrarea în timp real al firmware, oferă costuri reduse și g arantează că
algorit mii de interacțiune a senzo rilor și procedur ilor de calibrare oferă performanțe optime
pentru consuma tori [3].
Figur a 2.2. Semnalul EMG re cepționat
când strângi degetele î n pumn. Figur a 2.3. Semn alul EMG recepționat c ând
desfaci de getele.
Figură 2.4. Gestu rile cunoscute de Myo armband.

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 17
2.2 myR IO – National Instruments
NI myR IO este un dispozitiv portabil reconfigurabil I/O, care se poate utiliza pentru a
concepe s isteme de control în timp real în diferite d omenii de utilizare(robotică, mecatronică,
etc.). Comunicarea my RIO cu un alt dispozitiv se realizează prin intrăril e si ieșirile analogice și
digitale. De asemenea, myR IO are un modul de transmitere WI -FI, care permi te comu nicare la
distanță , dar poate f i conectat și la un dispozitiv compati bil cu un port USB.
Este echipa t cu procesorul Xilinx Z -7010 cu viteza de op erare de 667 MH z și are
memorie DDR3 512MB, 533MHz, 16bit s, care îl face capabil să opereze rapid numer oase
operațiuni complexe. Are în c omponenț ă ș i un
accelerometru pe 3 axe, care determină mișcările realizate,
fiind folosit cu ușurință ca un modul de con trol a un ei
mașini. În figura 2.6 sunt reprezentați porturile d e
conectorii MXP A si B, care au seturi de semn ale identice
fiind specificați fi ecare conec tor de la 1 pană la 34. În
figura 2.7 sunt specificate portu rile de conectare MSP cu
fiecare det aliu a ferent fiecărui pin.
NI myRIO are intrare analogică (AI ), ieșire
analogică (AO), intrare digitală și ieșire digitală (DIO),
intrare și ieșire audio .

Figur a 2.5. NI myRIO

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 18
Figur a 2.7. NI m yRIO portu ri de conecto rii MSP
Figur a 2.6. NI myRIO portu l de conectorii MXP

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 19 2.3 LeAr m: Hiwonder 6DOF
Brațul robotic are o construcț ie metalică în felul următor:
• Placă infer ioară din met al;
• Suport metali c;
• Suporți din alia j dur de alumi niu;
Designul structural 6DOF face ca brațul robotic să se deplaseze flexibil, astfel încât să poa tă
apuca obiecte le din orice direcție. Mecanismu l de prindere este unul simplu, se deschi de și se
închide, as tfel este nevoi e de un singur servomot or.
Brațulu i este echipat cu servo motoare de înalt ă precizie de tip :
• LDX-218:
a. Cuplu mare de acționare – 17 kg( 7.4V );
b. Viteza d e operare – 0,16se c/60ș;
c. Rulment cu bil ă dublă;
• LFD -06:
a. Rezistent la temperat uri ridicate;
b. Împie dică rotorul bloc at;
Figura 2.8. LeAr m: Hiwonder 6DOF

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 20 Pentru a l putea d eplasa spre un pun ct dorit, am folosit rove r vehi cle de la producătorul
Tetrix Prime , care e ste echipat cu 2 m otoare IG22 – 12V cu encoder. Controlul motoarelor este
realiza t prin ,,Motor Ada pter for NI myR IO,, de la produc ătorul Digilent.
Fiind ech ipat cu 2 acumulatoare, unul de 12V iar altul de 6V , masa totală a ansamblului este de
circa 3.2kg, ce m -ai mare parte o are robotul , de 1 .91 K g.
Figur a 2.9. Brațul robotic

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 21 2.4 Roboți industriali
Robotul combină tehnologia mecanică cu cea electronică fiind o componentă evoluată de
automatizare care înglobează electronica de tip cibernetic cu sistemele avansate de acționare
pentru a realiza un echipament independent de mare flexibilitate. [12]
Dezvoltarea roboți lor industriali a fost determinat de către George C. Deval care a creat
în anul 1954 un dispozitiv de transfer automat, dezvoltat în anul 1958 de firma americană
Consolidated Control Inc. În anul 1959 Joseph Engelberger achiziționează invenția lui Deval și
realizează în 1960 primul robot industrial Unimate în cadrul firmei Unimation Inc. Izbucnirea
roboților industriali a avut loc în anul 1963 când a fost pus în funcțiune robot industrial la uzinele
Trenton (S.U.A.), care aparținea companiei General Motor s.
Primul succes industrial a avut loc în anul 1968 când în fabrica din Lordstown s-a montat
prima linie de sudare a caroseriilor de automobile , având în echipare 38 de roboți Unimate. Prin
urmare s- a demo nstrat că robotul era cel mai bun automat de sudură în puncte .

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 22 CAPITOLUL III
CONTRO LUL BR AȚULUI ROBOT ÎN T IMP RE AL BAZA T PE
SEMNALE EMG
3.1 Controlu l brațului robot
Ideea porne ște de la asamblarea unui braț robot ic și crearea unui sof t pentru ca să execute
comenzi predefin ite. Pe m ăsura avansării în execuția proiectului, am dorit ca acest braț s ă ,,știe,,
mai multe , să fie capabil nu doar să execute c omenzile impuse , dar și s ă existe posibilitatea de a -l
controla în timp real. Pentru a pune în aplicare ideea a fost nevoie d e un dispozitiv înzestrat cu
senzori de poziție, accelerație ca să fie capabil să cunoască mișcările brațulu i. Acest dispozitiv a
fost Myo armband. Următoar e dificultate întâlnită era c um să se realizeze transferul de date de
pe Myo cu programul creat in aplicația LabVIEW . Echipa Thalmic Labs o ferea la dispo ziție un
program care îți oferea șansa să vizual izezi semnal ele achiziționa te în timp real, dar pentru a
folosi aceste semnale a fost nevoie de creat in C++ un program , care să configurezi un port de
legătură cu programul LabVIEW . Programul scris este prezentat în Anexa 1.
3.1.1 Com unicarea dintr e Myo și myRI O
Comunicare es te realizată prin protocolul de com unicare UDP (eng. User Datagram
Protocol ). Proto colul UDP este un mijloc de transmitere a unor pachete de date făr ă importanță
critică , de dimensiuni reduse (cca. 65kb), către unul sau mai mulț i destinatari configurând un
port. Portul este locația unde se transmi te sau se colectează datele[4].
În figura 3.1 sunt reprezentate princi palele elemente ale funcției UDP utiliza te la
dezvoltarea programului .
• UDP Open – Opens a UDP socket on the port or service name .
• UDP Read – Reads a datagram from a UDP socket, returning the results in data
out.
• UDP Close – Closes a UDP socket [5].
Figur a 3.1. Funcț iile UDP

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 23 În figura 3.2 este arătat diagrama bloc pentru colectarea datelor oferite de
dispozitivul Myo. Preluarea datelor este posibilă atunci când se rulează simultan 2 progra me.
Primul fiind scri s in C++ ( EMG data s ample ) și rulat de c ătre Windows , care preia informațiile
de pe dispozitivul Myo cu ajutorul modulului bluetooth , și creează un port prin care să fie
transmise datele. Iar al doile a program rulat este de către softul LabVIEW , care primește datele
de la portul c onfigurat prin protocolul de comunicare UDP . Datele primite sunt atr ibuite unor
variabilele , care pot fi transmise altor dispozitive a flate în aceeași re țea. Rețeaua este formată din
3 myRIO , unul fiind gazdă . myRIO gazd ă este asemeni unui router , creează rețeau a iar celelalte
dispozitive se conectează prin modulul WIFI .
3.1.2 Deplasarea brațului robot
În figura 3.3 este prezentată diagrama bloc pentru colect area datelor oferite de către
accelero metrul de la myRIO gazdă. Semnalele recepționate, sunt atribuite unor variabile care
sunt transmise către un alt myRIO, unde sunt filtrate (Figura 3.4) și analizate , pentru a se putea
stabili comanda pentru motoarelor de direc ție și a direcționa robotul sp re punctu l dorit. Cu
ajutorul PWM, contro lăm viteza de rotație a motorului . Pentru a stabili sensul de rotație , folosim
două semna le digitale de ieșire , conectate la un buton. Acestea fiind acționat e se schimbă
direcția .
3.1.3 Comanda servomotoarelor
În figura 3.5 sunt prezentat e programele de comandă pentru fiecare servomotor al
robotului . Pen tru fiecare mo tor este alocată o variabila primită de la dispozitivul Myo (Pose ,
Roll, P itch și Yaw) . Pose reprezint ă cele 5 gesturi cunoscute reprezentate in figur a 2.4. Fiecare
gest îi este atribuit un număr , acestea fiind pumn – 1, man ă înclinată spre dreapta – 2, mană
înclinată spre stânga – 3, degete desf ăcute – 4 și atingerea a dou a degete ra pid – 0. Roll reprezintă
rotațiile bra țului, pitch direcția în sus sau în jos și yaw direcția înclinării dreapta s au stânga.

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 24
Figur a 3.2. Diagrama bloc de colectare si transmirete semnalelor EMG

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 25 Figur a 3.4. Diagrama blo c de comandă a
controlu l motoarelor de direcție
Figur a 3.3. Diagrama bl oc de colectare a
datelor de la accelerometru ( X, Y )

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 26
Figur a 3.5. Diagrama bl oc de comandă a controlul servo motoarelor robotului

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 27 BIBLIOGR AFIE
[1] ***http://www.romedic.ro/c e-este-electromiografia -0F27118
[2] Teză de doctorat : ing. Rîsteiu Marius -Nicolae, ”Contri buții privind conducerea unui
sistem de tip exosch elet”, Petroșani 201 9.
[3] *** https ://invensense.tdk.c om/prod ucts/mot ion-tracking/9 -axis/mpu -9150/
[4] ***https://zone .ni.com/reference/en -XX/help/371361R –
01/lvconcepts/using_labview_w ith_tcp_ip_and_udp/
[5] ***LabVIEW Help
[6] ***https://ru.wikipedia .org/wiki/Промышленный_робот
[7] ***https://en.wikipedia.org/wiki/Industrial_robot
[8] ***http://www.raai.org/about/persons /dobrynin/pages/kii2006- pln.ht ml
Интеллектуальные робот ы ( Roboți intelectuali )
[9] *** https://ru.wikipedia. org/wiki/Автономный_робот
[10] ***htt p://ww w.ref.by/refs/90/20628/1.ht ml Проблемы искусственного
интеллекта ( Problemele inteligenței artificiale )
[11] ***https://myrobot.ru/news/2012/02/20120220_1.php . Автономные роботы на
топливны х элем ентах нового типа ( Robi ții autonomi echipați cu celule de
combustibil de generație nouă )
[12] Corina, BURCEA & Pe trescu, Florian Ion. (2014). OPTIMIZAREA
SISTEMELOR MECATRONICE MOBILE SERIALE.

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 28 Anexa 1

#define _USE_MATH_DEFINES
#include <cmath>
#include <array>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <stdexcept>
#include <string>
#include<stdio.h>
#include<winsock2.h> #pragma comment(lib,"ws2_32.lib")
#define PORT 54321
#include <myo/myo.hpp>

class DataCollector : public myo::DeviceListener {
private:
SOCKET s;
struct sockaddr_in server, si_other;
int slen, recv_len;
WSADATA wsa;
bool connected = false;
void startUDP()
{
if (connected) {
return;
}

if ((s = socket(A F_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
{
printf("Could not create socket : % d ", WSAGetLastError());
}
printf("Socket created.\ n ");

si_other.sin_family = AF_INET;
si_other.sin_addr.S_un.S_addr = inet_addr("172.22.11.2" );
si_other.sin_port = htons(PORT);
connected = true;
}
std::string buf;
public:
int roll_w, pitch_w, yaw_w;
myo::Pose currentPose;
DataCollector() : roll_w(0), pitch_w(0), yaw_w(0), emgSamples(), currentPose()
{
slen = sizeof(si_other);
printf(" \nInitialising Winsock…");
if (WSAStartup(MAKEWORD(2, 2), &wsa) != 0)
{
printf("Failed.Error Code : % d ", WSAGetLastError());
exit(EXIT_FAILURE);
}
printf("Initialised.\ n");

startUDP();
}

Cont rolul bra țului robot in timp real bazat pe se mnale EMG

Pagina 29 ~DataCollec tor()
{
if (connected) {
closesocket(s);
}
WSACleanup();
}
void onUnpair(myo::Myo* myo, uint64_t timestamp)
{
emgSamples.fill(0);
}
void onEmgData(myo::Myo* myo, uint64_t timestamp, const int8_t* emg)
{
for (int i = 0; i < 8; i++) {
emgSamples [i] = emg[i];
}
}
void onOrientationData(myo::Myo* myo, uint64_t timestamp, const
myo::Quaternion< float>& quat)
{
using std::atan2;
using std::asin;
using std::sqrt;
using std::max;
using std::min;
float roll = atan2(2.0f * ( quat.w() * quat.x() + quat.y() * quat. z()),
1.0f – 2.0f * (quat.x() * quat.x() + quat.y() * quat.y( )));
float pitch = asin(max( -1.0f, min(1.0f, 2.0f * (quat.w() * quat.y() –
quat.z() * quat.x()))));
float yaw = atan2(2.0f * (quat.w() * quat. z() + quat.x() * quat.y()),
1.0f – 2.0f * (quat.y() * quat.y() + quat.z() * quat.z()));
roll_w = static_cast< int>((roll + (float) M_PI) / ( M_PI * 2.0f) * 18);
pitch_w = static_cast< int>((pitch + (float) M_PI / 2.0f) / M_PI * 18);
yaw_w = static_cast <int>((yaw + ( float)M_PI) / (M_PI * 2.0f) * 18);
}
void onPose(myo::Myo* myo, uint64_t timestamp, myo::Pose pose)
{
currentPose = pose;
if (pose != myo::Pose:: unknown && pose != myo::Pose::rest ) {
myo->unlock(myo::Myo:: unlockHold);
}
else {
myo->unlock(myo::Myo:: unlockHold);
}
}
void print_emg()
{
std::cout << '\r';

buf = "";
for (size_t i = 0; i < emgSamples.size(); i++) {
std::ostringstream oss;
oss << static_cast< int>(emgSamples[ i]);
std::string emgString = oss.str();

std::cout << '[' << emgString << std::string(4 – emgString.size(), ' ') <<
']';
buf += emgString + ",";
}
std::cout << std::flush;
}

Controlul brațului robot in timp real bazat pe semnale EMG

Pagina 30
void print_orientation()
{
std::ostringstream oss;
oss.clear();
oss << static_cast< int>(roll_w) << "," << static_cast< int>(pitch_w) << ","
<< static_cast< int>(yaw_w) << "," << static_cast< int>(currentPose.type()) << ",";
buf += oss.str();

std::cout << '[' << std::string(roll_w, '*') << std::string(18 – roll_w, '
') << ']'
<< '[' << std::string (pitch_w, '*') << std::string(18 – pitch_w, '
') << ']'
<< '[' << std::string(yaw_w, '*') << std::string(18 – yaw_w, ' ') <<
']'
<< buf;

std::cout << std::flush;
}

void sendUDP()
{
startUDP();

if (connected && sendto(s, buf.c_str(), buf.length(), 0, (struct
sockaddr*)&si_other, slen) == SOCKET_ERROR)
{
printf("sendto() failed with error code : % d ", WSAGetLastError());
connected = false;
}
}

std::ar ray<int8_t, 8> emgSamples;
};
int main(int argc, char** argv)
{
try {
myo::Hub hub("com.example.emg -data-sample");
std::cout << "Attempting to find a Myo…" << std::endl;
myo::Myo* myo = hub.waitForMyo(10000);
if (!myo) {
thr ow std::runtime_error( "Unable to find a Myo!") ;
}
std::co ut << "Connected to a Myo armband!" << std::endl << std::endl;
myo->setStreamEmg( myo::Myo::streamEmgEnabled);
DataCollector collector;
hub.addListener(&collector);
while (1) {
hub.run(1000/20);
collector.print_emg();
collector.p rint_orientation();
collector.sendUDP();
}
} catch (const std::exception & e) {
std::cerr << "Error: " << e.what() << std::endl;
std::cerr << "Press enter to continue.";
std::cin.ignore();
return 1;
}
}

Similar Posts