Sunteți pe pagina 1din 92

Gavriluţ Ioan Barabás Tiberiu

Gacsádi Alexandru

BAZELE ROBOTICII

Îndrumător de laborator

Editura Universităţii din Oradea


2006
Descrierea CIP a Bibliotecii Naţionale a României
GAVRILUŢ, IOAN
Bazele roboticii : îndrumător de laborator / Gavriluţ Ioan,
Barabás Tiberiu, Gacsadi Alexandru. – Oradea : Editura Universităţii
din Oradea, 2006
Bibliogr.
ISBN (10) 973-759-214-X ; ISBN (13) 978-973-759-214-9

I. Barabás, Tiberiu
II. Gacsadi, Alexandru

621.865.8(075.8)

EDITURA UNIVERSITĂŢII DIN ORADEA ESTE ACREDITATĂ DE


CNCSIS COD 149.

2
Prefaţă

Prezentul îndrumător este destinat studenţilor de la secţiile: Electronică


aplicată, Reţele şi Software de Telecomunicaţii şi Inginerie medicală, servind
pentru pregătirea şi efectuarea lucrărilor de laborator la disciplina Bazele
roboticii. În vederea aprofundării şi completării cunoştinţelor teoretice de la
curs, lucrarea urmăreşte însuşirea temeinică a unor principii teoretice şi
aplicative, prin participarea activă a studenţilor la desfăşurarea activităţii de
laborator.
În prezent, roboţii industriali sunt răspândiţi pe scară largă. Asimilarea
corectă a principiilor de funcţionare ale acestora, presupune înţelegerea corectă
nu doar a modului cum funcţionează sistemul mecanic al roboţilor respectiv
circuitele electronice de comandă, ci şi legătura strânsă care trebuie să existe
între ele. Astfel, sunt propuse spre studiu: structura unui mini-sistem de
fabricaţie integrat informaţional CIM, schema bloc a unui robot industrial,
modul de comandă manual şi automat a unui robot, integrarea robotului
industrial RV-M1 într-un sistem de fabricaţie flexibil, analiza cinematică
directă şi inversă a unui robot. În final se prezintă metoda câmpului potenţial
artificial pentru planificarea traiectoriei roboţilor precum şi exemple de astfel
de planificări pe baza imaginii mediului cu obstacole, utilizând mediul de
simulare Matlab.
Majoritatea lucrărilor de laborator se efectuează practic pe baza mini-
sistemului de fabricaţie integrat informaţional CIM din dotarea laboratorului.
Ultimele patru lucrări vor fi efectuate prin simulare, folosind mediul Matlab.

Oradea Autorii
20.12.2006

3
Cuprins

L. 1. Sistemul de fabricaţie integrat informaţional CIM 2000 ... 5

L. 2. Sistemul micro-robot RV-M1................................................ 14

L. 3. Comanda manuală a robotului RV-M1................................ 20

L. 4. Comanda punct cu punct a robotului RV-M1 ..................... 27

L. 5. Integrarea robotului RV-M1 în sistemul de fabricaţie


flexibil FMS-2101 ................................................................ 38

L. 6. Comanda deplasării robotului RV-M1 pe Slide .................. 43

L. 7. Staţia VISION-2000 ............................................................... 52

L. 8. Comanda robotului RV-M1 pentru deservirea staţiei


VISION-2000 ....................................................................... 55

L. 9. Analiza cinematică directă în cazul roboţilor industriali ... 63

L. 10. Analiza cinematică inversă a unui robot industrial .......... 70

L. 11. Utilizarea metodei câmpului potenţial artificial pentru


programarea traiectoriei roboţilor .................................... 77

L. 12. Planificarea traiectoriei unui robot mobil cu metoda


câmpului potenţial artificial ............................................... 85

Bibliografie ...................................................................................... 90

5
Lucrarea nr. 1

SISTEMUL DE FABRICAŢIE INTEGRAT


INFORMAŢIONAL CIM-2000

1. Scopul lucrării
În lucrare se prezintă componentele principale şi modul de funcţionare a
mini-sistemului de fabricaţie integrat informaţional CIM (Computer Integrated
Manufactury).

2. Consideraţii teoretice

2.1. Sisteme flexibile de fabricaţie


Un sistem flexibil de fabricaţie (FMS - Flexible Manufacturing System)
este un ansamblu de utilaje interconectate printr-un sistem de transport,
destinat pentru fabricarea unor piese sau subansamble. Utilajele sunt, de
regulă, mijloace de producţie automatizate (de exemplu maşini unelte cu
comandă numerică), şi sunt comandate de către un calculator central. Sistemul
de transport are sarcina de a transporta piesele în diferite stadii ale prelucrării
de la un utilaj la altul în funcţie de etapa de prelucrare ce urmează a fi
executată. Transportul pieselor se poate face cu bandă transportoare (conveior)
sau prin intermediul roboţilor industriali (în cazul în care sunt necesare mişcări
complexe de manipulare).
Metoda de comandă în cadrul unui FMS este de cele mai multe ori una
ierarhică, pe baza căreia calculatorul central sau staţia centrală coordonează
sistemul de transport şi staţiile din fiecare punct de lucru, pe baza informaţiilor
primite de la acestea, cu privire la stadiul prelucrărilor. O structură de comandă
ierarhică este prezentată în figura 1.1.

7
Comenzi Calculator central

Stări

Calculator nivel 2 Calculator nivel 2 Calculator nivel 2

Figura 1.1. Structură de comandă ierarhică.

Tendinţa actuală este înlocuirea sistemelor flexibile de fabricaţie cu aşa


zise celule flexibile de fabricaţie FMC (flexible cells manufacturing) care sunt,
de fapt, variante restrânse de FMS şi sunt specializate fiecare pe un anumit
grup de operaţii din totalitatea operaţiilor executate asupra semifabricatelor.

2.2. Sistemul integrat de fabricaţie CIM-2000


Sistemul CIM-2000 este un sistem de fabricaţie integrat informaţional,
realizat în scop educaţional. Structura sistemului se prezintă în figura 1.2.
FMS-2101
Staţie de Robotul
NCL
VI-2000 asamblare electric PC 2000
HYD-2800 RV-M1

PC ST - 2000
port
port
CAMERĂ PC
VIDEO

port
CIM-2000
CONVEIOR
port
PC

Robot
PN-2800 PC
pneumatic

Figura 1.2. Structura sistemului CIM-2000.

8
Fiecare staţie din componenţa acestuia este comandată de către un
calculator (PC). Staţiile ce compun acest sistem sunt:
- Staţia de control central (CIM-2000);
- Staţia pneumatică de alimentare cu semifabricate (PN-2800);
- Staţia de prelucrare flexibilă (FMS-2101);
- Staţia de control dimensional (VI-2000);
- Staţia de asamblare (HYD-2800);
- Staţia de înmagazinare automată (ST-2000).
Pe lângă aceste staţii, ansamblul CIM are: un sistem de transport în buclă
închisă (conveior), sisteme de identificare cu senzori şi un sistem de
comunicare a datelor. Pe conveior se află vagoneţi care se pot deplasa de la o
staţie la alta. Numărul maxim de vagoneţi care pot fi în acelaşi timp pe
conveior este 32.
Sistemul CIM este dotat cu un robot industrial de tip RV-M1 montat pe
un sistem de transport local (Slide) şi este utilizat pentru deservirea staţiei de
prelucrare flexibilă FMS-2101 şi a staţiei de inspecţie vizuală VI-2000.
Staţia de control central CIM-2000
Staţia CIM-2000 supervizează şi controlează funcţionarea tuturor staţiilor
din componenţa mini-sistemului de fabricaţie CIM.
Staţia pneumatică PN-2800
Staţia pneumatică PN-2800 este o staţie utilizată pentru alimentarea
sistemului cu semifabricate. Staţia este comandată de un automat programabil,
care comunică cu calculatorul ataşat staţiei. Prin intermediul calculatorului se
poate iniţializa staţia, se pot selecta modurile de lucru (manual, semiautomat
sau automat), respectiv se poate modifica dacă este necesar, programul de
lucru al automatului.
Manipulatoarele pneumatice din cadrul staţiei, încarcă semifabricatele pe
palete-suport care la rândul lor sunt puse pe vagoneţi. Semifabricatele ajung la
staţia care le-a solicitat, prin intermediul vagoneţilor care sunt transportaţi de
către conveior.
Dispozitivul de prehensiune al manipulatorului (gripper-ul), care încarcă
cu semifabricate cilindrice, este prevăzut cu un traductor Hall, prin intermediul
căruia se realizează controlul gradului de închidere/deschidere al gripper-ului
şi în acest fel sunt verificate diametrele semifabricatelor cilindrice.

9
Acele semifabricate care nu se încadrează din punct de vedere
dimensional între anumite limite prescrise (rebuturi) sunt eliminate prin
depozitarea lor într-un container special.
Staţia pneumatică PN-2800 cuprinde:
- Magazie de palete de tip vertical echipată cu un manipulator de
încărcare cu acţionare pneumatică;
- Două magazii pentru semifabricate cilindrice cu capacitatea de 10
cilindri fiecare, cu un manipulator, dispozitive de sens şi numărător pentru
cilindrii din stoc;
- Robot pneumatic utilizat pentru a încărca sistemul cu palete,
semifabricate cilindrice şi paralelipipedice;
- Container pentru depozitarea semifabricatelor cilindrice rebut;
- Calculator împreună cu un automat programabil care comunică cu
sistemul central CIM-2000.
Procesul de alimentare cu piese poate fi cerut de la oricare staţie locală
sau de către staţia de control central CIM-2000. Prin ordinul de fabricaţie se
defineşte ce cantitate din fiecare material este necesară. Staţia alimentează cu o
paletă goală, o încarcă cu materialul dorit, şi o pune apoi într-un vagonet care
staţionează în port. Sunt situaţii în care se cere o paletă goală, necesară uneori
într-o altă staţie a sistemului de fabricaţie, sau se cere descărcarea unei palete
goale de pe un vagonet.
Staţia de prelucrare flexibilă FMS-2101
Staţia FMS-2101 este practic un sistem flexibil de fabricaţie care
înglobează: staţia de prelucrare prin strunjire NCL-2000, staţia de asamblare
pneumatică, staţia de inspecţie vizuală VI-2000 şi robotul electric RV-M1.
Sistemul CIM-2000 utilizează trei tipuri de semifabricate:
- cilindric cu diametrul de 26 mm;
- cilindric cu diametrul de 20 mm;
- paralelipipedic, prevăzut cu o gaură cu diametrul de 18 mm (în vederea
asamblării cu cilindrul prelucrat).
Semifabricatele sunt transportate pe câte o paletă. Paleta este concepută
astfel încât gripper-ul robotului de la oricare staţie să o poată apuca, pentru
operaţii de încărcare/descărcare.

10
În cadrul staţiei FMS sunt executate prelucrări cu ajutorul strungului.
Toate cele trei tipuri de semifabricate, menţionate mai sus, pot fi prelucrate în
cadrul staţiei FMS. Selectarea unui anumit ordin de fabricaţie poate fi realizată
de către operatorul local, dacă staţia lucrează în modul de operare manual, sau
de către operatorul staţiei CIM-2000, dacă staţia este integrată în sistemul
global de fabricaţie CIM.
Staţia de control dimensional VI-2000
Staţia VI-2000 realizează inspecţia vizuală a semifabricatelor în scopul
verificării acestora din punct de vedere dimensional. Aceasta dispune de
următoarele componente:
- Cameră video, utilizată pentru captarea imaginii semifabricatelor
cilindrice în urma prelucrării acestora. Procesul de inspecţie vizuală este
controlat de către calculatorul ataşat staţiei care va lua decizia dacă piesa
cilindrică este bună sau este rebut prin comparaţie cu imaginea unei piese de
dimensiuni standard memorate pe calculator;
- Robotul electric RV-M1, utilizat pentru încărcarea şi descărcarea
semifabricatelor cilindrice şi a produselor asamblate pe şi de pe vagoneţi
precum şi pentru transportul semifabricatelor între staţia de inspecţie vizuală şi
presa pneumatică.

Staţia de asamblare HYD-2800


Staţia de asamblare este realizată cu ajutorul unei prese pneumatice
HYD-2800. Un semifabricat cilindric găsit bun, în urma inspecţiei vizuale, este
adus de către robot şi asamblat cu un semifabricat paralelipipedic cu ajutorul
presei pneumatice. Această operaţie definitivează fabricarea unui singur
ansamblu. Apoi robotul pune ansamblul într-un vagonet gol aflat în port,
urmând să fie transportat şi depozitat în magazia staţiei ST-2000.
Staţia de înmagazinare ST-2000
Staţia ST-2000 are drept scop înmagazinarea şi regăsirea automată
(AS/RS - Automated Storage and Retrieval System) a semifabricatelor care nu
sunt solicitate de alte staţii şi a produselor finite. Staţia este comandată de un
automat programabil PLC. Cu ajutorul calculatorului ataşat staţiei se poate
iniţializa magazia, se poate modifica programul PLC, se poate selecta
"algoritmul de înmagazinare" dorit sau se pot selecta modurile de lucru:
manual, semiautomat sau automat.

11
Staţia de înmagazinare este constituită din următoarele componente:
- Magazia de stocare, care conţine 32 de celule de stocare aranjate sub
forma unei matrice cu patru linii şi opt coloane;
- Un manipulator de înmagazinare utilizat pentru deplasarea paletelor de
la şi către celulele de stocare;
- Un manipulator care realizează împingerea paletelor între standul
robotului şi manipulatorul de înmagazinare;
- Calculatorul şi automatul programabil care supervizează înmagazinarea
pieselor şi sunt ataşate în acelaşi timp reţelei de comunicaţie din sistemul CIM.
Dacă staţia de control central CIM cere un anumit material, ea va emite
codul ordinului de fabricaţie iar controlerul staţiei de înmagazinare va decide
dacă acest material este disponibil în magazie. Dacă materialul este disponibil,
manipulatorul staţiei de stocare ia materialul (încărcat pe o paletă), şi îl pune
pe un vagonet aflat în portul staţiei.
Dacă materialul nu este disponibil, CIM-2000 este înştiinţată să
alimenteze cu semifabricate noi de la staţia pneumatică. Când un vagonet
încărcat ajunge în portul staţiei şi se cere stocarea, paleta este descărcată din
vagonet şi depozitată într-o celulă liberă a staţiei. Controlerul staţiei ST-2000
utilizează diverşi algoritmi pentru a selecta celula cea mai eficientă pentru
paletă.
Transportul semifabricatelor pe conveior
Transportul semifabricatelor pe conveior se realizează prin intermediul
vagoneţilor care sunt plasaţi pe conveior. Identificarea vagoneţilor şi implicit a
încărcăturii lor (tipul de semifabricat) este o etapă importantă în cadrul
operaţiilor realizate de către sistemul CIM. Fiecare staţie este prevăzută cu un
port în care se poate realiza procedura de încărcare sau descărcare a paletelor
pe şi de pe vagonet.
Semifabricatele neprelucrate sau prelucrate şi produsele finite se
deplasează secvenţial pe conveior, care trece prin faţa diferitelor staţii şi al
staţiei de înmagazinare automată. Când un vagonet (gol sau încărcat) ajunge în
portul unei staţii, este identificat printr-un sistem de senzori care transmite
numărul de identificare la staţia de control central. Aceasta lansează o
comandă către staţia respectivă fie cu ordinul de prelucrare dorit, fie să permită
vagonetului să se deplaseze mai departe pe conveior.

12
Dacă staţia trebuie să descarce vagonetul, va lua paleta cu semifabricatul
de pe vagonet, utilizând robotul de încărcare-descărcare de care dispune,
lăsând vagonetul disponibil pentru o nouă sarcină.
Vagonetul are două modalităţi de identificare:
- Un senzor de proximitate binar - anunţă staţia de control central CIM-
2000 când un vagonet a ajuns sau a plecat din portul staţiei. Staţia centrală
decide dacă vagonetul va opri în acea staţie sau dacă se va deplasa spre staţia
următoare.
- Un sistem de senzori utilizând un cod binar - fiecare vagonet are un
număr individual de identificare pe cinci biţi în cod binar natural, de la 1 la 32.
În fiecare port există 5 senzori care identifică acest număr iar informaţia este
transmisă către staţia de control central CIM-2000 utilizând o reţea de
comunicaţie multiplexată. În acest mod, staţia de control central este informată
despre dispunerea şi starea vagoneţilor de pe conveior.

3. Desfăşurarea lucrării
3.1. Se vor identifica şi localiza principalele staţii din cadrul mini-
sistemului de fabricaţie integrat informaţional CIM-2000.
3.2. Se va identifica sistemul de fabricaţie flexibil FMS-2101.
3.3. Se vor identifica tipurile de semifabricate utilizate şi senzorii utilizaţi
în cadrul: staţiei PN-2800, staţiei ST-2000 şi al conveiorului.
3.4. Se va însuşi modul de punere în funcţiune a mini-sistemului CIM-
2000.

13
Lucrarea nr. 2

SISTEMUL MICRO-ROBOT RV-M1

1. Scopul lucrării
În această lucrare se prezintă studenţilor sistemul micro-robot RV-Ml din
laboratorul CIM. În cadrul lucrării se identifică părţile componente ale
sistemului, respectiv se prezintă principalele caracteristici ale robotului.

2. Consideraţii teoretice
Implementarea sistemelor flexibile de fabricaţie (FMS) presupune
utilizarea manipulatoarelor şi roboţilor industriali. În principiu, ambele sunt
produse mecatronice, combinând tehnologiile: mecanica, electronica şi cea a
informaţiei .
În general, roboţii industriali au următoarele caracteristici:
- sunt realizaţi pentru a executa în principal operaţii de manipulare,
deplasare şi transport, care necesită viteză şi exactitate, dar pentru forţe
limitate;
- posedă mai multe grade de libertate (26) astfel încât să poată executa
operaţii complexe;
- sunt autonomi, sau relativi autonomi;
- sunt dotaţi cu o memorie reprogramabilă capabilă să acumuleze date
necesare executării operaţiilor;
- sunt dotaţi cu capacitate logică, în general redusă, astfel încât pot lua
decizii între diverse alternative.
În figura 2.1 se prezintă schema bloc de principiu a unui robot industrial.

