Sunteți pe pagina 1din 14

Cinematica directa:

-plecand de la fiecare articulatie + informatii segment => CD => cu geometrie pot sa determine locatie – pozitie,
orientare
n = normal pe planul celor 2 degete ale gripperului
Δ – slide = directia in care se deschide/ inchide gripperul

pozitiile celorlalte obiecte sunt calculate


(x,y,z, Δx, Δy, Δz)
Robot: lant cinematic deschis
Sisteme de coordinate ale segmentelor si parametrilor sai
-atasam fiecarui segment un sistem de coordinate si il exprimam in functie de precendentul
-scop DK: determinarea pozitiei si orientarea efectorului terminal ca o functie de variabilele articulatiilor
-pozitia si orientarea unui corp rigid relativ la sistemul de coordonate de referinta x0,y0,z0 sunt descrise ca: pozitia
vectorului de origine, vectori unitari ai cadrului atasat corpului relative la cadrul de referinta
Functia DK relative la cadrul de referinta O_0 x0,y0,z0 este exprimata prin HTM

-axa articulatiei este stabilita la conexiunea a 2 segmente. Axa articulatiei va avea 2 normale atasate, cate una pentru
fiecare segment.
 di : pozitia relativa a 2 segmente conectate ( segmentele i+1 si i), distanta dintre normalele masurate de-a lungul
axei articulatiei i
 Θi : unghiul articulatiei intre normale masurate intr-un plan normal la axa articulatiei
Θi=unghi(normalai-1, normalai)
ai, α – parametrii segmentului: sunt lungimea si unghiul de rasucire ai segmentului i (determina structura segmentului i)
Θi, di – parametrii articulatiei: sunt distant si unghiul intre segmente adiancente (determina pozitia relative a 2 segmente
consecutive)
 ai : distanta minima intre axele articulatiilor i si i+1, masurate de-a lungul normalei comune intre axele zi si zi+1
 αi = unghiul intre axele articulatiilor i si i+1, masurate intr-un plan perpendicular pe ai
α = unghi (zi, zi+1) -> unghi de rasucire
Obs:
- 2 axe de articulatie sunt stabilite la ambele capete ale unui segment
- Semnificatia cinematic a segmentelor rigide este aceea ca ele mentin o configuratie fixa intre articulatiile lor
Cinematica inversa:

-avand o locatie calculata anterior


R3x3-matrice de rotatie
P3x1-vector de pozitie (rotatie pe x, rotatie pe y, rotatie pe z)
1-factor de scalare

P’1x3 – distorsiunea de perspective


Locatie +informatii segment =>CI => q0,..n (rezulta un set de rotatii absolute)

Ca sa ajung la un q final dintr-un q initial trebuie sa calculam un set Δq


Trebuie facuta miscarea in:
-spatiul articulatiei (SA)– functie pe baza principiului axei conducatoare
-spatiul cartezian (SC)

a) SA
Avem Δq0, Δq1 ,….., Δqn -> se allege maximul dintre acestea -> se calculeaza drumul cel mai lung
Δq1 = max(Δq0,… ,Δqn)=>set de angrenaje
Angrenaje: Δq0/ Δq1,1,…, Δqn/ Δq1 =>set de valori subunitare ce sunt trecute in registrii atasati la sistemul de comanda al
controllerului de miscare.
 Catre fiecare axa se da comanda ca axa sa se deplaseze cu Δq1, scalata cu Δq0/ Δq1
O axa este urmarita de celelalte axe ( cea urmarita este cea cu valori maxime) -> principiul axei conducatoare
b) SC

- trebuie sa calculam distant intre un punct initial si altul final => se segmenteaza
-se genereaza un vector de pozitii x1,x2,….xn

sunt dati

Def1: Exista solutie la problema de CI daca x* apartine spatiului de dexteritate


