Șef lucr. dr. ing. OLTEAN STELIAN [609370]
UNIVERSITATEA “ PETRU MAIOR ” TÎRGU -MUREȘ
FACULTATEA DE INGINERIE
SPECIALIZAREA: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ
PROIECT DE DIPLOMĂ
Aplicație software de comand ă robot
Lynxmotion
Coordonator Stiințific:
Șef lucr. dr. ing. OLTEAN STELIAN
Absolvent: [anonimizat]
2016
CUPRINS
1. Introducere ………………………….. ………………………….. ………………………….. ……………………. 3
1.1. Prezentarea temei ………………………….. ………………………….. ………………………….. …….. 3
1.2. Structura lucrării ………………………….. ………………………….. ………………………….. …….. 4
1.3. Obiectivele lucrării ………………………….. ………………………….. ………………………….. …… 5
2. Aspecte teoretice ………………………….. ………………………….. ………………………….. …………….. 6
2.1. Introducere ………………………….. ………………………….. ………………………….. ……………… 6
2.2. Arhitectura roboțiilor ………………………….. ………………………….. ………………………….. . 7
2.3. Clasificarea roboțiilor ………………………….. ………………………….. ………………………….. . 9
2.4. Roboți seriali ………………………….. ………………………….. ………………………….. ………….. 12
3. Minirobotul Lynxmotion cu 4 grade de libertate ………………………….. …………………….. 13
3.1. Prezentare generală ………………………….. ………………………….. ………………………….. .. 13
3.1.1. Configurația minirobotului ………………………….. ………………………….. ………….. 13
3.1.2. Sistemul mecanic ………………………….. ………………………….. ………………………….. 15
3.2. Schema bloc ………………………….. ………………………….. ………………………….. …………… 16
3.3. Cinematica robotului ………………………….. ………………………….. ………………………….. 17
3.3.1. Convenția Denavit -Hartenberg ………………………….. ………………………….. …….. 18
3.3.2. Cinematica directă ………………………….. ………………………….. ……………………….. 20
3.3.3. Cinematica inversă ………………………….. ………………………….. ………………………. 22
3.3.3.1. Soluția geometrică ………………………….. ………………………….. …………………. 22
3.3.3.2. Soluția algebrică ………………………….. ………………………….. ……………………. 24
4. Aplicație ………………………….. ………………………….. ………………………….. ……………………….. 26
4.1. Strucutura hardware ………………………….. ………………………….. ………………………….. 26
4.1.1. Schema bloc ………………………….. ………………………….. ………………………….. …….. 27
4.1.2. Servomotoarele ………………………….. ………………………….. ………………………….. .. 27
4.1.3. Placa electronică ………………………….. ………………………….. ………………………….. 29
4.1.4. Protocolul serial pentru acționarea motoarelor ………………………….. …………. 30
4.2. Structura software ………………………….. ………………………….. ………………………….. …. 31
4.2.1. Prezentarea mediului Matlab ………………………….. ………………………….. ……….. 31
4.2.1.1. Matlab GUI ………………………….. ………………………….. ………………………….. . 33
4.2.2. Toolbox robotică Matlab ………………………….. ………………………….. ………………. 34
4.2.3. Aplicația GUI de comandă ………………………….. ………………………….. ……………. 37
4.2.3.1. Butonul “CINEMATICA” ………………………….. ………………………….. …….. 40
4.2.3.2. Butonul “PROGRAM” ………………………….. ………………………….. ………….. 42
5. Concluzii și dezvoltări ulterioare ………………………….. ………………………….. ……………….. 43
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 44
3
1. Introducer e
Bazele roboților sunt mult mai îndepărtate, primele modele de roboți pot fi numite
automate (provenind din grecescul automatos , care înseamnă „care se mișcă singur” ). Primele
„automate” nu puteau realita decât un singur obiectiv, fiind astfel constrânse.
Conform unor relatări, matematicianul grec Archytas a construit un porumbel care
putea zbura singur datorită propulsării cu vapori, acesta era construit din lemn și era umplut cu
aer sub presiune, cu ajutorul unei contragreutăți permitea deschiderea și î nchiderea unui
ventil.
În secolul XIV, în urma descoperii ceasului mecanic s -a deschis calea unor posibilități
noi și mai complexe decât cele existente. În perioada imediat următoare au apărut noi mașini
care semănau tot mai mult cu roboții de azi.
În urma dezvoltării electrotehnicii în secolul XX a urmat de la sine și dezvoltarea
roboticii. Sistemul Elmer și Elsie construit de William Grey Walter, consruit în anul 1948 se
numără printre primii roboți industriali, acestea era compus din niște tricicl ete care se puteau
îndrepta spre o sursă de lumină și puteau să recunoască și coloziuniile din înprejurimi.
Robotul industrial a apărut la începutul aniilor ’50, deoarece atunci a fost dezvoltat
„Unimate” care mai întâi monta iconoscoape pentru televizoa re, iar mai apoi a fost introdus și
în industria automobilă .
1.1. Prezentarea temei
În această lucare se va realiza o temă în domeniul roboticii. Robotica este domeniul care
studiază interacțiunea dintre percepție și acțiune, iar roboții sunt acele dispozitiv e capabile să
îndeplinească anumite activități similare oamenilor.
Astfel robotica se împarte în trei mari domenii: percepție, cogniție și acțiune. Pentru
construcția unui robot este necesară existența cunoștiințelor din domenii foarte diferite, chiar și
pentru o misiune foarte simplă a unui robot sunt necesare atingerea unor sisteme complicate
acoperând multe discipline. Percepția robotului ține de senzorii prin care robotul poate primi
informații despre mediul în care acționează. Funcțiile pe care un ro bot le poate percepe sunt
4
nelimitate, astfel, un robot poate înregistra imagini prin camerele video, poate măsura distanțe
cu ajutorul senzorilor laser sau o multitudine de alte acțiuni. Funția de cogniție înseamnă
capacitatea robotului de a fi învățat anu mite acțiuni prin care să fie d e ajutorul mediului în care
își desfășoară activitatea. Iar ultima funcție și poate și cea mai importantă este acțiunea, roboții
folosind diverse m ijloace de locomoție: roboții umanoizi, cu picioare (aceștia fiind și cel mai
greu de construit).
Tema proiectului va fi realizarea unei aplicații software pentru controlul minirobotului
Lynxmotion AL5 cu 4 grade de libertate.
Robotul Lynxmotion este un automat care se utilizează la manipularea obiectelor fiind
capabil de a proces a independent comenziile prin mișcări programate, sub supravegherea
omului, cu scopul realizării unor sarcini.
Aplicația pentru controlul minirobotul va fi realizată cu ajutorul platformei Matlab și
permite manipularea unui obiect într -un spațiu de lucru bine definit.
1.2. Structura lucrării
Lucrarea cu titlul „Aplicație software de comandă robot Lynxmotion ” va cuprinde în
principal studiul și sistemul de control al minirobotul Lynxmotion AL5 cu 4 grade de libertate.
Proiectul va fi structurat în 5 capitole al căror conținut va fi sintetizat în continuare
după cum urmează.
Primul capitol este cel de introducere în care se enumeră o scurtă introducere în lumea
roboticii, prezentarea temei, structura lucrării și obiectivele proiectului.
În capitolul doi se va găsi arhitectura roboțiilor, descrierea și clasificarea acestora.
În capitolul trei va fi prezentată structura minirobotului Lynxmotion AL5 cu 4 grade de
libertate, schema bloc a acestuia și analiza cinematică a robotului.
În capitolul patru va fi prez entata arhitectura de funcționare a minirobotului și
aplicația realitată în Matlab pentru controlul acestuia.
În ultimul capitol se vor puncta câteva concluzii și eventuale aspecte de dezvoltare
ulterioară.
5
1.3. Obiectivele lucrării
Principalele obiective ale proiectului sunt:
realizarea unui program pentru controlul minirobotului Lynxmotion AL5
determinarea cinematicii directe și inverse a minirobotului cu 4 grade de libertate.
comanda celor 5 servomotoare în funcție de instrucțiuni le date de utilizator
învățarea minirobotului a unei secvențe pentru realizarea unor mișcări personalizate
crearea unei interfețe GUI utilizând mediul MATLAB
6
2. Aspecte teoretice
2.1. Introducere
Definiția robotului se referă la mișcarea sau funcționarea într -un anumit mediu. În
continuare se exemplifică modul în care companiile constructoare sau asociațiile nationale au
definit noțiunea de robot:
conform specialiștiilor japonezi „robotul este un dispozitiv mecanic acționat cu
forțe motrice cu comandă inteligentă și care acționează conform voinței
umane”.
Institutul American de Robotică consideră robotul ca fiind „un operator
reprogramabil și multifuncțional pentru deplasarea obiectelor pe traiectorii
stabilite anterior în realizarea unor sar cini concrete ”
Institutul Francez de Standardizare definește robotul ca fiind „un manipulator
automat reprogramabil și polivent, capabil să realizeze poziționarea și
reorientarea pieselor printr -o mișcare variabilă și programabilă a brațelor
terminale pri n intermediul unor dispozitive”
în literatura românească de specialitate, robotul este definit ca fiind „un
echipament automat, adaptabil prin reprogramare la condițiile de mediu în care
acționează ”
În linii mari, robotul este un sistem mecanic articu lat, cu mai multe grade de libertate,
ce asigură deplasarea pe verticală a obiectelor cu controlul deplasării.
În nuvela numită “Runaround”, publicată în anul 1942, Isaac Asimov descrie trei legi:
Legea 1 . „Un robot nu poate afecta existența umană sau da torită inacțiunii sale să
permită existenței umane să meargă către distrugere.”
Legea 2 . „Un robot trebuie să îndeplinească sarciniile date de om cu excepția celor care
vin în conflict cu prima lege. ”
Legea 3 . Un robot trebuie să se protejeze singur împotr iva distrugerii cu excepția
cazurilor care fac obiectul legii întâi și legii a doua.
7
2.2. Arhitectura roboțiilor
Structura roboțiilor este, de fapt, un sistem compus din mai multe subsisteme. În
general un robot industrial trebuie să realizeze:
acțiuni asupra mediului înconjurător , cu efectori finali
percepție, pentru a culege informații din mediul de lucru, cu senzori și traductori
comunicare, pentru realizarea schimbului de informații
decizie, pentru realizarea unor sarcini.
Roboții industriali trebuie să raspundă necesitățiilor mediului industrial: flexibili tate
(pentru a putea fi adaptați, diferitelor serii de fabricație), fiabilitate, productivitate mare, cost
cât mai redus. Roboții industriali sunt utilizați în aplicațiile industriale caracte rizate prin
repetabilitate, aplicații în medii nocive, cadență foarte mare.
Roboții independenți sunt utilizați din ce în ce mai mult în diverse aplicații pentru a
îndeplinii sarcini complexe , în spații sau medii în care accesul omului este foarte dificil sau
imposibil, mediul subacvatic la adâncimi foarte mari, inspecția anumitor stații din industria
chimică și nucleară.
Robotul industrial este definit ca un manipulator trimidensional, reprogramabil,
multifuncțional, capabil să deplaseze piese, materiale , unelte sau aparate speciale după
traiectorii programate, în scopul efectuării unor operații diversificate de fabricație.
Arhitectura internă a unui robot conține cinci sisteme importante, fiecare dintre ele
aparținând unui domeniu al tehnicii clasice:
sistemul mecanic de susținere al articulațiilor (cuplelor de rotație și de translație)
sistemul de acționare
sistemul de transmitere al mișcării
sistemul senzorial (intern și extern)
sistemul deci zional
Modul prin care un sistem se compune din mai multe subsisteme și legăturiile dintre
acestea defines structura acestuia. Această structură se evidențiază prin schema bloc prezentată
în figura 2.1.
Pe lângă caracteristiciile specifice oricărui sistem mobil: dimensiuni, deplasări
realizate, precizie, repetabi litate, tip de acționare, sarcină transportată, viteză de deplasare,
8
există caracteristici ale robotului cum ar fi: numărul de grade de libertate, volumul spațiului de
lucru, zona de lucru, adaptibilitatea la mediu, programabilitate, fiabilitate.
Pe baza a cestor caracterisici s -au definit generațiile de roboți:
Genera ția I – „roboții ce acționează pe baza unui program flexibil prestabilit prin
învățarea directă”
Generația II – „roboți cu un program flexibil prestabilit, ce se poate modifica pe baza
informaț iilor furnizate de sistemul senzorial ”
Generația III – „roboți ce înglobează elemente de inteligență artificială”
Figura 2.1. Schema bloc a unui robot
9
Sistemul unui robot comunică cu mediul și are următoarele componente:
sistemul de comandă – emite com enziile către sistemul de acționare și prelucrează
informațiile preluate de la sistemul mecanic, senzorial și de la mediu, având rolul
sistemului nervos uman
sistemul de acționare – realizează mișcarea relativă a elementelor sistemului mecanic și
are rolu l sistemului muscular al omului
structura mecanică – are rolul scheletului uman, aceasta definind natura și amplitudinea
mișcăriilor ce le poate realiza robotul
sistemul senzorial – preia informațiile despre starea externă a robotului, caracterizază
prin p arametrii mediului (temperatură, presiune, compoziție) și acțiuniile acestuia
asupra robotului (forțe, cupluri, etc.); senzorii robotului având rolul organelor de simț
ale omului
sursa externă – poate fi hidraulică, pneumatică sau electrică
sistemul info rmațional – reprezintă limbajul de programare specific robotului, precum
și alte programe utilitare și aplicații folosite pentru manevrarea robotului.
mediu – reprezintă spațiul în care robotul evoluează cu obiectele conținute și
fenomenele care au loc în acest spațiu.
Totalitatea obiectelor cu care robotul interacționează constituie „periferia” acestuia.
Legătura dintre componentele robotului și cele care realizează conexiunea cu mediul
pot fi directe sau inverse („feedback -ul”). Legăturiile directe sunt prezentate la sistemul de
comandă, atunci când transmite comenzi către sistemul de acționare, iar acesta acționează
asupra cuplelor cinematice, axelor și a sistemul mecanic, care la rândul său acționează asupra
mediului prin inter mediu efectorului final. Legăturiile inverse sunt informațiile furnizate de
sistemul de comandă de la senzori, traductoare și aparate de măsură. Se mai consideră
legătură și fluxul de energie dat de mediu sistemului de acționare al robotului, precum și f luxul
de energie disipat de la robot la mediu.
2.3. Clasificarea roboțiilor
Clasificarea roboțiilor industriali are la bază mai multe criterii, în continuare sunt
prezentate principalele criterii și topologia roboțiilor industriali conform criteriilor de
clasificare abordate.
10
A. După forma mișcării, roboții industriali pot fi:
A.1. robot cartezian – este robotul al cărui braț acționează într -un spațiu definit
de coordonate carteziene
A.2. robot cilindric – similar celul de mai sus, dar spațiul este definit în
coordonate cilindirice
A.3. robot sferic (sau polar) – similar celor de mai sus, dar spațiul este definit în
coordonate sferice (sau polare)
A.4. „prosthetic robot” – reprezintă un manipulator având un braț articulat
A.5. roboții în alte tipuri de coordon ate – care sunt definiți în mod
corespunzător
În figura 2.2. sunt prezentate schemele reprezentative pentru robotul cartezian (A.1 -a),
robotul cilindric (A.2 -b) și robotul sferic (A.3. -c)
Figura 2.2. Schema roboțiilor industriali cartezian, cilindric și sferic
B. După informația de intrare și modul de învățare, roboții industriali pot fi:
B.1. manipulator manual – fiind acționat direct de către om
B.2. robot secvențial – are anumite secvențe ce „ascultă” de o procedură
predeterminată; aceștia fiind de două tipuri:
robot secvențial fix – la care secvența predeterminată nu poate fi
schimbată facil
robot secvențial – la care secvența predeterminată poate fi modificată
ușor
a) b) c)
11
B.3. robotul repetitor – la început, omul învață robotul o anumită secvență sau
procedură de lucru, robotul memorând -o, apoi fiind capabil să o execute de câte
ori este nevoie
B.4. robotul cu control numeric – robotul execută operațiile cerute în
conformitate cu informațiile numerice pe care le primește despre poziții,
succesiuni de operații și condiții
B.5. robotul inteligent – este acel tip de robot care își decide comportamentul în
funcție de informațiile primite de la senzorii, pe care îi are la dispoziție și prin
posibilitățiile sale de recunoaștere
C. După numărul grad elor de libertate ale mișcăriilor robotului (2 -7 grade de libertate la
care se mai pot adăuga unele mișcări suplimentare: orientarea dispozitivului de
prehensiune, prinderea, desprinderea obiectului manipulat), roboții industriali pot fi:
C.1. roboți cu un număr mic de grade de liberatate: 2 -3
C.2. roboți cu un număr mediu de grade de libertate: 4 -5
C.3. roboți cu un număr mare de grade de liberate: 6 -7
Sistemul de acționare al unui robot cuprinde totalitatea surselor de energie și
elementele de control ale acestuia. Un astfel de sistem cuprinde ansamblul motoarelor și
convertoarelor de unde rezultă energia mecanică necesară mișcării robotului.
Așadar, bazele unui astfel de sistem sunt:
o sursă primară de energie
un sistem de conversie al energiei primar e în energie mecanică
un sistem pentru transmisia energiei mecanice la articulația corespunzătoare de pe
brațul robotic
un control al parametriilor caracteristici ale acestui sistem
Sistemele de acționare hidraulică fiind utilizate pentru acționarea a 40 % din parcul
mondial de roboți industriali fiind preferate în cazul roboțiilor de forță datorită avantajului
privind raportul putere/ greutate mare. Roboții acționați hidraulic se bazează pe principiul
converisiei energiei unui fluid incompresibil, în ener gie mecanică.
Sistemele de acționare electice fiind utililizate pentru acționarea a 30% din parcul
mondial. Sistemele de acționare electrică sunt răspândite în echiparea roboțiilor de precizie ce
12
manipulează sarcini mici sau mijlocii datorită compatibilit ății între sistemele de comandă,
distribuitoarele de energie, elementele de execuție și senzorii care lucrează în exclusivitate cu
mărimi electrice analogice sau digitale. Principalul avantaj al acestor sisteme îl reprezintă
sursa de energie electrică prim ară fiind ușor de găsit, sistemele de control sunt precise și se
poate asigura o funcționare autonomă prin alimentarea unor baterii.
Sistemele de acționare pneumatică reprezintă 21% din totalitatea sistemelor de
acționare ale roboțiilor industriali. Aceste a având ca și caracteristică principală utilizarea
aerului ca fluid compresibil al sistemului de acționare. Principalele avantaje ale acestor
sisteme de acționare sunt: fiabilitatea ridicată în medii industriale dificile, având rezistență la
șocuri și vibr ații, prețul aparatelor fiind mai ieftin decât în cazul celor hidraulice și electrice și
nepoluarea mediului de lucru.
2.4. Roboți seriali
În general, în structura roboțiilor industriali se găsesc cuple cinematice e clasa a V -a
(de rotație R sau de translație T ). Aceste cuple fiind realizate practice ca și cuple motoare sub
forma unor module. În final, arhitectura robotului rezultă din înserierea unor astfel de module.
Există însă și roboți industriali care au structura formată din mecanisme mai complexe,
de exemplu mecanismele paralele. Mecanismele paralele având structura formată din două
platforme , una fixă și una mobilă, conectate între ele prin intermediul mai multor lanțuri
cinematice.
Sinteza structurală pentru roboții industriali se face în așa fel încâ t să poată cu structura
respectivă, poziționa și orienta oriunde în spațiul de lucru obiectul manipulat. Daca spațiul de
lucru este tridimensional poziționarea obiectului manipulat, se poate face cel mai simplu
utilizând trei cuple de clasa a V -a. Acest la nț cinematic numindu -se lanț cinematic principal.
Dacă pe lângă poziționarea obiectului manipulate mai este necesară și orientarea sau
repoziționarea la lanțul cinematic principal se mai adaugă un lanț cinematic secundar.
13
3. Minirobotul Lynxmotion cu 4 grade de libertate
3.1. Prezentare general ă
3.1.1. Configurația minirobotului
Lynxmotion AL5 este un minirobot de tip serial care oferă mișcări rapide și precise,
fiind alcătuit dintr -o serie de elemente conectate prin articulații, acționate prin intermediul
servomotoarelor extinzându -se de la bază până la efectorul final.
Numărul gradelor de libertate fiind dat de numărul maxim al deplasărilor posibile ale
efectorului. Cuplele cinematice fiind enumerate de la bază la î ncheietură și sunt în număr de
patru , fiind reprezentate prin mișcări de rotație de tip (RRRR) și având raza de acționare de la
– 90 de grade la + 90 de grade în jurul axei sale.
Gradele de liberte ale minirbotului Lynxmotion AL5 sunt următoarele:
Primul grad de liberte este între corp și arti culația trunchiului
Al doilea grad de liberte fiind între articulația trunchiului și articulația umărului
Al treilea grad de libertate este între articulația umărului și articulația încheieturii.
Al patrulea grad de libertate, fiind un “semi -grad de libert e” între articulația
încheieturii și griiper (efectorul final)
Spațiul de lucru este dat de volumul în care este posibil să găsească elementele structurii
mecanice. Spațiul de lucru util este volumul maxim, descris de totalitatea mișcărilor robotului,
în care se poate afla efectorul final în timpul funcționării, conform figurii 3.1 ( a) vedere
laterală, b) vedere de sus)
Figura 3.1.
Spațiul de lucru ( a) vedere laterală b) vedere de sus)
a
) b
)
14
Caracteristiciile și dimensiunile minirobotului sunt prezentate în tabelul 3.1.
Minirobotul AL5
Elementele minirobotului Dimensiuni [mm]
Bază Diametru 100 Înălțime 50
Umăr Diametru 100 Înălțime 30
Braț Lungime 121 Grosime 53
Antebraț Lungime 130 Grosime 43
Încheietură Lungime 70 Lățime 15 Înalțime 30
Gripper (efector final) Lungimea 50 Deschiderea 50
Tabel 3.1.
În figura 3.2 se pot observa dimensiuniile minirobotului:
50 mm
121 mm
mm
70 mm
mm
121 mm
mm
130 mm
mm
70 mm
mm
368 mm
mm
438 mm
mm
Figura 3.2. Dimensiuniile minirobotului
15
3.1.2. Sistemul mecanic
Sistemul mecanic al minirobotului trebuie să asigure realizăriile mișcărilor acestuia și
transmiterea energiei mecanice necesare interacțiunii cu mediul, acesta având sarcina de a
deplasa un obiect. Dispozitivul de ghidare sau manipulatorul este partea din sistemul mecanic
care realizează această deplasare.
Dispozitivul de ghidare are rolul de a da efectorului final, energia mecanic ă necesară
mișcării în conformitate cu acțiunea acestuia.
Dispozitivele de ghidare pot fi:
cu topologie serială
cu topologie paralelă
cu topologie mixtă
Efectorul final mai poate fi numit și dispozitiv de prehensiune pentru că este
asemanător cu acțiunea m âinii umane de a prinde obiectele cu degetele. Din punctul de vedere
a studiului mecanismelor, partea de bază a efectorului final și obiectul formează o cuplă
cinematică, închisă prin forță.
În funcție de rolul de prehensiune se disting următoarele dispozi tive:
cu acțiune unilaterală – acele dispozitive care acționează pe o singură față a
obiectului manipulat
cu acțiune bilaterală – acele dispozitive care realizează prinderea obiectului
manipulat, într -un sistem de pârghii articulare asemănătoare unui cleșt e
cu acțiune multiplă sau adaptive – acele dispozitive utilizate pentru obiecte
fragile.
Structura mecanică a minirobotului Lynxmotion AL5 este asemănătoare cu cea a unui
braț uman. Cadrul minirobotului fiind realizat din metal și material plastic conect at prin
intermediul articulațiilor.
Aritculațiile minirobotului sunt acționale de servomotoare de curent continuu care au
ca scop realizarea mișcării brațului robotic după cum urmează:
servomotorul 1 este folosit pentru comanda de la baza minirobotului
servomotorul 2 este folosit pentru comanda antebrațului minirobotului
servomotorul 3 este folosit pentru comanda brațului minirobotului
servomotorul 4 este folosit pentru comanda de la încheietura minirobotului
16
servomotorul 5 este folosit pentru a comanda gripper -ul minirobotului.
În figura 3.3. sunt prezentate componentele minirobotului Lynxmotion.
Figura 3.3. Sistemul mecanic al minirobotul Lynxmotion AL5 cu 4 grade de libertate
3.2. Schema bloc
Un robot funcționează dupa următorul principiu care este ilustrat în figura 3.4.
Figura 3.4. Schema bloc a unui minirobot
În figura prezentată mai sus, se poate observa că utilizatorul trimite o comandă
microcontrolerului prin intermediul programului sau a unei interfețe grafice rulată pe
calculator, iar acesta convertește semnalul în robot care execută comenziile primite.
Calculator Microcontroler Robot
17
3.3. Cinematica robotului
Cinematica este o ramură a mecanicii clasice care se ocupă cu studiul mișcării
obiectelor fără a lua în considerație ca uza care duce la această mișcare, dar cinematica nu
trebuie confundată cu dimanica, care studiază realația între mișcarea obiectelor și cauza care o
determină.
Pentru studiul mișcăriilor unui robot este nevoie de a studia analiza cinematică a
acestuia, ace sta constă în studiul cinematicii directe și cinematicii inverse a robotului.
Cinematica directă reprezintă ansamblul relațiilor care definesc poziția efectorului final în
funcție de coordonatele interne, cu alte cuvinte realizează conversia coordonatelor articulare în
coordonate operaționale 𝐹(𝜃1,𝜃2,..,𝜃𝑛)=[𝑥,𝑦,𝑧,𝑅]. Cinemtica inversă permite calculul
articulațiilor, care duc la poziționarea dorită a efectorului final, așadar realizează conversia
coordonatelor externe (operaționale) în coordonate articulare 𝐹(𝑥,𝑦,𝑧,𝑅)=𝜃1,𝜃2,..,𝜃𝑛.
Pentru studiul ambelor probl eme ale cinematicii apare necesitatea determinării
confirgurației cinematice a diferitelor corpuri față de un reper de referință.
În figura 3.5. se prezintă schema bloc a unui model cinematic și legătura dintre
cinematica directă și cinematica inversă.
Figura 3.5. Schema bloc a cinematicii Mișcăriile
articulațiilor Parametrii geometrici
Cinematica inversă Pozitia și orientarea
efectorului final Cinematica directă
18
3.3.1. Convenția Denavit -Hartenberg
În anul 1955, Jaques Denavit și Richard Hartenberg au introdus această convenție cu
scopul de a standardiza coordonate de cadre pentru legături speciale. În 1981, Richard Paul a
demonstrat, că această metodă este utilă pentru analiza cinematică a sistemelo r robotizate. De –
a lungul timpului au apărut o multitudine de convenții pentru studiul cinematicii, dar convenția
Denavit -Hartenberg rămâne standard pentru studiul cinematicii.
Convenția Denavit -Hartenberg oferă un algoritm standard pentru a scrie ecuațiil e
cinematice ale unui manipulator. Metoda Denavit -Hartenberg are la bază trei reguli:
Se alege Z i de-a lungul articulației i+1 (unde i este axa articulație ce
interconectează elementul i -1 de elementul i )
Axa X i se alege în lungul normalei comune a axelor Zi-1 și Z i ținând cont că
sensul trebuie să fie de la Z i-1 la Z i
Axa Y i se alege astfel încât să rezulte un sistem ortogonal, respectând regula
mâinii drepte.
În figura 3.6. se observă notațiile convenției Denavit -Hartenberg.
Figura 3.6. Notații pentru convenția Denavit -Hartenberg X0 Y0 Z0 Y1 X1 Z1 X2 X3
Z3 Y3
Y2
Z2
𝜽1 𝜽3 d2
19
Pentru determinarea matricii de transformare omogene este necesară identificarea
câtorva elemente:
ai – lungimea antebrațului i – distanța măsurată pe normala comună dintre axele
celor 2 antebrațe
αi – unghiul de răsucire – unghiul dintre Z i-1 și Z i măsurat în jurul axei X i
di – distanța pe articulație – distanța în lungul axei Z i-1 din origine până la
intersecția axelor z i-1 cu x i
𝜽i – unghiul cuplei – unghiul dintre X i-1 și X i, măsurat în jurul lui Z i-1
În urma analizei celor patru parametrii se constată că doi sunt constanți ( ai și αi), iar
ceilalți doi sunt variabili ( di și 𝜽i) în funcție de tipul articulației, după cum se observa în tabelul
3.2.
Simbol Denumire simbol Articulație de rotație Articulație de translație
ai Lungimea elementului Constant Constant
αi Unghiul de răsucire Constant Constant
di Distanța pe articulație Constant Variabil
𝜽i Unghiul articulației Variabil Constant
Tabel 3.2.
În această convenție matricea de transformare omogenă 𝑇𝑖𝑖−1 conșine patru
transformări de bază:
𝑇=𝑅𝑜𝑡𝑧 𝑖𝑖−1,θi 𝑇𝑟𝑎𝑛𝑠𝑧,𝑑𝑖 𝑇𝑟𝑎𝑛𝑠𝑥,𝑎𝑖𝑅𝑜𝑡𝑥 𝛼𝑖=
[𝑐𝑜𝑠 θi−𝑠𝑖𝑛 θi00
𝑠𝑖𝑛 θi𝑐𝑜𝑠 θi00
0010
0001][1000
0100
001𝑑𝑖
0001][100𝑎𝑖
0100
0010
0001] [1000
0𝑐𝑜𝑠𝛼𝑖−𝑠𝑖𝑛𝛼𝑖0
0𝑠𝑖𝑛𝛼𝑖𝑐𝑜𝑠𝛼𝑖0
0001]=
[ 𝑐𝑜𝑠 θi−𝑠𝑖𝑛 θi 𝑐𝑜𝑠𝛼𝑖𝑠𝑖𝑛 θi 𝑠𝑖𝑛𝛼𝑖𝑎𝑖 𝑐𝑜𝑠 θi
𝑠𝑖𝑛 θi𝑐𝑜𝑠 θi𝑐𝑜𝑠𝛼𝑖− 𝑐𝑜𝑠 θi𝑐𝑜𝑠 θi𝑎𝑖 𝑠𝑖𝑛𝛼𝑖
0 𝑠𝑖𝑛𝛼𝑖𝑐𝑜𝑠𝛼𝑖𝑑𝑖
0 0 0 1]
Notații:
Rot x, αi – rotația in jurul axei X i cu unghiul αi (3.1)
1
20
Trans x, ai – translația de -a lungul axei X i cu distanța a i
Rot z, 𝜽i – rotația în jurul axei Z i cu unghiul 𝜽i
Trans z, di – translația de -a lungul axei Z i cu distanța d i
3.3.2. Cinematica directă
Cinematica directă se refer ă la utilizarea ecuațiilor cinematice pentru a calcula poziția
și orientarea efectorului final în funcție de parametrii cinematici și variabile articulare ale
robotului. Coordonatele „m” definesc poziția efectorului final.
𝑋=[𝑥1,𝑥2,…,𝑥𝑚]
Variabilele articulare se definesc astfel:
𝑞=[𝑞1,𝑞2,…,𝑞𝑛]𝑇
Cinematica direct se exprimă prin relația:
𝑋=𝑓(𝑞)
Utilizând convenția Denavit -Hartenberg, explicată mai sus , se atașează sistemul de
coordonate pentru calculul cinematicii directe, după cum se observă în figura 3.7.
Figura 3.7. Atașarea sistemului de coordonate cu ajutorul metodei Denavit -Hartenberg
(3.2)
1
(3.3)
1
(3.4)
1
21
Parametrii Denavit -Hartenberg a minirobotului Lynxmotion AL5 sunt prezentați în tabelul 3.3
Articulație „i” ai αi di 𝜽i
1 a1 90o d1 𝜽1
2 a2 0 0 𝜽2
3 a3 0 0 𝜽3
4 a4 0 0 𝜽4
Tabelul 3.3.
Prin înlocuirea parametriilor din tabelul 3.3 în ecuația 3.1 matriciile de transformare sunt:
𝑇10=[𝑐𝑜𝑠𝜃10𝑠𝑖𝑛𝜃1𝑎1𝑐𝑜𝑠𝜃1
𝑠𝑖𝑛𝜃10𝑐𝑜𝑠𝜃10
010𝑑1
000 1]
𝑇21=[𝑐𝑜𝑠𝜃2−𝑠𝑖𝑛𝜃20𝑎2𝑐𝑜𝑠𝜃2
𝑠𝑖𝑛𝜃2𝑐𝑜𝑠𝜃200
0 010
0 001]
𝑇32=[𝑐𝑜𝑠𝜃3−𝑠𝑖𝑛𝜃30𝑎3𝑐𝑜𝑠𝜃3
𝑠𝑖𝑛𝜃3𝑐𝑜𝑠𝜃300
0 010
0 001]
𝑇43=[𝑐𝑜𝑠𝜃4−𝑠𝑖𝑛𝜃40𝑎4𝑐𝑜𝑠𝜃4
𝑠𝑖𝑛𝜃4𝑐𝑜𝑠𝜃400
0010
0001]
Efectorul final are poziția carteziană înmulțind între ele cele patru matrici de transformare.
𝑇40=𝑇10∙𝑇21∙𝑇32∙𝑇43
În funcție de unghiuri se calculează poziția si orientarea efectorului final. (3.5)
1
(3.6)
1
(3.8)
1 (3.7)
1
(3.9)
1
22
3.3.3. Cinematica inversă
Cinematica inversă constă în utilizarea ecuațiilor cinematice ale robotului pentru a
determina parametrii care asigură poziția dorită a efectorului final. Cu alte cuvinte, cinematica
inversă transformă planul de mișcare în traiectorii de acționare pentru robot.
Mișcarea lanțului cinematic este modelată cu ajutorul ecuațiilor cinematice ale
acestuia. Matricea rezultată la subcapitoul precedent, (3.9) se va folosi pentru calcularea
ecuațiilor cinematicii i nverse.
În momentul în care, problema cinematicii inverse are soluție, constituită în modelul
gemetric invers „MGI”. Pentru aflarea soluției robotului trebuie sa putem calcula toate
confirgurațiile care permit atingerea poziției acestuia.
Din cauză că solu ția cinematicii inverse este mult mai complexă decât cea a cinematicii
directe este posibil ca să nu se poată găsi o soluție analitică globală pentru fiecare manipulator
de o anumită metodă având în vedere structura și restricțiile sistemului. Astfel se po ate apela
la metode numerice , al căror dezavantaj constă în volumul mare de calcule care trebuie
realizate pentru a fi determinată cinematica inversă. Pentru obținerea soluției cinematicii
inverse , există două tipuri de abordări: soluția geometrică și ce a algebrică.
3.3.3.1. Soluția geometrică
Soluția geometrică este aflată folosind modelul cartezian al cinematicii inverse,
utilizatorul specificând poziția țintă de prindere în spațiul cartezian (x,y,z), unde z este
înalțimea, și unghiuriile relative ale gripper -ului față de bază, ψ (după cum se poate observa în
figura 3. 8). Unghiul ψ constant permite utilizatorului să mute obiecte fără a schimba orientarea
obiectului. Fie că se ține ψ constant în poziție sau se ține încheietura constantă față de restul
brațului, e cuația cinematicii inverse se poate rezolva, după cum va fi prezentată mai jos.
Unghiuriile 𝜽1, 𝜽2, 𝜽3, 𝜽4, corespund mișcării bazei, umărului, cotului și încheieturii
brațului robotic. Aceste unghiuri se pot modifica, iar în funcție de acestea poziția în spațiu a
brațului robotic se poate modifica.
În figura 3.9 se poate vedea că 𝜽1=atan2(x,y) și distanța d este legată de x și y prin
formula:
𝑑=√𝑥𝑑2+𝑦𝑑2
𝑥𝑑=𝑑 𝑐𝑜𝑠𝜃1
23
𝑦𝑑=𝑑 𝑠𝑖𝑛𝜃1
Figura 3.8. Vedere de sus a minirobotului
Trecând la o vedere plană a robotului în figura 3.9 se văd relațiile dintre unghiuriile
𝜽2, 𝜽3, 𝜽4 și ψ și în următoare ecuație:
ψ=𝜃2+𝜃3+𝜃4
Din relația de mai sus, se poate calcula distanța și înălțimea incheieturii:
𝑟4=𝑟𝑑−𝑎5 𝑐𝑜𝑠ψ
𝑧4=𝑧𝑑−𝑎5 𝑠𝑖𝑛ψ
sau poate fi scrisă în următoare formă:
𝑟4=𝑎3 𝑐𝑜𝑠𝜃2+𝑎4 𝑐𝑜𝑠𝜃2+𝜃3
𝑧4=𝑎3 𝑠𝑖𝑛𝜃2+𝑎4 𝑠𝑖𝑛𝜃2+𝜃3+𝑑1
Din figura 3.9. se determină unghiuriile 𝜽2, 𝜽3, dar înainte se rezolvă α , β și s :
𝛼=𝑎𝑡𝑎𝑛2(𝑧4−𝑑1,𝑟4)
𝛽=𝑎𝑡𝑎𝑛2 (𝑠𝑖𝑛𝜃2 +𝑎32−𝑎42,2 ∙𝑎3∙𝑠)
𝑠=√(𝑧4−𝑑1)2+𝑟42
Cu ajutorul ecuațiilor de mai sus se determină unghiuriile rămase:
𝜃2=𝛼±𝛽
𝜃3=𝑎𝑡𝑎𝑛2(𝑠2−𝑎32−𝑎42,2∙𝑎3 𝑎4)
𝜃4= ψ−𝜃2−𝜃3
(3.10)
(3.11)
(3.12)
(3.13)
(3.14)
(3.15)
(3.16)
24
Fig 3.9. Vedere plană a minirobotului
3.3.3.2. Soluția algebrică
Folosind x,y,z se obține:
𝑥=𝑐𝑜𝑠𝜃1[𝑎3 𝑐𝑜𝑠𝜃2+𝑎4 𝑐𝑜𝑠𝜃2𝜃3+ 𝑐𝑜𝑠𝜃2𝜃3𝜃4]
𝑦=𝑠𝑖𝑛𝜃1[𝑎3𝑐𝑜𝑠𝜃2+𝑎4 𝑐𝑜𝑠𝜃2𝜃3+𝑐𝑜𝑠𝜃2𝜃3𝜃4]
𝑧=[ 𝑐𝑜𝑠𝜃2𝜃3𝜃4+𝑎4𝑠𝑖𝑛𝜃2𝜃3+𝑎3𝑠𝑖𝑛𝜃2]+ 𝑑1
Simplificând ecuațiile rezultă:
𝑥2+𝑦2=𝑎3+ 𝑐𝑜𝑠𝜃2+𝑎4𝑐𝑜𝑠𝜃2𝜃3=±√𝑥2+𝑦2− 𝑐𝑜𝑠𝜃2𝜃3𝜃4
(3.17)
(3.18)
25
Prima mișcare a articulației definită ca 𝜽1 se poate calcula folosind parametrii
geometrici:
𝜃1=𝑎𝑡𝑎𝑛2(𝑥,𝑦)
Se poate calcula 𝜽3 utilizând ecuația ( 3.17):
𝑧=[𝑐𝑜𝑠𝜃2𝜃3𝜃4+𝑎4𝑠𝑖𝑛𝜃2𝜃3+𝑎3𝑠𝑖𝑛𝜃2]+ 𝑑1=> 𝑎3𝑠𝑖𝑛𝜃2+𝑎4𝑠𝑖𝑛𝜃2𝜃3
=𝑧− 𝑠𝑖𝑛𝜃2𝜃3𝜃4−𝑑1
Din 𝑥,𝑦,𝑧 => (𝑧− 𝑠𝑖𝑛𝜃2𝜃3𝜃4−𝑑1)+(±√𝑥2+𝑦2+𝑐𝑜𝑠𝜃2𝜃3𝜃4)2
−𝑎32−𝑎42
2𝑎3𝑎2
𝑐𝑜𝑠ψ= 𝑐𝑜𝑠𝜃2𝜃3𝜃4
𝑠𝑖𝑛ψ=𝑠𝑖𝑛𝜃2𝜃3𝜃4
unde:
𝑐𝑜𝑠𝜃2𝜃3𝜃4=cos (𝜃2+𝜃3+𝜃4)
𝑠𝑖𝑛𝜃2𝜃3𝜃4=sin (𝜃2+𝜃3+𝜃4)
𝑠𝑖𝑛𝜃3=±√1−𝑐𝑜𝑠𝜃32
𝜃3=𝑎𝑡𝑎𝑛2(𝑠𝑖𝑛𝜃3𝑐𝑜𝑠𝜃3)
După ce se calculează 𝜽3 se poate calcula 𝜽2 cu formula:
𝜃2=𝛼−𝛽
𝛼=atan2 (𝑧− 𝑠𝑖𝑛ψ−𝑑1,± √𝑥2+𝑦2−𝑐𝑜𝑠ψ)
𝛽=𝑎𝑡𝑎𝑛2 (𝑎4𝑠𝑖𝑛𝜃3,𝑎3+𝑐𝑜𝑠𝜃3)
𝜃2=atan2 (𝑧− 𝑠𝑖𝑛ψ−𝑑1,± √𝑥2+𝑦2−𝑐𝑜𝑠ψ)−𝑎𝑡𝑎𝑛2 (𝑎4𝑠𝑖𝑛𝜃3,𝑎3+𝑐𝑜𝑠𝜃3)
𝜃ψ=𝜃2+𝜃3+𝜃4
𝜃4=𝜃ψ+𝜃2+𝜃3
(3.19)
(3.20)
(3.21)
(3.22)
(3.23)
(3.24)
(3.25)
(3.26)
(3.27)
(3.28)
(3.29)
(3.30)
(3.31)
26
4. Aplicație
4.1. Strucutura hardware
În acest proiect, controlul minirobotului Lynxmotion AL5 a fost realizat cu ajutorul
unui microcontroller care face legătura între calculator și robot. A fost realizată o interfață
grafică GUI dezvoltată cu ajutorului mediului de lucru Matlab, pentru a facilita interacțiunea
utilizatorului. Cu ajutorul interfeței create utilizatorul va putea comanda minirobotul, încât
acesta să realizeze mișcăriile dorite.
Comunicarea micro controlleru -lui cu calculatorul este realizată prin o legătură de date,
în proiect este asigurată printr -un port serial cu ajutorul unui convertor USB -RS-232(serial)
pentru a face posibilă conectarea la laptop.
În figura 4.1 sunt prezentate componentele ha rdware utilizate pentru realizarea acestui
proiect.
a) Minirobot Lynxmotion AL5 b) Laptop Lenovo G550
c) Cablu serial d) Convertor USB -RS-232
Figura 4.1. Componente hardware
27
4.1.1. Schema bloc
În figura 4.2 se prezintă schema bloc a aplicației realizate
Figura 4.2. Schema bloc de funcționare
Modul de funcționareal schemei prezentate mai sus este descris în continuare, în
funcție de comandă dată în interfața grafica GUI, datele sunt transmise către placa de comandă
SSC-32 iar prin intermediul unor semnale, acestea sunt transmise elementelor de acționare
situate pe minirobotul Lynxmotion AL5. În urma acționării servomotoarelor minirobotul
trimite un feedback plăcii de comandă, iar de la aceasta mai departe în interfața grafică, iar din
punct de vedere fizic este realizată mișcarea solicitată mini robotului.
4.1.2. Servomotoarele
Servomotoarele sunt componente ale sistemului care creează poziții relativ reglabile
între elementele componente. Acestea pot avea pozție fixă sau pot fi integrate în subsistemul
unui element cu poziție reglabilă.
Servomotorul are o aplicabilitate într -o arie largă de aplicabilitate, fiind conceput
pentru a fi utilizat în foarte multe sis teme funcționale.
Rolul servomotoarelor este de a transforma semnalul electric de comandă într -un cuplu
electromagnetic, respectiv o mișcare de rotație a arborelui prin care este antrenat mecanismul
care realizează operația dorită. Comanda din
interfața grafică
„GUI” Placa de comandă
SSC-32
Minirobotul
Lynxmotion AL5 Elementele de
acționare Semnal Feedback
28
Pentru realizarea mișcării se utilzează:
3 servomotoare de tip HS -422
1 servomotor de tip HS -645 HB
1 servomotor de tip HS -755 HB
Cele 3 servomotoare de tip HS -422 sunt folosite pentru controlul brațului robotic.
Primul este folosit la baza robotului pentru rotirea brațului robotic. Al doilea fiind folosit
pentru manevrarea încheieturii brațului, iar ultimul dintre ele fiind folosit la sistemul de
prindere (gripper).
Servomotorul de tip HS -645 HB este folosit pentru mișcarea de la cotul brațului
robotic, iar servomotorul de tip HS-755 HB fiind folosit pentru manevrarea cotului acestuia.
Caracteristiciile servomotoarelor sunt prezentate în tabelul 4.1.
Tip s ervomotor
Caracteristici
HS-422
HS-645 HB
HS-755 HB
Greutate 45.4 g 55 g 110 g
Dimensiuni Lungime 40.4 mm 40.4 mm 58.9 mm
Lățime 19.6 mm 19.6 mm 29 mm
Înățime 36.6 mm 37.6 mm 49.8 mm
Cuplu 4.8 V (3.31 kg -cm)
6.0 V (4.10 kg -cm) 4.8 V (7.70 kg-cm)
6.0 V (9.58 kg -cm) 4.8 V (11.02 kg -cm)
6.0 V (13.18 kg -cm)
Viteză 4.8 V (0.21 sec/60o)
6.0 V (0.16 sec/60o) 4.8 V (0.24 sec/60o)
6.0 V (0.20 sec/60o) 4.8 V (0.28 sec/60o)
6.0 V (0.23 sec/60o)
Pulsații 900-2100 µs 900-2100 µs 900-2100 µs
Ciclu pulsație 20 ms 20 ms 20 ms
Tabel 4.1
Mișcăriile servomotoarelor sunt realizate pe baza unor impulsuri, iar în funcție de
acestea fiind determinate pozițiile fiecărui servomotor, după cum se poate observa în figura
4.3. Legătura dintre microcontro ller-ul SSC -32 și laptop se realizează prin portul serial.
Cablul care face comunicare posibilă între cele două componente se numește DB9 și folosește
interfața RS -232 pentru comunicare.
29
Figura 4.3. Poziția servomotoarelor în funcție de impulsurile transmise.
4.1.3. Placa electronică
Microcontroler -ul este microcircuitul care încorporează o unitate centrală (CPU) și o
memorie internă împreună cu resursele necesare, permițându -i interacțiunea cu mediul
exterior. Acesta fiind compus din mai multe porturi de intrare și ieșire la care se pot realiza
conexiuni cu calculatorul și servomotoarele.
În figura 4.4 este prezentată placa de comandă, servo controller -ul SSC -32 și
conexiuniile acesteia.
Figura 4.4 Schema servo controller SSC -32
30
Servocontroller -ul SSC -32 conține un microcontroller ce perminte comanda
elementelor de acționare, comanda acestuia având un răspuns imediat iar viteza putând fi
controlată. Intervalul de acționare fiind de la 0.50 ms la 2.50 ms pentru o mișcare de
aproximativ 180o.
4.1.4. Protocolul serial pentru acționarea motoarelor
Acționarea servomotoarelor se realizează cu ajutorul unui protocol cu secvențe de cod
care se transmit de la calculator la microcontroller.
Acest protocol respectă următoarele etape:
Realizarea conexiunii cu ajutorul portului serial
Trimiterea unor secvențe de cod servo controler -ului
Datorită impulsurilor trimise de la microcontroller la servomotoare, brațul
robotic execută mișcarea cerută de utilizator, comanda fiind transmisă prin
intermediul interfeței.
Șirul de caractere trimis pentru acționarea servomotoarelor are structura următoare:
#<ch> P <pw> S <spd> … # <ch> P <pw> S <spd> T <time>
<ch> = numărul canalului, 0 -4 (numerotare fiind realizată de la bază către gripper)
<pw> = impulsurile, 500 -2500 µs
<spd > = viteza de deplasare în µs pentru un singur canal (opțional)
<time> = timpul pentru întrega mișcare în ms, acesta afectează toate canalele, maxim
65535 (opțional)
În continuare voi prezenta câteva exemple de comenzi:
„#3P1100T70 0” ; ch=3 ; pw=1100 ; time=700 ms
– secvența de mai sus acționeză servomotorul 3 cel de la încheietura brațului
robotic mutându -l la valoarea 1100, durata mișcării fiind de 700 ms
„#2P1700 #4P2100 T500” ;ch=2 și 4 ; pw=1700 și 2100 ; T=500
– secvența următoare acționeză servomotorul 2, situat la încheietura cotului,
și servomotorul 4, situat la nivelul sistemului de prindere (gripper)
31
mutându -le la valoarea 1700, respectiv 2100, durata ambelor mișcări fiind
de 500 ms.
„#1P1300 S2000 ” ; ch=2 ; pw=1300 ; spd=2000
– exemplul următor mută servomotorul 1, situat la încheietura umărului la
valoarea 1300, iar mișcarea se va efectua cu o viteză de 2000 µs
evhivalentul a 500 ms
4.2. Structura software
Programul este realizat în mediul Matlab, iar mișcăriile minirobotului sunt controlate
prin intermediul unei interfețe GUI, iar pentru calculul cinematicii directe și inverse se
utilizează toolbox -ul de robotică.
4.2.1. Prezentarea mediului Matlab
Denumierea Matlab provine de la Matrix Laboratory , iar firma producătoare, iar firma
producătoare este The MathWorks, Inc., SUA. Abrevierea MATLAB a fost creată la sfârșitul
aniilor ‘70 de către Cleve Moler, președintele departamentului de Informatică al Universității
din New Mexico. Inițial a fost creat pentru a p erimite accesul studențiilor săi , pentru studiul
anumitor librării, dar în scurt timp a fost răspândit și în alte universități, iar în anul 1984 după
ce a fost fondată compania MathWorks, a continuat dezvoltarea aplicației.
Matlab este un software performa nt oferind inginerilor un sistem interactiv și ușor de
utilizat. Folosește atât un limbaj de programare de nivel înalt, cât și un mediu de dezvoltare
pentru calculul tehnic. Cu ajutorul mediului Matlab sunt facilitate rezolvarea unor calcule
foarte complic ate, într -un timp foarte scurt, acest lucru fiind posibil datortită funcțiilor
încorporate în acesta. Pentru a extinde mediul de lucru există un număr mare de instrumente
care se pot adăuga, oferind soluții pentru rezolvarea diverselor probleme.
Domeniil e în care poate fi folosit mediul Matlab:
Matematică, calcul numeric și simbolic
Dezvoltarea algoritmilor
Modelare și simulare
32
Analiza de date, explorarea și vizualizarea acestora
Grafică folosită în domenii inginerești și în științele aplicate
Aplicații de dezvoltare, incluzând realizarea de interfețe grafice utilizator (GUI)
Elementul de bază fiind matricea care nu trebuie declarată înainte de folosire și care are
o dimensiune care trebuie specificată. Cu alte cuvinte, un vector este o matrice cu o linie sau o
coloană, iar un scalar este un vector cu dimensiunea 1. Matlab -ul lucrează fie în modul linie d
comandă, situație în care fiecare linie este prelucrată imediat, rezultatele fiind afișate în mediul
de lucru, fie cu programe având fișiere de tip „ M-files” având extensia „.m”. Aceste fișiere
putând fii executa oricând în mediul de lucru Matlab.
Stuctura sistemului Matlab constă în cinci părți principale:
Mediul de dezvoltare acesta fiind alcătuit dintr -un set de unelte care facilitează
folosirea funcți ilor și fișierelor Matlab. Aceasta include de fapt interfețele
grafice și include fereastra principală Matlab (Matlab Desktop), fereastra de
comenzi(Comand Window), fereastra care memorează istoria comenziilor
(Comand History), și browser -ele de Help, Work Space, Files, Search Path etc.
Biblioteca de funcții matematice constă într -o vastă colecție de algoritmi de
calcul, pornind de la funcții elementare precum, sumă, sinus, cosinus și
aritmetică complexă, p ână la funcții mai sofisticate precum inverse de mat rici,
calcul de valori proprii sau transformata Fourier
Limbajul Matlab este un limbaj de tip matrice/vector de înalt nivel, ce include
instrucțiuni de control al buclelor, funcții, structuri de date, comenzi de
intrare/ieșire și instrucțiuni de programare orientată pe obiect.
Handle Graphic reprezintă sistemul de grafică Matlab și include atât comenzi
de înalt nivel pentru vizualizare 2D și 3D a datelor, procesare de imagini,
animație și grafică, cât și comenzi de înalt nivel ce permit personalizarea
comp letă a reprezentăriilor grafice și construirea integrală a interfețelor grafice
(GUI) pentru aplicațiile Matlab
Matlab Aplication Program Interface este o bibliotecă ce permite scrierea de
programe C și Fortan ce interacționează cu Matlab -ul. Aceasta conț ine facilități
de apel de subrutine , de apel a Matlab -ul ca pe o mașină de calcul, și de citire
și scriere de fișiere Mat -files.
33
4.2.1.1. Matlab GUI
Pentru a realiza o interfață grafică cu utilizatorului se pot apela facilitățiile Matlab
dezvoltate în acest sens . Acest lucru poate fi realizat folosind Matlab Guide( „Graphical User
Interfaces Developoment Environment” ), acesta fiind un sistem de afișaj ce utilizează
elemente grafice.
O interfață de utilizator de acest fel reprezintă un afișaj grafic cu una sau mai multe
ferestre care conțin controale care permit unui utilizator să efectueze sarcini interactive. Pentru
rularea mediu lui de dezvoltare a unei aplicații GUI se tastează în l inia de comandă Comand
Windows „guide”, iar în cutia de dialog deschisă ulterior se selectează „Blank GUI (Default)” .
Interfața care se deschide este prezentată în figura 4.5:
Figura 4.5. Interfață Matlab GUI
În această interfață pot fi adăugate o serie de elemente care facilitează utilizatorului
lucrul pentru comanda minirobotului, în acest caz.
34
Utilizând „GUIDE Layout Editor” se proiectează interfața, iar după salvare se
generează automat un fișier M -file în care se definesc proprietățiile componentel or. Fișierul M,
poate conține o funcție cu variabile de intrare și ieșire, fie o listă de comenzi. Aici sunt
generate automat funcții „callback” pentru fiecare buton de pe interfață. Utilizatorul definind
comenziile care trebuie executate în urma apăsării unui buton.
Avantajele interfeței grafice fiind:
Interac țiunea cu computerul este mai ușoară și mai eficientă pentru utilizator
Simplificarea instrucțiuniilor complexe, utilizând pictograme sau meniuri
Inițierea intuitivă a comenziilor către computer
Prog ramele și fișierele fiind mai ușor de organizat
4.2.2. Toolbox robotică Matlab
Din punct de vedere al construcției, Matlab -ul este alcătuit dintr -un nucleu de bază în
jurul căruia sunt grupate diverse aplicații. Aceste aplicații poartă numele de toolbox -uri și sunt
de fapt niște funcții extinse ale mediului Matlab, care dezvoltă mediul de programare de la o
versiune la alta, pentru a soluționa problemele de la o versiune la alta.
Mai jos sunt enumerate câteva exemple de biblioteci de care dispune mediul Matlab:
Signal Processing Toolbox – procesare de semnal
System Identification Toolbox – identificarea sistemelor
Optimization Toolbox – optimizare
Robotics System Toolbox – controlul roboțiilor
Control System Toolbox – sistemele de control
Robust Control Toolbox – controlul robust
Neural Network Toobox – rețelele neurale
Symbolic Math Toolxbox – calculul numeric
În acest proiect, se utilizează câteva funcții ale toolbox -ului de robotică, aceste funcții
fiind utile pentru studiul și simularea cinematicii, dinamicii și generarea traiectoriei unui robot.
În plus, oferă soluții pentru manipularea și conversia între tipuri de date, cum ar fi: vectori,
transformări omogene, unghiuri Euler.
35
Acest toolbox de robotică este înbunătățit de -a lungul aniilor, însă pentru acest proiect
am folosit versiunea 7.1.
Avantajele utilizării toolbox -ului fiind:
codul oferă un punct de comparație pentru alte implementări din aceiași
algoritmi
rescrierea funcțiilor mai ușoară cu ajutorul fișierelor M -file utilizând
compilatorul Matlab
rutinele sunt, în general, scrise într -o manieră simplă, care permite o înțelegere
ușoară, probabil, în detrimentul eficienței de calcul
deoarece codul sursă este disponibil, există un beneficiu pentru înțelegere și
predare
În continuare, sunt enumerate fu ncțiile care au fost utilizate pentru calcularea
cineamaticii directe și inverse:
L1=link([alfa A theta D])
L1 – cupla cinematică numărul 1
link – comandă care creează un element cu un grad de libertate cu parametrii
alfa (unghiul de răsucire), A (lungime a) , theta (unghiul articulației), d(distanța).
Funcția de creare a legăturilor cuplelor cinematice și afișarea lor grafică este
următoarea:
L1 = link([0 1 0 0 ]);
L2 = link([0 1 0 0 ]);
r = robot(({L1 L2}), 'Robot' );
q=[0 1]
plot(r,q);
Conectarea cuplelor cinematice se face cu ajutorul funcției r=robot , iar pentru afișarea
grafică se folosește comanda plot în funcție de funcția r și q (matrice în care se află unghiuriile
articulațiilor cuplelor cinematice). În urma execuției comenzii plot rezultă figura 4.6.
Pentru aflarea cinematicii directe se utilizează următoarea funcție:
CD=fkine(r,q)
Comanda fkine determină cinematica directă în funcție de parametrii r și q.
36
Figura 4.6. Reprezentarea robotului în Matlab
În urma, calculului cinematicii directe rezultă următoare matrice de transformare
omogenă:
CD=(0.5403−0.841501.5403
0.84150.540300.8415
0 010
0 001)
Calculul cinematicii inverse se realizează folosind următoare structură:
q0=[1 0];
M=[1 1 1 1 0 0];
CI=ikine(r,CD,q0,M);
Folosind comanda ikine se calculează cinematica inversă în funcție de r, CD, q0, M
unde:
r – reprezintă robotul
37
CD – reprezintă cinematica directă
q0 – reprezintă cinematica inversă având mai multe soluții care trebuie definite a unghiuriilor
inițiale a c uplelor cinematice
M – reprezintă masca, este o matrice de 1 X 6 coloane care se introduce când robotul are sub
șase grade de libertate; numărul de grade de libertate fiind dat de elementele cu valoarea 1 din
matrice.
CI=[0 1]
4.2.3. Aplicația GUI de comandă
Pentr u a comanda minirobotul s -a realizat o interfață în Matlab GUI iar conexiunea a
fost realizată prin intermediu portului serial. Funcția cu ajutorul căruia am realizat aceasta
conexiune este prezentată mai jos:
s=serial( 'COM3' ,'Terminator' ,'baudrate' ,115200, 'DataBits' ,8,'Parity' ,'none' ,'StopBits' ,1,'FlowCo
ntrol' ,'none' );
Funcția serial creează obiectul pentru portul serial unde:
'COM3' – reprezintă portul de conexiune, în cazul de față portul 3
'Terminator' – se folosește un character “ terminator ” pentru a indica sfârșitul unei serii
de bytes care constituie mesajul
'baudrate' – viteza de modulație, reprezintă viteza cu care se modifică stăriile electrice
ale modemului
'DataBits' – datele sunt transmise sub forma unei serii de 5,6,7, sau 8 biți cu cel mai
puțin semnificativ trimis primul
'FlowControl' – se utilizează pentru a preveni transmiterea prea rapidă a unui flux de
octeți.
După crearea portului acesta se deschide sau se închide în funcție de preferințe cu
ajutorul funcțiilor fopens(s) , respe ctiv fclose(s). Dacă se dorește ștergerea acestuia se folosește
funcția fdelete(s) .
Interfața grafică realizată în acest proiect are 2 ferestre principale: una pentru calculul
cinematicii directe a minirobotului Lynxmotion, una pentru aflarea cinematicii in verse a
acestuia și încă o interfață în care ni se permite controlul acestuia prin folosirea anumitor
comenzi, iar în plus pe această pagină ni se permite și executarea unei instrucțiuni predefinite
38
învățată de brațul robotic. Fiecare fereastră are un buto n de revenire la pagina principală sau
un chiar și butonul de închiderea al întregii aplicații de comandă.
Diagrama de activitate a interfeței Matlab GUI este prezentată în figura 4.7
Figura 4.7. Diagrama de activitate a interfeței Matlab GUI
39
În figura 4. 8 este prezentată interfața principal ă:
Figura 4. 8. Interfața principală a programului
Pe interfața principală găsim două imagini, una cu Minirobotul Lynxmotion și una cu
logo-ul facultății care au fost introduse cu elemente de tip axes cu secvența de cod de mai jos,
un element de tip Static text cu ajutorul căruia am scris numele robotului și cu ajutorul
butoanelor de tip pushbutton care fac trimitere la celelalte ferestre, iar ultimul buton închide
aplicația.
axes(handles.axes1);
imsho w('robot.jpg' )
axes(handles.axes3);
imshow( 'UPM.jpg' )
Funcția “ imshow ” introduce imaginea într -un obiect de tip figură numit “ axes” , acesta
făcând parte dintr -un sistem care manipulează obiectele grafice, cu ajutorul idetificatorului
“handle” .
Legătura cu celalalte ferestre se realizează apelând în funcția butonului de tip
pushbutton , numele ferestre ce urmează a fi accesată. În continuare, am prezentat două
exemple de utilizare a acestui buton pentru deschiderea si închiderea ferestrelor.
40
function pushbutton1_Callback(hObject, eventdata, handles)
CINEMATICA_DIRECTA
close PRIMA_PAGINA ;
Primul exemplu deshichide fereatra CINEMATICA _DIRECTA, în care se calculează
cinematice directă și închide prima pagină a aplicației.
function pushbutton5_Callback(h Object, eventdata, handles)
close all;
Al doilea exemplu închide toate fereastrele deschise ale aplicației.
4.2.3.1. Butonul “CINEMATICA”
După apăsarea butonului „CINEMATICA” pe fereastra principală apare figura 4. 9, pe
care găsim mai multe comenzi, putem porni robotul la apăsarea butonului ON, putem realiza
proiectarea 3D a minirobotului , putem reveni la pagina principală sau închide aplicația.
Figura 4.9. Pagina “CINEMATICA DIRECTĂ”
41
Butonul “ON” este un buton de tip “togglebutton ” care este executat cu următorul cod:
button_state = get(hObject, 'Value' );
if button_state == get(hObject, 'Max' )
% toggle button is pressed
set(handles.conexiune, 'String' ,'OFF' );
fopen(s);
elseif button_state == get(hObject, 'Min')
% toggle button is not pressed
set(handles.conexiune, 'String' ,'ON');
Prima linie citește starea robotului, iar în funcție de acasta îl pornește sau oprește.
Butonul “ 3D” este creat similar cu butonul “ ON”, iar la acționarea acestuia există
posibilitatea pentru vizualizarea 3D a proiecției robotului.
Dacă robotul este pornit, la apăsarea butonului “CINEMATICA DIRECTA” se poate
calcula matricea omogenă, iar în funcție de modificarea parametriilor unghiului 𝜽 al fiecărei
cuplei cinematice, la reapăsarea acestui buton se recalculează matricea omogenă.
Matricea de transformare omogenă este de dimensiune 4×4, iar în liniile de cod de mai
jos se completează prima linie a acesteia, restul completându -se similar pentru restul matricii:
set(handles. text1, 'String' ,num2str(round(m(1,1))))
set(handles.text2, 'String' ,num2str(round(m(1,2))))
set(handles.text3, 'String' ,num2str(round(m(1,3))))
set(handles.text4, 'String' ,num2str(round(m(1,4))))
Valoriile unghiuriilor 𝜽 se pot modifica în partea dreapta -jos a interfeței,
introducând valoriile în elementele de tip edit text sau cu ajutorul elementelor de tip
slider (exemplu pentru construcția unui slider).
teta = (str2double(get(handles.edit1, 'String' )));
set(handles.edit1, 'UserData' ,teta);
teta1 = (get(handles.t1, 'Value' ));
set(handles.edit1, 'String' ,num2str(teta1));
Butonul “CINEMATICA INVERSA” folosește coordonatele rezultate din cinematica
directă pentru calculul variabilelor din cuplele cinematice. Ci nematica inversă fiind opusul
cinematicii directe, astfel modificând anumiți parametric ai acesteia pot rezulta noi unghiuri 𝜽.
42
4.2.3.2. Butonul “PROGRAM”
La apăsarea butonului “ON” se pornește robotul , se apasă butonul 3D pentru a se putea
proiecta 3D realizarea brațului, iar în funcție de dorința utilizatorului se pot modifica
parametrii servomotoarelor după care se poate apăsa butonul REALIZARE pentru comanda
dorită.
Figura 4. 10. Pagina “PROGRAM”
În partea de jos a paginii, la apăsarea butoanelor M P U, trei cuburi aflate pe spațiul de
lucru vor fi mutate , într -o zonă predefinită și se va construi un “mini -turn” care va compune
abrevierea UPM.
43
5. Concluzii și dezvoltări ulterioare
Roboții sunt din ce în ce mai prezenți în viața noastră, roboții industriali care ridică,
deplasează , sudează, taie sau lipesc, luând locul a zeci de muncitori; sau chiar jucării care
imită fidel înfățișarea unor animale, dar care în esență sunt tot roboți mai mari sau mai mici.
Există și roboți militari, roboți utiliza ți în acțiuni de salvare sau roboții trimiși în misiuniile de
explorare spațială. Roboții fiind printre noi, pe lângă noi sau chiar trăim în preajma lor, de
multe ori fără să ne dăm seama.
În ultimii ani, prezența roboțiilor -însoțitori permanenți, trăind pe lângă casa omului, nu
mai reprezintă o proiecție SF, ci o realitate tot mai răspândită. Acest fenomen a început din
țările dezvoltate și foarte tehnologizate și se răspândește treptat în toată societatea. Japonia și
Coreea de Sud lansând pe piață robot după robot, iar SUA și Europa vin tare din urmă. În
țăriile dezvoltate ale Asiei, a împărți viața cu un robot nu mai reprezinză un subiect tabu, iar
beneficiarii acestor roboții fiind persoanele vârstinice sau persoanele cu diferite dizabilități.
În acest proiect am realizat un program în Matlab GUI pentru comanda minirobotului
Lynxmotion AL5 cu patru grade de libertate. Contribuția mea personală la acest proiect constă
în realizarea interfeței GUI pentru a facilita lucrul utilizatorului cu brațul robotic. În prima
parte a aplicației există posibilitatea studiului cinematicii directe, respectiv cinematicii inverse.
În ultima parte a programului am realizat o interfață care ajută la controlul servomotoarelor și
la realizarea unei secvențe învățată de robot.
Ca și dezvoltări ulterioare s -ar putea atașa o cameră video brațului robotic, pentru
realizarea anumitor secvențe ale programului sau pentru detectarea de culoare sau a unor
obstacole. O altă dezvoltare ulterioară ar mai fi implementarea unui sistem de con trol la
distanță cu Wireless sau Bluetooth și realizarea unei aplicații Android pentru a facilita lucrul
robotului cu ajutorul telefonului mobil.
44
Bibliografie
[1] Călin Rusu, Ingineria roboților, Cinematică, Dinamică, Control, Ed. Mediamira, Cluj-
Napoca, 2001;
[2] Antonescu, P., Mihai, N., Antonescu, O., Manipulator -robot tip RRR -RR cu cinci
mobilități, Lucrările Simpozionului „Studii și cercetări de mecanică aplicată și
electromecanică”, Pitești, Vol. I, 1997.
[3] Duka Adrian, Robotică, curs , Univ. Petru Maior Târgu Mureș
[4] Dulău Mircea, Sisteme de conducere a roboților, curs, Univ. Petru Maior Tîrgu Mureș
[5] Viorel Handra Luca, Visitrian Mătieș. Cornel Brișan, Teodor Tiuca , Roboți Sturctură,
cineamatică și caracteristici
[6] Fu, KS, Gonzales, RC, Lee, CSG, Robotics: Control, Sensing, Vision and Intelligence,
McGraw -Hill, 1987;
[7] http://www.lynxmotion.com
[8] http://yamaho.eu/files/roboti.pdf
[9] http://www.atlantykron.org/Documents/ROBOTI.pdf
[10] http://www.tmt.ugal.ro/crios/Support/ANPT/ Tutoriale/MATLAB_IN_INGINERIE.pdf
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Șef lucr. dr. ing. OLTEAN STELIAN [609370] (ID: 609370)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
