UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA [617793]
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 lu crării de disertație
a) Cinci capitole
b) Bibliografie
c) Anexe
III. LOCUL DOCUMENTĂRII: Facultatea de I nginerie Electric ă,
Departamentul de Mașini și Acționări Electrice
IV. CONDUCĂTOR ȘTIINȚIFIC: Prof. Dr. Ing. Hedeșiu Horia
V. Data emiterii temei: 20 decembrie 2018
VI. Termen de predare: 1 0 iulie 2020
Conducăt or științific , Absolvent,
P rof. Dr. Ing. Horia HEDEȘ IU Ing. Ion LUNGU
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
finaliza t(ă) 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 indic ate 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 și Motor Adapter for NI myRIO – Dig ilent ……………… 17
2.2.1 myRIO – National Instruments ………………………………………………………………………… 17
2.2.2 Motor A dapter for NI myRIO – Digilent …………………………………………………………… 17
Figura 2.6. NI myRIO portul de conectorii MXP ……………………………………………………….. 19
2.3 LeArm: Hiwonder 6DOF …………………………………………………………………………………… 20
2.4 Roboți industriali ………………………………………………………………………………………………. 22
2.4.1 Clasificarea roboților industriali ……………………………………………………………………….. 22
2.4.2 Geometria și cinematica directă la sistemele MP -3R …………………………………………… 24
CAPITOLUL III ……………………………………………………………………………………………………………. 30
CONTROLUL BRAȚULUI ROBOT ÎN TIMP REAL BAZAT PE SEMNALE EMG ………….. 30
3.1 Controlul brațului r obot ………………………………………………………………………………… 30
3.1.1 Com unicarea dintre Myo și myRIO ……………………………………………………………….. 31
3.1.2 Deplasarea brațului robot ………………………………………………………………………………… 32
3.1.3 Comanda servomotoarelor ………………………………………………………………………………. 32
CAPITOLUL IV …………………………………………………………………………………………………………… 35
SIMULAREA CONTROLULUI BRAȚULUI ROBOT …………………………………………………….. 36
4.1 Deplasarea brațului robot ……………………………………………………………………………… 36
4.2 Comanda servomotoarelor ……………………………………………………………………………. 38
CAPI TOLUL V …………………………………………………………………………………………………………….. 42
CONCLUZII ………………………………………………………………………………………………………………… 42
BIBLIOGRAFIE …………………………………………………………………………………………………………… 43
Anexa 1 ……………………………………………………………………………………………………………………….. 44
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 electro nice 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 dire ctă umană.
Î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, electromio grafia (EMG) .
Electromiografi a este studi ul 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 deveni t 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. Doc umentul info rmează 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
publi cație intitulată „Viri bus Elec tricitatis in Motu Musculari Commentarius”, scr isă 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 ut ilizare a roboților nu mai poa te 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 ă. Activitățile
realizate de roboți sunt deseor i sarcini , care sunt prea periculoase pentr u a f i realiza te de către
oameni . Un exemplu este explorarea spațiulu i. Un alt e xemplu fiind în domeniul medicini i unde
adesea este nevoie de o precizie ridica tă, de care un om nu este capabil s ă o aibă . Aici vine la
ajutor un robot de precizie , de exemplu robotul chiru rgical daVinci Xi cu o precizie înaltă și o
invazie minimă, ceea ce reduce riscul de infecție .
Dorin ța de a crea un braț robotic pr in care să- l controlez , mi-a trezit interes ul să
aprofundez cunoști nțele în acest dom eniu. Având la dispoziție o ga mă 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
acest produs, care în viitor s ă poată fi folosit în scop educativ, 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ționare a
contr acțiilor muscu lare, elec tromiografia (EMG). De asemenea, semnalele pr imite sunt trimise
mai departe la dispozitivul NI myRIO , iar cu ajutorul programului creat în LabVIEW , să
controlăm brațul robotic .
Figur a 1.1. Robo t chirurgicali daVi nci Xi utilizat în Rețeaua priv ată de sănă tate REGINA MARIA
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 8 Introducere
Progres ele tehnologice în domeniu l producției dispoz itivelor electro nice 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 i nvent ate numeroase dis pozitive care
permit controlul de la dis tanță în timp re al 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 grupe de mușchi ale țiparului generează ele ctricitate . În
1773, Walsh a reușit să dem onstre ze 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
Commentarius”, scrisă de A. Galvani, în care autorul a arătat că energia electr ică ar putea
declanșa con tracț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, fi zician la cercetă tor în domeniul informatic ii.
Dispozitivul Myo armban d, este dotat cu 8 el ectrozi 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, electrozii EMG generează u n semnal analog ic de date a impulsurilor
nervoase , care de termin ă mișca rea 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
mobi lă, constând dint r-un dispozi tiv 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 Ro botică (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 industr ia
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 speci fică tipul de
roboți necesari sarcin ii date, num ărul acestora și, de asemen ea, abordarea problemelor
infrastructurii energetice (alimentare, alimentare lichid de răcire – în cazul utilizării răcirii cu
lichid a el ement elor de scule) și integrarea în proces ul de producție (furnizarea cu semi fabricate /
semifabricate și returnarea prod usului 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 d e bază și aux iliare . Principalele op erații tehnologice includ
operațiuni le de modela re 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 echipamentel or 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 mecani ce, electrice și electronice;
• contr olul calității pro duselor;
Figura 1.2. Robot indu strial FANUC
R-2000iB într-o fabr ică 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 cutt ing robot AUROB
Figur a 1.6. Industria l robot for wood processin g KUK A
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 m odel 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ă. Electronic a 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 or i 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 acesta 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 obie ctelor 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.
• Senzo ri – 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ă controlez e totul cu a jutorul 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 .
○ Siste mul 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
sistemulu i de planificar e 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 – stabi leș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 atingeri i 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 stat ut 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 ;
• Senzo rul 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
spati i înghesuite, m anevrâ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 d intre
acestea f iind crearea 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 pier de 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 sistem 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șin d 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ță artific ială”. Autonomi a 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, fiec are
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ăca te încă nu exis tă ieșire din această situație , nici în
plan filosofic, nici în plan matematic [8].
Problema alimentăr ii
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 otulu i “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 t oate î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 corec t 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 și Motor A dapter for NI myRIO – Digilent;
• Braț robotic cu 6 grade de li bertate – LeArm: H iwonder 6DOF ;
2.1 Myo
Myo armband este produs de către compania
Thalmic Labs Canadian , și după cum s- a dis cutat ,
permite să controlați disp ozitivele electronice cu
simple gesturi de m ână și braț. Prevăzut cu opt
elect rozi electrografic 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, respectiv determină poziția
brațului.
Este capabil să recunoască 5 gestur i(Figu ră. 2.4),
cu posibilitatea de a completa aceast ă listă. Folosind senzorii d e poziție unghiular ă (IMU) cu 9
axe (giroscop cu 3 axe, accelerometru cu 3 axe și magnetometru cu 3 axe), află cu ex actitate
mișcarea, orientar ea și rotația antebrațului, iar t oate informațiile su nt transmise p rintr-o
cone xiune Bluetoot h Smart unui dispozi tiv 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â ngi 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.
Datorită program ului Myo Connect , se poate seta unui gest o anu mită comand ă, de exemplu
pumn să fie setat ca un clic al unui mouse sau în mo mentul c ând desfaci degetele să începi o
prezentare 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, tab lete și senzori de purta t. 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 și Motor Adapter for NI myRIO – Digilent
2.2.1 myRIO – 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 ope rare 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 ompo nență și un
acceler ometru 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 d e 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.
2.2.2 Motor Adapter for NI myRIO – Digilent
Motor Adapter for NI myRIO este oferit de către producătorul Digilent și poate fi conectat la
myRIO prin conectorii MXP. Permite cu ușurință conecta rea și control ul la un motor pas cu pas,
două motoare de c urent continuu sau două servomotoare în mod independent . A fost proiectat
astfel încât să nu fie necesare circuite suplimentare pentru acționarea motoarelor. Placa utilizează
procesorul Allegro A4973 și este dotat cu un controler de motor PWM bidirecțional . [14] Figur a 2.5.1 NI myRIO
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 18 Printre caracteristicile principale se enumeră:
• Cone ctare direct ă prin conectorul MPX;
• Poate fi configurat s ă funcționeze cu 2 motoare de curent continuu, 1 motor pas cu
pas sau 2 servomotoare în acela și timp ;
• Tensiune de intra re 6V – 16V;
• Protecție la supra curent ;
• Două ieșiri 1.5A full – bridge;
• Controlul de curent intern PWM;
• Indicator LED de a limentare ;
Motoarele servo sunt conectate prin anteturi standard cu 3 pini, în timp ce motoarele DC sunt
conectate prin intermediul c onectorilor terminali cu 6 pini sau cu șurub, iar motoarele pas cu pas
sunt conectate cu borne cu șurub. Semnalele PWM de l a dispozitivul myRIO direcționate către
intrările motorulu i de curent continuu și servo motor. Intrările codificatorului motorului 0 în
quadratură sunt direcționate către intrările codificatorului myRIO și motorul 1 es te dirijat către
I/O digitale de uz ge neral. Tensiunea și curentul motorului filtrat sunt redirecționate către
intrările analogice myRIO pentru a permite monitoriza rea în timp real. [14]
Figur a 2.5.2 Mo tor Adapter for NI myRIO
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 19
Figur a 2.6. NI myRIO portul de co nectorii MXP
Figur a 2.7. NI m yRIO portur i de conecto rii MSP
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 20 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;
Desig nul 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 es te unul simplu, se deschi de și se
închide, a stfel este nevoi e de un singur servomot or.
Brațulu i este ech ipat cu servo motoare de înalt ă precizie de tip :
• LDX-218:
a. Cuplu mare de acționare – 17 kg( 7.4V );
b. Viteza d e operar e – 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
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 21 Pentru a l putea d eplasa spre un pun ct dorit, am folosit rove r vehi cle de la producătorul
Tetrix Prime , care este echipat cu 2 m otoare IG22 – 12V cu encoder. Acest motor poate atinge
vitez a de la 3.8 rot/min p ână la 1650 rot /min. Este fiabil și rezistent la sarcinile constante sau
variabile de schimbare a direcție i directă sau inversă. Cuplul generat la o turație de 5 rot /min este
de 6000g/cm, i ar la turația de 1405 de 80 g/cm .
Controlul motoarelor este realiza t prin Motor Adapter for NI myR IO de la produc ătorul
Digilent, conec tate la portul de 6 pini Motor 0 și Motor 1.
Fiind echipat cu 2 acumulatoare, unul de 12V pentru alimentarea myRIO și a motoarelo r
de curent c ontinuu și al doilea de 6V pentru alimentarea ser vomotoarel or, 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 roboti c
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 22 2.4 Roboți industriali
Robotul combină tehnologia mecanică cu cea electro nică 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] [13]
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 Contr ol Inc. În anul 1959 Joseph Engel berger achiziționează invenția lui Deval și
realizează în 1960 primul robot industrial Unimate în cadrul firmei Unimation Inc. Izbucnirea
roboților industriali a av ut loc în anul 1963 când a fost pus în funcțiune robot industrial la uzinele
Trenton (S.U.A.), care aparținea comp aniei 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 Unima te. Prin
urmare s- a demo nstrat că robotul era cel mai bun automat de sudură în puncte .
În România, în anul 1980 s -a dezvoltat primul rob ot RIP63 la Automatica București după
modelul A.S.E.A.. Prima aplicație industrială al acest ui robot a fost sudarea a unei componente
a șasiului unui a utobuz , în arc electri c în anul 1982 la Autobuzul București . În 1984 roboții au
fost introduș i și la Sem ănătoarea București . Coordonarea științifică a colectivului
„MEROTEHNICA”, de la catedra de „Teoria Mecanismelor și a Roboților ” din „Universitatea
Politehnica București ”, sub conducerea regretatului Prof. Chris tian Pelecudi, fondatorul SRR
(Societatea Ro mână de Robotică), azi ARR ( Asociația Română de Robotică). C olectivul TMR a
avut dea lungul timpului 80 colaborări cu firmele nipone și datorită Prof. B ogdan Radu, au fost
aduși și implementați în țară roboți Fanuc, fiind de ultimă genera ție în acei ani .[13]
2.4.1 Clasificar ea roboților indus triali
Roboții indus triali (R.I.) se clasifică după urmă toarele criterii:
1. După informații de intrare și modul de învățare :
o manipulator manual – care este controlat de om;
o robot secvențial – care execută o pr ocedură prestabilită fixă sau variabilă , după care
poate fi modific ată;
o robot repetitor (robot play back) – acesta memorează un mod de execuție efectuat de
către un om, după care o repetă.
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 23 o robot cu control numeric (N. C. robot) – execută operaț iile numerice setate de către un
operator despre poziții , succesiuni de operați i și condiții .
o robot inteligen t – singur își stabilește mișcările pe baza informațiilor primite de la
senzorii integraț i și prin capacitatea de recunoaștere.
2. După comandă și gradul de dezvolt are al inteligenței artific iale: roboții industriali se
clasifică în generații sau nivele:
o R.I. din generația 1, acționează pe baza unui program flexibil dar prestabilit de
programator și care nu se poate schimba în timpul execuției operațiilor .
o R.I. din generația a 2-a se caracteri zează prin faptul că programul flexibi l prestabilit de
programator poate fi modifi cat în măsură restrânsă în urma unor reacții specifice ale
mediului.
o R.I. din generația a 3-a posedă capacitatea de a-și adapta singuri cu ajutorul unor
dispozitive logice, într-o măsură restrânsă propriul progra m la condițiile concrete ale
mediului ambian t în vederea optimizării operațiilor pe care le execută.
3. După numărul gradelor de libertate ale mișcării robotului:
Numărul gradelor de libertate poate varia între 2 și 6. Cele șase grade de libertate care le
poate avea un robot sunt 3 translații de-a lungul axelor de coordonate și 3 rotații în jurul acestora.
Respectiv acești roboții se clasifică în patru opțiuni constructive în funcție de mișcările executate
(notate R- rotaț ie și T-translație ):
o robot cartezian (TTT) este robotul al cărui braț operează într-un spațiu definit de
coordonate carteziene (x,y,z) (Figura 2.10) ;
o robot cilindric (RTT) al cărui braț operează într-un spațiu definit de coordonate
cilindrice (r, α, y) (Figura 2.11) ;
o robot sferic (RRT) a cărui spațiu de lucru este sferic, definit de coordonatele sferice (α,
φ, r) (Figura 2.12);
o robot antropomorf (RRR) la care deplasarea piesei se face după exteriorul unei zone
sferice. Parametrii care determină poziția brațului fiind coordonatele ( α, φ, ψ ) (Figura
2.13) ;
Figur a 2.10. Robot
cartez ian. Figura 2.11. Robot
cilindric . Figura 2.12. Robot
sferic . Figura 2.13. Robot
antromopor f.
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 24 4. După existenta unor bucle interio are în construcția robotului:
o cu lanț cinematic deschis, roboți serial i;
o cu lanț cinematic închis, roboții paraleli. Structura roboți lor par aleli cuprinde unul sau
mai multe contururi poligonale închise, fapt care permite realizarea unor spatii de
lucru de o geometrie mai complicată și conduce la o mai mare rigiditate a sistemului
mecanic.
2.4.2 Geometria și cinematica directă la sistem ele MP- 3R
Cinematica manipulatoarelor și roboților seriali se va explica pentru mo delul cinematic
3R (Figura 2.14) [13]
Figur a 2.14 G eometria și cinematica unui MP -3R
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 25 Mai înt âi de toate se scrie matricea vector ului (A01) de schimbare a coordonatelor originii
sistemului de coordonate, prin translatarea din O0 în O1, axele rămân paralele cu ele însăși în
permanentă :
(2.1)
După se scrie matr icea T01 de rotație a sistemului x1O1y1z1 fată de sistemul x0O0y0z0:
(2 .2)
Pe prima coloană se trec coordonatele versorului lui O1x1 fată de axele vechiului sistem :
(2.3)
Pe a doua coloană se trec c oordonatele versorului axei O1y1 față de axele vechiului sistem :
(2.4)
Pe a treia coloană se trec coordona tele ver sorului axei O1z1 față de axele vechiului sistem :
(2.5)
În acest caz, versorul lui O1x1 , O1y1, O1z1 are f ață de vechiul si stem de axe x0O0y0z0
translatat în O1 fără rotație următoarele coordonate:
(2.6)
(2.7)
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 26
(2.8)
Trecerea de la sistemul x1O1y1z1 la sistemul de coordonate x2O2y2z2 se face în do uă etape .
Prima est e o transla ție a întregului sistem astfel î ncât (ax ele fiind paralele cu ele însăși )
central O1 să se depl aseze în O2;
A doua în care are loc o rotație a sistemului axele rotindu -se iar centrul O rămânâ nd în
permanență fix. Translația sistemului de la 1 la 2 se march ează prin matricea de tip vector
coloană A12.
(2.9)
Versorul lui O2x2, O2 y2 și O2z2 are față de sistemul x1O1y1z1 (translatat, dar nu și rotit)
coordonatele:
(2.10)
(2.11)
(2.12)
Deoar ece axa O 2z2 a luat locul axei O 1y1 fiind î nsă de sens opus ei , matricea p ătrată de transfer
(de rotație ) se scrie:
(2.13)
Trecer ea de la sistemul x2O2y2z2 la sistemul de coordo nate x3O3y3z3 se face tot în două etape ,
o translație și o rotație . [13]
O2 translatează în O3 (axel e păstrându- se pa ralele cu ele însăși ).
(2.14)
Apoi O3 stă pe loc și axele se rotesc.
Vers orul lui O3x3, O3y3, O3z3 are față de sistemul d e axe x 2O2y2z2 translatat în O3 (nerotit)
coordonat ele α :
(2.15)
(2.16)
(2.17)
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 27 Practic siste mul x3O3y3z3 nu s-a rotit absolut deloc față de sistemul x2O2y2z2 (de la 2 la 3 a
avut loc doar o translație). Matr icea de rotație în acest caz este matricea unita te.
(2.18)
Matricea vector care pozițio nează punctul M în sistemul de coordonate x3O3y3z3 se scrie:
(2.19)
Coordonatele punctului M în sistemul (2) x2O2y2z2 (adică față de el) se obțin printr -o
transfo rmare matriceală de forma:
(2.20)
Se efectuează întâi produsul matricelor
(2.21)
Se calculează apoi X2M.
(2.22)
Coordonatele punc tului M în (față de) sistemul (1) x1O1y1z1 se obțin astfel:
( 2.23)
(2.24)
(2.25)
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 28 Coordonatele punctului M în sistemul fix x0O0y0z0 se scriu:
(2.26)
(2.27)
(2.28)
(2.29)
X0M se pune sub forma:
(2.30)
Prin cinematica di rectă se obțin coo rdonatele carteziene x M, yM , zM ale punct ului M în funcție
de cele trei deplasă ri unghiul are independente ϕ10, ϕ20, ϕ30, obținut e cu ajutorul (2.31-2.32).
(2.31)
(2.32)
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 29 Calcul ele se fac cu deplasă rile unghiulare absolute, dar deplas ările ac tuatorilor nu coincid toate
cu cele independente. Ele se determin ă astfel ( 2.33):
(2.33)
Primele două rotații relative a le actuatorilor coincid cu rotațiile independente , dar a treia rotație
relativă a ultimului actuator se obține ca o diferență între două rotații absolute.
Vitezele și accelerațiile se obțin prin derivarea relațiilor (2.32) cu timpul. [ 13]
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 30 CAPITOLUL III
CONTRO LUL BR AȚU LUI 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
control a î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 tran sferul d e date de
pe Myo cu programul creat in aplicația LabVIE W. Echipa Thalmic Labs pune la dispo ziție un
program care îți of eră șansa să vizual izezi semnal ele achiziționa te în timp real, dar pentru a
folosi aceste semnale a fost nevoi e de creat in C++ un progra m, care să configurezi un port de
legătură cu programu l LabVIEW . Programul scris este prezentat în Anexa 1.
Figure 3.1 Schema bloc pentru controlul brațului r obot
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 31 3.1.1 Com unicarea dintr e Myo și myRIO
Comunicare es te realizată prin protocolul de com unicare UDP (eng. User Datagram
Protocol ). Proto colul UDP este u n mijloc de transmitere a unor pachete de date făr ă importanță
critică , de dimensiuni reduse (cca. 65 kb), c ătre unul sau mai mulț i destinatari configurând un
port. Portul este locația unde se t ransmi te sau se colectează datele[4].
În figura 3.2 sunt repre zentate princi palele elemente ale funcției UDP utiliza te la
dezvoltarea programului .
• UDP Open – Open s a UD P socket on the port or servi ce name .
• UDP Read – Reads a d atagram from a UDP socket, returning the results in data out .
• UDP Close – Closes a UD P socket [ 5].
În figura 3.3 este arătat diagrama bloc pentru colectarea datelor oferite de dispozi tivul
Myo. Preluarea datelor es te posibilă atunci când se rulează simultan 2 progra me:
• Primul program este scri s in C++ ( EMG data s ample) și este rulat de către
Windows . Informațiile sunt preluate cu aju torul modulului bluetooth, care face
legătura dintre PC și dispoziti vul Myo. Datele sunt transferate prin portul
predefinit , către al doilea progr am.
• Iar al doile a program rulat este LabVIEW , care primește datele de l a portul
configurat prin protocolul de comunicare UDP în programul C++ .
Datele primite su nt atribuite unor variabilele , care pot fi transmise altor dispozitive
conectate la aceeași rețea. Rețeaua este formată din 3 myRIO , unul fiind gazdă și este cone ctat
direct la calculator prin p ortul USB . myRIO gazd ă este asemeni unui router , creează rețea ua iar
cele două dispoz itive myRIO se conectează prin modulul WIFI pentru a prelua variabilele . Figur a 3.2. Funcț iile UDP
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 32 3.1.2 Deplasarea brațului robot
Datorită faptului că myRIO este înzestrat cu un accel erom etru de 3 axe, acesta va fi
folosit nu doar pe post de router , dar în același timp și un joystick pentru controlul motoarelor de
direcție . În figura 3.4 este prezen tată diagr ama bloc pentru colect area datelor oferite de către
accelero metrul (X, Y) . Semnalele recepționate, sunt atribuite unor vari abile care sunt transmise
prin modului WIFI către un alt myRI O. Programul fiind înscris în myRIO , sunt nevoie doar de
datele colectate, care acestea fiind filtrate (Figura 3.5) și analizate , se poate stabili coma nda
pentru motoarelor de direc ție și a direcționa robot ul sp re punctul dor it. Cu ajut orul PWM,
contro lăm vite za de rot ație a motorului. Pentru a stab ili sensul de rotaț ie, folosim două semna le
digital e de ieșire, conectate la un bu ton. Acest a fiind acțio nat, sensul de rotație a motoarelor își
schimbă direcți a.
3.1.3 Comanda servomotoarelor
În figura 3.6 sunt pr ezentate programele de comandă pentru fi ecare servomotor al
robotului . Pentru fiecare mo tor este alocată o variabi la 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 fi ind pumn – 1, ma nă înclinată spre dreapta – 2, mană
înclinată spre stânga – 3, degete desf ăcute – 4 și atingerea a dou a degete ra pid – 5. Roll reprezintă
rotația brațului, pitch direcția în s us sau în jos și yaw di recția spre dreapta s au stânga a bra țului.
Aceste date fiind pri mite, sunt analizate și procesate în programul creat. Ulterior sun t
alocate la blocul eng. Set Duty Cycle and Frequency, frecvența este stabilită la 50 Hz , iar duty
cycle, este valoare primită de c ătre dispozitivul Myo. Frecvența fiind frecv ența semnalului
PWM, iar duty cyc le reprezintă procentul de timp în ca re semnalul PWM rămâne ridicat peste un
ciclu PWM.
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 33
Figur a 3.3. Diagrama bloc de colectar e si transmirete semnal elor E MG
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 34 Figur a 3.5. Diagrama bloc de comandă a
controlu l moto arelor de direcție
Figur a 3.4. Diagrama bl oc de colectare a
datelor de la accelerometru ( X, Y )
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 35
Figur a 3.6. Diagrama bl oc de comandă a controlu l servo motoarelor robotu lui
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 36 CAPITOLUL IV
SIMULAREA CONTROLULUI BRAȚULUI ROBOT
4.1 Deplasarea brațului robot
În următoarele figuri sunt reprezentate semnalele recepționate de la accelerometrul myRIO
router, pentru deplasarea brațului robot. Semnalele de pe axa Y sunt destinate pentru acționarea
robotului înainte sau î napoi , respectiv semnalele de pe axa X pentru virarea spre dreapta sau
stânga. Valorile colectate sunt cuprinse în intervalul 0 – 1, unde 1 este viteza maximă .
Diagrama bloc de colectare a s emnalelo r este reprezentată în figura 3.4.
Figură 4.1 Semnale X, Y – Deplasar e înainte .
Figură 3.2 Semnale X, Y – Deplasar e înapoi.
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 37
Figură 4.3 Semnale X, Y – Virar e spre d reapta .
Figură 4.4 Semnale X, Y – Virare spre st ânga .
Datele colectate sunt filtrate și analizate con form diagrame i bloc din figura 3.5. În urma
acestei analize se determin ă starea de comandă .
În figurile ce urmeaz ă sunt prezentate valoarea semnalel or X, Y, iar în urma analiz ei se
determină starea actuală și valoarea trimisă către motorul 1 și motorul 2 .
Figură 4.5 Controlul M 1 și M2 – Stop
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 38
Figură 4.6 Controlul M 1 și M2 – Înainte Figură 4.7 Controlul M1 și M2 – Înapoi
Figură 4.6 Controlul M 1 și M2 – Dreapta Figură 4.7 Controlul M1 și M2 – Stânga
4.2 Comanda servomotoarelor
Pentru a putea vizua liza d atele preluate de la brățara Myo reprezentate în figura 4. 9.1 și
figura 4.9.2, cum s -a menționat la subcapit olul 3.1.1, este necesar deschi derea unui program
creat in C++ și rulat de c ătre Windows. În figura 4.8.1 și figura 4.8.2 se poate vizualiza cum sunt
preluate date le.
Primele opt coloane reprezint ă valorile , de pe fiecare elect rod elect rografic , în urma
contra cțiilor musculare, care simultan sunt analiz ate pentru stabil irea gestului la ace l moment.
Următoarel e trei coloane ilustrează semnalel e de pe accel erometr u, Roll , Pitch și Yaw. Ultima
coloană prezintă toate datele de pe cei 8 electrozi la un loc.
Figură 4.8.1 Preluarea semnalelor Myo
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 39
Figură 4.8.2 Preluarea semnalelor Myo
În figura 4.8 și figura 4.9 sunt reprezentate sem nalele colectate de la My o. Valo rile sunt
cuprinse în intervalul 0 – 18 pentru Roll, Pitch și Yaw. Iar pentru Pose intervalul este de la 0 –5,
care reprezi ntă gesturi cunoscute r eprezentate in figur a 2.4, acestea fi ind pumn – 1, ma nă
înclinată spre dreapta – 2, man ă înclinată spre stânga – 3, degete desf ăcute – 4 și a tingerea a dou a
degete rapid –
Figură 4.9.1 S emnale Myo
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 40
Figură 4.9.2 S emnale Myo
Conform programului realizat pentru controlul ser vomotoarelor, figura 3.6, fiecare semnal
este al ocat unui servomotor. De exemplu în figura 4.10 este reprezentat comanda pentru Gripper .
În momentul c ând Pose este 1 , cleștele de pr indere tinde să se închidă . Valoarea când acesta este
total închis este de 200. Iar c ând Pose este 4 acesta î ncepe să se deschidă.
Figură 4.10 Controlu l servomotoar elor – Gripp er.
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 41 Pitch reprezintă direcția în sus sau în jos a brațului robotic. Programul realizat in LabVIEW
împarte intervalul 0 – 18, în 3 intervale . În momentu l când est e în intervalul 0 – 7 brațul robotic
coboară , 10 – 13 se află în poziție neutr ă și 15 – 18 brațul robotic urcă. Î n figur a 4.10 este
reprezentat graficul cum acesta îndeplinește comanda. La valoarea -200, braț ul robotic este
complet aplecat , iar în momentul când intervalul este între 15 – 18, acesta urcă. Se poate observa
și momente le când este în stare neutră.
Figură 4.10 Controlul servomotoar elor – P itch.
Yaw reprezin tă direcția spre dreapta sau stânga a brațului. La valoarea – 100 acesta este
direcționat spre dreapta, respectiv 100 spre stânga. La fel ca la Pitch, inte rvalul 0 – 18, a fost
împărțit în 3 interva le. În momentul c ând brațul este înclinat spre dreapta, semnalele care sunt
recepționate pe Myo i -au valori între 15 – 18 și brațul rob otic se rotește spre dre apta.
Figură 4.10 Controlul servomotoar elor – Y aw.
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 42 CAPITOLUL V
CONCLUZII
Obiectivul propus i nițial a fost de a programa un braț robot ic în LabVIEW și să execute
comen zi simple, cum a r fi deplas area și preluarea a uni obiect din punctul X în punctul Y. După
ce am reu șit să reali zăm acest obiec tiv, adevăra ta pro vocare a încep ut prin ideea de a încercarea
să-l control ăm în timp real.
Având la îndem ână dispozitivul Myo, am căutat informații despre posibilitatea de a
prelua acele semnale și integra în programul de comandă . Echipa Thalmic Labs pune la
dispoziț ie un program care îți ofer ă șansa să vizua lizezi semnal ele achiziționa te în timp real, dar
pentru a f olosi aceste semnale a fost nevoi e de scris un program in C+ +. Fiind necesar e
cunoștințe mai aprofundate în acest limbaj de programare, am ape lat la ajuto rul a unui coleg din
cadrul companiei National Instrumen ts și îi sunt foarte recunoscăto r și îi mulțumesc pentru
sprijinul acordat , fără de care nu ar fi existat posibilitatea de a continua al doilea obiectiv propus.
Următoarea dificultate a fost transmite rea acestor date pe dispozitivul myRIO. Pro blemă
era cât se poate de simp lă, myRIO care transmitea datele, nu era în aceeași rețea cu myRIO care
primea datele. D e aceea în sche ma bloc reprezent ă în f igura 3.1, se po ate observa cum transferul
de date este r ealizat prin modulul WIFI fiind un myRIO router , care la r ândul să u comunică cu
calculatorul prin USB.
Având cunoști nțele de bază dobândite în cadrul cursului Sisteme Flexibile de Fabricatie,
am avut interesul de a le profunda prin crearea unu i sistem de control în programul Lab VIEW. A
fost mai dificil de cât mă gândeam, însă având la dispozi ție biblioteca imensă de tutori ale pe
internet și îndrumările oferite de către domnul profesor , am reușit să-mi ating obiectivul .
Într-un final am ajuns l a concluzia că nu este greu la momentul actual de a dezvolta un
asemenea prototip , având în vedere numeroasele componentel e puse la dispoziție pe piață și de a
alege un limbaj de programare prin care s ă fie controla t.
Următorul pas în vederea de zvoltării brațului robotic îi revine optimiz ării programului
print r-un control mai fin și cu m ai mare preci zie, iar p entru comodi tate exist ă posibilitatea de a -l
echipa cu o cameră video și s ă fie cont rolat din fața calculatorului .
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 43 BIBLIOGR AFIE
[1] ***htt p://www.romedic.ro/c e-este-electromiograf ia-0F27118 ;
[2] Teză de doctorat : ing. Rîsteiu Marius- Nicolae, ”Contri buții pr ivind conducerea unu i
sistem de tip exosch elet”, Petroșani 2019;
[3] *** https ://invensens e.tdk.c om/prod ucts/mot ion-tracking/9 -axis/mpu -9150/ ;
[4] ***htt ps://zone .ni.com/reference/en -XX/he lp/371361R –
01/lvconc epts/using_labview_w ith_tcp_i p_and_udp/ ;
[5] ***LabVIEW Help ;
[6] ***https://ru.wikipedia .org/wiki/Промышленный_робот
Промышленный робот ( Rob ot industrial );
[7] ***htt ps://en.wikipedia.org/w iki/Industri al_robot ;
[8] ***http://www.raai.org/about/persons /dobrynin/pages/kii2006- pln.ht ml
Интеллектуальные робот ы ( Rob oți intelectuali );
[9] *** http s://ru.wikipedia. org/wiki/Автономный_робот
Автономный робот ( Robot autonom);
[10] ***htt p://ww w.ref.by/refs/90/20628/1.ht ml Проблемы ис кусственного
интеллекта ( Probl emele 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, Floria n Ion. (2014). OPTIMIZA REA
SISTEMELOR MECATRONICE MOBILE SERIALE ;
[13] Floria n Petrescu & Relly Petrescu , LULU PUBLISHER , LONDON (2011).
SISTEME MECANICE SERIALE Ș I PARALELE ;
[14] ***htt ps://reference.digilentinc.com/ni:mxp_motor_adapter:refmanual ;
Controlul brațului robot in timp real bazat pe semnale EMG
Pagina 44 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 ", WSA GetLastError());
}
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, y aw_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 ", WSAGetLas tError());
exit(EXIT_FAILURE);
}
printf("Initialised.\ n");
startUDP();
}
~DataCollec tor()
Cont rolul bra țului robot in timp real bazat pe se mnale EMG
Pagina 45 {
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 * (q uat.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 46 void print_orientation()
{
std::ostring stream 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;
}
}
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: UUNNIIVVEERRSSIITTAATTEEAA TTEEHHNNIICCĂĂ ddiinn CCLLUUJJ–NNAAPPOOCCAA [617793] (ID: 617793)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