Def2: Spatiu de dexteritate = locul geometric al punctelor din spatiu care pot fi atinse de robot cu oricare orientare
Recunoasterea Obiectelor:
2 moduri:
-dupa "trasaturi": initiere a unei sesiuni de invatare a trasaturii pieselor
-dupa model: invatare a modelului: VTRAIN.FINDER...mode=3
Selectia trasaturilor care identifica cel mai bine un obiect (care discrimineaza cel mai bine o clasa de obiecte de
celelalte lase
-aria = S
-perimetru = P
-nr gauri
-factorul de rotunjire = r

VPICTURE(cam,wait,bref1,bref2)mode,1
DO VLOCATE (1,2,3) "?", vis loc
DO TYPE VFEATURE(1)
DO TYPE VFEATURE(10)
DO ar.num = VFEATURE(10)*YScale**2*XYratio
DO f.round = (VFEATURE(41)**2)/(4*pi*ar.num)
VF(10) - arie - in pixeli
VF(41) - perimetru
VF(17) - numar gauri
Se retine cea mai mare valoare de la fiecare trasatura precum si minimul.
Recunoastere dupa model
Etape de parcurs:
1-Invatare model (creare/generare model) - offline
2-Planificare a modului in care se va efectua cautarea offline (identificarea)
3-Identificare propriu-zisa obiecte (Sursa) - online
1-Generare model
-Cauta in generarea unui model de recunoastere pentru fiecare clasa de obiecte
-Model din imaginea cu niveluri de gri
-Parametrii (ai modelului & de cautare)
-Se face pe un singur cadru/sample
-2 etape:
1-Detectarea contururi
2-Generare si retinere set de trasaturi (pe baza contururilor) -> Edge features
Cerinte impuse:
1-obiectul sa fie reprezentativ pt clasa din care face parte (defecte,etc) -> in zona valorilor medii
2-imaginea sa fie lipsita de zgomote (de fundal, obiecte)
3-Fond uniform
Operatii:
1-Definirea AOI (Area of Interest) -> VDEF.AOI -> image buffer region
2-Multi instructiunea VTRAIN.FINDER
se retin -> contururile inchise
->care au o lungime minima impusa
-> acele contururi care au contrast bun intre forme si background
Contururi atomice
-linii drepte
-arce de cerc
Sistemul genereaza pentru fiecare obiect o lungime ponderata
LP1 = ∑ |LC -LPI| <= Ei*LP ; LC = Lungime contur canditat E=1-p;p=verificare procentaj
Etape pt verificarea concordantei
-Outline -> retine un numar de contururi candidat
-> grosiera
-Detail -> de detalii
VTRAIN.FINDER (cam,mode,demode,arg,arg2,arg3) $ nume_model,ibr = val,val2,val3
pt recunoastere: mode=3 -> definirea parametrilor de recunoastere asociati;
arg = 3 -> defineste "verificare percentage"
arg = 10 -> defineste "recognition level"
arg,arg2,arg3 ->valori >0; definirea parametrilor search
->valori<0;definirea parametrilor de model
2.Planificare
VPLAN.FINDER(cam,mode,demode,ambiguity)$lmods[],$bmods[]
ambiguity -> distinge intre corpuri cu detalii ce pot conduce la ambiguitati
fmods -> foreground models
->tablou/liste de modele de obiecte invatate
bmods -> background models
Cand programul este rulat, orice obiect va fi comparat si match-uit cu modele specificate.
3.Recunoastere (Search) -> online
VFINDER(cam,mode,dmode,how_many)ibr
how_many -> cate obiecte sa recunoasca
-> "-1" -> oricat de multe
secventa este:
VPICTURE(cam,wait,b1,b2)mode
VFINDER(cam,mode,dmode,how_many)ibr
WAIT
pentru obiecte fara model de recunoastere sistemul le da un nume default: "?"
Parametrii pentru Search:
1. Contour detection parameters ->OUTLINE (1->10)
->DETAIL (1->10)
VTRAIN.FINDER(...,3,...,-15)=0 -> automat
2. Contrast parameters
3. Search constraints (orientare AIM)->alfamin
->alfamax
4. Reception level (1-10)
5. Conformity tolerance
6. Verify percentage
Localizarea obiectelor
Are 2 componente:
Localizare obiect in pan imagine (abstractizare) => vis.loc
Localizare gripper relativ la proiectia amplasamentului de prindere => grip.trans

Xm, Ym – sistem coord obiect


Om Xm – se aliniaza cu AIM
C=centru de greutate
AIM – axa de inertie minima
Orient=unghi(Ox vis, AIM)
grip.trans => model de prindere (model robot-
obiect)

SET part.loc = to.cam[cam]: vis.loc: grip.trans


part.loc = amplasament robot relativ la SR robot (X0 Y0 Z0)
part.vis = amplasament robot relativ la SR imagine (Xvis Yvis [Zvis])
Parametrii modelului de prindere (Robot-Obiect)
-dcg
-alpha
-Z_offset = (dist (P,G))
-rz_offset = unghi (xn, xvis)
dcg, alpha, z_offset, rz_offset = t(C,AIM,”stil prindere”)
VTRAIN.FINDER:invata modelul de recunoastere;invata stilul de prindere
VLOCATE (cam, mode, order) $name, vis.loc
Functia e doar instructiune de program ce localizeaza piesele
Realizarea cu succes a acestei instructiuni permite localizarea obiectului in planul imaginii => obtinem pozitia si
orientarea sistemului de coordonate atasat robotului pe planul imaginii conform unui stil de prindere apriori
invatat.

x_offset
y_offset VTRAIN.FINDER mode=5
rz_offset
z_offset

vis.loc – variabila de tip transf. relativa din care 3 parametrii sunt O


: X Y Z R X RY RZ
?=0 – pentru vedere pentru ca vederea nu vede in spatiu
Z – se va utiliza din pick_place
a)Cam-id-ul camera virtuala pe care noi o folosim. Pentru o camera fizica putem definiti 2 camere virtuale
b)mode = 3 biti
= B2 B1 B0
B0 (0, wait ; 1, NO_wait) -> daca se impune ca programul sa fie autorizat sa functioneaze daca s-a termiant
localizarea sau nu
B1 (0, Find any ; 1, Find particular) -> gaseste orice piesa sau unele piese particulare
Un obiect poate fi:
-necunoscut: blob, panta, regiune conexa de pixeli
-recunoscut :obiectul a fost invatat, s-a creat un model pentru o clasa de obiecte: VTRAIN.FINDER mode3 ->
invatarea offline (rezulatul invatarii se obtine cu VFINDER);
nume: sir de char „FLANSA 4”; a fost recunoscuta o instanta a obiectului (un model)
Ca alternativa la invatarea modelului este invatarea de caracterisitici ce discrimineaza intre obiecte.
Se doreste impartirea pe containere de piese de acest tip: triunghi, patrat, disc.

