Sunteți pe pagina 1din 2

ILIE GRIGORE IULIAN -10408A

POPA IONEL ADRIAN -10408A


MIULESCU ADRIAN -10408B

Tema laborator SCARA


Tema: Sa se invete un nou mod de prindere, in afara de cele deja invatate, pentru obiecte de tip
patrat si cerc.
Robotul Scara S600 (Selective Compliance Assembly Robot Arm) este un robot cu 4
articulatii. Articulatiile 1, 2 si 4 sunt articulatii de rotatie in jurul axei Zl articulatia 3 este o
articulatie de translatie in lungul axei Z.
Am realizat calibrarea camerei si calibrarea dintre camera si robot;
Apoi am implementat noul mod de prindere prin programarea in Adept.
Codul s urs a :
PROGRAM vedere()
;programul preia piesele din planul vederii si le aseaza vertical dupa modul in care a fost
instruit
;incepand cu P1 apoi cu P2 si terminand cu P3 pentru cele trei tipuri de obiecte recunoscute
;initializare variabile
;variabila index0 folosita pentru primul obiect de tip patrat
index0 = 0
;variabila index1 folosita pentru al 2-lea obiect de tip cerc
index1 = 0
;variabila index2 folosita pentru al 3-lea obiect de tip X
index2 = 0
; $ip este adresa ip a calculatorului pe care se executa AdeptSight
$ip = "172.16.131.191"
;Se seteaza valoarea de timeout pentru AdeptSight astfel incat in cazul aparitiei unor
probleme task-ul sa nu fie blocat pentru un timp nedefinit
PARAMETER VTIMEOUT = 5
;se seteaza viteza de lucru a robotului
SPEED 50 ALWAYS
;Deplasam robotul in exteriorul planului de lucru, in afara campului vederii
MOVET safe, 1
;se introduce o instructiune break pentru a ne asigura ca achizitia imaginii se va realiza dupa
ce miscarea este realizata
BREAK
; Se executa prima secventa in AdeptSight
VRUN $ip, 1
; Se citeste numarul de instante gasite de procesul "Locator"
; Parametrii sunt: sequence, tool, instance, result, index, frame
; 1310 este identificatorul de rezultat pentru numarul de instante
instance_count = VRESULT($ip, 1, 2, 1, 1310, 1, 1)
IF instance_count > 0 THEN
FOR i = 1 TO instance_count
; Se gaseste locatia instantei curente
; Parametrii sunt: sequence, tool, instance, result, index, frame
; 1311 este identificatorul de rezultat pentru locatia instantei

SET sursa = VLOCATION($ip, 1, 2, i, 1311, 1, 1)


model = VRESULT($ip, 1, 2, i, 1312, 1, 1)
;instructiunea CASE folosita pentru selectarea unei instructiuni dintr-o lista de instr. marcate
CASE model OF
;cand CASE ia valoarea 0 bratul robotului muta obiectul p1 , in pozitie verticala, intro stiva predefinita
VALUE 0:
SET destinatie = SHIFT(p1 BY 0,0,22*index0)
index0 = index0+1
;cand CASE ia valoarea 1 bratul robotului muta obiectul p2 , in pozitie verticala, intr-o
stiva predefinita
VALUE 1:
SET destinatie = SHIFT(p2 BY 0,0,23*index1)
index1 = index1+1
;cand CASE ia valoarea 2 bratul robotului muta obiectul p3 , in pozitie verticala, intr-o
stiva predefinita
VALUE 2:
SET destinatie = SHIFT(p3 BY 0,0,20*index2)
index2 = index2+1
END
CALL p_p()
END
ELSE
;in cazul in care nu s-au gasit obiecte in imagine prin TYPE afisam un mesaj specific
TYPE "Nu s-au localizat obiecte in imagine"
END
;mutam robotul in pozitia de siguranta,in exteriorul planului de lucru
MOVE safe
.END