14
Sursă de Transmisie şi Element Mediul
Motor
energie frână cuplă cinem. de lucru
Sistemul mecanic

Circuite electronice
de putere Senzori Senzori externi
interni
Sistemul Controler
de (Regulator
acţionare local)
automată
Interfaţă
de
Teaching Box Calculator
intrare
(Panou de (Sistem numeric de
programare) comandă)

Interfaţă operator Sistemul de comandă

Figura 2.1. Schema bloc a unui robot industrial.

După cum se vede şi din figură, un robot industrial se compune practic


din trei părţi principale: sistemul de comandă, sistemul de acţionare şi sistemul
mecanic.

2.1. Sistemul micro-robot RV-M1


Sistemul micro-robot RV-M1 (figura 2.2) din laboratorul CIM se
compune practic dintr-un robot industrial staţionar şi echipamentele aferente
pentru funcţionarea acestuia. Astfel, părţile componente ale sistemului sunt:
- robotul industrial RV-M1;
- unitatea de comandă (Drive Unit);
- cutia de instruire (Teaching Box);
- calculatorul personal de tip PC.
Sistemul micro-robot poate fi comandat pentru executarea unor operaţii
de manipulare a diverselor piese sau subansamble în regim manual, de la cutia
de instruire, sau în mod automat pe baza unui program.

15
Figura 2.2. Structura sistemului micro-robot RV-M1.

Robotul industrial RV-M1


Robotul industrial RV-M1, în varianta de bază, are 5 cuple cinematice de
rotaţie (J1, J2, J3, J4, J5) (figura 2.3), care sunt acţionate cu servomotoare de
curent continuu. Aceste servomotoare sunt echipate cu traductoare de poziţie a
rotorului (encodere de poziţie). Cu ajutorul acestor traductoare se poate realiza
controlul poziţiei robotului pe baza unghiurilor formate de articulaţii.
Astfel, pe baza informaţiilor cu privire la poziţia momentană a cuplelor
cinematice conducătoare şi cunoscându-se dimensiunile fizice ale articulaţiilor,
se poate obţine în orice moment coordonata punctului caracteristic, respectiv
poziţia obiectului manipulat faţă de o poziţie de referinţă în sistemul de
coordonate cartezian. Algoritmul pentru calculul poziţiei punctului
caracteristic, precum şi funcţiile de conducere utilizate, cu ajutorul cărora sunt
generate mişcările, sunt realizate şi fixate de producător, şi constituie o parte
din programul aplicaţie de bază al robotului.
Pe lângă cele 5 grade de mobilitate, robotul studiat în laborator are
ataşată o axă suplimentară, numită Slide (ghidaj), folosită pentru deplasarea
robotului de-a lungul axei Y în sistemul de coordonate cartezian. Comanda
deplasărilor robotului pe Slide se realizează separat, cu ajutorul unui controler
(KV24).

16
Figura 2.3. Cuplele cinematice respectiv gradele de mobilitate
ale robotului industrial RV-M1.

Acest controler (automat programabil) primeşte comenzi, pentru


poziţionarea robotului într-unul din punctele memorate anterior, fie de la cutia
de instruire a Slide-ului, fie de la unitatea de comandă a robotului prin
intermediul interfeţei intrare/ieşire (I/O). Deplasarea robotului pe Slide este
realizată cu ajutorul unui servomotor de curent continuu prevăzut cu un
traductor de poziţie. Senzorii de proximitate LS1 şi LS2 sunt utilizaţi pentru
sincronizarea iniţială a mişcării (LS1), respectiv ca limitatoare de cursă.
Robotul poate fi echipat cu diferite tipuri de mecanisme de prehensiune
pentru apucarea obiectelor şi care poartă denumirea de SCULĂ sau GRIPPER.
Având în vedere faptul că la diferite tipuri de scule poate diferi distanţa dintre
suprafaţa de montare a "mâinii" şi capătul acesteia (figura 2.4), precum şi
faptul că această distanţă este unul din parametrii care definesc poziţia
punctului caracteristic în spaţiu, există posibilitatea modificării în programul
aplicaţie a valorii date de lungimea sculei TL (Tool Lenght).

17
Figura 2.4. Situarea punctului caracteristic al robotului.

Închiderea şi deschiderea gripper-ului se realizează cu ajutorul unui


servomotor de curent continuu. Starea închisă sau deschisă a gripper-ului nu
este confirmată, iar valoarea forţei de strângere se poate regla din program în
trepte de la 0 la 9.
Unitatea de comandă
Cu ajutorul unităţii de comandă se realizează conducerea nemijlocită a
robotului. Astfel, ea constituie interfaţa dintre calculator şi robot, respectiv
dintre cutia de instruire şi robot. Legătura dintre unitatea de comandă şi robot
se face paralel prin două cabluri, unul pentru date şi celălalt pentru alimentarea
servomotoarelor robotului. Aşadar, unitatea de comandă conţine şi sursele de
alimentare cu tensiune continuă pentru alimentarea servomotoarelor care
comandă cuplele cinematice.
Unitatea de comandă conţine şi un inscriptor de memorii de tip EPROM.
Astfel, se poate salva programul de comandă, precum şi coordonatele poziţiilor
memorate, într-un EPROM de 32 Kocteţi. Conţinutul memoriei EPROM poate
fi transferat oricând înapoi în memoria RAM, prin comenzile date de la cutia
de instruire, sau prin macroinstrucţiunile specifice unităţii de comandă. După
ce programul de comandă este definitivat şi s-a făcut memorarea în EPROM a
programului, respectiv a poziţiilor utilizate, sistemul micro-robot poate fi
utilizat în regim de sistem autonom (sistem independent de calculator). În acest
caz lansarea, oprirea respectiv resetarea programului din memoria RAM se
poate realiza prin intermediul butoanelor de comandă de pe panoul frontal al
unităţii de comandă, prezentat în figura 2.5.

18
POWER
MOVEMASTEREX
EMG. STOP
ERROR
EXECUTE
START
STOP
RESET
MITSUBISHI

Figura 2.5. Panoul frontal al unităţii de comandă.

Cu butonul STOP se poate opri execuţia programului dar nu se poate


suspenda comanda care este în curs de execuţie, iar cu butonul EMG.STOP
(Stop de urgenţă) se poate opri în orice moment execuţia programului
(respectiv a comenzii date de la cutia de instruire). Ledul ERROR indică
apariţia unei erori în preluarea sau execuţia unei comenzi, iar ledul EXECUTE
indică faptul că o comandă dată de la cutia de instruire (sau un program din
memorie) este în curs de execuţie.
Prin modul în care este setată unitatea de comandă din laborator, butonul
de comandă START este inactiv iar lansarea programului se realizează de la
calculator. Schimbul de semnale între sistem şi echipamentul periferic
(întrerupătoare, relee, leduri şi controlere programabile) sunt efectuate prin
interfaţa I/O a unităţii de comandă.
Cutia de instruire
Cutia de instruire se utilizează pentru comanda manuală a sistemului
micro-robot şi pentru memorarea poziţiilor prin care trece punctul caracteristic
al robotului. Prin ea pot fi realizate:
- sincronizarea robotului (deplasarea axelor în originea lor mecanică);
- memorarea poziţiilor în care este situat robotul;
- transferul programului şi a poziţiilor memorate din EPROM în memoria
RAM a unităţii de comandă;
- înscrierea în EPROM a programului şi a poziţiilor memorate, ce se află
la un moment dat, în memoria RAM a unităţii de comandă;
- rularea programului în regim pas cu pas (Step by Step).

19
Calculatorul personal de tip PC
Calculatorul este utilizat în scopuri de programare. Programul scris pe
calculator este transferat în memoria RAM a unităţii de comandă, care este
susţinută prin intermediul unei baterii-acumulator, urmând a fi rulat. Pentru
transfer de programe şi comenzi se utilizează comunicaţia serială, după
standardul RS232C.

2.2. Sincronizarea robotului RV-M1


După fiecare punere sub tensiune a sistemului micro-robot, robotul
trebuie adus în poziţia de origine mecanică pentru sincronizare axelor de
rotaţie. În lipsa acestei sincronizări, comenzile de deplasare la o poziţie
memorată, sau dată prin coordonate, precum şi memorarea poziţiilor nu pot fi
efectuate. Această sincronizare poate fi realizată utilizând cutia de instruire,
sau utilizând macroinstrucţiuni predefinite, transmise de la calculator către
unitatea de comandă, astfel:
- în cazul cutiei de instruire sincronizarea se realizează apăsând succesiv
butoanele NST (Nest) şi ENT (Enter);
- în cazul calculatorului se utilizează macroinstrucţiunea NT (Nest) care
se transferă în memoria RAM a unităţii de comandă unde este lansată şi
executată imediat.
În ambele cazuri întâi se deplasează axele J2, J3, şi J4 spre originile lor,
după care urmează mişcarea axelor Jl şi J5.
Sincronizarea axelor se realizează cu ajutorul micro-întrerupătoarelor
existente la nivelul articulaţiilor, care sunt acţionate independent în momentul
în care axa respectivă a ajuns în originea sa mecanică. Odată cu sincronizarea
axelor are loc şi aducerea gripper-ului în starea deschisă.

2.3. Caracteristicile robotului RV-M1


Principalele caracteristici ale robotului RV-M1 sunt:
- Cursele şi vitezele maxime:
- axă J1 (rotirea corpului robotului)..300° (max. 120°/sec);
- axă J2 (rotirea umărului).................130° (max. 72°/sec);
- axă J3 (rotirea cotului)....................110° (max. 109°/sec);
- axă J4 (articulaţia de rostogolire)....90° (max. 100°/sec);
- axă J5 (articulaţia de rotire)...........180° (max. 163°/sec);

20
- Numărul treptelor de viteze.................................10;
- Viteza maximă de deplasare a punctului caracteristic..1000 [mm/sec];
- Greutatea maximă a corpului manipulat............600 [g];
- Precizia de repetabilitate a poziţionării...............0,3 [mm];
- Puterea servomotoarelor:
- pentru axele Jl, J2, şi J3....................30 [W];
- pentru axele J4 şi J5..........................11 [W];
- Numărul maxim de poziţii memorate..................629.

3. Desfăşurarea lucrării:
3.1. Se identifică componentele sistemului micro-robot RV-M1 din
laboratorul CIM.
3.2. Se va realiza sincronizarea robotului cu ajutorul cutiei de instruire.
3.3. Se vor identifica şi acţiona, prin intermediul cutiei de instruire,
cuplele cinematice ale robotului.

21
Lucrarea nr. 3

COMANDA MANUALĂ A ROBOTULUI RV-M1

1. Scopul lucrării
Lucrarea are drept obiectiv familiarizarea studenţilor cu comanda
manuală a robotului RV-M1, prin intermediul cutiei de instruire, în vederea
manipulării unor obiecte aflate în spaţiul său de lucru.

2. Consideraţii teoretice
Comanda manuală a unui robot se realizează de regulă cu ajutorul unei
cutii de instruire (Teaching Box), prin intermediul căreia operatorul uman
transmite către unitatea de comandă a robotului, comenzi de deplasare
respectiv de memorare a poziţiilor. De asemenea, cutia de instruire, denumit
uneori şi panou de programare, se utilizează pentru sincronizarea robotului şi
pentru comanda stării (închisă sau deschisă) a gripper-ului.
În figura 3.l se prezintă panoul cutiei de instruire, folosită pentru
comanda robotului RV-M1. Aceasta comunică cu unitatea de comandă a
robotului printr-un cablu cu lungimea de 3 metri, pentru a exista posibilitatea
efectuării de comenzi de la o distanţă optimă de robot şi de obiectul manipulat.
Activarea cutiei de instruire, respectiv a tastelor de pe ea se realizează
prin punerea în poziţia ON a comutatorului din partea superioară a cutiei.
Lângă acest comutator se află un buton pentru STOP general imediat
(Emergency Stop) care se apasă în caz de avarie sau în cazul prevenirii unei
posibile ciocniri cu unele obiecte din mediu, situaţie ce poate apărea în cazul
unei programări sau comenzi eronate. Acest buton poate fi acţionat indiferent
de poziţia comutatorului de activare a cutiei şi opreşte pe loc robotul.

22
Figura 3.l. Panoul cutiei de instruire a robotului RV-M1.

Comutatorul de activare a cutiei de instruire trebuie să fie în poziţia


OFF, atunci când sunt date comenzi de la calculator sau când se rulează un
program în regim automat.

2.1. Funcţiile tastelor de pe cutia de instruire


PTP
Selectează operaţia de mişcare articulată (în sistemul de coordonate al
robotului). Dacă s-a apăsat această tastă urmată de apăsarea uneia din tastele
(B+, B-, S+, S-, E+, E-, P+, P-, R+, R-) robotul va efectua o mişcare de rotaţie
la nivelul cuplelor cinematice conducătoare: J1, J2, J3, J4, sau J5 în sensul
specificat de semnul "+" sau "-" (figura 3.2). Mişcarea pe fiecare axă are loc
atâta timp cât este ţinută apăsată tasta şi până la atingerea micro-
întrerupătorului de capăt de cursă.

23
Figura 3.2. Sensurile axelor de rotaţie ale robotului RV-M1.

"Regimul" PTP este implicit în sensul că este selectat automat când se


activează cutia de instruire prin punerea comutatorului pe ON.
XYZ
Selectează operaţia de mişcare paralelă cu axele sistemului de coordonate
cartezian şi invalidează regimurile PTP şi TOOL. Dacă s-a apăsat această tastă,
vârful sculei (punctul caracteristic) se va putea mişca paralel cu axele
sistemului cartezian după direcţiile X+, X-, Y+, Y-, Z+, Z-, prin mişcarea
simultană a mai multor cuple cinematice ale robotului (J1, J2, J3, J4, J5). Din
acest motiv, mişcarea robotului este mult mai lentă decât în cazul PTP şi are
loc atâta timp cât punctul caracteristic al robotului poate fi menţinut pe o
direcţie paralelă cu axa sistemului de coordonate cartezian, aleasă. În acest
regim rămân active tastele P+, P-, R+, R- prin care se realizează mişcarea de
rostogolire (P) respectiv de rotaţie (R) a obiectului manipulat.

24
Originea sistemului de referinţă cartezian este fixată la baza robotului.
Poziţia de referinţă corespunde cu poziţia "0" a robotului faţă de care sunt
calculate coordonatele carteziene ale poziţiilor punctului caracteristic. Fixarea
acestei poziţii este realizată la punerea în funcţiune a sistemului micro-robot de
către producător la cererea şi indicaţiile beneficiarului, luând în considerare şi
lungimea sculei (TL = 107 mm). În figura 3.3 este prezentată configuraţia
robotului când acesta se află în poziţia de referinţă a sistemului cartezian. Se
observă că axele de rotaţie J2, J3, J4, J5 se găsesc pe o dreaptă paralelă cu baza
robotului respectiv cu axa Y a sistemului de referinţă cartezian.

Figura 3.3. Configuraţia robotului în situaţia în care punctul


caracteristic se află în originea sistemului de referinţă
cartezian.

După cum se arată şi în figura 3.4, axa Z corespunde cu deplasarea pe


verticală a punctului caracteristic; axa Y este paralelă, iar axa X este
perpendiculară pe ghidajul pe care se deplasează robotul (slide).
TOOL
Selectează operaţia de mişcare în sistemul de referinţă legat de "sculă"
(gripper) şi invalidează regimurile PTP şi XYZ. În acest regim este posibilă o
mişcare de avansare şi de retragere a gripper-ului de-a lungul direcţiei
momentane a axei sculei (figura 3.5). Sunt active tastele: Z+ şi Z-. Mişcarea
are loc atât timp cât sunt apăsate tastele Z+ sau Z-, şi până când punctul
caracteristic poate fi menţinut pe dreapta definită de axa sculei.

25
Figura 3.4. Sistemul de coordonate cartezian şi punctul
caracteristic al robotului.

Figura 3.5. Direcţia momentană a axei sculei.

26
Alte comenzi utilizate pentru comanda manuală a robotului RV-M1 sunt:

NST+ENT Comandă pentru deplasarea robotului în poziţia de


origine mecanică în vederea sincronizării cuplelor
cinematice.
ORG+ENT Comandă pentru deplasarea robotului în poziţia de
referinţă a sistemului de coordonate cartezian.
O (Open) Comandă pentru deschiderea gripper-ului (eliberarea
piesei).
C (Close) Comandă pentru închiderea gripper-ului (apucarea
piesei).
INC+ENT Comandă pentru deplasarea robotului într-o poziţie
memorată, având număr de ordine mai mare şi totodată
cel mai apropiat de cel al poziţiei
curente.
DEC+ENT Comandă pentru deplasarea robotului într-o poziţie
memorată, având număr de ordine mai mic şi totodată cel
mai apropiat de cel al poziţiei curente.
TRN+ENT Comandă pentru transferul conţinutului EPROM-ului
utilizat (programul de comandă şi datele poziţiilor
memorate) în memoria RAM a unităţii de comandă.
WRT+ENT Comandă pentru înscrierea programului de comandă şi a
datelor poziţiilor memorate (aflate în memoria unităţii de
comandă) în EPROM.
PS+număr+ENT Memorează coordonatele punctului curent din spaţiu,
unde se află punctul caracteristic al robotului, ataşându-i
un număr de ordine. Dacă pentru două poziţii diferite se
ataşează acelaşi număr, ultima definită rămâne
memorată.
PC+număr+ENT Elimină din memorie datele poziţiei cu numărul
specificat.