Find any – mod de localizarea a oricare obiect recunoscut sau reg. Necunoscute care indeplineste cond. de
moment ORDER
Find particular – se localizarea cu obiecte dintr-o clasa, respectand ordinea.
Ambele implica $nume:
any: $nume.var in care sistemul va returna o informatie despre obiectul localizat
particular: „nume”_ct ce reprezinta numele clasei.
Find any => golire scena
Spatii de lucru. Cum se realizeaza miscarea
Intre cele 2 spatii ne miscam cu ajutorul CD si CI.
Comanda msicarii:
pl. misc. – invatarea punctelor de interes;
gen. misc. – parte sfarsit;
urmarirea traiectoriei;
CD – de la articulatii la x, y, z; are o singura solutie;
CI – de la x, y, z la articulatii; are mai multe solutii;
Miscarea robotului – realizata prin segmente de miscare definite prin:
punct initial;
punct final;
- specificarea caii (drum) – geometrie – path;
I: Planificarea traiectoriei (drum, cale)

Misc. procedurala
- calcul matematic de descriere curba;
- aproximare curba matematica prin puncte support – intre 2 puncte support se face o interpolare liniara in q.
- interpolare liniara in q – cea mai putin consumatoare de effort de calcul; repetata intre puncte support (i-1)
si (i).
Algoritm JMRC – Joint Motion Rate Control – princ. “axa conducatoare” = “electronic gear”;
{ ; ; ; } ->max def. axa conducatoare – drumul cel mai lung;

Daca I este axa conducatoare: oricare ar fi [ ]


-pl. traiec. – se face prin invatarea de pct. robot: HERE nume pct.;
II: Generare traiectorie GT ->JMRC
Cinematica (Cd, Ci)

Dinamica – payload=5kg (sarcina maxima transportabila)


GT – permite sa ma mentin intr-un con de eroare pentru a ajunge la pf;
Eroare de repetabilitate: JHERE – da informatii despre unde sunt in spatial q.
III: Urmarirea traiectoriei (U.T.) - reglare comanda motoare (PID).
Robotul = Instalatie tehnica
Procesul controlat : Proces de miscare obtinut prin conjunctia mai multor miscari individuale → grad de
libertate → d.o.f
grad de libertate (g.l) obtinut ascociind un segment cu o articulatie
1.Roboti industriali – manufacturing – mediu industrial
-proces: - de asamblare/montaj
-prelucrare : vopsire finisare slefuire
2.Roboti ficsi – fixati in 3 moduri – pe sol, pe tavan(ABB), pe banc de lucru (top table)
3.Roboti rigizi – nu sunt flexibili

