N I V E R S I T A T E A T E H N I C Ă d i n C L U J - N A P O C A
FACULTATEA de INGINERIE ELECTRICĂ
TEMA PROIECTULUI DE DIPLOMĂ
I.
ENUNŢUL TEMEI: COMANDA UNUI BRAŢ ROBOTIC FOLOSIND MODULUL LABVIEW FPGA
II. CONŢINUTUL proiectului de diplomă/lucrării de disertaţie a) Piese scrise b) Piese desenate III. LOCUL DOCUMENTĂRII: UNIVERSITATEA UNIVERSITATEA TEHNICĂ-CLUJ TEHNICĂ-CLUJ NAPOCA IV. CONDUCĂTOR ŞTIINŢIFIC: CONF. DR. ING . RODICA HOLONEC V. Data emiterii temei: 01.11.2012 VI. Termen de predare: 05.07.2013 Conducător ştiinţific , Conf.Dr.Ing.Rodica Conf.Dr.Ing. Rodica HOLONEC
Absolvent,
Stelian Vasile TOMA
Comanda unui braţ unui braţ robotic robotic folosind folosind modulul modulul LabVIEW LabVIEW FPGA FPGA
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
Declaraţie-angajament: Deoarece acest proiect de diplomă/lucrare de disertaţie nu ar fi putut fi finalizat(ă) fără ajutorul membrilor departamentului de electrotehnică electrotehnică şi măsurări şi a echipamentelor de la departament, 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: 05.07.2013
Semnătura
Declaraţie: Declaraţie: Subsemnatul Toma Stelian-Vasile 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 conducătorului ştiinţific şi pe baza bibliografiei indicate de acesta.
Data: 05.07.2013
Semnătura
i
Comanda unui braţ unui braţ robotic robotic folosind folosind modulul modulul LabVIEW LabVIEW FPGA FPGA
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA CUPRINS
INTRODUCERE............................................. .................................................................... ............................................. ............................................ ................................... ............. 7 CAPITOLUL I ............................................. ................................................................... ............................................ ............................................ ....................................... ................. 9 ROBOTUL ........................................... ................................................................. ............................................ ............................................. .............................................. ......................... 9 1.1 Date cronologice ........................................... ................................................................. ............................................ ............................................. ............................ ..... 9 1.2 Definiţii şi particularitaţi ale roboţilor ..................... roboţilor ........................................... ............................................. ..................................... .............. 10 1.3 Clasificarea roboţilor ...................... roboţilor ............................................ ............................................ ............................................ ......................................... ................... 10 1.4 Tipuri de roboţi existenţi .......................................... ................................................................ ............................................ ..................................... ............... 11 1.5 Sistemul senzorial al roboţilor ................... roboţilor ......................................... ............................................ ............................................ .............................. ........ 14 1.6 Aplicaţii ale roboţilor ..................... roboţilor ........................................... ............................................ ............................................ ......................................... ................... 15 CAPITOLUL II ............................................ .................................................................. ............................................ ............................................ ..................................... ...............17 CIRCUITE FPGA ........................................... .................................................................. ............................................. ............................................ ................................. ...........17 2.1 Scurt istoric a circuitelor FPGA ........................... ................................................. ............................................ ......................................... ................... 17 2.2 Arhitecturi FPGA ............................................................ .................................................................................. ............................................. .............................. ....... 18 2.3 Resursele hardware şi software a circuitelor FPGA......................................... ............................................................ ................... 19 2.3.1 Resurse hardware .......................................... ................................................................ ............................................ ......................................... ................... 20 2.3.2Resurse software ............................................ .................................................................. ............................................ ......................................... ................... 22 2.4 Modul de configurare a circuitelor FPGA.......................................... ................................................................. ................................. .......... 23 2.5 Etapele de proiectare cu circuite FPGA ..................................... ........................................................... ......................................... ................... 23 2.6 Implementări cu FPGA FPGA-uri........................ -uri.............................................. ............................................ ............................................ .............................. ........ 25 2.6.1 Implementări aritmetice cu FPGA .......................................... ................................................................. ..................................... ..............25 2.6.2 Procesarea imaginilor ............................................... ..................................................................... ............................................ .............................. ........ 26 2.6.3 Procesarea semnalelor video ............................................... ..................................................................... ......................................... ................... 26 2.6.4 Procesarea sunetelor umane şi semnalului audio .......................................... ......................................................... ...............26 2.6.5 Recunoaşterea obiectelor .................... obiectelor .......................................... ............................................ ............................................ .............................. ........ 26 2.6.6 Codificarea informaţiilor .................... informaţiilor .......................................... ............................................ ............................................ .............................. ........ 27 2.7 Comparaţ Comparaţie a FPGA cu alte tehnologii .......................................... ................................................................. ..................................... .............. 27 2.8 Aplicaţ Aplicaţii FPGA.............................................. .................................................................... ............................................ ............................................. .......................... ... 28 CAPITOLUL III............................................................. ................................................................................... ............................................ ......................................... ................... 29 LABVIEW-FPGA ........................................... .................................................................. ............................................. ............................................ ................................. ........... 29 2.1 Introducere în LabVIEW.......................................... ................................................................ ............................................ ..................................... ............... 29
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 2.2 Principii de programare în LABVIEW ............................................................................... 30 2.3 Modulul de programare LabVIEW FPGA .......................................................................... 31 CAPITOLUL IV ........................................................................................................................... 33 SERVOMOTOARE...................................................................................................................... 33 4.1 Definiţii. Caracteristici ........................................................................................................ 33 4.2 Clasificarea servomotoarelor .............................................................................................. 33 CAPITOLUL V............................................................................................................................. 42 BRAŢ ROBOTIC ......................................................................................................................... 42 5.1 Construcţia braţului robotic. ............................................................................................... 42 5.2 Secvenţa de programare ...................................................................................................... 43 5.2 Servomotor HK digital MG Micro..................................................................................... 48 5.3 SbRIO9631......................................................................................................................... 52 5.4 Configurarea IP-ului la sbRIO 9631. .................................................................................. 54 5.5 Dashboard ........................................................................................................................... 55 CONCLUZII ................................................................................................................................. 57 BIBLIOGRAFIE ........................................................................................................................... 58
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
INTRODUCERE
Bazele roboţilor de azi au apărut din timpuri vechi, omul construind din aceea perioada mecanisme care să-i uşureze munca în anumite activităţi. Punctul de plecare al acestei lucrări de licenţă îl reprezintă tendinţa de automatizare pe scară din ce în ce mai largă în întreaga lume şi în toate domeniile. Fiecare domeniu desfaşoară o anumită activitate ce urmăreşte satisfacerea nevoilor individuale cu un efort cât mai mic depus. Pornind de la această idee conform căreia automatizarea se desfăşoara în fiecare domeniu am construit un sistem mecatronic compus dintr-o structură mecanica (un brat robotic) si un controler ce o acţionează. Roboţii sunt realizaţi mai ales prin combinaţia disciplinelor mecanică, electronică si informatică rezultând din combinaţia acestora mecatronica. Pentru realizarea de sisteme autonomeeste necesară legătura a cât mai multor discipline de robotică. Dezvoltarea electrotehnicii din secolul XX a adus cu sine şi o dezvoltare a roboticii. Oamenii de ştiinţa afirmă că într -o jumătate de secol roboţii ar putea să ne ajungă din urmă în ceea ce priveşte complexitatea organismelor vertebrate. Aici se pune accent şi pe legătura conceptelor de inteligenţă artificială sau neuroinformatică, parte a informaticii, precum si idealul lor biologic biocibernetica, parte a biologiei. Sistemele care implementează algoritmi de control devin din ce în ce mai complexe, beneficiază de un consum redus de energie şi au o flexibilitate sporită care permite extinderea funcţionalităţii în mod continuu şi creşterea acurateţi controlului. Circuitele logice programabile vin în întâmpinarea acestor cerinţe, permiţând integrarea pe un singur chip atât a algoritmilor de control cât şi a celorlalte funcţii periferice şi aceasta la viteze ridicate datorită executării în hardware a tuturor operaţiilor. Un alt avantaj adus de circuitele logice programabile fiind şi timpul scurt de dezvoltarea şi lansare pe piaţă a aplicaţiei de control. Lucrarea de licenţa este structurată în 5 capitole, şi în fiecare capitol am încercat să descriu şi să evideţiez diferite informaţii legate de secvenţa de programare folosită pentru controlul braţului robotic, servomotoarele folosite şi placa de achiziţi. În primul capitol se descrie şi clasifică robotul în general. Roboţi, datorită tendinţei de automatizare pe scară din ce în ce mai largă şi în majoritatea domeniilor,ocupă un loc din ce în ce mai important în evoluţia societăţii în încercarea de a uşura şi înbunataţi munca omului de zi cu zi. Capitolul II prezintă arhitectura generală, specificaţiile de proiectare, metodele de acordare şi modalităţi de implementare digitală a placilor de achiziţie FPGA. Un circuit FPGA este un circuit integrat digital configurabil, de către utilizator, după ce a fost fabricat, spre deosebire de dispozitvele a căror funcț ie este implementată in procesul de fabrica ț ie. Cea mai comună arhitectură pentru FPGA este constituită dintr -o matrice de blocuri logice configurabile cu porturi de ieşire şi intrare și canale de rutare, iar în general toate canalele de rutare au acea și lăț ime având același număr de conexiuni.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Pe parcursul capitolului II este realizată o descriere al modulului de programare LabVIEW FPGA în care este prezentat modul de programare LabVIEW FPGA şi principiile de programare LabVIEW. În capitolul IV sunt prezentate sevomotoarele, domeniile de aplicaţii în care pot fi utilizate, avantajele si dezavantajele acestor servomotoare şi modul de clasificare al servomotoarelor. Capitolul V prezită modul de costrucţie al braţului robotic, servomotoarele digitale folosite si caracteristicile acestora, secvenţa de programare realizată pentru comanda braţului robotic şi descrierea placi de achiziţie sbRIO 9631.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
CAPITOLUL I
ROBOTUL 1.1 Date cronologice
Robotul este un produs al mecatronicii care combină tehnologia mecanică cu cea electronică fiind o componentă evaluată de automatizare care inglobează electronica de tip calculator cu sistemele avansate de acţionare pentru a realiza un echipament independe nt de mare flexibilitate. Mecanica stabileşte înfăţişarea robotului şi mişcările posibile pe timp de funcţionare, senzorii sunt întrebuinţaţi la interacţiunea cu mediul sistemului iar mecanismul de direcţionare are grijă ca robotul să-şi îndeplinească obiectivul cu succes, evaluând informaţiile senzorilor. Acest mecanism reglează motoarele şi planifică mişcările care trebuiesc efectuate. Conform unor relatări, matematicianul grec Archytas a construit, unul dintre aceste prime automate şi anume un porumbel propulsat cu vapori care putea zbura singur. Acest porumbel din lemn era umplut cu aer sub presiune şi avea un ventil care permitea deschiderea şi închiderea printr-o contragreutate. Cu descoperirea ceasului mecanic din secolul XIV s-a deschis calea un or posibilităţi noi şi complexe şi nu mult după aceea au apărut primele maşini, care semănau îndepartat cu roboţii de azi. Odata cu dezvoltarea electrotehnicii din secolul XX a apărut şi o dezvoltare a roboticii. Printre primii roboţi mobili se numără sistemul Elmer şi Elsie construit de William Grey Walter în anul 1948 care se puteau îndrepta spre o sursă de lumină şi puteau să recunoască coliziuni în împrejurimi. Cuvântul robot” a fost utilizat pentru prima dată în piesa Roboţii universali ai lui Rossum” scrisa de Karel Capek (Cehia) în 1920. Termenul inventat semnifică muncă forţată, sclavie şi derivă din robota”. Anul 1956 este considerat ca anul naşterii a robotului industrial. În acest an George Devol împreună cu Joseph Engelberger au constru it primul robot industrial numit UNIMATE(fig.1.1). Acest robot care cîntarea in jur de doua tone a fost introdus pentru prima dată în montarea de iconoscoape la televizoare, găsindu-şi apoi drumul in industria automobilă. În momentul acuat componenta cea mai importantă ale roboţiilor sunt senzorii, care permit mobilitatea acestora în mediu şi o dirijare cat mai precisă. Senzorul este un dispozitiv tehnic care
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA reacț ionează calitativ sau cantitativ prin proprii mărimi măsurabile, la anumite proprietă ț i fizice sau chimice ale mediului din preajma lui iar ca parte componentă a unui aparat sau sistem tehnic detector poate măsura sau înregistra presiunea, umiditatea, câmpul magnetic, accelera ț ia, for ț a, intensitatea sonoră şi radiaț ii.
1.2 Definiţii şi particularitaţi ale roboţilor Conform ISO-8373 robotul este definit ca fiind un controlat automat, reprogramabil, manipulator multifuncţional, programabil în trei sau mai multe axe, care poate fi fix sau mobil pentru utilizarea în aplicaţii de automatizare industrială. Cu toate acestea Institutul de Robotică din America defineşte robotul ca fiind un manipulator reprogramabil multifuncţional proiectat pentru a muta materiale, piese, scule sau dispozitive specializate prin mişcări variabile programate pentru performanţa unor sarcini diferite. Asociaţia de Robotică Japoneză nu prezintă o definiţie clară ci împarte roboţii în şase clase: 1) Manual - Manipularea dispozitivelor acţionată de către un operator ; 2) Fixarea secvenţei robotului; 3) Variabila - Robot secvenţial cu o uşoară modificare a secvenţei de control; 4) Robot de redare, care poate înregistra o propunere pentru mai târziu; 5) Roboţi cu comandă numerică având un program de mişcare pentru a preda acestuia sarcini manuale; 6) Robot inteligent: poate înţelege mediul său şi este capabil să îndeplinească sarcinile, în ciuda schimbărilor condiţilor de funcţionare. Dintre particularităţile unui robot putem defini patru, considerate a fi cele mai importante, pe care trebuie să le îndeplinească o maşină ca aceasta să poată fi încadrată în categoria ,,robot”: 1) Interacţiune - această particularitate se referă la faptul că r obotul trebuie să poată interacţiona cu mediul, cu alţi roboţi sau cu oamenii, luând decizii; 2) Autonomie – această particularitate se referă la faptul că robotul trebuie să poată opera fără intervenţie umană; 3) Mobilitate - r obotul trebuie să se poată deplasa corect în spaţiu; 4) Reprogramare- r obotul trebuie să poată fi reprogramat.
1.3 Clasificarea roboţilor 1. Din punct de vedere al gradului de mobilitate se clasifică în doua categorii : roboţi ficşi şi mobili. 2. Din punct de vedere al sistemului de coordonare roboţii sunt clasificaţi în roboţi cu sistem de coordonare carteziene,cilindrice şi sferice. 3. Din punct de vedere al informaţiei de intrare ţi a metodei de instuire roboţii se clasifică astfel: - roboţi acţonaţi de om;
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA -roboţi cu sisitem de comanda secvenţiali -roboţi cu sistem secvenţial cu program modificat -roboţi cu programare pr in instruire -roboţi inteligenţi 4.Din punct de vedere al sistemului de acţionare sunt patru categorii de roboţi: roboţi cu acţionare hidraulică,electrică,pneumatică si mixtă 5. Din punct de vedere al sistemului de comanda roboţii sun clasificaţi: -roboţi cu comanda punct cu punct. La aceşti roboţi nu contează traiectoria popriuzisă -roboţi cu comandă pe contur care implică coordonarea mişcării axelor -roboţi cu comandă pe ăntreaga categorie care implica toţi parametrii de mişcare Arhitectura internă a unui robot conţine cinci sisteme i mportante, fiecare dintre acestea aparţinând unui domeniu al tehnicii clasice: -sistemul mecanic de susţinere şi al articulaţiilor,cuple de rotaţie şi de tranlaţie; -sistemul de acţionare, care poaate fi hidraulic,pneumatic,electric sau mixt ; -sistemul de transmisie al mişcării; -sisitemul senzorial; -sistemul decizional. 1.4 Tipuri de robo ţi existenţi
Termenul de robot descrie un domeniu destul de vast, cauză din care roboţii sunt sortaţi în mai multe categorii: 1) Robotul industrial. Aceşti roboţi se definesc ca fiind o masină, unealtă programabilă, folosită în procesul de producţie pentru realizarea unor funcţii de acţionare analogice asemanatoare cu cele realizate de mana omului pentru deplasarea unor piese sau scule din procesul tehnologic. Roboţii industriali au un domeniu operaţional foarte restrâns deoarece nu sunt foarte mobil. George Devol a înregistrat în anul 1954 primul patent pentru un robot industrial. Ei au fost introduşi pentru prima dată pe linia de producţie a General Motors în 1961. Roboţii industriali au fost folosiţi prima dată în Germania la lucrări de sudură începând din 1970. În fig.1.2 este prezentat un robot industrial. Robotul industrial din punct de vedere al relaţiei om -robot in timpul desfăşurării lucrului roboţilor, acestia se împart in trei mari categorii: a) r oboţi automaţicare realizează funcţiile lor fără participarea directă a omului în procesul de comandă şi având în vedere adaptibilitatea lor lacondiţiile mediului în care îşi realizează funcţiile, roboţii automaţi se împar în trei generaţii: - roboţi din generaţia I, se caracterizează prin program fix de funcţionare, ei fiind capabili să repete în mod strict operaţiile specificate în program, sub condiţia invariabilităţii mediului în care lucrează, fără perturbaţii externe.Aceşti roboţi din deneraţia I nu se adaptează la schimbările mediului, neavând nici o informaţie despre mediul extern. i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA - roboţi din generaţia a II-a care cuprind roboţii adaptivi, capabili să lucreze în condiţii de mediu variabile sau parţial necunoscute iniţial. Capacitatea acestor roboţi de adaptare la schimbările de mediu este dată de senzorii cu care se dotează aceşti roboţi şi de la care se obţin informaţii asupra schimbării condiţiilor externe. Roboţii din din generaţia a II-a lucrează după un ciclu de operaţii definite în prealabil, dar pot să efectueze şi operaţii sub schimbarea condiţiilor de operare. - roboţi din generaţia a III-a care cuprinde roboţii inteligenţi, având caractere de inteligenţă artificială dar gradul lor de inteligenţă variaza în raport cu funcţiile car e au fost dorite iniţial. Roboţi din generaţia a III-a sunt capabili să-şi definească acţiunile instantanee luând în considerare informaţiile obţinute prin senzori tactili, vizuali sau de zgomot asupra mediului de operare, să rezolve probleme particulare şi să-şi modifice modul de acţiune în concordanţă cu variaţiile mediului de operare. b) Roboţi biotehnici. La aceşti roboţi există o permanentă participare a operatorului uman în procesul de comandă şi sunt împărţiţi în trei subgrupe: - roboţi comandaţi pas cu pas, care este pus în mişcare prin acţionarea, de către un unui buton sau manetă; - r oboţi copiativi, care sunt constituiţidin două lanţuri cinematice deschise, primul lanţ având mişcarea comandată de operatorul uman, iar al doilea copiind la scară această mişcare şi efectuând operaţiile de manipulare pentru care este destinat robotul - r oboţi semiautomaţi sunt acei roboţi la care operatorul uman participa nemijlocit în procesul de comandă, dar în acelaşi timp cu el lucrează şi un calculator universal sau specializat. c) roboţii interactivi. Aceştia se caracterizează prin faptul că operatorul uman are numai o participare periodică în procesul de comandă, în restul timpului robotul fiind comandat automat de calculatorul electronic. Roboţii interactivi pot funcţiona în regim automatizat, cu alternarea permanentă a regimului biotehnic cu cel automat, cu comandă de supervizare sau cu comandă dialog. Utililizând aceşti roboţi se ating două scopuri: - se efectuează automat toate operaţiile robotului obţinânduse o productivitate maximă a lucrului acestuia; - datorită faptului că comanda robotului se poate face de la distanţă, se obţine posibilitatea efectuării unor operaţii complexe în locuri în care omul nu poate acţiona nemijlocit. 2) Robotul mobil. Acest robot este un sistem complex care se deplasează într -un anumit mediu fără intervenţia umană şi poate efectua diferite activităţi într-o varietate de situaţii specifice lumii reale. Robotul mobil este o combinaţie de dispozitive echipate cu servomotoare şi senzori ce operează într -un spaţiu r eal, marcat de o serie de proprietăţi fizice şi care trebuie să planifice mişcările astfel încât robotul să poată realiza o sarcina în funcţie de starea iniţială a sistemului. În figura 1.3 este prezentat un robot mobil.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
Datorită diverselor funcţii pe care le îndeplinesc roboţii mobili au întrebuinţari multipe: - robot mobil teleoperat. Acest tip de robot este folosit în diverse domenii,dar mai ales în domenii care ar pune viaţa omului în pericol. De exeplu în distrugerea minelor antipersonal, în inspecţia zonelor contaminate nuclear, în intervenţia ameninţării cu bombe si a muniţiei neexplodate, inspecţia în zone greu accesibile -r oboţii subacvatici care operează uzual la adâncimi destul de mari, de până la 7000-8000 de metri adâncime iar printre aplicaţiile uzuale se numărăm: cartografiere, detectarea de epave şi readucerea la suprafaţă a diferitor obiecte. -roboţii militari mobili, cu ajutorul cărora se pot efectua operaţiuni de recunoaştere, de spionaj fără riscul pierderilor de trupe, suport logistic la transport de muniţie, medicamente, şi combustibil, şi operaţiuni de căutare şi de salvare. 3) Roboţii autonomi mobili sunt acei roboţi ce pot îndeplini sarcini în medii nestructurate fără intervenţie umană continuă. Majoritatea acestor tipuri de roboţi au câteva grade de autonomie. Un grad înalt de autonomie este folosit în cazuri particulare precum exploatarea spaţiului, curăţarea podelelor, cosit peluze, tratarea apelor uzate. Iar roboţii industriei moderne sunt autonomi în limitele stricte oferite de mediu. Un robot complet autonom are abilităţi precum: - strângerea informaţiilor din mediul înconjurător; - funcţionarea unei anumite periode de timp fără intervenţie umană; - mişcarea intreagă sau a unei părţi din el în spaţiul oper aţional fără asistenţă umană; - evitarea situaţilor dăunătoare pentru oameni, proprietăţi sau a lui însuşi. Un robot autonom de asemenea poate să înveţe sau să acumuleze cunoştinţe şi abilităţi noi precum adaptarea strategiei pentru îndeplinirea sarcinii. 4) Roboţi umanoizi. Aceşti roboţi trebuie să acţioneze şi să reacţioneze autonom în mediu, mobilitatea lor fiind restrânsă la cele două picioare ca locomoţie. Roboţii umanoizi pot fi clasificaţi ca roboţi păşitori, abilitatea mersului biped, în poziţie dreaptă, este considerată ca o condiţie esenţială şi mai trebuie să fie capabili de a lucra cu braţele şi mâinile în manipularea şi prinderea de obiecte. În figura 1.4 este prezentat un robot umanoid produs de firma HONDA. 5) Robotul casnic. Acest robot lucrează autonom în gospodărie, iar printre aplicaţ iile cunoscute se numară: robot aspirator, robot de tuns gazonul, robot de spălat ferestrele.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 6) Robot jucarie. Nu se cunoaste exact unde este granita dintre un robot si o jucarie electronica avansata iar orice jucarie cu un circuit integrat care executa cateva sarcini elementare poartă denumirea de ,,robot”.
1.5 Sistemul senzorial al roboţilor Robotul trebuie să desfăşoare acţiuni similare cu celeale operatorului uman iar acest lucru determină existenţa unor anumite dispozitive prin care să se culeagă informaţii din mediul de lucru şi cu ajutorul cărora se poate realiza acţiunea robotului. Sistemul senzorial mai este numit şi sistem de măsurare iar el asigură măsurarea unor mărimi fizice şi eventual perceperea unor modificăr semnificative a acestor mărimi. Datorită sistemului senzorial se pot pune în evidenţă şi caracteristicile geometrice şi chimice ale obiectelor din mediul de lucru. Senzorii , datorită caracteristicilor pe care le au pot explora zona de lucru, zona de contact, cea apropiată, cea îndepărtată, iar senzorii foarte puternici chiar şi zone foarte îndepărtate. Informaţiile culese cu ajutorul sistemului senzorial servesc la construirea unui model al lumii în care evoluează robotul. În funcţie de soluţia constructivă, senzorii sunt pasivi sau activi. Senzorii activi folosesc caracteristicile intrinseci ale mediului, iar cei pasivi generează modificări în mediu pentru a măsura unele caracteristic. Alte două categorii de senzori cu care poate fi dotat un robot: - senzori de mărimi interne ai robotului care sunt de poziţie, viteză sau acceleraţia unor componente mecanice proprii - senzori de mărimi externe care constă în greutate, formă, poziţie, temperatură, culoare ale obiectelor asupra cărora acţionează robotul. Caracteristicile senzoriale ale unui robot depind foarte mult de gradul său de autonomie, de aplicaţiile pentru care a fost proiectat şi de tipul mediului de lucru iar în general percepţia se realizează în două etape: - conversia proprietăţilor fizice într -un semnal care este de obicei electric; - prelucrarea acestui semnal în vederea extragerii infor maţiei necesare Există mai multe criterii de clasificare a senzorilor utilizaţi în sistemele de comandă ale robotului: 1) Prima categorie constă în modul după cum vine sau nu în contact cu obiectul a cărui proprietate fizică o măsoară şi distingem: - senzori cu contact; - senzori fără contact. 2) A doua categori constă în proprietăţile pe care le pun în evidenţă - senzori pentru determinarea formelor şi dimensiunilor care sunt folosiţi pentru evaluarea în mediu de lucru; - senzori pentru determinarea proprietăţilor fizice ale obiectelor care sunt de forţă, de cu plu, de densitate şi elastici; - senzori pentru proprietăţi chimice care pot fi de compoziţie, de concentraţie şi analizatoare complexe.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 3) A treia categorie este după mediul de culegere a informaţiei: - senzorii pentru mediul extern; - senzorii pentru funcţia internă. 4) După distanţa la care sunt culese informaţiile avem senzori de contact.
1.6 Aplicaţii ale roboţilor Roboţi sunt folosiţi în diverse aplicaţii care sunt industriale sau neindustriale. În categoria aplicaţiilor neindustriale se includ construcţiile, reabilitarea bolnavilor, comerţ, transport şi circulaţia mărfurilor,administraţia locală, protecţia mediului înconjurător şi agricultură, supraveghere, inspecţie, protecţia de radiaţii şi intervenţii în caz de catastrofe, hoteluri şi restaurante, în medicină, gospodărie, hobby şi petrecerea timpului liber. În medicină se gasesc sisteme robotizate pentru diagnoză prin ecografie, sisteme robotizate pentr u intervenţii neurochirurgicale, vehicule ghidate automat pentru transportul bolnavilor imobilizaţi la pat, vehicule ghidate automat pentru transportul medicamentelor, alimentelor vehicule ghidate automat pentru activităţi de curăţenie şi dezinsecţie în spitale, sisteme ro botizate pentru pregătirea prin simulare a unor intervenţii chirurgicale. Pentru reabilitare se pot identifica diverse aplicaţii ale roboţilor: scaun cu roţile pliant, manipulator pentru deservirea persoanelor paralizate, vehicul pentru conducerea nevăzătorilor . În construcţii: vehicul ghidat automat pentru asfaltarea şoselelor; excavatoare autonome, sistem robotizat pentru compactarea şi nivelarea suprafeţelor turnate din beton, sistem robotizat pentru inspectarea faţadelor clădirilor, sistem robotizat pentru montarea şi demontarea schelelor metalice. Pentru protejarea mediului înconjurător se gasesc sisteme robotizate de sortare a gunoiului în vederea reciclării, sisteme automate de inspectare, curăţare şi recondiţionare a coşurilor de fum înalte, platforme autonome mobile pentru decontaminarea clădirilor, străzilor şi vehicul ghidat automat pentru decontaminarea solului. În agricultură, există sisteme robotizate de plantare a răsadurilor, sistem robotizat de culegere a fructelor, sistem robotizat de culegere a florilor. În comerţ, transporturi, circulaţie se pot preciza urmatoarele aplicaţii ale roboţilor: vehicule ghidate automat pentru întreţinerea curăţeniei pe suprafeţe mari sistem robotizat de curăţire automată a fuselajului şi aripilor avioanelor, sistem automatizat de alimentare cu combustibil a autovehiculelor. Pentru siguranţă şi pază se gasesc roboti mobili de pază pe timpul nopţii, vehicul autonom pentru stingerea incendiilor, robot mobil pentru detectarea şi dezamorsarea minelor, sistem robotizat pentru intervenţii în spaţii periculoase etc. Pentru hobby şi petrecerea timpului liber se pot preciza următoarele aplicaţii: robot de supraveghere copii pentru diverse intervale de vârstă, robot de gestionare şi supraveghere generală a locuinţei, robot mobil pentru pentru tunderea automată a gazonului instalaţie robotizată pentru curăţirea bărcilor de agrement şi sport.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA În a plicaţiile industriale se cuprind roboţii ce acţionează în medii industriale care au primit denumirea de roboţi industriali iar în general sunt roboţi automaţi şi în cazuri mai rare se utilizează în industrie şi roboţi biotehnici sau interactivi. În special sut raspândiţi roboţii programaţi şi, mai puţin, cei adaptivi. Roboţii inteligenţi se află în faza de încercări în laboratoare sau aplicaţii la unele operaţii de montaj automat. Roboţilor industriali sunt folosiţi în fabricarea automobilelor, în ambalare şi paletizare de bunuri fabricate, în electronică la fabricarea de circuite,unde se realizează sute de mii de componente pe ora, depăşind performanţele uni om în viteză, precizie şi fiabilitate. Roboţii industriali interactivi sunt utilizaţi deobicei în cercetarea spaţiului cosmic, a oceanului dar şi în cazul unor operaţii complexe din mediul industria
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA CAPITOLUL II
CIRCUITE FPGA Circuitele programabile FPGA (reţelelor de porţi logice reconfigurabile) sunt elemente integrate VLSI (Very Large Scale Integration- Integrate la scală foarte mare) frecvent folosite în aplicaţii care necesită configuraţii hardware reconfigurabile, de mare compleexitate ,usor de reprogramat şi versatile în implementarea unor algoritmi soisticaţi.ele repreyintă soluţia ideală in multe aplicatii unde arhitectura hardware trebuie modificata frecvent,în funcţie de cerinţele utilizatorului. Aceste tipuri de circuite sunt realizate sub forma unor arii programabile cu arhitecturi hardware regularizate ,flexibile şi reprogramabile,dnumite blocuri logice reconfigurabile. Aceste blocuri sunt interconectate într-o matrice formând o ierarhie puternică de resurse de interconectare ,sau canale de comunicaţie. 2.1 Scurt istoric a circuitelor FPGA
Primul dispozitiv de tip FPGA a fost lansat de firma Xilinx în anul 1984. Acest circuit conţinea 64 de blocuri logice interconectate printr-o matrice de conexiuni programabile şi avea 58 de pini de intrare şi ieşire şi era implementat în tehnologie de 2μm, folosind 85000 de tranzistoare. Avantajul acestei arhitecturi era scalabilitatea: odată cu îmbunătăţirea procesului d e fabricaţie, mai multe elemente de bază puteau fi integrate pe acelaşi cip, crescând posibilităţile oferite de acesta şi astfel, de-a lungul anilor 1980, producătorii de FPGA-uri au continuat să crească numărul de blocuri logice, numărul nivelelor de interconectare şi numărul pinilor deintrare şi ieşire. Perioada 1985 – 1991 poate fi astfel considerată perioada de început a dispozitivelor FPGA. Această perioada este caracterizată prin faptul că FPGA-urile erau folosite ca logică de legătură în sisteme mai mari şi programele software ce implementau circuitele proiectate în FPGA erau relativ simple şi uşor de îmbunătăţit. Perioada 1992 – 1999 poate fi considerată perioada de ex pansiune a dispozitivelor FPGA deoarece la începutul acestei perioade, multe firme prod ucătoare se retrag din domeniu ca şi Toshiba,Motorola sau IBM pentru că arhitecturile propuse de ele nu fac faţă scalabilităţii permise de avansarea rapidă a tehnologiei de producţie. În această perioadă, creşterea rapidă a complexităţii circuitelor pune presiune pe dezvoltarea de software de sinteză automată care să permită proiectarea uşoară şi folosirea eficientă a resurselor hardware şi totodată, FPGA-urile încep să fie folosite în aplicaţii mai complexe, în domeniul comunicaţiilor şi calculelor aritmetice.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
Perioada 2000 – 2007 poate fi considerată perioada de acumulare a dispozitivelor FPGA.În această perioadă se integrează din ce în ce mai multe şi mai sofisticate blocuri hardware: de la microprocesoare la circuite de comunicaţie rapidă, de la funcţii aritmetice specializate la blocuri dedicate procesării digitale de semnal bazate pe multiplicatoare hardware şi acumulatoare iar în 2000 apare primul FPGA cu procesor hardware încorporat. De asemenea, odată cu creşterea numărului de blocuri logice integrate, a apărut tendinţa producătorilor de FPGA-uri de a dezvolta procesoare soft, implementabile economic în blocurile logice din FPGA. În prezent, FPGA-urile au devenit platforme sistem iar ambii mari producători de FPGAuri îşi descriu dispozitivele complexe în astfel de termeni. Familia Virtex 6 de la Xilinx este descrisă ca FPGA platformă iar f amilia Stratix IV de la Altera este comercializată ca FPGA capabilă să implementeze un întreg sistem pe un cip .Astfel, de la epoca blocurilor logice interconectate prin conexiuni programabile, s-a ajuns la dispozitive configurabile complexe, capabile să implementeze un întreg sistem digital pe un cip un sistem ce este compus din mai multe procesoare hard sau soft, din motoare de procesare dedicate, coprocesoare matematice, periferice de control al memoriei sau de comunicaţie. 2.2 Arhitecturi FPGA
De obicei arhitectura FPGA consta dintr-o arie de blocuri logice configurabile CLB(abreviere din limba engleză pentru ,, configurable logic blocks”- blocuri logice configurabile), canale de intrare-iesire, I/O, şi canale de rutare,iar în general toate canalele de rutare sunt de aceeaşi capacitate având acelaşi număr de fire. O implementare FPGA trebuie sa dispuna de resurse adecvate iar între timp ce numarul de CLB-uri si de I/O sunt uşor de determinat din proiect, numarul de căi de rutare poate varia considerabil, chiar şi în cazul unor proiecte foarte asemanatoare din punct de vedere logic. De exemplu, o matrice de comutare necesită de mult mai multe rutări decât o arie sistolică, o forma particulară de arhitectură paralelă, organizatî ca o reţea. Caile de rutare neutilizate cresc costul şi scad performanţele circuitului, fară a aduce nici un beneficiu iar din această cauză producătorii de FPGA încearcă să optimizeze numarul lor, astfel încât majoritatea proiectelor să fie posibile în termeni de LUT ( lookup tables) şi I/O. Această optimizare poate fi realizată prin doua metode: - prin experimentareă si analizareă unor proiecte semnificative - aplicând regula lui Rent: T = t × gp; unde T este numărul de terminale, g numărul de componente interne şi t si p constante. În figura 2.2 este prezentat structura generică a unui circuit FPGA.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Construcţia unui CLB clasic FPGA constă dintr-un tabel de căutare cu 4 intrari (4LUT) şi un bistabil D conectate ca în figura 2.3., dar în ultimii ani a aparut o tendin ţă de trecere înspre 6LUT, cu scopul creşterii performanţelor. În figura 2.3 sete prezentat un CLB tipic unde există patru intr ări şi o intrare de sincronizare iar ieşirea este furnizată de LUT putând fi înregistrată sau neînregistrată.
Semnalele de sincronizare, precum şi alte semnale sunt specifice fiecărei aplicaţii în parte şi sunt tratate în mod separat, prin reţele de rutare dedicate. Amplasarea terminalelor sau pinilor CLB-ului este ilustrată în figura 2.4. Fiecare intrare este accesibilă dintr -o latură iar ieşirea poate fi conectată la căile de rutare atât prin canalul din dreapta cât şi prin cel de jos. În general sistemele de rutare FPGA sunt nesegmentate, adică conectabile la un bloc de comutaţie prin cel mult un CLB, dar căile de conectare mai lungi se obţin cu ajutorul blocurilor de comutaţie. Totuşi pentru realizarea unor interconexiuni de mare viteza unele arhitecturi sunt prevazute şi cu căi de rutare care se întind pe lungimea mai multor blocuri. Blocurile de conexiune (switching boxes) apar oriunde un canal vertical se intersectează cu unul orizontal iar un fir care intră într -un bloc de conexiuni poate fi conectat, prin trei conectoare programabile cu alte trei fire din canalele adiacente. Topologia conectoarelor programabile este topologia planară, bazată pe organizarea traseelor de rutare.
2.3 Resursele hardware şi software a circuitelor FPGA
Familiile moderne FPGA extind capacitate de conectare prin realizarea cablată a unor funcţii de înalt nivel, crescând astfel performanţele şi scăzând efortul de proiectare. Astfel de
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA blocuri pot fi: blocuri generice DSP, multiplicatoare, blocuri PLL sau DLL, circuite I/O de mare viteză, memorii, registre de deplasare şi numărătoare. Resursele hardware investite în FPGA sunt extrem de diverse, în funcţie de producători şi de arhitectura aleasă iar pe de altă parte, resursele software, de care depind în mare măsură şi performan ele hardware-ului, sunt extrem de specifice, într-o continuă dezvoltare şi evoluţie.
2.3.1 Resurse hardware
Resurse hardware conţin trei mari categori : -a) blocuri funcţionale integrate; -b) condiţionarea semnalelor de intrare/ieşire; -c) dispozitive speciale. a) Blocuri funcţionale integrate 1) Memorii. Aceste memorii interne permit creşterea vitezei de operare şi utilizarea mai eficientă a pinilor drartnei e şi ieşirş ei pe lângă acesta structura sistemului este mult simplificată. Capacităţile de memorie utilizate sunt destul de mari şi se pot întâlni diferite configuraţii. 2) PLL/DLL. Aceste circuite PLL(Phase-Locked Loop) şi DLL()Delay-Locked Loop) se pot utiliza pentru compensarea întârzierii de propagare a semnalului de sincronizare. Alte aplicaţii interesante sunt sintetizarea de frecvenţe prin multiplicare sau divizare şi condiţionarea semnalului de sincronizare care se referă la factor ul de umplere şi defazaj. Circuitele DLL au un preş mai scăzut consumând puţină energie şi sunt imune la zgomote, în timp ce PLL-urile sunt mai versatile şi permit operaţii mai complexe cum ar fi implementarea filtrelor pe un domeniu de frecvenţe mai larg. 3) Circuite aritmetice. Unele circuite FPGA dispun de un număr mare de blocuri aritmetice simple. De exemplu din familia Virtex-5 LX Xilinx include multiplicatoare, prin care se pot realiza operaţii de până la 25 × 18 biţi. 4) Transceivere. Acestea sunt dispozitive de emisie-recepţie de diferite standarde iar ca şi protocoale de comunicaţie definite de utilizator pot fi uşor implementate prin blocuri de codare sau decodare şi serializare sau deserializare a datelor. 5) Procesoare integrate. Cele mai complexe arhitecturi FPGA ajung să includă şi procesoare însoţite de perifericele aferente, în vederea materializării conceptului System-on-Chip (aşa numi- tele SoC solutions) prin care tot sistemul de calcul este implementat pe un singur cip de Siliciu. Un exeplu de acest fel ar putea fi circuitul Virtex-4 FX (Xilinx) care include procesoare RISC (reduced instruction set computer) de ti pul IBM PowerPC 405 de 32 de biţi, capabile să funcţioneze la 450 MHz, cu cotrolere de acces la memorii RAM, o unitate aritmeti că hardware pentru multiplicare sau divizare, trei timere diferite, interf aţă directă pentru reţea Ethernet, registre de configurare, o unitate de procesare auxiliară pentru interfaţarea resurselor i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA logice FPGA în vederea conectării la acceleratoare hardware şi a introducerii de instrucţiuni definite de utilizator. b) Condiţionarea semnalelor de intrare/ieşire Resurse specifice trebuiesc alocate pinilor de intrare şi ieţire pentru ca FPGAurile să poată fi conectate cu uşurinţă cu alte dispozitive şi la tensiuni diferite fără a fi nevoie de interfeţe suplimentare. Pinii de intrare şi ieşire sunt de obicei grupaţi în funcţie de diferitele standarde: -conectare între cipuri; - conectare de tip ,,backplane” în care mai muţli pini se conectează în paralel sau interfeţe pentru memorii. În figura 2.5 este prezentată un exemplu, corespunzător familiei Virtex. c) Dispozitive speciale 1) Dispozitive programabile o singur ă dată OTP (One-time-programmable). Acestea sunt dispozitivele nevolatile care utilizează celule SRAM (Static Random Access Memory). Celulele SRAM sunt cel mai des utilizate pentru că oferă o mare flexibilitate în vederea reconfigurării cu toate acestea dispozitivele OTP nevolatile sunt aplicate în anumite situaţii în care se evidenţiază avantajele lor: - nu au nevoie de resurse externe pentru configurarea la alimentare şi din acest motiv pornesc foarte repede; - consum foarte redus de putere, rezistenţe şi capacităţi de contact foarte mici; - imunitate foarte bună la zgomote. 2) Dispozitive de putere mică. La aceste dispozitive scăderea puterii consumate de către circuite este un imperativ puternic, atât pentru a îmbunătăţi performanţele funcţionale ale produselor prin creşterea eficienţei utilizării energiei cât şi prin scăderea temperaturilor de funcţionare. Circuitele FPGA sunt de obicei mai puţin eficiente la acest capitol din cauza resurselor alocate programării iar din acest punct de vedere soluţiile bazate pe OTP sunt cele mai avantajoase. Ele reuşesc să treacă din modul de aşteptare în care se consumă foarte puţină energie în modul de lucru foarte rapid de ordinul nanosecundelor şi oferă şi rezistenţe mici de comutare. 3) Dispozitive tolerante la radiaţie:aceste dispozitive se folosesc în aplicaţiile aerospaţiale în care FPGA au fost incluse, Staţia Spaţială Internaţională, Telescopul Spaţial Hubble, Mars Pathfinder şi altele, ridică probleme speciale de lucru în mediul radioactiv. Au fost dezvoltate familii de FPGA de tip antifuse, pentru a putea raspunde acestor solicitări cu rezistenţă sporită la
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA radiaţiei. Ca exeplu sar putea preciza RTSX/RTAX sau Aeroflex Eclipse şi există şi versiuni protejate împotriva perturbaţiilor radio ca şi familiile Atmel AT40KEL040 sau Xilinx QPRO-R Virtex-II. 4) Circuite securizate. Aplicaţiile în care FPGA sunt conectate în reţele ridică problema securizării IP-urilor. Pe de o parte în aplicaţiile mai simple pot fi utilizaţi biţi de securizare care previne citirea de către utilizator a configuraţiilor dar în cazul aplicaţiilor foarte complexe se adaugă un FPGA nonvolatil care să gestioneze accesul la componentele interne.
2.3.2Resurse software
Complexele structuri hardware ale FPGA-urilor nu ar putea fi utilizate fără un întreg arsenal de instrumente software specifice, iar acest domeniu este în plină dezvoltare dar există deja o ofertă bogată de resurse software. Resurse software împart în trei mari categorii: a) Nuclee IP b) Procesoare Soft c) Instrumente software a) Nuclee IP. Pentru a putea simplifica proiectarea sistemelor FPGA complexe s-au realizat biblioteci de funcţii predefinite complexe, în majoritatea cazurilor parametrizabile, precum şi circuite care au fost deja testate şi optimizate. Aceste elemente sunt de regulă protejate ca nuclee de proprietate intelectuală, fiind vândute fie direct de producătorul circuitului fie de firme ter ţe specializate cum ar fi Modelware sau QuickFlex. Astfel de biblioteci acoperă largi domenii de aplicaţii: comunicaţiile, multimedia, procesoare de semnal, transporturi şi multe altele. b) Procesoarele soft au fost aplicate în acest domeniu de Xilinx (PicoBlaze şi MicroBlaze) şi de Altera (Nios şiNios II). PicoBlaze este un microcontroler de 8 bi ţi de capacitate mică dar implementat cu un număr redus de blocuri logice. MicroBlaze corespunde unei arhitecturi RISC de 32 biţi cu un set standard de periferice şi procesorul Nios are o funcţionare mai complexă, cuprinzând chiar şi posibilitatea adăugării de instrucţiuni noi de către client. c) Instrumente software. Interprinderile de FPGA au dezvoltat în timp multe instrumente soft originale adresate tuturor activităţilor cerute de aplicarea FPGA-urilor. În general aceste produse includ nuclee IP periferice, instrumente pentru configurarea procesoarelor soft, instrumente pentru dezvoltarea de software care constă în editoare, compilatoare, asambloare, editoare de legături şi depanatoar e, depanatoare şi testare hardware şi software şi instrumente software şi hardware pentru plăcile de dezvoltare.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 2.4 Modul de configurare a circuitelor FPGA
Producătorii de circuite FPGA au pus la dispozitie mai multe moduri de configurare a circuitelor FPGA.O prima modalitat de configurare este sceea de utilizare a unui cablu care se conecteaza între calculator şi placa FPGA.Cablul este un dispozitiv activ care necesită alimentare şi este de obicei alimentat de la placa ce conţine circuitul FPGA.aceste cabluri sunt specifice fiecarui producător ,dar interfaţa de configurare a unui circuit FPGA este asemănatoare. În momentul în care circuitul FPGA este configurat,îşi schimba starea din configurare în utilizare şi există trei metode uzuale de a configura un FPGA: -utilizarea cablului de încarcare dintre calculator şi FPGA ce necesită rularea unui soft pentru trimiterea datelor spre FPGA; - utilizarea unui microcontroler pe placa cu circuitul FPGA ce realizează opreţia de încărcare a configurţiei circuitului FPGA; -folosirea unui dispozitiv ,,de pornire” pe placa cu circuitul FPGA ,conectat la FPGA din care se încarcă automat datele de configurare la punerea sub tensiune,iar aceste tipuri de memorii sunt fabricate de producătorii de circuite FPGA. În utilizarea circuitelor FPGA se recomandă de reţinut urmatoarele aspecte: -un circuit FPGA poate fi încarcat de un numar infinit de ori.În cazul in care se face o greşeală în proiect ,poate fi corectată ,recompilată şi reîncărcată, făra a mai fi nevoie de modificări ale cablajului, sau de schimbarea de componente. -aplicaţia functionează cu o viteză mai mare decât dacă ar fi realizată cu componente discrete,deoarece totul funcţionează ăn interiorul circuitelor FPGA. -circuitele FPGA ăşi pierd funcţia logică la întreruperea tensiunii de alimentare ,motiv pentru care ele trebuie reprogramate la punerea dinn nou sub tensiune. Circuitele FPGA pot fi programate să implementeze aproape orice funcţie digitală,iar operaţiile tipice pentru lucrul cu circuitele fpga sunt urmatoarele -se foloseşte un clculator pentru a descrie funcţia logică dorită şi se poate desena o schema electrică sau se poate crea un fişier text pentru descriere funcţieei -se compilează funcţia logică cu ajutorul calculatorului folosind un soft pus la dispoziţie de pr oducatorul circuitelor FPGA,ir apoi aceasta crează un fişier binar ce poate fi încărcat in FPGA. -se conectează un cabu de la calculator la FPGA şi se încarcă fişierul binar în FPGA. -după încarcare, circuitul FPGA funcţioneazaconform funcţiei logice implementate Circuitele FPGA se bazează pe o celula logică multiplicată de sute de mii de ori în aceeaşi capsulă.aceasta capsula logică etse de fapt o tabletă de implementare,un bistabil de ip D si un multiplexor.Fiecare celulă logică poate fi conectată la alte celule logice prin resursele de interconectare. 2.5 Etapele de proiectare cu circuite FPGA
Procesul de proiectare este împăr ț it în mod obișnuit în următoarele etape generale:
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 1) Partiț ionarea. Sistemul proiectat, care de multe ori nu poate fi implementat într-un singur circuit FPGA, trebuie divizat în mai multe păr ț i, astfel încât fiecare parte să poată fi implementată într -un singur circuit FPGA, și să poată fi gestionată independent de celelalte, iar partiț ionarea circuitelor FPGA multiple trebuie să satisfacă restric ț ii suplimentare asupra dimensiunii subcircuitelor și a numărului terminalelor de intrare şi ieşire. Partiț ionarea reprezintă în același timp şi o metodă algoritmică pentru rezolvarea problemelor complexe de optimizare care apăr în sinteză logică sau în proiectarea fizică a circuitelor . 2) Maparea tehnologică. Pentru fiecare por ț iune a sistemului care va fi implementată într-un singur circuit FPGA, logică trebuie divizată suplimentar în fragmente,astfel încât fiecare fragment să aibă o dimensiune suficient de mică pentru a putea fi implementată într -un singur bloc logic al circuitului. Această divizare se realizează în cadrul etapei de mapare tehnologică.Maparea tehnologică reprezintă operaț ia de transformare a unei reprezentări logice cu nivele multiple într-o interconexiune de elemente logice dintr-o bibliotecă dată de elemente. Această operaț ie este o etapă importantă a sintezei sistemelor numerice cu ajutorul circuite lor FPGA iar calitatea circuitelor sintetizate depinde în mare măsură de această etapă. Maparea tehnologică implică două opera ț ii distincte: - recunoașterea echivalenţei logice între două func ț ii logice şi mai este numită şi potrivire care implică şi testarea echivalenţei şi asignarea intrărilor cât şi determinarea setului optim de por ț i echivalente din punct de vedere logic, ale căror interconexiuni reprezintă circuitul original. - iar a doua operaţie, care mai este numită şi acoperire, impliă găsirea unei reprezentari alternative a unei reţele booleene utilizând elemente logice care au fost selectate dintr-un set disponibil 3) Plasarea. În cadrul plasării, fiecărui fragment care va fi implementat într -un bloc logic trebuie să i se asigneze un bloc liber din cadrul circuitului. Plasarea este o etapă importantă a procesului de proiectare, deoarece în această etapă se iau cele mai importante decizii.Pentru plasare trebuie minimizate anumite funcț ii obiectiv, cu condi ț ia respectării unor restricț ii impuse de proiectant, de procesul de implementare sau de st ilul de proiectare. Cea mai importantă funcț ie obiectiv este lungimea totală a conexiunilor,care reprezintă o metrică utilizată pe scară largă pentru aprecierea calită ț ii plasării iar exemple de restricț ii sunt evitarea suprapunerii celulelor sau cerinț a că celulele să fie plasate într -o anumită suprafaț a rectangulara.O plasare este acceptabilă dacă se poate ob ț ine o rutare completă a circuitului în cadrul suprafe ț ei date. 4) Rutarea.Constă în determinarea cailor adecvate pentru interconexiunile dintre seturile de pini. Aceste căi adecvate minimizează func ț ia obiectiv data, supusă unor restric ț ii iar estricț iile pot fi impuse de proiectant, de procesul de implementare, de tipul circuitului sau de stilul de proiectare. Că exemple de func ț ii obiectiv se pot aminti reducerea lungimii totale a interconexiunilor, sau evitarea problemelor datorate întârzierilor semnalelor.Problemă de rutare este divizată de obicei în două subprobleme: - rutarea globală - rutarea detaliată.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Obiectivul rutării globale este de a se elabora un plan de rutare astfel încât fiecare conexiune să fie asignata unor regiuni particulare de rutare,în timp ce se încearcă minimizarea unei funcț ii obiectiv date iar r utarea detaliată se aplică apoi pentru fiecare regiune de rutare, și fiecărei conexiuni i se asignează piste particulare de rutare.
2.6 Implementări cu FPGA -uri 2.6.1 Implementări aritmetice cu FPGA
Actualmente s-a creat un interes foarte crescut în folosirea sistemelor FPGA pentru DPS abreviere din limba engleză de la Digital Signal Processor, în special pentru filtrarea digitală , implementarea de filtre FIR (Finite Impulse Response) şi IIR (Infinite Impulse Response) ce poate folosi avantajul unor constante dedicate implementate în hardware. Din cauză că majoritatea abordărilor legate de filtrare presupun folosirea adunării şi înmulţirii, atenţia este orientată în direcţia implementării eficiente şi în virgulă fixă, cât şi în virgulă mobilă. Multe din im plementările de început pe FPGA ale înmulţitoarelor foloseau structuri adaptate după cele din începuturile LSI (Large Scale Integration) şi aveau restricţii de arie chiar din primele dispozitive FPGA. Pe măsură ce capacităţile FPGA-urilor au crescut, tipurile înmulţitoarelor s-au diversificat, devenind astfel două categorii importante: în virgulă fixă şi în virgulă mobilă. De când s-au introdus FPGA-urile, aritmetica bit-serială a fost folosită intens pentru realizarea adunărilor şi înmulţirilor. Multiplicarea bit-serială este implementată folosind o matrice liniară sistolică, ce este potrivită pentru granularitatea ridicată a FPGA -ului. Cele 2 valori sunt intrări în înmulţitor, incluzând o magistrală paralelă în care toţi biţii sunt introduşi simultan şi una serială sau secvenţială în care biţii sunt introduşi în mod serial. Avantajul abordărilor bit-seriale este că necesităţile de comunicaţie sunt indepen dente de lungimea cuvintelor şi din acest motiv şi FPGA-urile de capacitate scăzută le pot folosi. Datorită naturii lor pipeline, înmulţitoarele bit-seriale au un raport arie-timp excelent şi din acest motiv multe din aceste structuri bit-seriale pot fi folosite în filtrarea impulsurilor finite. Din cauza dublei funcţionalităţi a tabelelor lookup - ca şi memorii, aritmetica distribuită a fost şi ea o implementare importantă pentru FPGA-urile bazate pe LUT-uri. În general, aritmetica distribuită necesită includerea unor constante fixe de intrare în circuitul hardware, astfel făcând posibilă pre-calcularea eficientă a tuturor ieşirilor posibile. Astfel, poate fi folosit un sumator rapid pentru sumarea produselor parţiale obţinute din urma citirii. În unele situaţii, este util ca LUT-urile să fie implementate ca RAM astf el încât noile constante să poată fi scrise în timpul execuţiei programului. În general, multiplicatoarele paralele implementate în FPGA-uri bazate pe LUT-uri au o viteză de 6 ori faţă de cele bit -seriale, dar cu o arie de 2.5 ori mai mare a siliciului. Im plementări specifice ale înmulţitoarelor paralele includ implementări fără transport şi pipeline paralel.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
2.6.2 Procesarea imaginilor
În procesarea imaginilor structura pipeline de prelucrare al informaţiei şi granularitatea ridicată a hardware-ului reconfigurabil este îndeosebi utilă deoarece p rocesarea imaginilor în timp real are nevoie de căi de date specializate şi pipeline-uri, ce pot fi implementate în structuri FPGA. Aplicaţii ca şi compresia imaginilor bazată pe filtrarea imaginilor cu transformate 1D şi 2D şi conversia imaginilor folosind operaţii DFT( Discrete Fourier Transform) sunt abordate frecvent. Construcţia distribuită a acestui sistem cu numeroase porturi de intrare şi ieşire s-a dovedit că este deosebit de utilă în obţinerea ratelor de transfer mari şi datorită eficienţei mari în implementarea sistolică a algoritmilor ce necesită operaţii repetate cu date deplasate în matrici liniare, imaginile pot propaga rapid prin pipeline-ul sistemului. Un sistem multi-FPGA este folosit pentru procesarea vizualizării obiectelor 3D prin proiecţia razelor luminoase. Aceste implementări au caracteristici bune în comparaţie cu arhitecturile clasice bazate pe sistemle cu microprocesor. 2.6.3 Procesarea semnalelor video
Procesarea semnalelor video necesită o lărgime de bandă mare şi capacitate de procesare mare a datelor obţinute de la echipamentul video analog sau digital, la fel ca şi procesarea imaginilor. Pentru îndeplinirea acestor cerinţe, platformele reconfigurabile au fost special modificate. 2.6.4 Procesarea sunetelor umane şi semnalului audio
Procesarea audio necesită o lăţime de bandă mai mică decât cea al videourilor şi al imaginilor, de aceea aplicaţiile audio pot beneficia de specializarea căii de date şi a pipeline-ului. Producerea ecoului audio este facilitată de schimbarea coeficienţilor în mod dinamic a filtrelor şi a parametrilor din memoria SRAM. Dispozitive auxiliare DSP sunt folosite doar pentru generarea acestor coeficienţi. Acest sistem poate atinge rate de până la 250 MHz în cadrul FPGA prin pipeline-izarea optimă şi intensă a fiecărui calcul. 2.6.5 Recunoaşterea obiectelor
Un alt aspect important al aplicaţiilor DSP aplicate pe platforme conţinând circuite FPGA este recunoaşterea obiectelor. Pentru aceasta, imaginile trebuie să fie separate în coloane şi comparate cu templateuri pre-calculate şi stocate într -o memorie locală împreună cu datele video din pipeline. Cu ajutorul comunicaţiei inter -vecini, pixelii parcurşi sunt comparaţi cu templateurile stocate în memorie sub formă de sume parţiale. După ce o imagine este spartă” în bucăţi mai mici, sistemul realizează o detecţie de nivel prin identificarea secţiunilor de imagine ce
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
corespund din templateuri obiectelor căutate. Folosirea FPGA-urilor oferă o şansă importantă şi unică de a adapta rapid recunoaşterea obiectelor la noi algoritmi. Pentru a obţinerea performanţelor ridicate, şabloanele sunt adaptate la detaliile tehnologiei folosite. 2.6.6 Codificarea informaţiilor
În sistemele de comunicaţie moderne, raportul semnal -zgomot (Signal-Noise Ratio, SNR) face din codarea datelor un aspect important al comunicaţiei. De aceea, codarea convoluţională poate fi folosită pentru a îmbunătăţirea acestui raport SNR, ţinând cont de constrângerile asupra lungimii codificării fără afectarea consumului de putere. Una din aplicaţiile ale arhitecturilor reconfigurabile în comunicaţii a implicat proiectul PAM - sistemul era folosit pentru urmărirea celor 214 stări posibile ale unui codificator Viterbi, permiţând calculul a 4 stări într -o perioadă de tact. Evaluarea rapidă a noilor algoritmi de codare facea posibilă flexibilitatea sistemului de procesare. Un decodificator Viterbi a fost creat şi implementat folosind 36 FPGA-uri, fiind capabil de rate de decodificare de până la 1Mbit/ s. 2.7 Compara ţie a FPGA cu alte tehnologii
Tehnologia ASIC (Application Specific Integrated Circuit) este conceptul cel mai apropiat de FPGA. Primele FPGA-uri erau mai lente, mai pu ţin eficiente energetic şi în general mai puţin funcţionale decât echivalentele lor fixe ASIC dar în urma creşterii volumului producţiei şi aplicaţiilor, a eforturilor de cercetare-dezvoltare si a perfecţionarilor tehnologice, performanţele FPGA s-au apropiat tot mai mult de cele ASIC. FPGA-urile reprezinta modalitatea cea mai sigura de validare a sistemelor complexe, care poate fi validari pre-siliciu şi post-siliciu şi a dezvoltarilor de tip firmware. Producatorii în acest fel pot evita costurile asociate testării directe a prototipurilor, caz în care fiecare greşeala de proiectare necesita realizarea unui nou prototip. Un alt concept asemanator este circuitelor FPGA sunt circuitele CPLD (Complex Programmable Logic Device) care au o complexitate mai mică decât a circuitelor FPGA. Unitatea lor componenta de baza este macrocelula, care implementeaza func ţii logice booleene în forma canonică disjunctiva, precum si alte operaţii logice mai specializate. Circuitele CPLD,în comparaţie cu circuitele FPGA, au o capacitate mai redusa, circuitele CPLD având zeci de mii de por ţi faţa de sute de mii sau chiar milioane câte pot avea circuitele FPGA. Dar se poate afirma ca FPGA continua linia de dezvoltare a PAL şi CPDL,nu atât prin creşterea numarului de arii cât mai ales prin atenţia acordata circuitelor de reconfigurare, care sunt de mare complexitate si performanţa.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA 2.8 Aplica ţii FPGA
Aplicaţiile FPGA includ unele domenii esenţiale pentru electronica moderna: a) DSP (digital signal processing) care uprinde o categorie vasta de aplica ţii de procesare digitala a semnalelor, dintre care cele mai cunoscute sunt: - procesarea semnalelor audio si radio; - recunoasterea vorbirii,a vocilor si a sunetelor; - radar si sonar; - procesarea ariilor de senzori; - analiza spectrala; - analiza statistica a semnalelor; - telecomunicaţii; -procesarea semnalelor biomedicale; - seismice. b)Aplicaţii în aviatică, aparatura militară, criptografie şi radioastronomie; c) Realizarea rapidă a prototipurilor ASIC; d) Imagistică FPGA se utilizeaza cu bune rezultate şi în cazul aplicaţiilor de calcul de înalta performanţă, cum ar fi în cazul calculului convoluţional şi procesărilor paralele, având performanţe superioare microprocesoarelor convenţionale. De obicei circuitele FPGA sunt recomandabile aplicaţiilor de tip vertical”, care nu sunt obiectul producţiei de masa.dar în cazul produselor de masa este preferabila apelarea la ASIC, deoarece FPGA utile doar în faza de realizare şi testare a prototipurilor. FPGA pot înlocui cu succes orice aplicaţie de tip microprocesor care nu necesită prelucrari în virgula mobila. Avantajele lor strategice ale circuitelor FPGA sunt calculul hardware paralel, reconfigurarea şi capacitatea de a îngloba cu usurinţa produse hardware si software eterogene. Datorită usurinţei circuitelor FPGA de adaptare la orice tip de periferice i se conferă statutul de principala platforma de dezvoltare a aplicaţiilor SoC (system on chip).
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
CAPITOLUL III
LABVIEW-FPGA
2.1 Introducere în LabVIEW
LabVIEW este un limbaj grafic de programare care permite dezvoltarea de aplicaţii utilizând pictograme, s pre deosebire de limbajele de programare textuale, în cadrul cărora instrucţiunile sunt cele care determină execuţia programului, LabVIEW-ul foloseşte, fluxul de date evidenţiat printr -o prezentare grafică adecvată. Numele utilitarului provine din faptul că National Instruments, corporaţia care a introdus programele LabVIEW, a denumit generic aplicaţiile Instrumente Virtuale , prescurtat VI abrevierea de la Virtual Instruments. LabVIEW-ul a avut în vedere, în primele sale versiuni, realizarea de programe care să substituie prin intermediul calculatorului o serie de instrumente şi aparate electronice, adesea imitând imaginile şi modurile de operare ale acestora. Denumirea limbajului grafic LabVIEW” provine dintr -o prescurtare din limba engleză: Laboratory Virtual Instrument Engineering Workbench”. Acest limbaj grafic este un mijloc de programare destinat controlului, analizei şi afişării datelor iar utilizarea acestui limbaj s-a remarcat în special in cazul instrumentaţiei de măsurare bazată pe tehnica de calcul. Programarea unui sistem de măsurare cu ajutorul calculatorului intr -un limbaj clasic consumă foarte mult timp iar interfeţele acestor limbaje clasice sunt de multe ori neclare şi greu de inţeles. Prin utilizarea limbajului grafic LabVIEW, rapiditatea programării creşte foarte mult datorită introducerii unei interfeţe grafice mai intuitive iar LabVIEW este unul dintre p rimele limbaje de programare grafică utilizate in aplicaţii de achiziţii de date cu tehnică de calcul.Cu ajutorul plăcilor de achiziţie de date, fluxul de date numerice sau analogice provenite de la diverse traductoare poat fi prelucrate sau analizate. Prelucrarea datelor numerice sau analogice prin intermediul limbajului de programare, permite crearea sau simularea unor aparate de măsură şi control numite si instrumente virtuale. Principalul avantaj al instrumentaţie virtuale faţă de un instrument clasic de măsurare constă in faptul că instrumentaţia virtuală poate fi uşor transformată prin programare iar instrumentele virtuale create prin programare pot fi simple aparate de măsură sau diferite dispozitive care permit controlul unor instalaţii de automatizare. Instrumentaţia virtuală reprezintă ceea ce era acum un deceniu lanţul de măsurare, la care s-a înlocuit partea de instrumente fizice cu instrumente virtuale. Un instrument virtual este compus dintr-o parte hardware şi o parte software care permite configurarea instrumentului după dorinţa utilizatorului.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA LabVIEW dispune de numeroase instrumente care asigură o configurare uşoară a unui anumit tip de VI. De asemenea, include sute de exemple de VI- uri corespunzătoare unor variate domenii de aplicaţii, pe care utilizatorul poate să le folosească ca atare şi să le încorporeze în VI-uri de mai mare complexitate potrivit scopului urmărit, sau le poate modifica pentru a le adapta particularităţilor aplicaţiei. LabView este un sistem complet pentru programare ştiinţifică şi include posibilităţi extinse de analiză, utile într -o arie largă de aplicaţii. Acest sistem de operare oferă o multitudine de funcţii integrate şi module adiţionale dedicate special analizei măsurătorilor şi procesării semnalelor iar cu aceste unelte, putem analiza măsurătorile pe măsură ce le efectuăm, extrage si procesa date, şi putem înzestra aplicaţiile cu capacitatea de a lua decizii bazate pe rezultatele măsurărilor. Folosind aceste funcţii, cu LabView nu mai este necesar să scriem propriul nostru algoritm pentru transformarea datelor brute în informaţie utilizabilă. Funcţiile incluse sunt distribuite astfel: a) primitive: -aperaţii aritmetice, operaţii logice -concatenare, formatare, partajare -data, timpul, alertarea utilizatorului -sin, cos,tg,ctg b) f uncţii statistice: -medie, abatere standard, variantă, mediană, histograme -regresie liniară, polinomială, exponenţială, reziduală c) procesarea numerică a semnalelor : -transformata lui Fourrier, putere spectrală, convoluţia, corelare -integrarea, diferenţierea, interpolarea, decimarea -generare impuls, puls, dreptunghi, triunghi, exponenţială, rampă d) filtre: -trece jos, trece sus, trece bandă, opreşte band e)metode numerice: - analiză factorială - adunare, scădere, trecere de la forma algebrică la forma polară şi invers 2.2 Principii de programare în LABVIEW
Mediul de programare LABVIEW este un mediu de programare grafică orientat pe obiecte, ce permite realizarea unor programe care să reprezinte instrumente de măsură virtuale iar utilizatorul acestora lucrand cu ele la fel ca şi cu instrumentele de măsură obişnuite.Fiecare program in LABVIEW are două componente principale: - o componentă ce reprezinta panoul frontal al aparatului de măsură virtual.Această componenta va permite citirea respectiv afişarea valorilor mărimilor măsurate şi introducerea unor date de intrare. Această componentă poartă numele de fereastra panoului cu instrumente (Panel) - o componentă care va descrie operaţiile pe care le realizează programul pornind de la datele de intrare şi valorile mărimilor achiziţionate pe diferite canale, iar această componentă poartă numele de fereastra blocului diagramă.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Fiecare din cele două componente este disponibilă simultan la realizarea şi rularea unui program în LabVIEW, programul fiind conceput să lucreze sub sistemul de operare WINDOWS, trecerea de la o fereastră la alta se realizează cu ajutorul mouse-ului”. Atunci cand se face salvarea programului ambele componente sunt salvate intr- un fişier cu extensia vi” iar apelarea unui fişier cu extensia vi” va determina deschiderea ferestrei panel. Pentru prima vizualizarea a f erestrei blocului diagramă este necesară selectarea opţiunii arată diagrama” din meniul windows” din bara de meniuri a ferestrei panoului cu instrumente. 2.3 Modulul de programare LabVIEW FPGA
Tehnologia NI RIO oferă o platformă flexibilă pentru a crea sisteme de măsurare şi control sofisticat iar pentru a putea configura FPGA se foloseşte modulul de programare grafic LabVIEW şi modulul LabVIEW FPGA pentru NI RIO. Un FPGA este un cip care este conceput din mai multe porţi logice neconfigurate. Flexibil arhitecturală şi cu software programabil de FPGA oferă beneficii, cum ar fi executarea de înaltă performanţă de algoritmi personalizaţi, capacitatea de luare a deciziilor rapide, şi executarea simultană a sarcinilor paralele. Astăzi, FPGA-uri apar în dispozitive, cum ar fi instrumente de masurare ţi control, automobile, avioane, copiatoare, şi multe alte domenii. În timp ce FPGA sunt adesea folosite în produsele de control industrial, funcţionalitatea FPGA nu a fost anterior accesibile în domeniul de control industrial. În figura 3.1 este prezentat modul în care interacţionează o secvenţă de program FPGA cu diferite placi de achiziţe NI RIO.
Fig.3.1 După terminarea secvenţei de programare, se va compila pe placa de achiziţe FPGA, iar în funcţie de complexitatea codului şi specificaţiile sistemului, compilarea poate varia de la minute la cateva ore. În momentul în care codul LabVIEW este comp ilat se crează o ,,gazdă a IV-ului, iar gazda IV-ului utilizează comenzile şi indicatoarele de pe panoul frontal al IV-ului FPGA pentru a transfera date între FPGA, de pe dispozitivul aferent şi motorul de procesare ,,gazdă”. Aceste obiecte pe panoul frontal sunt reprezentate ca regiştri de date din cadrul FPGA. Calculatorul gazdă poate fi un PC pe care este instalat sistemul de operare Windows iar în figura 3.2 sunt prezentaţi schmatic paşi care trebuie urmaţi pentru compilare pe FPGA.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
În prima etapa (fig.3.1.a) se crează un IV, în care se crează secvenţa de programare, pe urmă în a doua etapă (fig.3.2.b) se realizează testul de rulare a secvenţei de programare pentru a se evidenţia, eventual, erorile existente, şi de a putea trece la pa sul urmator(fig 3.1.c) unde se realizează compilarea. În ultima etapă (fig.3.1.d) se crează, după ce sa realizat compilarea, un IV bine definit,iar în momentul în care se doreşte realizarea de modificări în secvenţa de programare existentă se reiau în totalitate etapele de compilare.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
CAPITOLUL IV
SERVOMOTOARE
4.1 Definiţii. Caracteristici
Servomotoarele sunt micromaşini electrice al căror principiu de funcţionare este identic cu al maşinilor electrice dar care din punct de vedere constructiv prezintă o serie de caracteristici specifice, aceasta din considerentulde a realize anumiţi indici de performanţa solicitaţi de servosistem. Servomotoarele sunt motoare electrice speciale care pot fi de curent continu sau curent alternativ ce au o viteză de rotaţie reglabilă într -o gamă largă în ambele sensuri având ca scop deplasarea într-un timp prescris a unui sistem mecanic de-a lungul unei traiectorii date, realizând totodată şi poziţionarea acestuia la sfârşitul cursei cu o anumită precizie. Un servomotor este caracterizat de următoarele caracteristici: - caracteristici mecanice şi de reglaj liniare în tot domeniul de funcţionare; - moment de inerţie cât mai redus posibil; - inductivităţi foar te mici astfel încât constantele electromagnetice de timp ale acestora să fie cât mai mici; - r eversibilitatea în funcţionare; - lipsa fenomenului de ambalare spontană,prin acest fenomen înţelegânduse continuarea funcţionări unui motor atunci când comanda încetează; - rapoarte putere-greutate cât mai mari; - turaţii de funcţionare cât mai mari care sunt de ordinu zecilor şi a sute de mii de rot/min; - f uncţionare silenţioasă lipsită de zgomote şi vibraţii. 4.2 Clasificarea servomotoarelor
Servomotoarele electrice sunt folosite în cele mai diverse aplicaţii cum ar fi acţionarea roboţilor industriali universali, a maşinilor unelte cu comandă numerică, a perifericelor de
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA calculator, în acţionarea imprimantelor rapide, în tehnica aerospaţială, instalaţii medicale şi multe alte domenii datorită preciziei şi lejeritaţi cu care se poate realiza comanda servomotoarelor. În literatura, sub denumirea de servomotoare sunt cuprinse motoarele electrice executate special pentru a fi utilizate în sistemele automate de poziţionare şi care în general sunt de puteri reduse până la puteri de ordinul câtorva [kW]. Sistemele de reglare automată moderne impun servomotoarelor următoarele performanţe: -gamă largă de modificare a vitezei în ambele sensuri; - funcţionare stabilă la viteză foarte mică; -constante de timp cât mai reduse; -fiabilitate şi robusteţe ridicate; -raport cuplu/moment de inerţie cât mai mare; -suprasarcină dinamică admisibilă mare; -caracteristici de reglare liniare. Servomotorul într-un sistem automat, are rolul de a transformă un semnal electric de comandă într -un cuplu electromagnetic ce se finalizează într -o mişcare de rotaţie a arborelui sau, care antrenează mecanismul ce realizează operaţia dorită. Acesta se poate clasifică în funcţie de sistemul automat în care funcţionează: - caracterul sarcinii; - viteză; - puterea; - tensiunea; - frecvenţa de alimentare. Pentru alegerea unui servomotor se ar e în vedere cerinţele impuse de sistemul automat în care funcţionează iar principalele calităţi care trebuie să le aibă un servomotor sunt : - posibilitatea reglajului de viteză ; - stabilitatea şi siguranţă în exploatare ; - liniaritatea caracteristicilor de reglare - absenţa autopornirii ; - cuplu electromagnetic mare la pornire ; - putere de comandă mică ; - viteză de răspuns mare ; - gabarit şi greutate mică ; Conform principiului lor de funcţionare, servomotoarele electrice pot fi clasificate în: 1) Servomotoare de curent continuu, care se caracterizează prin posibilitatea de reglare a vitezei în limite largi, prin intermediul unei părţi de comandă electronică relativ simplă. Aceste servomotoare de curent continuu au caracteristici mecanice şi de reglaj practic liniare, cuplu de supraîncărcare mare, greutate specifică mică, moment de inerţie redus iar dezavantajele sunt legate de colector, fenomene de comutaţie, uzură şi scânteiere. Acest gen de servomotoare este preferat acolo unde se cere un reglaj continuu de viteză, când sarcina prezintă variaţii cu şocuri frecvente.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Din punct de vedere constructiv servomotoar ele de curent continuu prezintă aceleaşi elemente că şi maşinile de curent continuu clasice iar particularităţile constructive se regăsesc în: - gabarit redus ; - moment de inerţie redus ; - gama mare de viteză la care poate funcţiona Există trei tipuri constructive de servomotoare de curent continuu: a) cu rotor cilindric; b) cu rotor disc; c) cu rotor în formă de pahar a) Servomotoare cu rotor cilindric au o construcţie asemănătoare cu cea a maşinii clasice, singura diferenţă fiind forma alungită cu diametru mic. Performanţele realizate de aceste servomotoare sunt relativ reduse iar valorile minime pentru constanta de timp electromecanică, care este dependentă şi de gabaritul maşinii sunt aproximativ 20¸ 30 ms. Capacitatea de evacuare a căldurii este mică deoarece înfăşurările sunt amplasate în crestăturile oţelului rotoric. Din acelaşi motiv rezultă valori mari pentru constanta de timp electrică. Aceste motoare se utilizează de regulă la puteri sau cuplri mari. În figura 4.1 este prezentat un servomotor cu rotor cilindric si componentele aferente lui. .
Fig.4.1 Din punct de vedere constructiv, carcasa acestui servomotor se realizează din metal, prelucrarea realizându-se dintr-o singură prindere. Excitaţia este realizată cu magneţi din pământuri rare pe bază de Teluriu,Alnico,magnetite,Stronţiu, Neobimium şi altele. Câmpurile coercitive ale acestor magneţi sunt extrem de mari, asigurând câmpuri de excitaţie foarte puternice. Colectorul acestui tip de servomotor este realizat din aliaje de Cu şi Ni, iar periile din electrografit şi conţinut ridicat de Ag. Rulmenţii utilizaţi sunt de construcţii speciale cu frecări şi zgomot minim.Acest tip de servomotor cu rotor cilindric, funcţionează până la turaţii de ordinul maxim 20 000 rot/min datorită greutăţii înfăşurărilor şi dificultăţilor de echilibrare.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
Servomotoarele cu rotor cilindric se împart astfel: -cu excitaţie electromagnetica, care sunt construite în general pentru puteri mai ridicate iar cestea sunt înlocuite tot mai frecvent cu motoare care au magneţi permanenţi şi circuitul magnetic al acestui tip de motor este realizat din tole de oţel electrotehnic. - cu magneţi permanenţi care se deosebesc constructiv în funcţie de materialul magnetului utilizat iar datorită câmpului coercitiv redus,magneţii au lungimi mari şi ,în cele mai multe cazuri, magnetizarea se face îninteriorul maşinii cu ajutorul unor bobine speciale plasate în jurul magneţilorpermanenţi. - hibride, având ambele tipuri de excitaţie. Motoarele din categoria „‟hibridă‟‟ cu magneţi permanenţi şi excitaţie electromagnetica sunt utilizate unde se cere că co eficientul de tensiune-cuplu al servomotorului să fie variabil în anumite limite. Geometria rotorului acestor servomotoare este întrucâtva diferită de aceea a maşinilor clasice, pentru reducerea momentului de inerţie. Comandă servomotoarelor de curent continuu se face prin modifica rea tensiunii de alimentare rotorică iar tensiunea variabilă se obţine cu tranzistoare de putere sau tiristoare. Semnalele de comandă a servomotoarelor sunt amplificate de următoarele tipuri de circuite care sunt numite şi amplificatoare -liniare; -cu modulaţie în lăţime; -redresor comandat.
b) Servomotor cu rotor disc. Principiul constructiv al servomotorului cu rotor disc este prezentat în figura 4.2
Fig.4.2
Rotorul servomotorului este realizat dintr-un disc din răşină epoxidică în care sunt înglobate înfăşurările indusului. Acest disc este solidar cu arborele 1 iar către centrul discului i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA este realizat colectorul din lamelele ce formează înfăşurarea. Pe acest colector calcă periile. Periile sunt plasate axial şi nu radial ca la motorul de c. c. obisnuit ,de unde şi denumirea de servomotor cuîntrefier axial. Câmpul de excitaţie al servomotorului cu rotor disc este realizat cu ajutorul unor magneţi permanenţi cu magnetizare axială şi plasaţi pe inelele feromagnetice. Pe capătul dinspre rotor există piesele polare ce au rolul de a uniformiza câmpul magnetic în întrefier.La fel ca şi la servomotorul cu rotor cilindric, întrefierul este dublu şi relativ mare, rezultând perfomanţe energetic mai slabe. La acest servomotor lipseşte fierul de pe indus, rezultând de aici moment de inerţie şi inductivităţi mici. Grosimea discului nu depăşeşte 3-4 mm, şi din această cauta rezultă o bună ventilaţie a conductoarelor, motiv pentru care densităţile de curent adoptate sunt ridicate de odinul a 30÷40 A/mm2 , iar de multe ori ventilaţia este forţată. Aceste servomotoare sunt caracterizate de o sensibilitate crescută la şocuri şi vibraţii. Toate tipurile de servomotoare au periile realizate din electrografit cu conţinut mare de Cu şi Ag. Rulmenţii acestui tip de servomotor sunt de construcţie specială cu frecări interne foartemici şi care asigură în acest fel o tensiune de dezlipire foarte mică. c) Servomotor cu rotor în formă de pahar Servomotorul cu rotor în forma de pahar este realizat dintr-o carcasă ce are prevăzută la interior magneţii permanenţi, magnetizaţi radial. Aceşti magneţi sunt realizaţi din materiale magnetice ce realizează câmpuri colective foarte puternice iar circuitul magnetic al acestor magneţi permanenţi ce formează câmpul de excitaţie este format din piesele polare realizate din fier moale şi care servesc la închiderea circuitului magnetic
Fig.4.3 Servomotorul cu rotor în forma de pahar este realizat dintr-o carcasă ce are prevăzută la interior magneţii permanenţi, magnetizaţi radial. Aceşti magneţi sunt realizaţi din materiale magnetice ce realizează câmpuri colective foarte puternice iar circuitul magnetic al acestor i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA magneţi permanenţi ce formează câmpul de excitaţie este format din piesele polare realizate din fier moale şi care servesc la închiderea circuitului magnetic. Rotorul servomotorului cu rotor în forma de pahar este plasat pe arbore şi este constituit din colector şi înfăşurările indusului. Servomotor ul cu rotor în formă de pahar are ca particularitate înfăşurările care sunt realizate din conductoare înglobate de regulă într -o răşină epoxidică. Acest rotor se roteşte în întrfierul creeat între magneţii permanenţi, ce constituie un stator exterior şi circuitul magnetic realizat din piesele polare ce constituie un stator interior iar capetele înfăşurărilor sunt conectate la colectorul pe care calcă periile. Rotorul se roteşte în carcasa servomotorului datorită rulmenţilor şi datorită acestui fapt înfăşurările indusului nu sunt plasate în crestăturile unui miez magnetic ci sunt ,,în aer”. Inductivitatea indusului acestui servomotor cu rotor în forma de pahar este foarte mică, la fel şi cu constanta de timp electromagnetică . Dezavantajele acestui servomotor constau în aceea că este sensibil la şocuri mecanice şi în procesul de fabricaţie trebuie să fie bine echilibrat,de regulă au nevoie de răcire forţată. Uzual constantele de timp sunt de ordinul milisecundelor până la maxim câteva zeci de milisecunde. 2) Servomotoare asincrone sunt în pr ezent în tot mai mare măsură răs pândite deoarece elimină dezavantajele servomotoarelor de curent continuu legate de sistemul colector -perii, fiind de asemenea atractive prin robusteţea, simplitatea şi preţul lor. Dezavantaje servomotoarelor asincrone este legate de randament, factor de putere, greutate şi nu în ultimul rând procedee de comandă mai complicate decât cele ale servomotorului de curent continuu. Servomotoarele asincrone se asociază cu convertoare statice, obţinându -se domenii largi de variaţie a turaţiei,în aplicaţii speciale la puteri mici s-au obţinut turaţii de peste 100.000 [rot/min]. Servomotoare asincrone trifazate: servomotoarele asincrone trifazate sunt similare cu maşinile asincrone trifazate clasice, dar prezintă unele particularităţi constructive impuse de natura aplicaţiei industriale în care sunt folosite, de regimul dinamic la care trebuie să răspundă, de domeniul frecvenţelor la care trebuie să funcţioneze. Servomotoare asincrone trifazate: servomotoarele asincrone trifazate sunt similare cu maşinile asincrone trifazate clasice, dar prezintă unele particularităţi constructive impuse de natura aplicaţiei industriale în care sunt folosite, de regimul dinamic la care trebuie să răspundă, de domeniul frecvenţelor la care trebuie să funcţioneze. Un exemplu unde sunt utilizate servomotoarele asincrone este la acţionarea platformelor giroscopice, iar rotorul trebuie să aibă un moment de inerţie mare şi din această cauză se adoptă o construcţie inversată, cu rotorul în exterior cu colivie şi statorul interior, conform figurii 4.4.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Servomotoarele asincrone bifazate se utilizează ca elemente de execuţie în sistemele de automatizare, datorită unor avantaje pe care le prezintă în raport cu alte tipuri de servomotoare, şi anume: - constructie simplă şi robustă; - absenţa parazitilor radiofonici; - stabilitate bună în timp a caracteristicilor de funcţionare; - prezenţa fenomenulul de autofrânare. Principalele dezavantaje ale servomotoarele asincrone bifazate sunt: - dimensiuni de gabarit mai mari pentru o putere egală cu a altor tipuri de servomotoare; - randament şi factor de putere scăzute; - cuplul de pornire relativ mic în comparaţie cu servomotoarele de current continu. Particularităţi constructive ale servomotoarelor asincrone bifazate. Din punct de vedere constructiv, statorul este realizat din tole, cu crestături, în care se introduc două înfăşurări decalate la 90 grade electrice. Una din înfăşurări, numită înfaşurare de excitaţie, este conectată la reţeaua monofazată, iar cealaltă, numită de comandă , se alimentează de la aceeaşi sursă sau de la o sursă separată. Cele două surse sunt de aceeaşi frecvenţă, dar pot fi şi de frecvenţe diferite, dacă se cere o comandă reversibilă. La motoarele de foarte mică putere, statorul poseda o înfăşurare continuă, iar din patru puncte, situate la periferie, la unghiul electric de π/2 radiani se scot prize, două pentru înfăşurarea de excitaţie ,la p radiani respectiv, alte două pentru înfăşurarea de comandă. Rotorul servomotoarelor asincrone poate fi: - cu colivie (figura 4.5 a); - în formă de pahar neferomagnetic ( figura 4.5 b); · -sub forma de cilindru gol feromagnetic(figura 4.5 c).
Servomotoareor asincrone cu rotor pahar din material neferomagnetic.Grosimea paharului este de 0,2-0,3 mm iar pentru închiderea liniilor de câmp se utilizează un stator interior din tole feromagnetice. Întrefierul total al maşinii, compus din întrefierul dintre statorul exterior
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA şi rotorul pahar, grosimea paharului, respectiv, întrefierul dintre rotorul pahar şi stat orul interior, are valori mari: 0,7-1 mm. Din acest motiv, solenaţia necesară menţinerii fluxului în maşină este destul de mare, curentul de magnetizare ajungând la 90% din curentul nominal. Avantajul principal al servomotoarelor cu rotor în formă de pahar constă în absenţa miezului feromagnetic şi a crestăturilor rotorice, fapt ce duce la eliminarea cuplurilor parazite şi a fenomenelor de prindere magnetică” şi totodată, la un reglaj fin al vitezei, fără şocuri. Servomotoareor asincrone cu rotor din material feromagnetic, paharul cilindric are o grosime de 2 – 3 mm şi este fixat de arbore cu ajutorul unor rondele din oţel care joacă rolul atât de inel de scurtcircuitare cât şi de cale de închidere a liniilor de câmp magnetic. Cu toate că întrefierul este mic curentul de magnetizare are valori mari din cauza saturaţiei puternice a cilindrului rotoric.. Deoarece, la astfel de maşini pot apărea cupluri de atracţie magnetică unilaterală, cupluri parazite, vibraţii, iar momentul lor de inerţie este mărit faţă de soluţia cu rotor pahar, utilizarea servomotoarelor cu rotor feromagnetic în sistemele de automatizări este restrânsa şi aplicată doar acolo unde nu se cer viteze de răspuns prea mari. 3) Servomotoarelor sincrone construiesc într-o gamă foarte largă de puteri, de la zecimi de watt până la zeci de kilowatti şi într -o plajă largă de turaţie. Din această categorie mai fac parte şi servomotoarele de curent continu făra perii cât si servomotoarele pas cu pas. Principala caracteristică a servomotoarelor sincrone este dată de faptul că frecvenţa tensiunii de alimentare se află în raport constant cu viteza lor de rotaţie, indiferent de gradul de încărcare al maşinii şi ca urmare a acestei proprietăţi, utilizarea servomotoarelor sincrone este indicată în sisteme automate de poziţionare la care viteza de rotaţie a maşinii se doreşte a fi menţinută riguros constantă sau direct proporţională cu frecvenţa de comandă. Categoria servomotoarelor sincrone cuprinde toate tipurile maşinilor sincrone asociate cu convertoare statice iar clasificarea acestora se poate face după diverse criterii: a)după principiul de conver sie al energiei: - servomotoare sincrone cu magneţi permanenţi; - maşini sincrone cu reluctanţă variabilă; - maşini sincrone cu histerezis. b) după felul alimentării: - servomotoare cu alimentare continuă; - servomotoare cu alimentare discontinuă ,motoarele pas cu pas. c) după tipul comenzii: - servomotoare cu comandă din exterior; - servomotoare autopilotate. Servomotoarele sincrone prezintă cateva avantaje faţă de motoarele sincronice clasice: - absenţa contactelor alunecătoare, ceea ce măreşte viteza de funcţionare, reduce frecarea, nivelul de zgomot şi uzura, îmbunătăţind fiabilitatea; - întreţinere uşoară şi posibilitatea funcţionării în medii explozive. Servomotorul pas cu pas este un convertor electromecanic ce transformăun impuls de tensiune intr-o deplasare incrementală. În funcţie de tipul constructiv, această deplasare poate fi unghiulară în cazul servomotoarelor rotative şi axială în cazul servomotoarelor liniare.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Servomotoarele pas cu pas sunt insoţite de circuite electronice de procesare a impulsurilor aplicate şi de comandă a fazelor servomotorului. Prin cuantificarea acestor deplasări incrementale se pot realiza poziţionări de precizie fără a utiliza bucle de reacţie după poziţie sau traductoare incrementale de poziţie. Servomotoarele pas cu pas se intalnesc in 3 variante: – servomotoare pas cu pas cu magneţi permanenţi sau rotor active; – servomotoare pas cu pas cu reluctanţă variabilă; – servomotoare pas cu pas hibrid.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA CAPITOLUL V
BRAŢ ROBOTIC
Un braţ robotic este un tip de braț mecanic, de obicei, programabile, cu func ț ii similare unui braț de om. Braț ul poate fi suma totală a mecanismului sau poate fi parte a unui robot mult mai complex. Braţul robotic este realizat prin îmbinari ce permit fie mi șcare de rotaț ie, cum ar fi cazul unui robot articulat, sau de translaţie Clasificare: - Robot Cartezian. Este un robot al cărui bra ț are trei articulatii prismatice şi a căror axe coincide cu un coordonator cartezian. - Robotul cilindric: folosit pentru operaț iunile de asamblare, manipulare la ma șini-unelte, şi sudare, - Robotul Polar (cum ar fi Unimate). Este folosit pentru manipulare de ma șini-unelte, de sudare cu gaz și sudarea cu arc electric. Este un robot, a căror axe formează un sistem de coordonate polare. - Robot SCARA: folosit la aplicaţii de hidroizolare, opera ț iuni de asamblare și manipulare de mașini-unelte. - Robotul articulat: folosit pentru operaț iunile de asamblare, de sudare cu gaz, sudarea cu arc și vopsire prin pulverizare. Este un robot al cărui bra ț are cel puț in trei articulaț ii rotative. -Robotul paralel: Este un robot ale cărui bra ț e au articulatii prismatice sau rotative.
5.1 Construcţia braţului robotic. Braţul robotic a fost confecţionat din comatex, datorita maleabiliţi de modelare a acestui tip de material. În costrucţia braţului robotic sa folosit cinci servomotoare digitale, o placă de achiziţie sbRIO 9631, riglete pentru a realiza conexiunile iar petru acţionarea mechanică a degetelor s-a folosit fire de oţel datorită rigidităţii pe care le oferă. Rigleta este o banda dreptunghiulară sau patrată din carton, metal sau plastic care
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA este folosită la realizarea conexiunilor. Prin intermidiul acestei riglete sa realizat conexiunile de la cele cinci motore la placa de achiziţi. În figura 5.1 este prezentată rigleta folosita la realizrea conexiunilor. În figura 5.2 este prezentat braţul robotic.
Fig.5.2 5.2 Secvenţa de programare
Secvenţa de programare a braţului robotic s-a realizat cu ajutorul modulului de programare LabVIEW FPGA. Proiectul ,,Explorer ” a fost introdus în LabVIEW pentru a oferi utilizatorilor o mai buna modalitate de organizare a fişierelor . De la lansarea iniţială Proiectul ,,Explorer ”, National Instruments a inclus mai multe caracteristici noi, ca urmare a feedback-ul clientului. În figura 5.3 este prezentat Proiectul ,,Explorer ” denumit şi ,,arborele” secvenţei de programare. -a-reprezintă ,,arborele” secvenţei de programare şi numele generic al secvenţei de programare; -b-reprezintă subIV-urile reprezentative secvenţei de programare; -c-reprezintă placa de achiziţie sbRIO şi este afişat IP generat placii de achiziţie, în momentul realizării secvenţei de programare. În momentul în care placa poate fi utilizată şi se realizează conexiunile, utilizatorul va fi informat prin trecerea placii de achiziţie din starea neconectat în starea conectat; -d- reprezintă locul unde se realizează compilarea şi locul unde se
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA realizează IV principal; -e-reprezintă ieşirile şi intrarile analogice; -f-reprezintă ieşirile şi intrările digitale -g-reprezintă IV principal al secvenţei de programare. Secvenţa de programare a controlului celor cinci motoare este prezentată panoul frontal în figura 5.4. şi respectiv diagrama bloc ce aparţine secvenţei de programare în figura 5.5.
-a- reprezintă indicatorii aferenţi diagramei bloc; -b- reprezintă controale şi se gasesc în paleta ,,Controale” respectiv subpaleta ,,Numeric”. Componetele aferete secvenţei de programare din diagram bloc sunt urmatoarele:
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA -a-While Loop,care este prezentată in figura 5.1, se gaseşte in paleta ,,Funcţii” şi subpaleta,,Structuri”. Structura de control repetitivwhile” permite efectuarea calculului iterativ atunci când nu se cunoaşte numărul de repetări. Oprirea ciclului de iteraţii este condiţionată boolean: repetarea se executa când valoarea booleană este adevărată iar oprirea executării structurii este comandată de o variabilă tip boolean opreşte dacă este fals”. Prin intermediul registrelor de transfer se permite furnizarea rezultatelor între iter aţii seccesive al instrucţiunii repetitive. Definirea şi utilizarea registrelor de transfer pentru structura Do-While” este identică cu cea prezentată la instrucţiunea For”. Auto indexarea nu se aplică implicit pentru un tunel de pe structura Do-While”, ca şi în cazul instrucţiunii For: programatorul trebuie să indice explicit pentru fiecre tunel, dacă se doreşte utilizarea auto-indexării. Numărul de repetări ale corpului modului Do-While” este controlat, în primul rând, de valoarea logică Adevărat” a expresiei de oprire şi mai puţin de dimensiunea unui tablou furnizat subdiagramei printr-un tunel de intrare, care foloseşte auto indexarea. -b- Structura secvenţială (Sequence). Este prezentată în figura 5.3,şi se găseşte în paleta ,,Funcţii”, subpaleta ,,Structuri”. Atunci când dispune de mai multe ferestre, fiecare dintre acestea cu pro priul flux de date, o structură secvenţială execută în ordine ferestrele respective. Atunci când este dispusă în diagramă, o structură secvenţială conţine o singură fereastră, aceasta fiind totodată şi fereastra curentă .Deschizând meniul propriu al structurii şi alegând una din opţiunile ,,Adauga cadru dupaă” sau ,,Adauga cadru înaonte”, se poate adaugă o fereastră după sau înaintea celei curente. Dacă o structura secvenţiala conţine mai mult de o fereastră, atunci ferestrele primesc indici începând cu 0, iar pe latura superioară a conturului structurii apare un selector prin intermediul căruia se poate trece de la o fereastră la altă. Se poate crea o dublură a ferestrei curente, selectând din meniul propriu al structurii opţiunea,,dublează cadru”. Fereastră curentă poate fi ştearsă, cu o pţiunea ,,Ştergere cadru”. Atunci când o structura secvenţială conţine cel puţin două ferestre, ordinea acestora poate fi schimbată: se modifică indicele ferestrei curente, selectând opţiunea ,,Make This Frame” apoi noul indice. Atunci când se doreşte transferul unei valori între două ferestre ale unei structuri secvenţiale,prin selectarea opţiunii,,adauga structura secvenţială locală”se dispune pe conturul structurii o variabilă locală a acesteia. Dacă, în una din ferestrele structurii, se conectează o valoare la variabilă locală, fereastră respectivă devine fereastră sursă pentru acea variabilă. În acea fereastră, simbolul variabilei locale conţine o fereastră îndreptată spre exteriorul structurii. În ferestrele anterioare ferestrei sursă, simbolul variabilei locale devine haşurat, semn că valoarea variabilei locale nu este accesibilă în acele ferestre. În ferestrele de după fereastră sursă, simbolul variabilei locale va conţine o săgeata îndreptată spre interiorul structurii. În aceste ferestre, valoarea transferată prin intermediul variabilei locale poate fi utilizată în fluxul de date. O structura secvenţială poate dispune de mai multe variabile locale. Într-o structura secvenţială pot fi utilizate valori provenite din fluxul de date exterior. O valoare introdusă din exterior într -o structura secvenţială va putea fi utilizată în oricare dintre ferestrele structurii. Dacă, într -o anumită fereastră, se face o legătură din structura secvenţială în exteriorul acesteia, la ieşirea respectivă nu va mai putea fi legată o altă valoare din
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA altă fereastră. Indiferent de indicele ferestrei în care s-a făcut o legătură spre exterior, valoarea va părăsi ieşirea de pe conturul structurii Sequence doar după executarea ultimei ferestre. Indicator (f) şi control (c): efectul acestora fiind de adăugare , în diagramă sau în panou, după caz,a unei constante sau a unui element de control sau indicator de acelaşi tip cu elementul al cărui meniu propriu a fost deschis -d- Tick Count: se găseşte in paleta cu ,,Funcţii”, subpaleta ,,Time & Dialog”.Această opţiune are rolul de a determină numărul de milisecunde indicat de ceasul intern al computerului, considerat de la momentul la care calculatorul a fost pornit. -e- Nod de intrare şi ieşire FPGA. Se găsesc în ,,arborele” secvenţei de programare şi se foloseşte ca nod de intrare şi ieşire digitale. -g- Reprezintă o operaţie de tip boolean care poate lua doua valori: adevărat şi fals. -h- Wait (ms): Se găseşte in paleta cu ,,Funcţii”, subpaleta ,,Time & Dialog” şi are rolul de a întrerupe execuţia programului pentru intervalul de timp specificat. -i- Constante de tip "Numere intregi". Constantele numerice sunt foarte des utilizate pentru a seta o serie de parametri pentru diverse functii si controale utilizate in aplicatiile LabView. În figura 5.6 este prezentat un panou frontal al unui subIV care reprezintă simularea 3D a sistemului mechanic.
-a- Controlul imaginii 3D: afişează reprezentări grafice ale obiectelor 3D. O scena 3D este un obiect sau o colecţie de obiecte 3D care se pot vedea în controlul imagine 3D sau într-o fereastră separată iar caracteristicile acestora pot fi setate. i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
-b,c- Grup de Clustere: reprezintă elementele de date de tipuri mixte. Un exemplu de un cluster este pachetul de erori LabVIEW, care combină o valoare Boolean, o valoare numerică, şi un şir. Un grup este similar cu o înregistrare sau o structură în limbaje de programare bazate pe text. Gruparea mai multor elemente de date în grupuri elimină dezordinea pe diagrama bloc şi reduce numărul de terminale. Cele mai multe grupuri de pe diagrama bloc au conectorii de culoare roz . -d- reprezintă un control : efectul acestuia fiind de adăugare , în diagramă sau în panou, după caz, a unei constante sau a unui element de control de acelaşi tip cu elementul al cărui meniu propriu a fost deschis. În figura 5.7 este reprezentată diagrama bloc a simulării 3D a sistemului mechanic.
-a- Invoke Node: Invocă o metodă sau acţiune de referinţă. Cele mai multe metode au parametrii asociaţi. -b- Variabilă globală: O variabilă globală este un IV care are numai fereastră panou ce conţine toate elementele care se doreşte să fie accesibile şi altor subIV -uri. Pentru crearea unei variabile globale se procedează astfel:
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA - din caseta de structuri se selectează structura global şi se poziţionează pe fereastra diagramă iar la eliberarea mouse-ului va apărea pe fereastra diagramă acelaşi simbol ca şi al variabila locală; - se selectează din meniu-ul contextual asociat variabilei opţiunea “deschide panou frontal” care are ca urmare crearea unei ferestre panou asociată variabilei globale; - se poziţionează elementele de intrare şi ieşire specifice variabilei cu aceleaşi etichete sau etichetate specifice şi se salvează variabila globală; Pentru utilizarea elementelor de intrare-ieşire dintr -o variabilă globală într -un alt IV se selectează din caseta de funcţii opţiunea “Select a VI” şi se selectează numele IV-ului în care a fost salvată variabila globală şi se poziţionează acest IV pe fereastra diagramă şi se selectează elementele utilizate; -c- şterge toate comenzile aplicate anterior la un obiect într- o scenă 3D şi efectuează o trecere absolut de la o poziţie efectuată la poziţia iniţială a obiectului; -d- reprezintă stiluri de controale şi indicatoare; -e- reprezintă grupul de clustere prezente pe panoul frontal; -f- reprezintă operaţii cu variabile. Cu variabilele stabilite într-o aplicaţie, se pot realiza diverse operaţii în funcţie de necesitaţile aplicaţiei. Pentru fiecare operaţie există câte un simbol specific. Toate simbolurile pentru operaţii sunt grupate înpaleta ,,Funcţii”subpaleta ,,Numeric” . -g- reprezintă pictograma graficului 3D de pe panoul frontal. -h- reprezintă stiluri de controale şi indicatoare -j-este folosit pentru a asambla un grup de elemente individuale sau înlocui elemente întrun cluster existent. Funcţia Bundle se referă la elemente de cluster şi de poziţia lor în grup. Din acest motiv, utilizând funcţia Bundle pentru a înlocui elemente de cluster existente presupune că numărul de terminale de intrare să corespundă cu numărul de elemente din cluster de intrare. 5.2 Servomotor HK digital MG Micro
Pentru acţionarea modulelor sistemului robotic, una din soluţiile fiabile o constituie servomotoarele. În această etapă, s-a proiectat, realizat practic şi s-a testat o schema originală având în structura un servomotor HK digital MG Micro. Caracteristicile mecanice, electrice şi cele geometrice ale acestui servomotor sunt prezentate în tabelul 1 şi figura 5.8 respectiv figura 5.9. Tabel1. Caracteristicile servomotorului HK digital MG Micro Gabarit (mm) 28x13x30
Masă (g)
Cuplul la 4.8 V (kg/cm)
19
2.5
Viteza de tranziţie 0.17sec/60°
Material angrenaj servo
Tensiunea (V)
metal
4.8-6
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
În figura 5.10 este prezentat dimensiunile servomotorului HK digital MG Micro A(mm) B(mm) C(mm)
33 28 30
D(mm)
13
E(mm)
40
F(mm)
19
Ultimii ani au fost marcati de evoluţii reprezentative în ceea ce priveşte dimensiunile, viteza de rotaţie şi cuplul motor al motoarelor de tip servo, a caror structură de bază este dată în figura5.10. Ultima îmbunătăţire o constituie dezvoltarea servomotoarelor digitale ce au avantaje functionale semnificative faţă de servomotoarele standard. În principiu, un servo digital este asemănător cu un servomotor standard, cu excepţia unui microprocesor care analizează semnalele de intrare şi controlează motorul. Una din diferenţe constă în modul de procesare a semnalelor de intrare şi transmiterea puterii iniţiale de la servomotor, reducând timpul mort, crescând rezoluţia şi generând un cuplu de menţinere superior. La motoarele servo convenţionale, în faza de repaus, nu se alimentează servomotorul dar în cazul servomotoarelor digitale, când este primit o comanda de pornire a servo-motorului, sau când se aplică un cuplu la axul de ieşire, servo-ul răspunde prin alimentarea cu tensiune a motorului. Această putere care este de fapt tensiunea maxima, este pulsată sau transmisă on/off cu o rată fixă de 50 de cicluri pe secunda, generând mici impulsuri de tensiune. Prin creşterea duratei fiecărui impuls se creează un control al vitezei, până când se aplică motorului tensiunea maximă, accelerând servo- braţul spre noua poziţie. Capătul de cursa a servo-ului este semnalat şi transmis componentelor electronice ale servo-ului, şi astfel se reduc impulsurile de putere prin scurtarea duratei lor până când nu mai exista tensiune şi servomotorul se opreşte.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
În conformitate cu cele prezentate în figura 5.11, un impuls de lăţime scurtă On”,urmat de o pauza scurtă, nu constituie pentru motor o comanda să se întoarcă, cu condiţia să nu fie mai lunga pauza. Aceasta înseamnă un control al mişcării, care la întoarcere trimite mici impulsuri iniţiale spre motor, este foarte ineficient, si de aceea este denumităbanda moartă”.
Caracteristica moment/impuls a servomotoarelor este prezentat în figura 5.12 şi se poate observa comparativ variaţia momentului în timp pentru servomotoarele standard şi servomotoarele digitale.
Avantajele evidente ale servo-digitalelor sunt: - În primul rând, este posibil primirea de semnale de intrare şi să aplice parametrii prezenţi la acest semnal, înainte de a-l trimite in impuls spreservomotor. Aceasta înseamnă că
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA durata impulsului, datorat însumării tensiunii trimise să activeze motorul, poate fi ajustată prin programarea microprocesorului pentru a potrivi funcţiile cerute şi mai mult pentru a optimiza performanţele servo-ului. -În al doilea rând, un servomotor digital trimite impulsuri către motor la o frecvenţă semnificativ mai mare. Aceasta înseamnă că, motorul în loc să primească 50 de impulsuri /secunda va primii 300 impulsuri/secunda. Deşi durata pulsurilor se reduce direct proporţional cu frecvenţa, pentru că tensiunea la motor se schimbă mult mai frecvent, motorul are tendinţe mai mari de a se întoarce. Acest lucru înseamnă că servomotoarele digitale vor răspunde mai rapid la comenzi.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
5.3 SbRIO9631
În figura 5.13 este prezentată placa de achiziţie SbRIO9631.
Placa de control şi achiziţie NI sbRIO-9631 conţine un procesor în timp real, un FPGA reconfigurabil de către utilizator şi o placă de bază. Din specificaţii menţionăm un procesor industrial de 266 [Mhz], un FPGA 2M Xilinx Spartan, 110 linii digitale de 3.3[V] (tolerant 5[V]/compatibil TTL), 32 canale de intrare analogică individuale/16 diferenţiale pe 16 biţi, şi patru canale de ieşire analogice pe 16 biţi la 100 [kS/s] (100.000 eşantioane pe secundă). De asemenea, conţine trei conectoare pentru extensie I/O folosind module de I/O NI C Series. Placa sbRIO-9632 of eră o gamă de operare a temperaturii între -20 şi 55[°C] şi include o sursă de tensiune cu interval între 19 şi 30V, 68 [MB] DRAM pentru operaţii incorporate şi 256[MB] memorie nevolatilă pentru stocarea programelor şi pentru logarea datelor. FPGA-ul reconfigurabil poate fi programat rapid folosind modulul LabVIEW FPGA pentru control de mare viteză, temporizare I/O modificată şi procesare de semnal paralelă. LabVIEW conţine drivere interne pentru manipularea transferului de date dintre FPG şi procesorul în timp real Figura 5.14 evidenţiază fiecare compotentă ce se gaseşte pe plca de achiziţe sbRIO.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
1-conector C Serial 2-gaura de montareplacă 3-conectori pentru ieşiri şi intrări analogice 4-conector C Serial 5-intarări digitale, 24 V 6-conector C Serial 7-ieşiri digitale, 24 V 8-ieşiri şi intrări digitale, 3.3 V 9- baterie de rezervă 10- intrărişiieşiridigitale, 3.3 V
11- port Enternet 12-port serial 13-comutatoare 14-buton de reset 15-clemă pentru nul 16-LED-uri 17-sursa de alimentare 18-ieşiri şi intrăridigitale, 3.3 V 19-ieşiri şi intrăridigitale, 3.3 V
Placa de achiziţie sbRIO este prevăzută cu 4 LED -uri care au rolul de a confirma, sau infirma buna funcţionalitate a placii de achiziţie după cum urmează: - dacă un sigur LED luminează la câteva secunde înseamnă ca placa de achiziţie nu este configurată; - dacă luminează doua LED-uri înseamnă că placa de achiziţie a detectat o eroare în software-ul său. Aceasta eroare apare de obicei atunci când încercarea de actualizare a softwarului este întreruptă şi necesită reinstalrea acestuia; - dacă lumineaza trei LED-uri înseamnă că dispozitivul este în modul de siguranţă; - dacă luminează patru LED-uri înseamnă că software-ul dispozitivului sa prăbu șit de două ori fără a fi resetat. Aceasta eroare apare de obicei atunci când aparatul rămâne fără memorie; -când LED-urile luminează continuu indică faptul că dispozitivul a detectat o eroare irecuperabil şi dispozitivul are nevoie de reformatare . În figura 5.14 ste prezentat modul în care sa realizat conectivitatea la pini.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA Fig.5.14 Pentru a se putea realiza conexiunea celor cinci servomotoare sa folosit portul 8, respectiv intrările şi ieşirile de la DIO1 până la DIO5. Alimentarea servomotoarelor sa relizat la portul 9,respectiv intrările şi ieşirile DIO7. 5.4 Configurarea IP-ului la sbRIO 9631.
În monentul în care se accesează modulul LabVIEW FPGA este necesar configurarea adresei IP. Modul de configurare a IP-ului va fi explicat în cele ce urmează. Schimabarea adresei IP, plăcii de achiziţie sbRIO 9631 se realizează în trei etape: -a- în prima etapă se lansează modulul de programare LabVIEW FPGA şi pe urmă se accesează ,,arborele” aferent noului proict, prezentat în figura 5.15; -b- în a doua etapa, după ce sa realizat noul proiect, în proiectul ,,Explorer” se face click dreapta pe opţiunea ,,RT Single-Board RIO” şi se selectează opţiunea ,,Proprietăţi” moment în care va apărea o fereastră în care se poate modifica IP -ul, prezentată în figura 5.16 -c- în noua fereastră se va trece IP-ul generat de National Instrument
Fig.5.15
Fig.5.16
Determinarea IP-ului se realizează prin deschiderea ,,Measurement & Automation Explorer” care se instaleaza deodată cu instalrea pe calculator a modulului LabVIEW FPGA, şi pictograma aferentă este prezentată în figura 5.17. Fig.5.17 În momentul în care se accesează ,,Measurement & Automation Explorer” va fi evidenţiat IP-ul propriu pentru fiecare placă de achiziţie sbRIO care este conectată, şi va aparea o fereastră ca şi în figura 5.18.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
Fig.5.18 În momentul în care apare o eroare, la lansarea unei secveţe de program, sub forma prezentată în figura 5.18, înseamnă că numele targhetului FPGA-ului a fost schimbat.
Fig.5.19 5.5 Dashboard
Dashboard-ul este instrumentul care livrează informaţiile esenţiale pentru menţinerea unei afaceri în mers, pe traiectoria dorită şi în condiţii optime. Deşi menirea tablourilor de bord este de a face viaţă mai uşoară oricărei companii, implementarea şi design -ul dashboard-urilor necesită atenţie, deoarece dincolo de aspectul facil al problemei, trebuie urmărită o strategie coerentă. Conceptul de dashboard implică existenţa unor puncte de colectare a datelor care sunt organizate în funcţie de anumite criterii, a unor algoritmi de analiză a datelor şi de calcul a unor indicatori pe baza acestora şi “ecranul” (dashboard-ul) care permite vizualizarea rezultatelor pentru aceşti indicatori, în general pe baza de grafice sintetice. Dashboard-ul permite crearea de vizualizări particularizate şi portabile asupra aplica ț iilor LabVIEW. Utilizând această aplica ț ie, se poate crea tablouri de bord pentru a afi șa valorile-
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA publicate în reț ea, variabile, partajate și implementate în LabVIEW pe indicatori diferite opţiuni, cum ar fi diagrame, indicatoare, casete, și LED-uri. Dashboard-ul pentru LabVIEW permite crearea uni tablou de bord personalizat, care poate controla de la distanț ă și monitorizarea rularea aplicaţiilor NI LabVIEW. Acest lucru se face prin reț ele utilizate NI LabVIEW . Caracteristici ale dashboard-ului: - Controla de la distanț ă, precum și aplicaț ii de monitorizare LabVIEW; - Posibilitatea de a alege aspectul, culoare având teme personalizate pentru obiecte tablou de bord; - Datele de acces ramân stocate; - Abilitatea de a avea mai multe tablouri de bord cu mai multe pagini; - Controale și indicatori; - Capacitatea de interfa ț are cu servicii sigure LabVIEW web, precum și NI variabile comune. În figura 5.20 este ilustrat o interfaţă de dashboar .
Fig.5.21
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
CONCLUZII
În lucrarea prezentă sunt afişaţi toţi paşii efectuaţi pentru construcţia unei platforme robotice şi controlul acesteia. Inovaţia constă în simplitatea construcţiei, atât a structurii mecanice cât şi a plăcii de control, oferind posibilitatea unei înţelegeri mai uşoare, a modului de funcţionare a roboţilor, şi în general, a oricărei structuri mecatronice. Braţul robotic este realizat din comatex datorita maleabilităţi de a lucra cu acest tip de material, şi comanda servomotoarelor a fost realizată cu modulul de programare LabVIEW FPGA folosind placa de achiziţie sbRIO 9631. Acest modul de programare poate fi utilizat în diverse domenii, începând de la aplicţii uşoare, pâna la cele mai complicate aplicaţii. Dezavantajul acestui braţ robotic constă în faptul că nu se poate realiza şi mişcari de rotaţie, doar mişcari de tranzlaţie. Pentru a putea face şi mişcarile de rotaţie ar f i nevoie de modificarea completă a construcţiei mecanice ale braţului robotic. O altă îmbunatăţre al braţului robotic ar putea fi, modificarea fiecărui deget prin ataşarea la fiecare înbinare a degetului, un servomotor ca mişcarea de translaţie să fie mult mai evidentă. Dar la fel ca şi la braţul robotic care ar putea face mişcarea de rotaţ ie, ar însema modificarea totală a construcţiei mechanice Cu toate acestea braţul robotic construit oferă avantaje prin faptul că este controlat cu ajutorul circuitelor FPGA, circuite care sunt din ce în ce mai folosite şi prin construcţia acestui braţ se poate învăţa pas cu pas modul de funcţionare al circuitelor FPGA şi modul de programare a placilor de achiziţie, sbRIO.
i
Comanda unui braţ robotic folosind modulul LabVIEW FPGA
BIBLIOGRAFIE
1. Costin I.O.,,Acț ionari Electrice Funcț ionarea si comanda robo ț ilor industriali”, Editura Todesco 2008 2. Gheorghe I Gheorghe, Valentin Pau, Doru Dumitru Palade, Mecatronica, Editura Cefin, Bucureşti, 2002. 3. Pâslă D.,, Modelarea şi simularea roboț ilor industriali.” 4. Chircor, M. – „ Noutaţi in cinematica şi dinamica roboţilor industriali”,Editura Fundaţiei Andrei Şaguna, Constanţa, 1997. 5. Breaz R., Bogdan L. Automatizari in sisteme de productie” Editura Universitatii Lucian Blaga” Sibiu, 2003 6. Cojocaru G., Fr.Kovaci „Roboţii in acţiune”, Ed.Facla, Timişoara,1998 7. Bahri I., Monmasson E., Verdier F., Ben Khelifa M.E.-A., ,,SoPC-based current controller for permanent magnet synchronous machines drive”, Proceedings of the 2010 IEEE International Symposium on Industrial Electronics, ISIE 2010, Bari, Italia, iulie 2010 8. Kung Y.-S., Huang C.-C., Huang L.-C., “FPGA-realization of a sensorless speed control IC for IPMSM drive”, Proceedings of the 36th Annual Conference of the IEEE Industrial Electronics Society , IECON 2010, Phoenix, Arizona, SUA, noiembrie 2010. 9. Monmasson E., Idkhajine L., Cirstea M.N., Bahri I., Tisan A., Naouar M.W.,,FPGAs in industrial control applications”, IEEE Transactions on Industrial Informatics, vol. 7, no. 2, mai 2011. 10. Pellerin D., Thibault S.,, Practical FPGA programming in C”, Prentice Hall, 2005. 11. Chu P.P.,,FPGA prototyping by Verilog examples”, John Wiley and Sons, 2008. 12. Onea A.,,Prelucrarea semnalelor ”, Politehnium, 2006. 13 Alecsa B., Onea A.,,An FPGA implementation of an all digital phase locked loop for control applications”, Cluj-Napoca, România, august 2009. 14 Alecsa B.C., Onea A., “An FPGA implementation of the time domain deadbeat algorithm for control applications”, Norvegia, noiembrie 2009.
i