27
MOV+număr+ENT Comandă pentru deplasarea robotului, respectiv a
punctului caracteristic într-o poziţie specificată. Mişcarea
are loc doar dacă poziţia specificată a fost memorată
anterior.
STEP+număr+ENT Comandă pentru execuţia programului în regim pas cu
pas începând cu linia indicată prin "număr".

3. Desfăşurarea lucrării
3.1. Se activează cutia de instruire a robotului prin punerea comutatorului
pe ON.
3.2. Se realizează sincronizarea robotului.
3.3. Se studiază cu ajutorul cutiei de instruire mişcarea robotului în:
- Sistemul de coordonate al robotului;
- Sistemul de coordonate cartezian;
- Sistemul de coordonate legat de sculă (gripper).
3.4. Se vor efectua manipulări ale diferitelor piese cilindrice şi prismatice
utilizând cutia de instruire a robotului. În acest scop se vor memora diverse
poziţii prin care trece punctul caracteristic al robotului.

28
Lucrarea nr. 4

COMANDA PUNCT CU PUNCT A ROBOTULUI RV-M1

1. Scopul lucrării
Lucrarea urmăreşte familiarizarea studenţilor cu modul de realizare a
comenzii punct cu punct (P.T.P. - Point To Point), în cazul unui robot
industrial, utilizând metoda învăţării (teaching). În cadrul lucrării, studenţii vor
realiza un program aplicaţie de tip punct cu punct pentru efectuarea unei
operaţii de manipulare, şi vor verifica funcţionarea corectă a programului
respectiv a operaţiei de manipulare dorite.

2. Consideraţii teoretice
Comanda automată a roboţilor industriali presupune executarea de către
aceştia de operaţii, a căror caracteristici şi succesiune au fost stabilite sub
forma unui program.
Programul este compus dintr-o succesiune de macroinstrucţiuni cu
privire la operaţiile ce trebuie executate de către robot. Prin aceste linii de
program sunt transmise succesiv comenzi către robot, prin intermediul unităţii
de comandă cu privire la: poziţiile unde trebuie să se deplaseze robotul,
temporizări, salturi la anumite subrutine, comenzi pentru starea gripper-ului
etc. După modul de lucru al robotului, programul poate fi: comandă punct cu
punct, comandă multipunct sau comandă pe o traiectorie continuă.
Stabilirea traiectoriei descrisă de punctul caracteristic, în cazul comenzii
de tip punct cu punct, se realizează prin definirea punctului de start, punctului
"ţintă", şi a unui număr minim de puncte intermediare prin care trebuie să
treacă acest punct, pentru evitarea coliziunilor cu diverse obiecte ce se pot găsi
în mediul de lucru al robotului. Singura condiţie impusă în cazul comenzii de
tip punct cu punct este ca traiectoria să fie una fără coliziuni.

29
Deoarece mişcările robotului încep, se desfăşoară şi se termină simultan
pe fiecare axă, între două puncte consecutive, traiectoria nu este controlată,
astfel că, punctul caracteristic nu se deplasează de-a lungul dreptei definite de
cele două puncte. Această traiectorie depinde de sistemul de conducere al
robotului care caută să aleagă, de regulă, drumul cel mai scurt.
În cazul metodei programării prin învăţare, punctul caracteristic al
robotului este deplasat prin comandă manuală în poziţia dorită, iar
coordonatele poziţiei respective sunt memorate indicând numărul de ordine
dorit pentru acea poziţie. În acest caz, la realizarea programului aplicaţie se va
folosi doar numărul de ordine al poziţiei memorate, fără a se specifica
coordonatele carteziene corespunzătoare acestei poziţii.

2.1. Memorarea şi verificarea poziţiilor robotului RV-M1


În cazul robotului RV-Ml din laboratorul CIM, deplasarea manuală a
robotului şi memorarea poziţiilor dorite se face cu ajutorul cutiei de instruire.
Pentru memorare se apasă tasta PS apoi se introduce numărul de ordine ce va
indica ulterior poziţia respectivă şi care trebuie să fie în intervalul (1...629). O
poziţie odată memorată rămâne în memoria RAM a unităţii de comandă până
la ştergerea cu tasta PC sau până la memorarea unei alte poziţii cu acelaşi
număr de ordine.
Cu ajutorul cutiei de instruire, punctul caracteristic poate fi deplasat în
toate poziţiile memorate utilizând tasta MOV specificând şi numărul de ordine
al poziţiei. La fel se pot utiliza tastele INC şi DEC cu ajutorul cărora robotul
se poate deplasa în poziţia memorată care are număr de ordine mai mare (INC
- incrementare) sau mai mic (DEC - decrementare) decât cel al poziţiei
actuale. În acest fel se poate verifica faptul că poziţiile au fost memorate corect
sau nu.
Poziţiile memorate cu ajutorul cutiei de instruire, dacă nu sunt înscrise în
EPROM, se pierd în cazul "actualizării" memoriei RAM cu conţinutul
memoriei EPROM, (când se transferă în RAM programul şi poziţiile înscrise
în EPROM, utilizând tasta TRN de pe cutia de instruire).
Memoria RAM poate fi "iniţializată" utilizând macroinstrucţiunea NEW.
În acest caz se pierde programul şi toate poziţiile memorate. Prin
macroinstrucţiunea DL se poate şterge doar programul din memorie.
Când este memorată o poziţie, se memorează şi starea (închisă sau
deschisă) a gripper-ului. Astfel, dacă se indică o deplasare a punctului

30
caracteristic într-o poziţie în care gripper-ul a fost memorat cu starea închisă
(deschisă), atunci odată cu începerea deplasării în acea poziţie are loc şi
închiderea (deschiderea) gripper-ului dacă anterior era în stare deschisă
(închisă).

2.2. Etapele de realizare ale unui program aplicaţie de tip punct cu


punct
La realizarea programelor de tip punct cu punct trebuie parcurse
următoarele etape:
Stabilirea traiectoriilor
După cum sa menţionat şi mai sus, realizarea unui program de tip punct
cu punct, presupune stabilirea traiectoriei prin definirea punctelor de start,
punctelor ţintă, şi a unui număr minim de puncte intermediare prin care
punctul caracteristic este obligat să treacă în vederea evitării coliziunilor cu
obiectele din mediu. Se stabilesc numerele de ordine pentru fiecare poziţie de
pe traiectorie, respectiv starea închisă sau deschisă a gripper-ului în aceste
poziţii.
În general, prima mişcare a robotului după sincronizare este într-o poziţie
de "aşteptare". De regulă, poziţia de aşteptare, coincide cu poziţia de "start",
iar după parcurgerea traiectoriei programate cu poziţia "finală".
Stabilirea succesiunii mişcărilor
Succesiunea mişcărilor se face în funcţie de operaţia de manipulare ce
trebuie executată. Spre exemplu: după sincronizare robotul este deplasat în
poziţia nr. l (poziţie de start), după care are loc o deplasare în poziţia nr. 2 unde
se realizează apucarea piesei, apoi urmează o deplasare în poziţia ţintă (poziţia
nr. 6) cu trecerea prin poziţiile intermediare: 3, 4 şi 5. În poziţia nr. 6 piesa este
eliberată (gripper deschis) după care robotul este readus în poziţia nr. 1 de
aşteptare (aceeaşi cu poziţia de start). În acest fel apare posibilitatea reluării
ciclului.
Astfel, rezultă următoarea succesiune a mişcărilor: 1, 2, 3, 4, 5, 6, 1.
Această succesiune va trebui respectată la realizarea programului.
Memorarea şi verificarea poziţiilor
Operaţia de memorare a poziţiilor se face cu ajutorul cutiei de instruire,
ţinându-se cont şi de starea gripper-ului în aceste poziţii. După memorarea
poziţiilor se face verificarea acestora, prin deplasarea succesivă a robotului în

31
aceste poziţii. Dacă ele au fost corect memorate, respectiv în timpul mişcărilor
nu apar coliziuni, se trece la realizarea programului, în caz contrar se repetă
memorarea poziţiilor care nu aparţin traiectoriei prestabilite.
Realizarea programului
Programul aplicaţie se scrie cu ajutorul calculatorului utilizând editorul
din Qbasic. Programul conţine o succesiune de instrucţiuni prin care sunt
transmise: comenzi de deplasare, temporizări, salturi, comenzi pentru starea
gripper-ului, etc. Succesiunea mişcărilor şi operaţiilor ce vor fi executate de
către robot sunt date de succesiunea acestor instrucţiuni. În cadrul programului
fiecare linie este numerotată, ceea ce permite utilizarea instrucţiunilor de tip
salt condiţionat şi de tip salt necondiţionat. Dacă în program nu sunt
instrucţiuni de tip salt condiţionat sau salt necondiţionat, executarea
instrucţiunilor se face în succesiunea în care apar în cadrul programului. În
cazul utilizării instrucţiunilor de salt condiţionat sau salt necondiţionat,
succesiunea operaţiilor depinde şi de execuţia acestor instrucţiuni.
Este recomandabil ca numerotarea liniilor din program să se facă din 5 în
5 sau din 10 în l0, pentru a exista posibilitatea intercalării ulterioare de noi linii
în program, între două linii consecutive existente.
Transferul programului în memoria unităţii de comandă
Transferul programului din memoria calculatorului în memoria unităţii
de comandă se realizează frază cu frază cu ajutorul instrucţiunii PRINT din
limbajul Qbasic. De exemplu:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #1


20 PRINT #1, "10 MO 1, C"
30 PRINT #1, "l5 MO 2, C"
.
.
110 PRINT #1, "80 ED"
120 END

În linia 10, cu ajutorul instrucţiunii OPEN, se deschide linia de


comunicaţie serială (portul de comunicaţie COM1) ori de câre ori în program
apare semnul #1. Tot în această linie se specifică caracteristicile transmisiei de
date: viteza de transmisie 9600 Bauds; paritatea Even (pară); numărul biţilor

32
de date: 7; numărul biţilor de stop: 2. În linia 20 cu ajutorul instrucţiunii
PRINT este transmisă linia 10 din programul robotului. În memoria unităţii de
comandă vor fi înmagazinate liniile de program 10, 15, . , 80. Ultima
instrucţiune este cea de sfârşit de program "robot" ED. Programul aplicaţie
"Qbasic" se termină cu instrucţiunea END din linia 120.
În timpul transferului, programul este verificat de unitatea de comandă
din punct de vedere sintactic iar eventualele greşeli de sintaxă sunt semnalizate
cu aprinderea ledului ERROR de pe panoul frontal al unităţii de comandă,
respectiv prin intermediul unui semnal sonor. După corectarea erorilor din
program, transferul trebuie repetat deoarece în acest caz programul nu rămâne
memorat.
Verificarea programului în regim pas cu pas
Înaintea lansării în execuţie, programul se verifică în regim pas cu pas
(linie cu linie), adică se lansează şi se verifică execuţia separată a fiecărei linii
din program, utilizând în acest scop cutia de instruire.
Se apasă tasta STEP, după care se tastează numărul primei linii din
program (10) şi se confirmă cu tasta ENT. După execuţia liniei tastate, pe
afişajul cutiei de instruire apare numărul de ordine al liniei următoare din
program (în cazul programului de mai sus, 15). Astfel, pentru lansarea în
execuţie a liniei următoare este suficient apăsarea succesivă a tastelor STEP şi
ENT. După execuţia ultimei linii din program, pe afişajul cutiei de instruire va
apărea numărul "0" ce indică sfârşitul programului. În regimul pas cu pas nu se
pot însă verifica, temporizările din cadrul programului.
Lansarea programului în regim automat
Lansarea în execuţie a programului se face prin transferul de la calculator
către unitatea de comandă a unei instrucţiuni de start "RN linie", (în cazul
nostru RN 10). Având în vedere că această instrucţiune nu este precedată de un
număr (care se utilizează pentru numerotarea liniilor din program), este
considerată ca şi o instrucţiune de comandă şi este executată imediat. Exemplu
de program:

10 OPEN "COM1:9600,E,7,2" FOR RANDOM AS #l


20 PRINT #1, "RN 10"
30 END

33
După lansarea programului în regim automat se urmăreşte realizarea
tuturor mişcărilor şi operaţiilor programate. Se verifică şi durata corectă a
temporizărilor introduse şi la nevoie se corectează programul.

2.3. Principalele macroinstrucţiuni utilizate la realizarea


programelor de tip punct cu punct
NT (Nest) - Determină deplasarea robotului în poziţia de origine
mecanică în vederea sincronizării axelor. Efectul instrucţiunii este identic cu
apăsarea tastelor NST+ENT de pe cutia de instruire.

Formatul instrucţiunii: NT

Instrucţiunile NT sau NST+ENT trebuie efectuate obligatoriu înainte de


execuţia oricărei comenzi de mişcare.
MO (Move) - Determină deplasarea punctului caracteristic în poziţia
specificată, prin interpolare articulată. Se poate specifica şi starea gripper-ului
(închis / deschis) indiferent de starea acestuia în momentul memorării poziţiei.
Dacă starea gripper-ului a fost specificată, atunci mişcarea de poziţionare va
avea loc după executarea instrucţiunii de închidere/ deschidere a gripper-ului.

Formatul instrucţiunii: MO <număr poziţie>, |<stare gripper>|,

unde: 1  număr poziţie  629, iar stare gripper = O (Open - deschis) sau
C (Close - închis).
Această instrucţiune este executată numai dacă poziţia specificată în
instrucţiune a fost memorată anterior. În caz contrar apare eroare şi
instrucţiunea, respectiv programul nu vor fi executate.
DP (Decrement Position) - Este comanda pentru deplasarea punctului
caracteristic al robotului într-o poziţie memorată având numărul de ordine mai
mic şi în acelaşi timp cel mai apropiat de cel al poziţiei curente.

Formatul instrucţiunii: DP

Instrucţiunea va fi executată doar în situaţia în care există cel puţin o


poziţie memorată cu număr de ordine mai mic decât cel al poziţiei curente.

34
IP (Increment Position) - Reprezintă comanda pentru mişcarea
robotului într-o poziţie memorată, având numărul de ordine mai mare şi în
acelaşi timp cel mai apropiat de cel al poziţiei curente.

Formatul instrucţiunii: IP

Instrucţiunea va fi executată doar în situaţia în care există cel puţin o


poziţie memorată având numărul de ordine mai mare decât cel al poziţiei
curente.
GO (Gripper Open) - Determină deschiderea gripper-ului.
Formatul instrucţiunii: GO

Instrucţiunea este executată, chiar dacă gripper-ul a fost deschis înaintea


lansării acestei comenzi. Deschiderea gripper-ului nu este controlată şi în
consecinţă se recomandă utilizarea acestei instrucţiuni împreună cu o
instrucţiune de temporizare. Durata minimă de temporizare este de 0.7[s].
GC (Gripper Close) - Determină închiderea gripper-ului.

Formatul instrucţiunii: GC

Instrucţiunea este executată chiar dacă gripper-ul a fost închis înaintea


lansării acestei comenzi. Şi aici, închiderea gripper-ului nu este controlată şi în
consecinţă se recomandă utilizarea acestei instrucţiuni împreună cu o
instrucţiune de temporizare. Durata minimă de temporizare este şi în acest caz
de 0.7[s].
TI (Timer) Introduce o anumită temporizare în timpul rulării
programului.

Formatul instrucţiunii: TI < număr>,

unde: 1  număr  32767


Durata temporizării = număr * 0.1 [s].
GT (Go To) Determină un salt necondiţionat la linia din program
specificată.
Formatul instrucţiunii: GT <număr linie>,

35
unde 1  număr linie  2048.
Instrucţiunea va fi executată doar dacă linia specificată în instrucţiune
există. În caz contrar instrucţiunea, respectiv programul nu vor fi executate.

3. Desfăşurarea lucrării
3.1. Se vor identifica etapele de realizare ale programului de tip punct cu
punct conform subcapitolului 2.2.
3.2. Se va realiza un program de tip punct cu punct pentru luarea unei
piese cilindrice de pe vagonetul "A" şi aşezarea ei pe vagonetul "B" conform
schiţei din figura 4.1 În timpul manipulării, punctul caracteristic al robotului,
respectiv piesa se va deplasa din poziţia 3 în poziţia 6 prin poziţiile
intermediare 2, 4 şi 5. Aceste poziţii intermediare sunt necesare în vederea
evitării coliziunilor cu obiectul "C" şi cu marginile vagonetului. După
sincronizare, gripper-ul va fi deplasat în poziţia 1, care reprezintă poziţia de
start.

poz. 4
Poziţia de
sincronizare

poz. 7

poz. 1

poz. 2 poz. 5

poz. 3 poz. 6

A C B

Figura 4.1. Poziţiile prin care trebuie să treacă punctul


caracteristic al robotului pentru executarea unei operaţii de
manipulare.

După aşezarea piesei în poziţia 6, gripper-ul se va re-întoarce în poziţia


1, trecând succesiv prin poziţiile 5 şi 7, necesare pentru evitarea coliziunii cu

36
marginile vagonetului "B"şi cu obiectul "C".
Programul va fi realizat parcurgând toate etapele prezentate în
subcapitolul 2.2. utilizând macroinstrucţiunile necesare ce sunt prezentate la
subcapitolul 2.3.
3.3. Se va studia pentru început funcţionarea programului în regim pas cu
pas, utilizând cutia de instruire, apoi funcţionarea lui în regim automat prin
lansarea acestuia de la calculator.

37
Lucrarea nr. 5

INTEGRAREA ROBOTULUI RV-M1 ÎN SISTEMUL DE


FABRICAŢIE FLEXIBIL FMS-2101

1. Scopul lucrării
În lucrare se prezintă studenţilor modul de integrare a robotului RV-Ml
în mini-sistemul flexibil FMS-2101 din laboratorul CIM. De asemenea, se
studiază şi principalele macrocomenzi de tip automat programabil, prin care se
realizează comenzi de la şi către echipamentele periferice ale unităţii de
comandă a robotului.

