Documente Academic
Documente Profesional
Documente Cultură
-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
-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:
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
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
x_offset
y_offset VTRAIN.FINDER mode=5
rz_offset
z_offset
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;
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