Exista 5 clase de roboti industriali


1.Cartezian (4 grade e libertate, foarte precis)
2.Cilindric (4,5,6 grade de libertate)
3.Sferic (polar) (4,5,6 grade de libertate)
4.Articulat vertical(antropomorfic) (4,5,6 grade de libertate)
5.Articulat orizontal(SCARA- Selective Compliant Adapted Robot Arhitecture)-4 gr de libertate, f precis
1.2.3.4.5 → manipulator
Terminologie
Sistem robot compus din manipulator (parte mecanica) (robot manipulativ) + controller (parte aut)
Controller – calculator (multiprocesor)
-terminal (IBMPC)

Terminal PC – editare pregatiri


-interfata om-masina
Nr. procesoare de ax este egal cu numarul gradelor de libertate =”n”
Prin procesoarele de ax se fac masuratori de deplasare
-modul de invatare (Teach Box, Teach Pendant, Manual Control Pendant MCP)
-producator Adept Technology
-2 tipuri de operatii sf – instructiuni de pregatire (IP) , comenzi monitor (CM)
-2 etape : -invatare (configurare) – Learning 12 ore CM, 1 minut IP
-operare in t.r
Manipulator robot = brat(3 segmente -permit realizarea a 3 grade de libertate) + efector terminal (end-effective)
Efector terminal : TMF tool mounting flounge -partea de leagtura
-gripper permite 1,2,3 grade de libertate
-tool poate sa existe sau nu

Roboti industriali cu 4-6 grade de libertate


Spatii in robotica
Spatiile exprima miscarea(avem 3 spatii)
1.Spatiul articulatiilor – folosit pentru modelarea structurii care realizeaza miscarea= sp.var. interne
-n. dimensional
-Vectorul articulatiilor:
q apartine Rn, 4≤n≤6 unde n= nr.g.l
exemplu: n=4 q=[q1 q2 q3 q4]T =[ θ1,θ2,d3 | θn]T
(joint space, joint var)
Avem: - θ1,θ2, θn –variabile de rotatie determinate de articulatiile de revolutie
- d3 - articulatie de translatie
-Gripperul poate avea un numar variabil de articulatii: - 1( r )
-2( p, r )
-3( j, p, r )
Unde r= roll;p=pitch; j=jaw
Doua modele: - model cinematic direct (DK)
-model cinematic invers (IK)
Acestea fac legatura intre spatial articulatiilor si spatial operational
2.Spatiul operational: - folosit pentru descrierea aplicatiilor (pentru caz particular reprezentat de spatial
cartezian)
- n dimensional
- vectorul pozitie si orientare care descrie miscarea x ce inglobeaza informatii despre pas( x,y,z), roll, x apartine
Rm (m este diferit de n in general)
-roll: orientarea punctului P(x4y4z4) fata de O(x0yoz0)
- i.g.l <- 1 link -1 joint
_paramentrul segm-artic. se numeste parametrul Denavit-Hartcuberg(DH-1950)
1980- Paul,Luk,Warker->Alg. ALSPA( arata cum se exprima miscarea sistemului de coordinate in functie de SC
i-1)
! x1,x2,x3 - in prelungirea bratelor robotului
! y1,y2,y3 - normale
SC1  SC0
SC2  SC1………………… SCn  SCn-1
SCn  f(SC0)
-fengs-indicatori binary ce se numesc configuratori
-L/R (left-right)
-U/D(elbow up-down)
-F/noF(flipp-no flipp)
Legatura vedere-miscare:

SET part.loc=to.cam[cam]:vis.loc:grip.trans(EFM)
(1)to.cam[cam]- transformare camera_robot
-se calculeaza o singura data, indiferent de aplicatie cu conditia ca sa nu se schimbe pozitia relativa a camerei cu
robot
-se obtine printr-o sesiune de calibrare a CV
(2)vis.loc – indica pozitia si orientarea obiectului in planul imagine
-se obtine pentru fiecare obiect ce tebuie accesat de robot
-VLOCATE
(3)grip.trans - este o transformare care arata cum trebuie sa fie pozitia robotului in raport cu obiectul
-pentru toata clasa de obiecte este acceasi
-se face intr-o sesiune de invatare
-offline
EFMV-ecuatia fundamentala a manipularii de obiecte prin vedere
SET to.cam[cam] :vis.loc: grip.trans = part.loc
HERE part.loc; aduc robotul in dreptul piesei

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