2. Consideraţii teoretice

2.1. Sistemul flexibil de fabricaţie FMS-2101


Robotul RV-M1 este parte componentă a sistemului flexibil de fabricaţie
FMS-2101 a cărui structură este prezentată în figura 5.1.
Componentele acestui sistem sunt:
1. Sistemul de transport Slide;
2. Robotul industrial RV-M1;
3. Staţia de prelucrare prin strunjire NCL-2000;
4. Vârful mobil din păpuşă;
5. Vârful fix din universal;
6. Staţia Vision-2000;
7. Cameră video;
8. Poziţia piesei sub camera video;
9. Staţia de asamblare;
10. Presă pneumatică;

38
Figura 5.1. Structura sistemului flexibil de fabricaţie FMS-2101.

11. Masa presei;


12. Conveior cu bandă;
13. Rolă pentru întinderea benzii;
14. Vagonet gol;
15. Vagonet încărcat cu semifabricat;
16. Staţie de oprire vagonet (buffer);
17. Senzori pentru identificarea vagonetului;
18. Senzor de prezenţă vagonet;
19. Opritor mecanic.
Componentele de bază care compun sistemul flexibil de fabricaţie sunt:
- staţia de prelucrare prin strunjire NCL-2000;
- staţia de control dimensional Vision-2000;
- staţia de asamblare pneumatică;
- sistemul micro-robot RV-M1.

39
Alimentarea cu semifabricate se realizează prin intermediul vagoneţilor
(15), care se deplasează pe sistemul de transport numit conveior (12). Sistemul
de transport face parte dintr-o mini-secţie automatizată de tip CIM (Computer
Integrated Manufactury). Încărcarea respectiv descărcarea vagoneţilor au loc
în staţiile de oprire vagonet (porturi).
Staţia de prelucrare prin strunjire (3) este formată dintr-un strung CNC.
Semifabricatele ce urmează a fi prelucrate sunt fixate între vârfurile (4) şi (5),
vârful din păpuşa strungului fiind mobil şi e acţionat de un cilindru pneumatic,
în timp ce vârful din universal este fix. Selectarea unui program de prelucrare
dintre cele memorate în echipamentul cu comandă numerică, poate fi realizat
de către operator la punerea în funcţiune a sistemului sau în mod automat prin
recepţionarea tipului de program de la unitatea de comandă a sistemului micro-
robot. După terminarea unei operaţii de prelucrare are loc curăţirea piesei de
şpan cu ajutorul unui jet de aer comprimat. Toate operaţiile de prelucrare şi
curăţire a piesei au loc cu uşa strungului închisă.
Staţia de control dimensional (6) este echipată cu o cameră video care
preia imaginea piesei prelucrate şi o transferă calculatorului ataşat staţiei.
Acesta face o comparare numerică a imaginii achiziţionate cu imaginea
memorată a unei piese de referinţă. În urma procesului de comparare se va lua
decizia dacă piesa este bună sau rebut şi informaţia respectivă va fi transmisă
unităţii de comandă a robotului prin interfaţa I/O. Robotul RV-M1 aşează
piesele sub camera video, iar controlul dimensional al piesei respective începe
automat în momentul în care staţia primeşte o cerere de control dimensional.
Staţia de asamblare pneumatică (9) este constituită dintr-o presă
pneumatică care se utilizează pentru realizarea operaţiilor de asamblare prin
presare. În configuraţia actuală din laborator, staţia de asamblare este utilizată
pentru realizarea unui produs finit prin asamblarea unei piese prismatice cu o
piesă cilindrică prelucrată.
Sistemul micro-robot RV-M1 realizează deservirea tuturor staţiilor din
structura sistemului flexibil FMS-2101 precum şi descărcarea şi încărcarea
vagoneţilor sosiţi în portul staţiei. Transportul pieselor între staţiile: (3), (6),
(9) şi portul (16) se realizează prin deplasarea robotului pe sistemul de
transport local numit Slide. În cazul unei operaţii complete de strunjire şi
verificare dimensională, trebuie în prealabil, ca poziţiile de pe Slide din faţa
staţiilor să fie memorate.

40
2.2. Comunicarea dintre unitatea de comandă şi echipamentele
periferice
Unitatea de comandă a sistemului micro-robot comunică cu sistemele de
conducere nemijlocită a staţiilor din cadrul sistemului CIM prin intermediul
unor semnale logice (0 sau 1) (figura 5.2).

robot ready
0
cim ready
0
vagonet încărcat în staţie
1
vagonet gol în staţie
2 reţinere vagonet în staţie AUTOMATUL
2 cerere de vagonet gol
1 PROGRAMABIL
cerere semifabricat cilindric
7
sosire semifabricat cilindric
6 CIM-CONTROL
bitul "0" al programului de prelucrare
8 bitul "1" al programului de prelucrare
9
bitul "2" al programului de prelucrare
10
UNITATEA error
15

DE bitul "0" al adresei de poziţionare


8 bitul "1" al adresei de poziţionare
COMANDĂ 9 CONTROLER
bitul "2" al adresei de poziţionare
10 cerere de poziţionare SLIDE
A 11 Slide în poziţie
7
SISTEMULUI
strung ready
3
MICRO- start prelucrare ECHIPAMENTUL
6 sfârşit prelucrare
ROBOT 5 DE COMANDĂ
bitul "0" al programului de prelucrare NUMERICĂ
12 bitul "1" al programului de prelucrare
RV-M1 13 AL
bitul "2" al programului de prelucrare STRUNGULUI
14
uşa strungului (închisă=1) NCL-2000
14 fixare piesă între vârfuri
4

vision ready
4 cerere de control dimensional INTERFAŢA I/O
5
piesă bună A STAŢIEI
12 VISION-2000
piesă rebut
15

presă ready SIST. DE


11
start presare COMANDĂ
3
PRESĂ

Presiune aer comprimat ready


13 PRESOSTAT

Figura 5.2. Comunicarea dintre unitatea de comandă, staţiile


din cadrul FMS-2101 şi staţia de control central CIM.

41
Astfel, unitatea de comandă, pe lângă conducerea sistemului micro-robot,
coordonează şi supervizează succesiunea operaţiilor din cadrul mini-sistemului
FMS-2101. În cadrul FMS, unitatea de comandă constituie deci, nivelul
ierarhic superior, trimiţând comenzi şi confirmări spre şi din exteriorul mini-
sistemului flexibil. Comenzile date de unitatea de comandă către staţia de
prelucrare se referă la fixarea semifabricatului între vârfurile de la strung şi la
începerea prelucrării.
Nivelul de conducere al întregului sistem automatizat din laborator este
deţinut de către automatul programabil CIM-control care controlează fluxul de
piese şi de vagoneţi. De asemenea, transmite codul binar natural al numărului
programului de prelucrare către staţia de prelucrare NCL-2000, prin
intermediul unităţii de comandă.
Pentru deservirea staţiilor din cadrul FMS, robotul RV-M1 trebuie, să se
deplaseze în diverse poziţii pe Slide. Numărul de ordine al poziţiilor de pe
Slide se specifică în cod binar natural pe 3 biţi (3 linii de comunicaţie). Atunci
când controlerul de Slide primeşte o cerere de poziţionare a robotului acesta va
deplasa robotul şi după ce acesta a ajuns în poziţia cerută va emite semnalul
"Slide în poziţie".
Când operaţia de prelucrare a luat sfârşit staţia va trimite către unitatea
de comandă un semnal "sfârşit prelucrare". Înainte ca robotul să scoată sau să
introducă o piesă între vârfurile strungului unitatea de comandă verifică de
fiecare dată poziţia închisă sau deschisă a uşii.
Staţia de control dimensional Vision-2000 verifică piesele prelucrate ori
de câte ori primeşte comanda "cerere de control dimensional". Biţii pe liniile
de comunicare "piesă bună" şi "piesă rebut" sunt pe nivel logic "0" pe toată
durata procesului de control dimensional şi când acesta a luat sfârşit unul din
aceşti biţi va deveni "1" logic.
Staţia de asamblare trimite un semnal "presă ready" prin care înştiinţează
că staţia este pregătită pentru o nouă operaţie şi primeşte semnal de comandă
prin care se dă startul pentru o nouă operaţie de asamblare prin presare.
Presostatul transmite un semnal "presiune aer comprimat ready" prin care
confirmă că presiunea aerului comprimat necesar staţiei de asamblare şi fixării
semifabricatului între vârfuri este corespunzătoare.
Toate sistemele de conducere aflate la un nivel ierarhic inferior transmit
semnale "ready" prin care înştiinţează nivelele de conducere superioare că sunt

42
disponibile pentru executarea operaţiilor specifice staţiei.
Comenzile şi confirmările (figura 5.2) sunt emise respectiv recepţionate
de către unitatea de comandă prin intermediul unei interfeţe I/O programabile.
Aceasta are 16 intrări respectiv 16 ieşiri numerice, care sunt numerotate la
nivelul unităţii de comandă, săgeţile indicând natura liniilor (intrare sau ieşire).
Prin intermediul macrocomenzilor de tip automat programabil se poate realiza
atât comanda ieşirilor cât şi supravegherea intrărilor numerice.

2.3. Principalele macrocomenzi de tip automat programabil


ID (Input direct) - Este o instrucţiune de citire a stărilor celor 16 intrări
numerice. Valoarea formată din stările logice (0 sau 1) ale celor 16 intrări, este
încărcată într-un registru intern de comparare.

Formatul instrucţiunii: ID

OD (Output direct) - Este o instrucţiune prin care stările celor 16 ieşiri


numerice vor fi modificate simultan în funcţie de o valoare specificată.

Formatul instrucţiunii: OD <Output data>

unde: -32767  output data (zecimal)  +32767


- &8001  output data (hexazecimal)  &7FFF.

TB (Test Bit) - Este o instrucţiune de salt condiţionat, la o linie


specificată din program, dar acest salt e condiţionat de starea bitului (starea
intrării) specificat.

Formatul instrucţiunii: TB <+ sau -> <număr bit>, <număr linie>,

unde: - "+" reprezintă nivelul logic "1"


- "-" reprezintă nivelul logic "0"
- 0  număr bit  15
- 0  număr linie  2048.
Dacă linia specificată prin "număr linie" nu există atunci apare eroare în
execuţia programului, iar dacă condiţia pentru salt nu este îndeplinită se va
continua execuţia programului cu linia următoare.

43
OB (Output bit) - Este o instrucţiune prin care se realizează setarea
stării logice (0 sau 1) a ieşirii numerice specificată.

Formatul instrucţiunii: OB <+ sau -> <număr bit>,

unde: - "+" semnifică poziţionarea bitului specificat la nivelul logic "1"


"-"semnifică poziţionarea bitului specificat la nivelul logic "0"
- 0  număr bit  15.

3. Desfăşurarea lucrării:
3.1. Se identifică componentele sistemului flexibil de fabricaţie FMS-
2101 din laboratorul CIM.
3.2. Vor fi realizate programe în Qbasic pentru programarea stării
ieşirilor numerice şi citirea intrărilor numerice ale unităţii de comandă.
3.3. În programele aplicaţie vor fi efectuate comenzi către echipamentele
periferice precum şi recepţionarea confirmărilor de la acestea după cum
urmează:
- comenzi şi confirmări către şi de la staţia CIM-Control;
- comenzi şi confirmări către şi de la echipamentul de comandă numerică
al strungului NCL-2000;
- comenzi şi confirmări către şi de la staţia de control dimensional
Vision-2000;
- comanda staţiei de asamblare prin presare;
- resetarea stării ieşirilor numerice.

44
Lucrarea nr. 6

COMANDA DEPLASĂRII ROBOTULUI RV-M1 PE


SLIDE

1. Scopul lucrării
Lucrarea are ca obiectiv familiarizarea studenţilor cu comanda deplasării
robotului pe sistemul de transport Slide. În cadrul lucrării, robotul va fi
deplasat pe Slide, prin intermediul cutiei de instruire (proprie acestei axe) şi se
vor memora diverse poziţii, apoi va fi realizat un program de comandă pentru
deplasarea robotului în mod automat între aceste poziţii.

2. Consideraţii teoretice
Ghidajul pe care se poate deplasa robotul RV-M1 (Slide-ul) prezentat în
figura 6.1, este o parte independentă de robotul de bază, comanda lui fiind
realizată separat de unitatea de comandă, prin intermediul unui automat
programabil (controler) KV24. Acest controler poate primi comenzi, pentru
deplasarea robotului pe Slide într-una din poziţiile memorate, atât de la
unitatea de comandă cât şi de la cutia de instruire.

2.1. Comanda deplasării robotului pe Slide de la cutia de instruire


Cutia de instruire, prezentată în figura 6.2, permite comanda deplasărilor
robotului RV-M1 în regim manual, de-a lungul Slide-ului şi în acelaşi timp
memorarea poziţiilor prin care trece acesta.
Cutia de instruire se activează prin punerea comutatorului în poziţia
MAN (manual), poziţie care este indicată prin aprinderea ledului din partea
superioară a cutiei. Cu butoanele LEFT (stânga) şi RIGHT (dreapta) este
posibilă deplasarea robotului în orice poziţie situată între cele două limitatoare
de cursă (LS1 şi LS2).

45
Figura 6.1. Sistemul de transport Slide.

Figura 6.2. Panoul frontal al cutiei de instruire pentru comanda


deplasării pe Slide.

46
Limitatorul de cursă LS1 este utilizat şi pentru sincronizarea Slide-ului,
poziţia de sincronizare corespunzând poziţiei "0".
După deplasarea robotului într-o anumită poziţie, se va selecta un număr
cu "selectorul de poziţii" (Point Selector) şi memorarea acelei poziţii cu
numărul de ordine selectat se realizează prin apăsarea butonului ENTER.
Numărul maxim de poziţii memorate pe Slide este 23=8.
Deplasarea robotului RV-M1 pe Slide, într-una din poziţiile memorate în
prealabil, se face prin selectarea numărului cu care a fost memorată acea
poziţie, cu ajutorul selectorului de poziţii, după care se apasă şi se ţine apăsat
butonul "Move to selected point" până când robotul ajunge în poziţia
respectivă unde se va opri. Deplasarea la o poziţie memorată precum şi
memorarea poziţiilor este posibilă numai după ce s-a realizat sincronizarea pe
Slide. Această sincronizare se poate face prin apăsarea butonului de comanda
RIGHT până când baza robotului ajunge în dreptul senzorului LS1, sau prin
comanda de deplasare a robotului în poziţia "0" de pe Slide.
Mişcarea cuplelor cinematice şi deplasarea de-a lungul Slide-ului poate
să fie simultană (dar nu oferă avantaje în cazul comenzii manuale).

2.2. Comanda deplasărilor pe Slide de la unitatea de comandă


Comanda deplasărilor pe Slide de la unitatea de comandă a robotului
RV-M1 se face prin intermediul semnalelor logice existente între interfaţa I/O
a unităţii de comandă şi controler-ul Slide-ului (figura 6.3). Adresa de
poziţionare se specifică pe 3 biţi (biţii 8, 9, şi 10) a căror nivele logice
formează în cod binar natural numărul poziţiei de pe Slide, în care se doreşte
deplasarea robotului.
Pentru realizarea unei deplasări, unitatea de comandă va seta cei trei biţi
de ieşire astfel încât aceştia vor reprezenta codul binar natural al numărului
ataşat poziţiei dorite urmată de transmiterea unei "cereri de poziţionare" (bitul
11) care este echivalentă cu comanda: "start deplasare robot în poziţia
specificată". Când robotul ajunge în poziţia specificată, controler-ul Slide-ului
confirmă acest lucru prin semnalul "Slide în poziţie" (bitul 7), prin care se
indică, de fapt, sfârşitul deplasării robotului.
Când se doreşte efectuarea unei noi deplasări într-o altă poziţie memorată
anterior, unitatea de comandă transmite noua adresă de poziţionare. Semnalul
"Slide în poziţie" rămâne activ, atâta timp cât robotul rămâne în poziţia în care
a trebuit să se deplaseze, deoarece indică situarea robotului în poziţia curentă

47
bitul “0” al adr. de poziţionare
8
bitul “1” al adr. de poziţionare
9
UNITATEA bitul “2” al adr. de poziţionare CONTROLER
DE 10 SLIDE
COMANDĂ
11 cerere de poziţionare pe Slide
Slide în poziţie
7

Figura 6.3. Semnalele logice prin care unitatea de comandă


comunică cu Controlerul de Slide.

(în fosta poziţie programată). Semnalul devine "0" logic numai după ce robotul
se îndepărtează fizic din această poziţie, adică începe o nouă deplasare.
Aşadar, atingerea poziţiei programate este confirmată la o tranziţie a
semnalului "Slide în poziţie" de la "0" logic la "1" logic.
După ce robotul a atins poziţia programată trebuie anulată cererea de
poziţionare, întrucât doar în acest fel este posibilă specificarea unei noi adrese
de poziţionare şi implicit deplasarea robotului într-o altă poziţie.
Deplasarea robotului într-una din poziţiile memorate de pe Slide
presupune realizarea unui program de comandă, cu ajutorul căruia, prin
intermediul macroinstrucţiunilor de tip automat programabil, se realizează
programarea stării ieşirilor numerice corespunzătoare şi supravegherea intrării
numerice 7.
În cadrul programului, numărul poziţiei de pe Slide, în care trebuie
deplasat robotul, se specifică în cod binar natural, utilizând biţii 8, 9 şi 10.
Bitul 10 corespunde bitului de semnificaţie maximă (MSB), iar bitul 8 celui cu
semnificaţie minimă (LSB). De exemplu: dacă se doreşte deplasarea robotului
în poziţia "6" de pe Slide, se setează bitul 8 la nivel logic "0" şi biţii 9 şi 10 la
nivel logic "1". Secvenţa de program va arăta astfel:

