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