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: [Link]...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 [Link] = VFEATURE(10)*YScale**2*XYratio
DO [Link] = (VFEATURE(41)**2)/(4*pi*[Link])
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) -> [Link] -> image buffer region
2-Multi instructiunea [Link]
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
[Link] (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
[Link]
[Link](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.
[Link] (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)
[Link](...,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) => [Link]
Localizare gripper relativ la proiectia amplasamentului de prindere => [Link]
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)
[Link] => model de prindere (model robot-
obiect)
SET [Link] = [Link][cam]: [Link]: [Link]
[Link] = amplasament robot relativ la SR robot (X0 Y0 Z0)
[Link] = 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”)
[Link]:invata modelul de recunoastere;invata stilul de prindere
VLOCATE (cam, mode, order) $name, [Link]
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 [Link] mode=5
rz_offset
z_offset
[Link] – 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: [Link] 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: $[Link] 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
[Link] industriali – manufacturing – mediu industrial
-proces: - de asamblare/montaj
-prelucrare : vopsire finisare slefuire
[Link] ficsi – fixati in 3 moduri – pe sol, pe tavan(ABB), pe banc de lucru (top table)
[Link] rigizi – nu sunt flexibili
Exista 5 clase de roboti industriali
[Link] (4 grade e libertate, foarte precis)
[Link] (4,5,6 grade de libertate)
[Link] (polar) (4,5,6 grade de libertate)
[Link] vertical(antropomorfic) (4,5,6 grade de libertate)
[Link] orizontal(SCARA- Selective Compliant Adapted Robot Arhitecture)-4 gr de libertate, f precis
[Link].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)
[Link] articulatiilor – folosit pentru modelarea structurii care realizeaza miscarea= [Link]. 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
[Link] 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 [Link]=[Link][cam]:[Link]:[Link](EFM)
(1)[Link][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)[Link] – indica pozitia si orientarea obiectului in planul imagine
-se obtine pentru fiecare obiect ce tebuie accesat de robot
-VLOCATE
(3)[Link] - 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 [Link][cam] :[Link]: [Link] = [Link]
HERE [Link]; aduc robotul in dreptul piesei