20 PRINT #1, "20 OB -8" ;bitul 8 este setat la valoarea "0"


30 PRINT #1, "25 OB +9" ;bitul 9 este setat la valoarea "1"
40 PRINT #1, "30 OB +10" ;bitul 10 este setat la valoarea "1".

48
Deplasarea în poziţia specificată începe prin setarea bitului 11 la nivelul
logic "1" (cerere de poziţionare pe Slide). Când robotul a ajuns în poziţia
programată, controlerul Slide-ului setează la nivel logic "1" intrarea numerică
7 a unităţii de comandă. Înaintea începerii unei noi deplasări pe Slide trebuie
anulată cererea de poziţionare pe Slide (bitul 11 se setează la nivel logic "0").
Schema logică a programului aplicaţie de comandă a deplasării pe Slide
este prezentată în figura 6.4a. Se observă că forma şi conţinutul blocurilor: 2,
3, 4, 5, 6 şi 7 nu depind de codul binar al adresei de poziţionare. Astfel, dacă în
cadrul unui program se doreşte efectuarea mai multor deplasări în diferite
poziţii, e convenabil realizarea unei "subrutine de deplasare" pe baza blocurilor
amintite. Această subrutină va fi apelată ori de câte ori este necesară o
deplasare la o poziţie specificată în prealabil, prin adresa de poziţionare (figura
6.4.b).

START START

1 Specificare adresă Specificare adresă


de poziţionare de poziţionare

2 Cerere de poziţionare Apel subrutină de


deplasare pe Slide
Subrutină de Aşteptare
deplasare pe 3 Specificare adresă
început deplasare
Slide de poziţionare

Citire intrări numerice 4 Apel subrutină de


deplasare pe Slide

NU
Slide în poziţie 5

Sfârşit
DA
program principal
Anulare
6
cerere de poziţionare
Subrutină de
deplasare pe Slide
7 Temporizare
STOP
STOP
a) b)

Figura 6.4. Organigrame pentru deplasarea pe Slide; a) schema


logică în cazul unei singure deplasări, b) schema logică a unui
program în care se efectuează mai multe deplasări pe Slide.

49
Subrutina de deplasare pe Slide se apelează cu ajutorul
macroinstrucţiunii: GS (Go Subrutine). Această macroinstrucţiune determină
un salt necondiţionat la linia de start a unei subrutine.

Formatul instrucţiunii: GS <număr linie>,

unde: 1 ≤ număr linie ≤ 2048.

Instrucţiunea va fi executată doar dacă linia specificată există. În caz


contrar programul nu va fi executat şi va apare eroare la lansarea acestuia.
Un exemplu de subrutină pentru deplasarea robotului pe Slide care se
plasează, de regulă, la sfârşitul programului, este:

****SUBRUTINĂ SLIDE****

2000 PRINT #1, "2000 OB +11, C" ;cerere de poziţionare


2010 PRINT #1, "2005 TI 10" ;aşteptare început deplasare
2020 PRINT #1, "2010 ID" ;citire intrări numerice
2030 PRINT #1, "2015 TB +7, 2025";Slide în poziţie
2040 PRINT #1, "2020 GT 2010" ;dacă nu atunci aşteaptă
2050 PRINT #1, "2025 OB -11" ;dacă da atunci anulare cerere
2060 PRINT #1, "2030 TI 10" ;temporizare
2070 PRINT #1, "2035 RT" ;revenire din subrutină
2070 END ;sfârşit program BASIC

Revenirea din subrutină se va face cu ajutorul instrucţiunii RT (Return)


iar subrutina se apelează cu instrucţiunea GS.

Formatul instrucţiunii: RT

Instrucţiunea va fi executată numai dacă în prealabil a fost executată o


instrucţiune de apel subrutină GS, şi dacă până la execuţia comenzii RT nu s-a
realizat revenirea din acea subrutină. Din interiorul unei subrutine pot fi
apelate şi alte subrutine cu condiţia ca fiecare subrutină să se termine cu
macroinstrucţiunea RT.

50
În figura 6.4b s-a reprezentat schema logică a unui program în care se
efectuează mai multe deplasări ale robotului pe Slide. Blocul de definiţie al
subrutinei este aşezat la sfârşitul programului principal adică după
macroinstrucţiunea ED. Când în cadrul programului principal s-a ajuns la linia
care conţine macroinstrucţiunea ED execuţia programului va fi suspendată.
Astfel, se poate preîntâmpina execuţia suplimentară şi nedorită a subrutinei la
terminarea programului.

3. Desfăşurarea lucrării
3.1. Se activează cutia de instruire a Slide-ului, apoi se realizează
sincronizarea Slide-ului prin apăsarea butonului de comandă RIGHT până
când baza robotului ajunge în dreptul senzorului de sincronizare LS1.
3.2. Cu ajutorul butonului de comandă LEFT şi / sau RIGHT se
deplasează robotul într-o poziţie dorită şi se memorează această poziţie
utilizând butonul ENTER. Se deplasează apoi robotul după care se încearcă
revenirea în poziţia memorată cu ajutorul butonului de comandă "Move to
selected point" (după ce în prealabil s-a selectat numărul poziţiei dorite).
3.3. Se va realiza un program de comandă pentru deplasarea robotului pe
Slide: întâi în poziţia de sincronizare "0", apoi în poziţiile memorate "2" şi "4".
Vor fi realizaţi apoi următorii paşi:
- se transferă programul în memoria unităţii de comandă;
- se dezactivează cutiile de instruire;
- se lansează programul şi se urmăreşte funcţionarea sa;
- se optimizează programul din punct de vedere al temporizărilor
necesare.

51
Lucrarea nr. 7

STAŢIA VISION-2000

1. Scopul lucrării
Lucrarea îşi propune familiarizarea studenţilor cu modul de lucru al
staţiei Vision-2000. Această staţie este comandată prin intermediul unui
calculator, pe care este instalat programul aplicaţie dedicat staţiei.

2. Consideraţii teoretice
Dispozitivul videocaptor are rolul de a transforma imaginea optică
(luminanţa scenei capturate) în imagine electronică (distribuţie de sarcini
electronice) şi obţinerea, din aceasta, a semnalului de imagine. Imaginile
optice se formează în planul suprafeţei dispozitivului videocaptor cu ajutorul
obiectivelor, care de cele mai multe ori sunt cu distanţă focală variabilă. Cele
mai răspândite dispozitive videocaptoare integrate sunt cele din categoria
dispozitivelor videocaptoare cu cuplaj de sarcină CCD (Charge Coupled
Devices).
La ieşirea camerei video se obţine un semnal video complex standard.
Prin utilizarea explorării liniare întreţesute, un cadru complet de imagine
(video frame) rezultă după analiza a două semicadre (câmpuri): un câmp al
liniilor impare şi un câmp al liniilor pare. Semnalul video obţinut de cameră
este adus la intrarea plăcii de achiziţie ce intră în componenţa hard a
calculatorului ataşat staţiei. Aceasta va face o conversie analog-digitală a
semnalului video, corespunzător unei imagini, iar rezultatul va fi memorat
rezultând o memorie cadru (frame memory).
În acest fel, imaginea obiectului sau scenei studiate (sampled image),
poate fi prelucrată în diverse moduri, poate fi copiată sau memorată. De
asemenea, diverse imagini memorate anterior pot fi prelucrate ulterior.

52
2.1. Achiziţia imaginilor cu ajutorul staţiei Vision-2000
Achiziţia imaginilor video se realizează prin parcurgerea următoarelor
etape care utilizează programul aplicaţie al staţiei Vision-2000:
- Se pune un obiect în faţa camerei video;
- Se selectează meniul Camera;
- Se selectează opţiunea Live din meniul Camera;
- Se poziţionează obiectul în mijlocul imaginii afişate pe monitor;
- Camera video se va deplasa în sus şi în jos pentru obţinerea focalizării
optime;
- Se va regla nivelul de luminanţă al imaginii prin modificarea
diafragmei obiectivului;
- Se va observa imaginea în cele două poziţii extreme ale diafragmei:
complet închisă şi complet deschisă. În final se va lăsa pe o poziţie de mijloc;
- Se va selecta opţiunea Freeze din meniul Camera;
- Se va deplasa obiectul din faţa camerei pentru a vedea dacă imaginea
este memorată
- Se va selecta comanda Save din meniul File şi se va specifica calea
(extensia fişierului va fi *.pic);

Prin comanda Load se poate încărca o imagine salvată anterior iar


comanda Clear se foloseşte pentru a şterge memoria cadru (frame memory).

2.2. Prelucrări de imagini utilizând programul aplicaţie al staţiei


Vision- 2000
Camera video achiziţionează imaginea piesei ce urmează să fie testată, şi
această imagine va fi memorată într-un fişier pe calculatorul ataşat staţiei.
Asupra unei imagini achiziţionate se pot executa diverse prelucrări elementare
prin care se urmăreşte, în final, dacă piesa coincide din punct de vedere
dimensional cu un tipar din memoria calculatorului. Principalele prelucrări ce
se pot executa pe staţia Vision-2000 sunt următoarele:
- conversia imaginii piesei în imagine cu niveluri de gri (gray-scale),
fiecare punct al imaginii este reprezentat printr-un nivel de gri proporţional cu
luminanţa imaginii din acel punct;
- vizualizarea nivelurilor de gri pe diverse direcţii ale imaginii
(orizontală, verticală, oarecare),

53
- operaţii de calibrare asupra imaginii;
- filtrarea imaginii;
- segmentarea imaginii (delimitarea obiectului de fondul imaginii);
- detecţia muchiilor piesei;
- modificarea mărimii de reprezentare a piesei pe ecran (zoom);
- calcularea cotelor piesei analizate;
- definire de cote pentru care se va executa verificarea (pe lângă
verificarea implicită executată asupra conturului piesei).
În cele ce urmează sunt prezentate principalele opţiuni din meniul
programului aplicaţie al staţiei Vision-2000:

a) meniul TOOLS:
- Pixel: afişează coordonatele x, y ale poziţiei cursorului în cadrul
imaginii piesei studiate şi afişează, de asemenea, valoarea nivelului de gri
ataşată punctului respectiv;
- Test Pattern/Check: testează pentru nivelul maxim şi minim de
reprezentare a nivelului de gri. Acest test este util pentru reglarea camerei.
- Line: afişează un grafic al nivelului de gri pe linia selectată (orizontală,
verticală, oarecare). Linia se selectează cu ajutorul mouse-lui şi este afişată pe
imaginea piesei cu culoare galbenă;
- Histogram: afişează o histogramă de reprezentare a nivelurilor de gri
ale întregii piese, (cu un dublu declic al mouse-lui, fereastra de reprezentare a
histogramei dispare);
- Measure: distanţa de măsurat se introduce utilizând mouse-ul, se
poziţionează cursorul pe un capăt al segmentului de măsurat, se memorează
acţionând tasta <ENTER>, se procedează analog pentru al doilea capăt al
segmentului.

b) meniul FILTER: calitatea imaginii achiziţionate de către camera


video trebuie uneori îmbunătăţită. Există mai multe procedee de îmbunătăţire a
imaginii, fiecare procedeu are efect benefic asupra unei caracteristici a
imaginii prelucrate. Unul dintre aceste procedee se referă la filtrarea spectrală
a imaginii, care constă în eliminarea unor anumite frecvenţe.
- Low Pass: în general, energia unei imagini este concentrată în
componentele de frecvenţă joasă, în timp ce zgomotul din imagine este asociat

54
cu componentele spectrale de frecvenţă ridicată. Prin eliminarea frecvenţelor
înalte şi păstrarea celor joase se poate reduce considerabil influenţa unor
zgomote din imaginea de prelucrat;
- High Pass: determină eliminarea frecvenţelor joase şi păstrarea celor
înalte. Deoarece componentele de frecvenţe înalte corespund detaliilor fine ale
imaginii, această filtrare îmbunătăţeşte contrastul local şi măreşte claritatea
imaginii.
O altă clasă de prelucrări se referă la extragerea conturului exterior al
piesei. Un detector de muchii este un operator care aplicat asupra unei imagini,
produce o nouă imagine care indică muchiile obiectului din imagine.
- Ver Edge: detecţie verticală de muchii, este utilizată pentru corectarea
liniilor pe verticală din conturul piesei.
- Sobel: filtru care corectează muchiile pe toate direcţiile. Utilizează în
acest scop derivata funcţiei care are ca valori, valorile ataşate nivelurilor de gri
ale imaginii piesei.

2.3. Program aplicaţie destinat controlului pieselor


Programul aplicaţie care se poate implementa pe staţia Vision-2000
conţine următoarele instrucţiuni:

STOP ;oprire
DELAY ;temporizare
GO TO ;salt necondiţionat
IF INPUT EQUAL ;test de egalitate asupra unei intrări
DO COMPARE ;comparare
IF COMPARE OK ;dacă rezultatul este de egalitate
GO SUBRUTINE ;apel subrutină
RETURN SUB ;revenire din subrutină
TEST INPUT BIT ;test asupra unui bit de intrare
SET OUTPUT BIT ;setează un bit al unei ieşiri
OUTPUT DATA ;transmite către exterior date
DISPLAY MESSAGE ;afişează mesaj
END ;sfârşit program

55
Spre exemplu, aplicaţia program care comandă testarea automată a
semifabricatelor este:

SET OUTPUT BIT +7


IF INPUT +2 JUMP TO LABEL 60
DELAY 100 (1/10 SECONDS)
DO COMPARE
DELAY 100
IF COMPARE OK JUMP TO LABEL 110
SET OUTPUT BIT +6
DELAY 100
SET OUTPUT BIT –6
GO TO PROGRAM LABEL 10
SET OUTPUT BIT +5
DELAY 100
SET OUTPUT BIT –5
GO TO PROGRAM LABEL 10
END OF PROGRAM

3. Desfăşurarea lucrării
3.1. Se vor achiziţiona imaginile diferitelor piese conform procedurii
descrise la subcapitolul 2.1.
3.2. Se vor apela diferite funcţii din programul aplicaţie Vison-2000
pentru prelucrarea imaginilor achiziţionate.
3.3. Se va realiza şi verifica programul care comandă testarea automată a
semifabricatelor.

56
Lucrarea nr. 8

COMANDA ROBOTULUI RV-M1 PENTRU


DESERVIREA STAŢIEI VISION-2000

1. Scopul lucrării
Lucrarea are ca obiectiv familiarizarea studenţilor cu elaborarea şi
optimizarea unui program de comandă de tip punct cu punct pentru realizarea
automată a operaţiilor de control dimensional, utilizând în acest scop staţia
Vision-2000, respectiv robotul RV-M1.

2. Consideraţii teoretice
Staţia Vision-2000 este destinată controlului dimensional al pieselor
prelucrate în sistemul CIM. Controlul dimensional se realizează prin
compararea imaginii piesei ce trebuie verificată cu imaginea "memorată" a
unei piese de referinţă. Staţia dispune de o cameră video cu ajutorul căreia sunt
preluate imaginile pieselor. Rezultatul comparării poate să fie: "piesă bună", în
cazul în care dimensiunile piesei controlate se încadrează în domeniul de
toleranţă prestabilit, sau "piesă rebut", dacă cel puţin o dimensiune a piesei
verificate nu se încadrează în acest domeniu. Introducerea piesei de testat
precum şi scoaterea acesteia de sub camera video se realizează de către robotul
RV-M1.
Pentru realizarea acestor operaţii, unitatea de comandă a robotului
comunică cu interfaţa I/O a staţiei Vision-2000 prin semnale logice ce pot avea
nivele "0" sau "1". În figura 8.1 sunt prezentate aceste semnale precum şi
identificarea biţilor aferenţi fiecărui semnal logic de intrare sau ieşire în / sau
de la interfaţa I/O a unităţii de comandă.

57
Staţia Vision "ready"
4
cerere de control dimensional
5
cerere de poziţionare pe Slide
11
bitul "0" al adr. de poziţionare
UNITATEA 8 INTERFAŢA
DE bitul "1" al adr. de poziţionare I/O A STAŢIEI
COMANDĂ 9 VISION 2000
bitul "2" al adr. de poziţionare
10
Slide în poziţie
7
piesă "bună"
12
piesă "rebut"
15

Figura 8.1. Semnalele logice prin care unitatea de comandă


comunică cu staţia Vision-2000.

Controlul piesei începe în momentul în care nivelul semnalului de


"cerere de control dimensional", emis de unitatea de comandă, devine "1"
logic. Conform figurii 8.1, prin nivelul logic "1" al semnalului "Staţia Vision
ready", unitatea de comandă a robotului este înştiinţată despre faptul că staţia
de control dimensional este pregătită pentru realizarea unei noi "testări". În
timpul comparării, semnalele: "piesă bună" şi "piesă rebut" sunt menţinute la
nivelul logic "0". După terminarea controlului dimensional, unitatea de
comandă este înştiinţată despre rezultatul comparării, prin faptul că unul din
semnalele "piesă rebut" sau "piesă bună" va fi poziţionat la nivelul logic "1" şi
menţinut în această stare timp de 5 secunde, după care acest semnal revine la
nivelul logic "0".
În figura 8.1 sunt numerotaţi biţii corespunzători acestor semnale, la
nivelul unităţii de comandă, astfel că programul pentru comanda operaţiei de
testare va ţine cont de aceste semnale prin numărul alocat acestor biţi.

2.1. Prezentarea procesului de control dimensional


În figura 8.2 este prezentat modul de dispunere a echipamentelor
principale ce intervin în procesul de control dimensional din sistemul CIM.
Astfel, se consideră că piesele (cilindrice) sosesc de la o staţie de prelucrare,
prin intermediul conveiorului (1).

58
poz.

poz.

poz.

Figura 8.2. Reprezentarea schematică a procesului de control


dimensional.

Apoi sunt preluate de robotul RV-M1 (3) din portul staţiei de încărcare /
descărcare (buffer) (2) şi sunt introduse în staţia Vision-2000 (6), iar
transportul între "buffer" şi staţia de control dimensional este realizat prin
intermediul Slide-ului (4) pe care se deplasează robotul.
Robotul (9) introduce piesa cilindrică pe suportul (8) de sub camera
video (7), după care se retrage, iar unitatea de comandă emite o "cerere de
control dimensional". Dacă dimensiunile verificate se încadrează în domeniul
de toleranţă stabilit, adică semnalul "piesă bună" devine "1", piesa va fi
transportată, prin intermediul robotului (şi a Slide-ului) şi pusă înapoi pe
conveior. Dacă piesa este "rebut", aceasta va fi depozitată într-un container (5),
după care robotul se întoarce în poziţia de aşteptare, la buffer (3).

2.2. Schema logică a procesului


În figura 8.3 se prezintă schema logică a procesului. Programul începe cu
sincronizarea mecanică a robotului (1), apoi se realizează sincronizarea
robotului pe Slide (2) (deplasare în poziţia 0), şi se testează staţia Vision-2000.
(3) şi (4). Dacă staţia Vision-2000 e "pregătită", robotul se deplasează în
poziţia 1 de pe Slide (lângă buffer), (5), şi ia cilindrul de pe conveior (6).

59
START 1

Sincronizare robot 1 Citire intrări 10


numerice

SLIDE 0 2
NU
11 Piesa e bună?
Citire intrări 3
numerice
DA
12 Piesa e rebut?
NU
Vision ready? 4
NU DA

DA
13 Anulare cerere 18 Anulare cerere
SLIDE 1 5 de control de control

Luare cilindru Scoatere cilindru Eliminare


14 19
de pe conveior 6 din staţia Vision ”rebut”

SLIDE 5 7 15 SLIDE 1 20 SLIDE 1

Aşezare cilindru
Introducere cilindru 16
8 pe conveior
în staţia Vision

Cerere de control 9 17 Revenire robot în


dimensional poz. de aşteptare

1 STOP

Figura 8.3. Schema logică a procesului de control dimensional.

Prin intermediul Slide-ului robotul se deplasează în poziţia 5 de pe Slide,


(7), (în faţa staţiei Vision-2000) după care are loc introducerea piesei cilindrice
sub camera video (8) şi se emite o cerere de control dimensional (9). Sfârşitul
operaţiei de control dimensional se "constată" prin testarea bitului 12 (piesă
bună) (11) şi a bitului 15 (piesă rebut) (12). Iniţial atât bitul 12, cât şi bitul 15
au nivelul logic "0". După ce operaţia de control dimensional s-a terminat, cel
puţin un bit din cei doi va fi diferit de "0".

60
Dacă piesa cilindrică este "bună" , întâi se anulează cererea de control
dimensional (13); apoi se ia piesa de sub camera video (14), se transportă la
buffer (15), şi se aşează pe conveior (16) după care robotul revine în poziţia de
aşteptare (17). Dacă piesa e "rebut", întâi se anulează cererea de control
dimensional (18), apoi se depozitează piesa într-un container (19), după care
robotul se deplasează înapoi la buffer (20), şi revine în poziţia de aşteptare
(17).

2.3. Stabilirea traiectoriilor


Având în vedere că se realizează un program de tip punct cu punct,
traiectoria se stabileşte prin definirea unor puncte de start, ţintă şi a unui număr
minim de puncte intermediare prin care punctul caracteristic este obligat să
treacă, în vederea evitării coliziunilor cu obiectele din mediul de lucru. Astfel,
trebuie stabilite numere de ordine pentru fiecare poziţie de pe traiectoria pe
care se va afla robotul în decursul procesului de control dimensional. De
asemenea, trebuie stabilite şi numerotate şi poziţiile robotului pe Slide. În
tabelul 8.1 se dă numerotarea poziţiilor propuse pentru acest proces, iar în
tabelul 8.2 se dă lista poziţiilor robotului pe Slide.

Nr. crt. Denumire poziţie


11 - poziţie de aşteptare în faţa buffer-ului
13 - poziţie deasupra piesei de pe conveior
12 - poziţia piesei pe conveior
25 - poziţie intermediară între buffer şi staţia Vision-2000
30 - poziţie înainte (şi după) aşezarea piesei pe suportul
de sub camera video
31 - poziţia piesei pe suportul de sub camera video
32 - poziţie de aşteptare laterală (pe durata controlului
dimensional)
51 - poziţie deasupra containerului
52 - poziţia piesei rebut în container

Tabelul 8.1. Lista poziţiilor punctului caracteristic al robotului


propuse pentru realizarea programului.

61
Nr. crt. Denumire poziţie
0 - poziţia de sincronizare pe Slide
1 - poziţie din faţa staţiei de oprire conveior (buffer)
5 - poziţie din faţa staţiei de control dimensional Vision-
2000

Tabelul 8.2. Lista poziţiilor robotului pe Slide.

2.4. Stabilirea succesiunii poziţiilor


Prima mişcare este în poziţia de aşteptare 11, după care robotul se
apropie de piesă prin deplasarea în poziţia 13 cu gripper-ul deschis, apucă
piesa în poziţia 12 prin închiderea gripper-ului, se îndepărtează de conveior cu
gripperul închis până în poziţia 13, realizează o rotaţie cu 180 de grade
întorcându-se cu piesa spre staţia Vision-2000 (poziţia 25), se deplasează pe
Slide până în faţa staţiei, introduce piesa sub camera video (poziţia 30) şi o
aşează pe suport (poziţia 31). Robotul se îndepărtează de piesă (cu gripper-ul
deschis) (poziţia 30) şi se retrage de sub camera video, într-o poziţie de
aşteptare laterală (poziţia 32). La terminarea controlului dimensional robotul
apucă şi ridică piesa trecând succesiv prin poziţiile 31 şi 30.
Dacă piesa e "rebut", se apropie cu ea de container (poziţia 51) şi
eliberează piesa în acesta (poziţia 52), după care revine în poziţia anterioară
(poziţia 51) şi se retrage în poziţia 25 de la staţia Vision-2000. Apoi se
deplasează pe Slide până la buffer, şi revine în poziţia de aşteptare 11. Dacă
piesa este "bună", robotul se retrage în poziţia 25, apoi se deplasează pe Slide
până la buffer, se apropie de conveior (poziţia 13) şi aşează piesa pe conveior
(poziţia 12). În final robotul se retrage cu gripper-ul deschis în poziţia de
aşteptare 11 trecând prin poziţia 13 cu gripper-ul deschis.

3. Desfăşurarea lucrării
3.1. Se analizează modul de sincronizare a robotului RV-M1 cu
comenzile numerice ale staţiei Vision-2000.
3.2. Se analizează schema logică a procesului privind executarea în
regim automat a operaţiilor de control dimensional.
3.3. Se realizează şi verifică programul de comandă al robotului pentru
deservirea staţiei Vision-2000, conform poziţiilor date în tabelele 8.1 şi 8.2.

62
Lucrarea nr. 9

ANALIZA CINEMATICĂ DIRECTĂ ÎN CAZUL


ROBOŢILOR INDUSTRIALI

1. Scopul lucrării
Prin această lucrare se urmăreşte familiarizarea studenţilor cu
problematica cinematicii directe a roboţilor. Pentru exemplificare se va utiliza
sistemul micro-robot RV-Ml şi un program scris în mediul de simulare Matlab
pentru realizarea calculelor.

2. Consideraţii teoretice
Matricea de transformare omogenă corespunzătoare dispozitivului de
ghidare a unui robot cu 6 grade de mobilitate se obţine conform relaţiei:

 f11 f12 f13 f14 


f f 22 f 23 f 24 
T6  0 T3 T6   21
0 3

 f 31 f 32 f 33 f 34 
 
0 0 0 1 

unde elementele fij sunt expresii trigonometrice în care intervin lungimi


de translaţie (d) şi unghiuri de rotaţie (), aferente fiecărei translaţii sau rotaţii
realizate la nivelul uneia dintre cuplele cinematice conducătoare (c.c.c.).
Matricea 0 T6 , indică trecerea de la sistemul de coordonate legat de baza
robotului (elementul 0) la sistemul de coordonate ataşat efectorului final
(elementul 6) precum şi situarea efectorului final faţă de baza robotului, adică
faţă de axele sistemului de coordonate fix. În relaţia de mai sus:
1
0
T3  0 A1 A2 2 A3 , (9.2)

63
este matricea transformării omogene aferentă mecanismului generator de
traiectorie, iar:
4
3
T6  3 A4 A5 5 A6 , (9.3)

este matricea transformării omogene aferentă mecanismului de orientare.


i 1
Matricile de tipul
A
i se numesc matrici de trecere între sisteme de

coordonate adiacente.
Conform definiţiei matricei de situare, rezultă următoarea egalitate:

n x ox ax p x   f11 f 12 f13 f 14 
n oy ay p y   f 21 f 22 f 23 f 24  ,
 y (9.4)

nz oz az p z   f 31 f 32 f 33 f 34 
   
0 0 0 1 0 0 0 1 

unde px, py, pz sunt componentele vectorului de poziţie al punctului


caracteristic, iar nx, ny, nz, ox, oy, oz, ax, ay, az sunt componentele versorilor
_ _ _
n , o şi a , care exprimă orientarea obiectului manipulat în raport cu sistemul de
coordonate fix O0X0Y0Z0.
În practică se disting două situaţii:
1) – se cunosc valorile translaţiilor di sau rotaţiilor i de la nivelul
fiecărei c.c.c. (care sunt, de fapt, coordonatele: q1, q2, q3, q4, q5, q6), adică se
cunoaşte cu cât s-a comandat fiecare motor pentru deplasarea robotului. Astfel,
i 1
se pot calcula elementele matricelor Ai şi inclusiv şi elementele matricelor
de transformare omogenă T3 respectiv 3 T6 .
0

Din relaţia (9.1) rezultă expresia pentru 0 T6 şi se află valorile px, py, pz,
nx, ny, nz, ox, oy, oz, ax, ay, az, adică se determină poziţia şi orientarea obiectului
manipulat, în raport cu sistemul de coordonate fix, legat de baza robotului.
Acest calcul de cinematică directă este practic o transformare a
coordonatelor c.c.c. (q1, q2, q3, q4, q5, q6) în coordonatele carteziene ale situării
efectorului final, indicate prin px, py, pz respectiv nx, ny, nz, ox, oy, oz, ax, ay, az.
2) – cel mai adesea se întâlneşte situaţia în care se cunoaşte locul unde
trebuie adus efectorul final, adică se cunosc valorile numerice pentru poziţia şi
orientarea piesei în poziţia ţintă (nx, ox, ax, px etc.) şi trebuie determinat cu cât

64
trebuie comandat fiecare motor pentru ca în final să se realizeze situarea
impusă. Practic se egalează element cu element matricele din expresia (9.4) şi
pentru că elementele sunt expresii algebro-trigonometrice, se obţine un număr
de ecuaţii iar prin rezolvarea lor se obţin valorile di (de translaţie) şi i (de
rotaţie) pentru fiecare c.c.c.
Prin acest calcul de cinematică inversă, din coordonatele carteziene ale
situării efectorului final (px, py, pz, nx, ny, nz, ox, oy, oz, ax, ay, az) se obţin,
coordonatele c.c.c. (q1, q2, q3, q4, q5, q6) necesare pentru conducerea
nemijlocită a robotului.
Calculul de cinematică directă şi cel de cinematică inversă reprezintă
principalele transformări de coordonate utilizate în robotică. Ele reprezintă
esenţa calculelor cinematice care intervin în conducerea unui robot.

2.1. Rezolvarea problemei de cinematică directă


La rezolvarea problemei de cinematică directă se consideră cunoscute
dimensiunile dispozitivului de ghidare şi variabilele articulaţiilor q1, q2, q3, q4,
q5, q6 (qi i=1.6) reprezintă fie lungimi de translaţie (di) fie unghiuri de rotaţie
(i) în funcţie de natura c.c.c. (de translaţie sau de rotaţie).
Pe baza valorilor de mai sus trebuie determinată poziţia şi orientarea
efectorului final în raport cu sistemul de coordonate fix prin componentele
_ _ _
vectorului de poziţie (px, py, pz) respectiv componentele versorilor n , o şi a
(nx, ny, nz, ox, oy, oz, ax, ay, az) ce definesc orientarea piesei. Aceste componente
reprezintă coeficienţii matricei de situare T, conform relaţiei 9.5.

nx ox ax px 
n oy ay p y  (9.5)
T  y
 nz oz az pz 
 
0 0 0 1

În principiu, rezolvarea problemei de cinematică directă presupune


parcurgerea următoarelor etape:
i 1
1) - se deduc matricele de trecere Ai , i  1,2 ,...,6 .
2) - se deduc matricele de transformare omogenă 0 T3 şi 3 T6 .
0
3) - se înmulţeşte matricea T3 cu 3 T6 şi se obţine matricea de

65
transformare omogenă 0 T6
4) - matricea obţinută (a cărei elemente fij sunt expresii trigonometrice) se
egalează termen cu termen cu matricea de situare T conform relaţiei (9.4)

2.2. Soluţionarea problemei de cinematică directă în cazul


robotului RRRRR
Structura robotului de tip RRRRR este arătată în figura 9.1.

Z0
a2
a3
2
/2 X4
X1 X5
O2 n
O1 X3 5
2 3 Z4
X2 4 a
O3O4 Z5
Z1 3 5 O5
d1 Z2 4 o
Z3 d5
Y5
1

0 O0

1 Y0

X0

Figura 9.1. Structura robotului de tip RRRRR.

Robotul RRRRR are 5 grade de mobilitate, iar pentru deducerea relaţiilor


de calcul ale elementelor matricei de situare se utilizează relaţia:

nx ox ax px 
n oy ay p y  0 3
 y (9.6)
 T3 T5
nz oz az pz 
 
0 0 0 1

3
unde T5 este matricea transformării omogene a mecanismului de
0
orientare care posedă doar două grade de mobilitate iar T3 este matricea

66
transformării omogene a mecanismului generator de traiectorie.
Elementele matricei de mai sus sunt date de relaţiile:

nx=(-sin1cos2cos3+sin1sin2sin3)(-sin4cos5)+(sin1cos2sin3+
sin1sin2cos3) (cos4cos5) +cos1sin5;
ny=(cos1cos2cos3-cos1sin2sin3)(-sin4cos5)+
+(-cos1cos2sin3-cos1sin2cos3)(cos4cos5)+sin1sin5;
nz=(sin2cos3+cos2sin3)(-sin4cos5)+(-sin2sin3+
+cos2cos3)cos4cos5;

ox=(-sin1cos2cos3+sin1sin2sin3)(sin4sin5)+(sin1cos2sin3+
+sin1sin2cos3)(-cos4sin5)+cos1cos5;
oy=(cos1cos2cos3-cos1sin2sin3)(sin4sin5)+
(-cos1cos2sin3-cos1sin2cos3)(-cos4sin5)+sin1cos5;
oz=(sin2cos3+cos2sin3)(sin4sin5)+(-sin2sin3+cos2cos3)(-
cos4sin5);

ax=(-sin1cos2cos3+sin1sin2sin3)cos4+(sin1cos2sin3+
+sin1sin2cos3)sin4;
ay=(cos1cos2cos3-cos1sin2sin3)cos4+(-cos1cos2sin3-
cos1sin2cos3)sin4;
az=(sin2cos3+cos2sin3)cos4+(-sin2sin3+cos2cos3)sin4;

px=(-sin1cos2cos3+sin1sin2sin3)(cos4d5)+(sin1cos2sin3+
sin1sin2cos3)* (sin4d5)+(-sin1cos2cos3+
+sin1sin2sin3)a3-sin1cos2a2;
py=(cos1cos2cos3-cos1sin2sin3)(cos4d5)+(-cos1cos2sin3-
cos1sin2cos3)*(sin4d5)+(cos1cos2cos3-cos1sin2sin3)a3
+cos1cos2a2;
pz=(sin2cos3+cos2sin3)(cos4d5)+(-sin2sin3+cos2cos3)* (sin4d5)+
(sin2cos3+cos2sin3)a3+sin2a2+d1;

În relaţiile de mai sus s-au notat cu d1, a2, a3, d5 parametrii articulaţiilor
şi cu 1….5 unghiurile cuplelor cinematice conducătoare.

67
Există două modalităţi prin care se pot deduce valorile cinematicii
directe: primul fiind cel de calcul al matricei 0 T6 , iar a doua variantă este cea
de calcul al matricelor 0T3*3T5
Diagramele logice pentru robotul cu 5 grade de libertate de tip RRRRR,
în cele două cazuri, sunt reprezentate în figura 9.2:

START
START
Introducerea valorilor pentru
1, 2,3, 4, 5
Introducerea valorilor pentru
(în grade)
1, 2,3, 4, 5
(în grade)

Transformarea valorilor
introduse din grade în radiani
Transformarea valorilor
introduse din grade în radiani

Calculul elementelor matricei


0
T3
Introducerea parametrilor (a1, b1, c1, d1, e1, f1, g1, h1, i1,
robotului RRRRR j1, k1)
d1, a2, a3, d5

Calculul elementelor matricei


3
Calculul elementelor matricei: nx, ox, T5
ax, py, ny, oy, ay, py, nz, oz, az, pz (a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2)

Afişarea rezultatului Calculul matricei


obţinut m = 0T3*3T5

STOP Afişarea rezultatului


obţinut

STOP

Figura 9.2. Diagramele logice pentru robotul cu 5 grade de


libertate de tip RRRRR.

68
3. Desfăşurarea lucrării
3.1. Se va studia analiza cinematică directă în cazul general şi modul de
rezolvare a sa pentru robotul de tip RRRRR.
3.2. Se vor extrage din documentaţia tehnică a robotului RV-M1
parametrii dispozitivului de ghidare: d1, a2, a3, d5.
3.3. Se va studia problema cinematică directă în cazul robotului RV-M1
utilizând programul direct.m, pentru diferite valori ale unghiurile cuplelor
cinematice conducătoare 1….5, urmărind situarea punctului caracteristic al
robotului.

69
Lucrarea nr. 10

ANALIZA CINEMATICĂ INVERSĂ A UNUI ROBOT


INDUSTRIAL

1. Scopul lucrării
Prin această lucrare se urmăreşte familiarizarea studenţilor cu rezolvarea
cinematicii inverse a unui robot. Pentru exemplificare se va utiliza sistemul
micro-robot RV-Ml.

2. Consideraţii teoretice
Matricea de situare T, prin care se exprimă situarea efectorului final al
unui robot, în spaţiul tridimensional este:

nx ox ax px 
n oy ay p y  , (10.1)
T  y
 nz oz az pz 
 
0 0 0 1

unde px, py, pz sunt componentele vectorului de poziţie a punctului


_
caracteristic, iar nx, ny, nz, ox, oy, oz, ax, ay, az sunt componentele versorilor n ,
_ _
o şi a , care exprimă orientarea obiectului manipulat în raport cu sistemul de
coordonate fix O0X0Y0Z0.
După cum s-a văzut şi din lucrarea anterioară, matricea de transformare
0
omogenă T6 , indică trecerea de la sistemul de coordonate legat de baza
robotului (elementul 0) la sistemul de coordonate ataşat efectorului final
(elementul 6) precum şi situarea efectorului final faţă de baza robotului adică
faţă de axele sistemului de coordonate fix.

70
Forma acestei matrici este:

 f 11 f 12 f13 f14 
f f 22 f 23 f 24  , (10.2)
0
T6   21
 f 31 f 32 f 33 f 34 
 
0 0 0 1 

unde elementele fij sunt expresii trigonometrice în care intervin lungimi


de translaţie (di) şi unghiuri de rotaţie (i) aferente fiecărei translaţii sau rotaţii
realizate la nivelul uneia dintre cuplele cinematice conducătoare (c.c.c.).
Prin egalarea celor două relaţii (10.1) şi (10.2) se obţine:

 f 11 f12 f 13 f14   n x ox ax px 
f f 22 f 23 f 24  n y oy ay p y 
 21 (10.3)

 f 31 f 32 f 33 f 34   n z oz az pz 
   
0 0 0 1  0 0 0 1

Problema de cinematică inversă constă în faptul că se cunoaşte unde


anume trebuie adus efectorul final într-o etapă a procesului tehnologic, adică
se cunosc valorile numerice pentru poziţia (px, py, pz) şi orientarea piesei
manipulate (nx, ny, nz, ox, oy, oz, ax, ay, az) în poziţia ţintă şi trebuie determinat
cu cât trebuie comandat fiecare motor (valorile di şi i corespunzătoare fiecărei
cuple cinematice conducătoare) pentru ca în final să se realizeze situarea
impusă. Practic, se egalează elementele matricelor din expresia (10.3). Aceste
elemente sunt de fapt expresii algebro-trigonometrice şi astfel se obţine un
sistem de ecuaţii, iar prin rezolvarea lui se obţin valorile di şi i, de translaţie
sau de rotaţie pentru fiecare c.c.c.
În concluzie, prin acest calcul de cinematică inversă, din coordonatele
carteziene ale situării efectorului final (px, py, pz, nx, ny, nz, ox, oy, oz, ax, ay, az),
se obţin coordonatele c.c.c. (q1, q2, q3, q4, q5, q6), necesare pentru conducerea
nemijlocită a robotului.
Relaţiile deduse trebuie să fie de forma:
qi  f n x , n y ,.., p z  pentru i  1...6 .
Pentru deducerea acestor relaţii se pot utiliza două metode:
1. Metoda prin descompunere;
2. Metoda recursivă.

71
Metoda prin descompunere se poate utiliza atunci când axele cuplelor
cinematice conducătoare ale mecanismului de orientare sunt concurente şi se
intersectează într-un singur punct W numit punct wrist sau punct al
încheieturii. Dacă se cunoaşte poziţia şi orientarea piesei faţă de baza
robotului, precum şi vectorul de poziţie P al punctului caracteristic M se
poate determina vectorul de poziţie PW al punctului W.
Fie O0X0Y0Z0 sistemul de referinţă fix legat de baza robotului, şi
OWXWYWZW sistemul de coordonate cu originea în punctul W. În figura 10.1 se
arată poziţiile celor două sisteme de referinţă, respectiv poziţia punctelor W şi
M.

ZW

W PM M
XW

PW
P YW

O0
Y0

X0

Figura 10.1. Calculul vectorului de poziţie PW .

Pe baza figurii 10.1 se pot face notaţiile:


P   p X pY p Z  - vectorul de poziţie al punctului caracteristic M în
T

sistemul de referinţă O0X0Y0Z0


PW   pWX pWY pWZ  - vectorul de poziţie al punctului W în sistemul
T

de coordonate O0X0Y0Z0
PM   p MX p MY p MZ  - vectorul de poziţie al punctului caracteristic M
T

în sistemul de coordonate ataşat mecanismului de orientare având originea în


punctul W.

72
Între aceşti trei vectori există relaţia:

P  PW  PM (10.4)

de unde rezultă:

PW  P  PM (10.5)

adică:

 pWx   p x   p M x 
     . (10.6)
 pWy    p y    p M y 
 pW   p z   p M 
 z  z

Având cunoscute componentele vectorului PW se pot calcula în prima


fază parametrii cinematici: q1, q2, q3 şi pe urmă q4, q5, q6.
În acest fel, problema analizei cinematice inverse este descompusă
practic în două etape astfel:
- în prima etapă se determină relaţiile de calcul corespunzătoare
coordonatelor c.c.c. ale mecanismului generator de traiectorie (q1, q2, q3).
- în etapa a doua se determină relaţiile de calcul corespunzătoare
coordonatelor c.c.c. ale mecanismului de orientare (q4, q5, q6), în funcţie de
valorile obţinute la prima etapă.
În cazul metodei recursive se determină pentru început q1 prin eliminarea
din sistemul de ecuaţii a matricei 0 A1 , prin înmulţirea cu  A
0
1
1
a relaţiei:

n x ox ax px 
n oy ay p y  0 1 2 3 4 5
 y (10.7)
 A1 A2 A3 A4 A5 A6
nz oz az pz 
 
0 0 0 1

Astfel, se va obţine relaţia:

nx ox ax px 
 p y  1 2 3 4 5 .
1 n oy ay (10.8)
 
0
A1  y
n z oz az pz 
 A2 A3 A4 A5 A6
 
0 0 0 1

73
Prin egalarea termen cu termen a celor două matrici rezultante, se obţine
un sistem de 12 ecuaţii din care se calculează q1.
Pentru determinarea relaţiei de calcul pentru q2 se elimină termenul 1 A2
din ecuaţia rezultată mai sus, prin înmulţirea în partea stângă cu matricea
inversă A 1
2
1
:

nx ox ax px 
 p y  2 3 4 5 .
1 n oy ay (10.9)
A  
1
2
1 0
A1  y
nz oz az pz 
 A3 A4 A5 A6
 
0 0 0 1

În partea stângă a relaţiei vom avea o singură necunoscută adică q2


deoarece valoarea lui q1 este deja cunoscută. În mod similar se procedează
pentru determinarea relaţiilor de calcul pentru q3, q4, q5 şi q6. Spre exemplu,
pentru determinarea lui q6 se utilizează relaţia:

nx ox ax px 
n oy ay p y  (10.10)
 A   A  A   A A   A
5
6
1 4
5
1 3
4
1 2
3
1 1
2
1 0
1
1
 y
nz oz az pz 
I
 
0 0 0 1

unde I este matricea identitate.


Această metodă prezintă două mari dezavantaje. Primul se referă la
faptul că se poate întâmpla ca matricea rezultată în partea dreaptă, să nu
conţină cel puţin un element constant. Aceasta este o condiţie necesară pentru
ca o variabilă qi care urmează să fie determinată să nu depindă de restul
variabilelor (necunoscute) din partea dreaptă a ecuaţiei. Celălalt dezavantaj
este dat de faptul că apar de multe ori probleme de nesigularitate a soluţiilor,
adică pentru o anumită situare se obţin mai multe configuraţii ale c.c.c.

74
2.1. Rezolvarea problemei de cinematică inversă în cazul robotului
RRRRR
Structura robotului de tip RRRRR este arătată în figura 10.2.

Z0
a2
a3
2
/2 X4
X1 X5
O2 X3 n
O1 5
2 3 Z4
X2 4 a
O3O4 Z5
Z1 3 5 O5
d1 Z2 4 o
Z3 d5
Y5
1

0 O0

1 Y0

X0

Figura 10.2. Structura robotului de tip RRRRR

Rezolvarea problemei de cinematică inversă în cazul robotului de tip


RRRRR presupune cunoaşterea poziţiei punctului caracteristic (px, py, pz),
orientarea obiectului manipulat (nx, ny, nz, ox, oy, oz, ax, ay, az) faţă de sistemul
de coordonate fix, legat de baza robotului, precum şi dimensiunile
dispozitivului de ghidare (d1, a2, a3, d5) se urmăreşte determinarea parametrilor
cinematici (1, 2, 3, 4 şi 5) pentru cele cinci cuple cinematice de rotaţie.
În figura 10.3 se prezintă organigrama cu etapele principale pentru
analiza cinematică inversă utilizând metoda prin descompunere.

75
START

Introducerea valorilor pentru:


- poziţia punctului caracteristic (px, py, pz)
- orientarea obiectului manipulat
(nx, ny, nz, ox, oy, oz, ax, ay, az) Calculul parametrilor
- dimensiunile dispozitivului de ghidare cinematici ai
(d1, a2, a3, d5) mecanismului de
orientare
4, 5
Calculul componentelor
vectorului de poziţie
al punctului Wrist
Afişarea rezultatului
obţinut:
1, 2, 3, 4, 5
Calculul parametrilor cinematici
ai mecanismului generator
de traiectorie
1, 2, 3 STOP

Figura 10.3. Diagrama logică pentru programul de analiză


cinematică inversă pentru robotul cu 5 grade de libertate de tip
RRRRR

3. Desfăşurarea lucrării
3.1. Se va studia analiza cinematică inversă în cazul general şi modul de
rezolvare a sa pentru robotul de tip RRRRR.
3.2. Se vor stabili diferiţi parametri pentru poziţia punctului caracteristic
(px, py, pz), pentru orientarea obiectului manipulat (nx, ny, nz, ox, oy, oz, ax, ay, az)
specifice robotului RV-M1.
3.3. Se va studia problema cinematică inversă în cazul robotului RV-M1
utilizând programul invers.m.

76
Lucrarea nr. 11

UTILIZAREA METODEI CÂMPULUI POTENŢIAL


ARTIFICIAL PENTRU PROGRAMAREA
TRAIECTORIEI ROBOŢILOR

1. Scopul lucrării
Lucrarea urmăreşte familiarizarea studenţilor cu metoda câmpului
potenţial utilizată pentru programarea traiectoriei descrise de punctul
caracteristic al roboţilor industriali sau a traiectoriei roboţilor mobili care se
deplasează într-un mediu cu obstacole. În lucrare se prezintă şi modul de
realizare al unui program pentru simularea câmpului potenţial artificial în
mediul Matlab.

2. Consideraţii teoretice
În cazul metodei câmpului potenţial, un robot este tratat ca un punct în
spaţiul său de configurare, respectiv ca o particulă aflată sub influenţa unui
câmp potenţial artificial U, a cărui variaţie reflectă structura spaţiului liber.
Funcţia potenţială se defineşte pe spaţiul de configurare al robotului ca fiind
suma dintre un potenţial atractiv care "atrage" robotul către configuraţia ţintei
şi un potenţial repulsiv care "împinge" robotul dinspre obstacole. Planificarea
mişcării se realizează într-un mod iterativ. La fiecare iteraţie direcţia forţei
artificiale indusă de către funcţia potenţială în configuraţia curentă este privită
ca fiind cea mai potrivită direcţie ce trebuie urmată de către robot în deplasarea
sa către ţintă.
Ideea de bază, este că robotul respectiv punctul caracteristic al robotului
este atras către ţintă în timp ce obstacolele îl resping. Această idee este
ilustrată prin definirea unei funcţii potenţiale în cazul în care robotul se poate
deplasa liber în W=RN, cu N=2 sau 3, C=RN, unde W reprezintă spaţiul de lucru

77
al robotului, R reprezintă un set de numere reale iar C spaţiul de configurare al
robotului. Un element din C este notat cu q.
Câmpul forţelor artificiale ce acţionează asupra robotului situat în
punctul q din C este produs de o funcţie potenţială derivabilă U : C liber  R , şi
este dată de relaţia:

F q    U q  , (11.1)

unde U q  reprezintă vectorul gradient al câmpului potenţial artificial


U în punctul q. În C=RN cu (N=2 sau 3), se poate scrie q(x,y) respectiv q(x,y,z),
iar U este dat de relaţiile:

U 
U   x 
U  U x  sau U  U  . (11.2)
   y 
 y  U 
 z 

Pentru atragerea robotului, pe de o parte către ţintă şi în acelaşi timp


respingerea lui de către obstacole, câmpul potenţial U rezultant este dat de
suma a două funcţii potenţiale:

U q   U atr q   U rep q  , (11.3)

unde Uatr reprezintă potenţialul atractiv asociat punctului în care este


situată ţinta qţinta, iar Urep este potenţialul repulsiv asociat zonelor din C unde
sunt situate obstacolele.
Având aceste notaţii se pot scrie forţele exercitate de fiecare potenţial în
parte:
 
Fatr  U atr şi Frep  U rep . (11.4)

Acestea reprezintă vectorul forţelor atractive, respectiv vectorul forţelor


repulsive ce acţionează asupra robotului.

2.1. Potenţialul atractiv


Câmpul potenţial atractiv Uatr poate fi definit sub forma unei funcţii
parabolice (relaţia 11.5).

78
1
U atr q   k  p q  (11.5)
2

unde k este un factor de scară pozitiv şi pq  reprezintă distanţa


Euclidiană dintre punctul în care este situat robotul şi punctul în care e situată
ţinta ||q-qţintă||.
Distanţa euclidiană dintre două puncte dintr-un plan s(x1,y1) şi t(x2,y2),
este dată de relaţia:

s  t  ( x2  x1 ) 2  ( y 2  y1 ) 2 (11.6)

Funcţia Uatr este pozitivă sau nulă şi atinge minimul în punctul qţintă unde
Uatr(qţintă)=0
Funcţia p este diferenţiabilă oriunde în C. În oricare configuraţie a lui
q, forţa atractivă Fatr ce derivă din Uatr este:

Fatr q   U atr q     pq pq     q  q ţ int ă  . (11.7)

S-a ales o formă parabolică a funcţiei ce defineşte potenţialul de atracţie


deoarece cu aceasta s-a obţinut o stabilitate bună, mai ales atunci când se
utilizează metoda câmpului potenţial pentru evitarea on-line a obstacolelor. În
acest fel, forţa rezultantă Fatr converge liniar spre 0 atunci când robotul se
apropie de ţintă. Pe de altă parte, Fatr creşte cu distanţa faţă de ţintă şi în final
tinde către infinit atunci când pq    .
În figura 11.1 se arată un exemplu de potenţial atractiv generat de către o
ţintă situată în punctul de coordonate x=12, y=13 în cadrul unui spaţiu de
configurare de dimensiune 16×16 elemente.

79
30

25

Uatr 20

15

10 0
2
5
4
0
6
0
2
4
8 y
10
6
8 12
x 10
12 14
14 i
16 16

Figura 11.1. Forma potenţialul atractiv creat de ţintă.

2.2. Potenţialul repulsiv


Ideea de bază este de a crea o barieră de potenţial în jurul obstacolelor
situate în spaţiul de configurare C al robotului, care nu poate fi traversat de
către acesta. Pe de altă parte acest potenţial repulsiv nu trebuie să afecteze
mişcarea robotului atunci când acesta este suficient de departe de obstacole.
Aceste condiţii pot fi îndeplinite prin definirea unei funcţii potenţiale repulsive
de forma:

1  1 1 
2

 n   dacă pq   p0 , (11.8)


U rep q    2 pq  p
 0 
 0 dacă pq   p0

unde n este un factor de scară pozitiv, şi  q  denotă distanţa dintre q şi


obstacole.
Funcţia Urep este pozitivă sau nulă, tinde la infinit atunci când q se
apropie mult de zona obstacolelor şi este nulă când distanţa dintre robot şi
obstacole este mai mare decât p0 .

80
Forţa repulsivă obţinută din Urep este definită astfel:

  1 1  1
  n   2 p q  dacă pq   p0 (11.9)
F q   U rep q     pq  p0  p q 

 0 dacă pq   p 0

Orice obstacol detectat de unul din senzorii robotului, indiferent dacă


acesta este un obstacol sau a parte dintr-un obstacol mai mare, produce o forţă
repulsivă. Forţa repulsivă rezultantă este suma forţelor repulsive create de
fiecare obstacol în parte. Aşadar forţa repulsivă rezultantă este dată de relaţia:

Frep total  q    Frep i  q  , (11.10)
i 0

unde prin i s-a notat numărul de senzori ai robotului.


În figura 11.2 se prezintă un exemplu de potenţial repulsiv creat de trei
obstacole situate într-un spaţiu de configurare de dimensiune 16×16 elemente.

Urep

x y

Figura 11.2. Un exemplu de potenţial repulsiv creat de trei


obstacole.

În final, asupra robotului situat într-un punct q al spaţiului de configurare


C acţionează atât forţa de atracţie dată de către configuraţia ţintei cât şi forţele
de respingere determinate de către obstacolele situate în mediul de lucru al
robotului. Astfel, forţa totală artificială ce acţionează asupra robotului în
punctul q este dată de relaţia (11.11).

81
Ftotal q   Fatr q   Freptotal  q  (11.11)

Forma câmpului potenţial artificial total, ce acţionează asupra robotului,


produce în final Ftotal q  iar în cazul exemplului prezentat mai sus are forma
din figura 11.3.

Utotal

y
x

Figura 11.3. Forma câmpului potenţial artificial total.

2.3. Realizarea câmpului potenţial artificial în mediul de simulare


Matlab
Câmpul potenţial artificial de atracţie, în cazul unei ţinte situate într-un
spaţiu de configurare, precum şi câmpul potenţial artificial de repulsie creat de
diverse obstacole poate fi realizat în mediul de simulare Matlab. Pentru
exemplificări se va folosi un spaţiu de configurare discretizat având
dimensiunea de 10×10 elemente. Pentru a crea un câmp potenţial în acest
spaţiu în care se află ţinta şi două obstacole, se vor parcurge etapele:
a) Iniţializarea spaţiului de configurare:
for i=1:1:10; for j=1:1:10;
c_space(j,i)=0;
end;end;

82
b) Definirea obstacolelor:
for i=3:1:5; for j=2:1:4 % obstacol 1
c_space(j,i)=4;
for i=2:1:4; for j=9:1:10 % obstacol 2
c_space (j,i)=4;
end;end;end;end;
c) Afişarea spaţiului cu obstacole:
figure;grid on;axis([0 12 0 12 0 10]); hold on;
for i=1:1:size(c_space,2); for j=1:1:size(c_space,1);
k=c_space (j,i);
if k==4
plot3(i,j,k,'r*');
else
plot3(i,j,k,'b+');
end;end;end;
figure, surf(double(c_space (1:1:end,1:1:end)));zlim([0 10]);
d) Determinarea potenţialului de atracţie:
xf=9; yf=9; % pozitia ţintei
for i=1:1:size(c_space,1); for j=1:1:size(c_space,2);
E=((xf-i)^2+(yf-j)^2)^0.5;
Uatr=1/2*k*E; %potenţialul de atracţie
c_space (j,i)=Uatr;
end; end; end;
e) Determinarea potenţialului de respingere:
p0=1; %distanţa minimă până la obstacole
if E<p0
Urep=1/2*n*(1/E-1/p0)^2;
else
Urep=0;
end;
f) Obţinerea şi afişarea câmpului potenţial total:
c_space(j,i)=Uatr+Urep;
figure, surf(double(c_space (1:1:end,1:1:end)));zlim([0 10]);
view(30,30);

83
3. Desfăşurarea lucrării
3.1. Se va analiza modul de obţinere a câmpului potenţial artificial prin
cele două componente ale sale: potenţialul de atracţie şi potenţialul de
respingere.
3.2. Se va calcula potenţialul de atracţie şi respingere pentru un mediu
discretizat de dimensiune 4×4 elemente având ţinta situată în punctul (3,3) şi
obstacole în punctele (1,2) şi (1,3).
3.3. Se va realiza un program care să afişeze succesiv: potenţialul de
atracţie, potenţialul de respingere şi câmpul potenţial total pentru un mediu
discretizat de dimensiune 12×12 elemente, ţinta situată în punctul (8,10) şi
obstacolele în punctele (2,2), (3,2), (4,2), (2,3), (3,3), (4,3), (6,4), (7,4), (8,4),
(6,5),(7,5) şi (8,5).

84
Lucrarea nr. 12

PLANIFICAREA TRAIECTORIEI UNUI ROBOT MOBIL


CU METODA CÂMPULUI POTENŢIAL ARTIFICIAL

1. Scopul lucrării
Lucrarea urmăreşte familiarizarea studenţilor cu modul de planificare a
traiectoriei cu metoda câmpului potenţial artificial, creat pe baza configuraţiei
mediului de lucru al unui robot mobil în care sunt date poziţia ţintei şi poziţiile
unde sunt situate obstacolele. Se prezintă, de asemenea, şi un algoritm de
realizare a unui program în mediul Matlab pentru planificarea traiectoriei unui
robot mobil.

2. Consideraţii teoretice
O problemă importantă în domeniul roboţilor mobili o constituie
proiectarea unui sistem de planificare a mişcării. Un astfel de sistem trebuie să
ghideze roboţii mobili în deplasarea lor de la o poziţie iniţială la o poziţie ţintă,
evitând obstacolele care sunt localizate între aceste două poziţii. Dacă se ia în
calcul că obstacolele precum şi ţinta pot fi în mişcare şi că obstacolele pot avea
diverse forme este evident că nu e o problemă uşor de rezolvat.

2.1. Planificarea traiectoriei pentru roboţii mobili


Pentru planificarea traiectoriei în cazul roboţilor mobili există în
literatura de specialitate o multitudine de soluţii care în general, au la bază
două metode:
a) planificarea traiectoriei sau navigarea robotului mobil prin metoda
globală;
Această metodă este asociată cu nivelul ierarhic superior din sistemul de
conducere a unui robot. Cu această metodă se obţine o traiectorie optimă,

85
ocolindu-se obstacolele statice sau dinamice cunoscute din mediul de lucru. De
cele mai multe ori, metodele globale constă în crearea de hărţi sau grafuri şi
abordează problema doar din punct de vedere geometric. Oricum metodele
globale determină limitarea capabilităţilor robotului de a acţiona în timp real în
mediu dezordonat, în special când sunt multe informaţii noi despre schimbările
din mediu.
b) planificarea traiectoriei sau navigarea robotului mobil prin metoda
locală.
Această metodă se asociază cu nivelul ierarhic inferior din sistemul de
conducere al unui robot şi realizează conducerea robotului pe o traiectorie
prescrisă de către sistemul de planificare globală. Prin metoda locală de
navigare se pot evita obstacolele necunoscute indiferent dacă acestea sunt
statice sau se află în mişcare, compensând incertitudinea datelor furnizate de
sistemul de conducere de la nivelul global.
Planificarea sau navigarea locală poate lua în considerare atât cinematica
cât şi dinamica robotului, deoarece se bazează pe informaţii obţinute din
semnale, care se pot prelucra în timp real. Însă folosirea doar a informaţiilor
locale primite de la senzori nu garantează găsirea soluţiei optime pentru
traiectoria roboţilor şi nu se semnalează dacă poziţia ţintei nu este accesibilă.
Deseori se combină cele două strategii, adică planificarea globală pentru
asigurarea unei traiectorii accesibile şi navigaţia locală pentru optimizarea
locală a traiectoriei şi evitarea obstacolelor neaşteptate.

2.2. Planificarea traiectoriei roboţilor mobili prin metoda câmpului


potenţial
În cazul metodei câmpului potenţial, un robot mobil este tratat în spaţiul
său de configurare ca o particulă aflată sub influenţa unui câmp potenţial
artificial U. Acest câmp este format din suma a două componente: potenţialul
atractiv care "atrage" robotul către configuraţia ţintei şi potenţialul repulsiv
care "împinge" robotul dinspre obstacole.
Planificarea mişcării se realizează într-un mod iterativ. La fiecare iteraţie
direcţia forţei artificiale indusă de către funcţia potenţială în configuraţia
curentă este privită ca fiind cea mai potrivită direcţie ce trebuie urmată de către
robot în deplasarea sa către ţintă. În figura 12.1 se prezintă un exemplu în care
robotul mobil trebuie în final să ajungă la ţintă ocolind obstacolele întâlnite.

86
Ţinta
Obstacole

Fatr

Robot Frez

Frep

Figura 12.1. Acţiunea forţelor create de câmpurile potenţiale de


atracţie şi repulsie asupra robotului.

Ţinta, a cărei poziţie se presupune că este cunoscută apriori de către


robot este interpretată de către acesta prin crearea unui potenţial de atracţie Uatr
a cărui valoare este proporţională cu distanţa dintre robot şi ţintă. În funcţie de
valoarea câmpului potenţial de atracţie din punctul în care este situat robotul,
se obţine o forţă artificială de atracţie Fatr care "atrage" robotul spre ţintă.
Pe de altă parte, obstacolele din mediul de lucru al robotului detectate cu
ajutorul senzorilor cu care este echipat acesta, sunt interpretate prin crearea
unui câmp potenţial de repulsie Urep a cărui valoare este proporţională cu
mărimea obstacolelor şi cu distanţa până la acestea. Practic, fiecare obstacol
creează un câmp potenţial repulsiv şi de aici rezultă câte o forţă artificială
repulsivă care acţionează asupra robotului din partea fiecărui obstacol detectat.
În final, prin compunerea acestor forţe se obţine rezultanta lor care reprezintă
forţa artificială de repulsie Frep care acţionează asupra robotului la un moment
dat.
Prin compunerea forţelor Fatr şi Frep se obţine o forţă rezultantă Frez dată
de relaţia (12.1), a cărei orientare indică cea mai potrivită direcţie ce trebuie
urmată în configuraţia curentă a robotului q(xq,yq).

87

Frez q   Fatr q   Frep q  (12.1)

De regulă mediul de lucru al robotului este discretizat într-un număr de


celule sau pixeli (elemente) de aceeaşi dimensiune şi robotul mobil respectiv
ţinta sunt reprezentate printr-un pixel iar obstacolele au dimensiuni de cel puţin
un pixel. Având determinat vectorul forţelor rezultante la un moment dat,
robotul se va deplasa ocupând celula vecină indicată de acest vector. În această
nouă configuraţie a robotului, procesul descris mai sus se va repeta şi tot aşa
până când este atinsă poziţia ţintei.

2.3. Algoritm de planificare a traiectoriei unui robot mobil cu


metoda câmpului potenţial
Pentru exemplificare se consideră un robot mobil care trebuie să se
deplaseze dintr-o poziţie de start la un punct ţintă ocolind obstacolele întâlnite
între aceste două poziţii. Mediul de lucru cu obstacole al robotului se consideră
discretizat în funcţie de rezoluţia dorită. În figura 12.2 se prezintă organigrama
algoritmului de planificare a traiectoriei pe baza căreia se va realiza programul.
Alegerea mediului de lucru cu obstacole
Identificarea poziţiilor: start şi ţintă

Crearea unui câmp potenţial de atracţie proporţional cu


distanţele din fiecare punct până la ţintă

Crearea unui câmp potenţial de repulsie în jurul obstacolelor

Însumarea celor două câmpuri în toate punctele din mediul de


lucru

Alegerea direcţiei optime ce corespunde potenţialului minim


din jurul poziţiei actuale a robotului

Deplasare cu un pas pe direcţia aleasă

Robotul a Nu
ajuns
la ţintă?

Da

STOP

Figura 12.2. Organigrama algoritmului.

88
Mediul de lucru, obstacolele precum şi modul de realizarea a câmpului
potenţial de atracţie (Uatr) şi de repulsie (Urep) pot fi definite în mediul Matlab
conform lucrării de laborator anterioare.
Pentru însumarea celor două câmpuri şi afişarea câmpului rezultant se
pot utiliza următoarele linii de program:

for i=1:1:size(mediu,1); for j=1:1:size(mediu,2);


mediu(j,i)=Uatr+Urep;
figure, surf(double(mediu (1:1:end,1:1:end))); zlim([0 10]);
view(30,30);

Alegerea direcţiei optime de deplasare pentru robot, se face prin


compararea valorii câmpului potenţial rezultant a celor opt direcţii de
deplasare posibile: E, V, N, S, NE, NV, SE, SV. Direcţiile posibile, respectiv
vecinătatea de rază r = 1, pentru o situaţie concretă se prezintă în figura 12.3.
Dacă robotul se află în situaţia prezentată în figura 12.3, acesta va fi pus
în situaţia de a alege între cele opt direcţii de deplasare. Se observă că direcţia
SE are potenţialul minim, prin urmare va alege această direcţie. Poziţiile N şi
NV au potenţial mult mai mare decât toate celelalte poziţii învecinate ale
robotului, ele indică faptul că pe poziţiile respective se află situat un obstacol.

NV N NE
21,02 21,02 10,06

V E
11,24 9,02

SV S SE
10,54 9,29 8,13

Figura 12.3. Exemplu de alegere a poziţiei viitoare.

Pentru evitarea blocării robotului în minime locale, care apar de regulă,


în situaţii în care robotul întâlneşte obstacole concave, algoritmul poate fi
conceput astfel încât robotul să nu poată să facă paşi înapoi. Odată ce robotul
ocupă o poziţie, din mediul de lucru, prin intermediul algoritmului, potenţialul
punctului respectiv poate fi setat pe o valoare ridicată.

89
În acelaşi timp, la următorul pas al robotului când vor fi comparate
valorile potenţialelor punctelor vecine, poziţia de unde a venit nu poate fi luată
în calcul pentru o eventuală alegere, şi robotul nu va putea rămâne pe loc chiar
dacă în situaţiile de minime locale potenţialul punctului ocupat de către robot
este mai mic decât potenţialul punctelor vecine. Aşadar, având aceste restricţii
robotul va reuşi să iasă din aceste minime locale şi va continua drumul către
ţintă.
Un exemplu de subrutină care determină valoarea câmpului potenţial din
vecinătatea robotului, dacă se presupune că acesta se află în poziţia x0(i,j) este:

N=mediu(j+1,i); S=mediu(j-1,i); V=mediu(j,i-1); E=mediu(j,i+1);


NE=mediu(j+1,i+1); NV=mediu(j+1,i-1); SE=mediu(j-1,i+1);
SV=mediu(j-1,i-1);
X=[N S E V NE NV SE SV];
p=min(X);

După identificarea potenţialului minim ca având valoarea p, urmează ca


această valoare să fie comparată cu valoarea potenţialului din cele opt direcţii
posibile de deplasare menţionate mai sus. Imediat ce s-a găsit corespondentul
lui p, va fi afişată noua poziţie a robotului şi aceasta va constitui poziţie
curentă.
Exemplu de secvenţă de program în care, având valoare lui p, se va
determina şi afişa poziţia viitoare ce va fi ocupată de către robot.

if p==N; plot(i,j+1,'go');hold on;grid on; j=j+1;end;


if p==S; plot(i,j-1,'go');hold on;grid on; j=j-1;end;
if p==V; plot(i-1,j,'go');hold on;grid on; i=i-1;end;
if p==E; plot(i+1,j,'go');hold on;grid on; i=i+1;end;
if p==NE; plot(i+1,j+1,'go');hold on; grid on;i=i+1;j=j+1;end;
if p==NV; plot(i-1,j+1,'go');hold on;grid on; i=i-1;j=j+1;end;
if p==SE; plot(i+1,j-1,'go');hold on;grid on; i=i+1;j=j-1;end;
if p==SV; plot(i-1,j-1,'go');hold on;grid on; i=i-1;j=j-1;end;
end;

90
În continuare, se va verifica dacă această poziţie corespunde cu poziţia
ţintei şi dacă nu algoritmul va fi reluat de la etapa de alegere a direcţiei optime
pentru robot în sensul câmpului potenţial minim din jurul poziţiei curente a
robotului.

3. Desfăşurarea lucrării
3.1. Se vor analiza cele două metode de planificare a traiectoriei în cazul
roboţilor mobili: metoda globală şi metoda locală.
3.2. Se va defini un spaţiu cu obstacole de dimensiune 10×10 elemente
cu două obstacole, se va determina şi afişa potenţialul de atracţie dat de un
punct ţintă, potenţialul de repulsie dat de obstacole precum şi câmpul potenţial
total conform lucrării anterioare.
3.3. Se va realiza un program prin care un robot situat în mediul creat
mai sus, în diverse poziţii să se deplaseze spre un punct ţintă conform
algoritmului prezentat în lucrare.
3.4. Vor fi identificate situaţii în care robotul se află în puncte de minim
local şi se vor propune soluţii pentru ieşirea robotului din aceste situaţii.

91
Bibliografie

1. T. Barabás, T. Vesselényi, Robotică – Conducerea şi programarea


roboţilor industriali, Editura Universităţii din Oradea, 2004.
2. T. Barabás, Structuri deschise de automatizare a fabricaţiei din cadrul
hipersistemelor CIM robotizate, Editura Universităţii din Oradea, 2004.
3. T. Barabás, Robotică – Roboţi industriali - Îndrumător de laborator
Editura Universităţii din Oradea, 2005.
4. T. Barabás, Conducerea roboţilor industriali - Îndrumător de
laborator, Editura Universităţii din Oradea, 2005.
5. A. Gacsádi, T. Maghiar, V. Tiponuţ, Path planning for a mobile robot
in an environment with obstacles using cellular neural network, Int. Workshop
on CNN and their Applications, (CNNA 2002), Frankfurt/Main, Germany, pp.
188-194, 2002.
6. I. Gavriluţ, Path planning of a mobile robot using Potential Field
Method, Int. Conf. on Renewable Sources and Environmental Electro-
Technologies (RSEE”02), pp. 55-58, Oradea, 2002.
7. M. Gavriş, T. Barabás, Comanda roboţilor – Îndrumător de laborator,
Editura Universităţii din Oradea, 1996.
8. M. Gavriş, T. Barabás, Comanda, conducerea şi programarea
roboţilor - Îndrumător de proiect, Editura Universităţii din Oradea, 1996.
9. M. Ghinea, V. Fireţeanu, MATLAB. Calcul numeric - grafică -
aplicaţii, Editura Teora, Bucureşti, 1997.
10. F. Kovacs, C. Rădulescu, Roboţi Industriali, vol. I-II, Universitatea
Tehnică Timişoara, 1992.
11. M. Liliana, Informatică de proces - Îndrumător de laborator, Editura
Universităţii din Oradea, 1996.
12. T. Vesselényi, T. Barabás, Comanda roboţilor – Aplicaţii, Editura
Universităţii din Oradea, 2006.
13. * * * Industrial Micro-Robot System RV-M1 – Manual de operare,
Mitsubishi Electric.

92

S-ar putea să vă placă și