Sunteți pe pagina 1din 11

Lucrarea 5

Programarea n virgul fix.


Aplicaie pentru obinerea preciziei maxime n
poziionarea unui robot SCARA

n lucrare studentul va realiza:


Parcurgerea noiunilor introductive.
Rularea aplicaiei demonstrative, necesar
pentru obinerea unei poziionri corecte a
braului robotului SCARA.
Rezolvarea aplicaiilor i a programelor
cerute

Exemplu de nmulirire a dou numere pe 16 bii cu semn, in format Q.15


b = nr . 16 biti

a = nr . 16 biti

*
32 biti

<< 1
>> 16

rezultat =
nr. 16 biti

Probleme specifice programrii n virgul fix i


soluii uzuale
1. Posibilitatea de depire a limitelor de reprezentare
n timpul execuiei programului
1

+
32768

32767

2. Necesitatea transpunerii numerelor din lumea real n


formatul specific (nativ) al procesorului numere ntregi
pe 8, 16 sau 32 de bii, utiliznd ct mai bine puterea de
reprezentare a formatului existent. Soluia este scalarea
mrimilor

Reprezentarea n virgul fix cu numere subunitare are avantajul

important c prin operaia de nmulire nu se depete


capacitatea de reprezentare (produsul a dou numere subunitare
este tot subunitar).
Limitele de reprezentare pentru numere pe 16 bii, cu semn
Intervalul de reprezentare la nivelul
procesorului, ca numere intregi

Intervalul de reprezentare n interpretarea


fracionar de ctre programator

[-3276832767]

[-1, 1)
0

()

(+ )

16384

16384

32768

(mai precis [-1...0.9999695])

32767

()

(+ )

0.5

0.5

1 1

Reprezentarea numerelor ntregi cu semn pe 16 bii: (a) cu numere ntregi i (b)formatul


echivalent Q.15, n interpretare fracionar

APLICAIA 1. Poziionarea braului


folosind reprezentarea n virgul fix

xi

+ arccos
1 = + = arccos

2l1ri
ri
4

1
4
2
3
144424443
l12

l 22

+ ri2

l2

l12 l22 + ri2

= arccos
2l1ri

l12 l22 1

arg1 =
2l1 r
1
424
3 i
C1

l12 + l22 ri2

2 = arccos

2l1l2

1
1
+ ri = C1 + C2ri
2l1
ri
1
2
3
C2

l12 +l22 1 2
2

arg2 =
r
C
C
r
=

3
4
i
i
2l1l2 2l1l2
1
424
3 123
C3

C4

l1

A( xi , yi )

ri

yi

xi

Procedeul de scalare pentru a trece n formatul Q15.


Pasul 1. Raportarea tuturor mrimilor de intrare. Raportarea tuturor mrimilor de intrare i
de ieire la nite valori maxime, alese astfel nct mrimile s devin subunitare. Marimile de
iesire nu s-au raportat la nimic, fiind argumente ale functiei arccos. Valorile raportate sunt:
y real
x real
yr =
xr =
DIM _ MAX
DIM _ MAX

Pasul 2. Aceste rapoarte se pun n eviden n expresia de calcul a ieirii, i se


modific coeficienii astfel nct s se pastreze echivalena expresiei (cu cea iniial).
ri

DIM _ MAX
C1

arg 1 =
+ (C 2 DIM _ MAX )
=
DIM _ MAX
ri
DIM _ MAX

1
C1

=
+ (C 2 DIM _ MAX ) rr
_
DIM
MAX

rr

Pasul 3. Noii coeficieni (pentru simplitate nu s-a schimbat notaia), obinui la pasul
anterior, se raporteaz la (cel puin) maximul lor, pentru a deveni subunitari.

C1
Expresia devine:

(C 2 DIM _ MAX )
DIM _ MAX 1
+
rr
arg 1 =
COEF
_
MAX
COEF
_
MAX
r
r

C1
COEF _ MAX = max
DIM _ MAX

COEF _ MAX

, (C 2 DIM _ MAX

Programul demonstrativ

% Scalarea coeficientilor C1, C2, C3 si C4 din exemplul SCARA, in Matlab


% Coeficientii C1...C4 apar in expresiile de calculul al argumentelor arg1 si arg2
%===============================================================
% Constantele date
%===============================================================
L1 = 12;
% [cm] Lungimea primului segment, articulat in punctul de sprijin al
bratului
L2 = 8;
% [cm] Lungimea celui de-al doilea segment
%===============================================================

% Pasul 1. Stabilirea limitelor maxime in care se pot incadra variabilele de intrare si iesire.
% In cazul de fata variabilele de intrare se folosesc in programul NXC pentru calculul
% argumentelor functiei arccos. Aceste argumente trebuie sa rezulte in intervalul [-1, 1),
% deci nu e nevoie sa le raportam la o limita maxima.

%===============================================================
% Limita maxima a zonei de acoperire a bratului robotului este un cerc cu raza data
% de cele doua brate in prelungire, deci egala cu DIM_MAX = L1+L2.
DIM_MAX = L1 + L2
% Se alege o putere a lui 2 imediat urmatoare:
% DIM_MAX = 2^(ceil(log2(DIM_MAX)))
% Coef C1 si C2 intra in calculul argumentului arg1
% Prin raportarea variabilelor de intrare x si y la valoarea DIM_MAX,
% coeficientii C1 si C2 se modifica astfel:
C1 = (L1^2 - L2^2)/(2*L1) / DIM_MAX
C2 = 1/(2*L1) * DIM_MAX
% Coef C3 si C4 intra in calculul argumentului arg2
% Coef rezultati:
C3 = (L1^2 + L2^2)/(2*L1*L2)
C4 = 1/(2 * L1 * L2) * (DIM_MAX)^2

% Pasul 2. Alegerea coeficientului maxim COEF_MAX (putere a lui 2) astfel


% incat coeficientii sa devina subunitari prin raportarea la COEF_MAX.
%=====================================================================
% pentru C1 si C2:
COEF_C1C2 = 2^(ceil(log2(max(C1,C2))));
SH_C1C2 = (ceil(log2(max(C1,C2))))
% COEF_C1C2 = ceil(max(C1,C2))
% pt varianta fara puteri ale lui 2
% pentru C3 si C4:
COEF_C3C4 = 2^(ceil(log2(max(C3,C4))));
SH_C3C4 = (ceil(log2(max(C3,C4))))
% COEF_C3C4 = ceil(max(C3,C4))
% pt varianta fara puteri ale lui 2
%=====================================================================
% Pasul 3. Calculul coeficientilor scalati
%=====================================================================
% pentru C1 si C2:
C1_sc = C1 * 32767/COEF_C1C2;
C1_sc = floor(C1_sc + 0.5)
% rotunjire
C2_sc = C2 * 32767/COEF_C1C2;
C2_sc = floor(C2_sc + 0.5)
% rotunjire
% pentru C3 si C4:
C3_sc = C3 * 32767/COEF_C3C4;
C3_sc = floor(C3_sc + 0.5)
% rotunjire
C4_sc = C4 * 32767/COEF_C3C4;
C4_sc = floor(C4_sc + 0.5)
% rotunjire
disp('---------------------------------')
%---------------------------------------------------------------------------------------------------------------------------

APLICAIA 2. Extinderea i testarea


programului
Prelund construcia realizat n lucrarea precedent pentru braul de robot i urmrind
programul demonstrativ prezentat, se vor parcurge urmtoarele etape:
Se va realiza poziionarea braului robotului n planul (XOY). Robotul se afl ntr-o poziie
de referin (cunoscut);
Se vor alege puncte de coordonate tina in zona de actiune a robotului.
Se va realiza o rutina pentru calculul unghiurilor de control ale bratului in Matlab.
Rezultatele obtinute in Matlab se vor compara cu cele obtinute la robot, prin rularea
programului demonstrativ din NXC.
Pornind de poziia iniial cunoscut, de start, a braului robotului, se aleg mai multe
puncte int de atins, consecutive
Micrile braului robotului se vor executa ntr-un singur plan, de exemplu planul
orizontal;
Se va modifica programul astfel nct s se permit poziionarea captului braului n tot
domeniul spaiului de operare posibil .
Indicaie: Se poate modifica programul astfel nct s funcioneze corect n toate
cadranele.
Programul va realiza o poziionare a braului robotului SCARA n planul de lucru ct mai
precis
Robotul se oprete n punctele (locaiile) programate pentru un timp stabilit
Dup atingerea unui punct se trece la urmtorul punct de coordonate impuse.
Testarea programului: Pentru fiecare punct de coordonate xi,yi dorit (inta de atins), se
va verifica corectitudinea datelor obinute. Se msoar coordonatele atinse i se
compar cu cele dorite.

APLICAIA 3. Realizarea unui


manipulator

Prin analogie cu o situaie real, n care o sarcin cerut unui robot SCARA este
manipularea unor obiecte, se va completa structura mecanic a braului de robot cu un
element terminal care s permit mutarea unor obiecte n spaiul de operare. Se va
ataa construciei mecanice un al treilea motor NXT care va permite deschiderea i
nchiderea efectorului
Se poate construi un element efector de tip clete;
Se aleg puncte de coordonate int din spaiul de lucru, n care se va muta piesa
Micrile braului robotului se vor executa n plan;
Se va adaug o secven de cod care va deschide i respectiv nchide cletele n
funcie de necesiti;
Paii de executat de braul robotului:
n poziia iniial braul este aliniat dup o ax, iar cletele deschis;
Se deplaseaz braul robotului ctre obiectul de mutat.
Braul s-a poziionat la o distan minim de obiect, astfel nct piesa nu
este lovit. Micarea de prindere a obiectului din spaiul de operare se va
realiza cu o vitez redus.
Cletele apuc piesa i se nchide. ATENTIE: Pentru a nu suprasolicita
motorul n poziia blocat s se opreasc rotirea acestuia n momentul n
care nu se mai citete nicio variaie a unghiului acestuia, de la encoder
(adic atunci cnd cletele este strns).
Cletele va transfera obiect n punctul de coordonate dorit
Se deschide cletele, braul se retrage cu o distan minim fa de obiect
i se nchide.

APLICAIA 4. Secvene complexe


pentru manipulator

Se va completa programul demonstrativ pentru ca braul s


execute o secven de mutri pre-programate, date printr-un
ir de coordonate. Se va muta obiectul oriunde n mediul de
operare. Robotul se oprete n punctele (locaiile) programate,
obiectul este plasat 5sec. n fiecare poziia aleas. Se
memoreaz locaiile atinse.
Se va deschide i nchide cletele utiliznd senzorul tactil,
ataat robotului. Operaii realizate de operatorul uman: senzor
apsat lung - cletele se deschide, senzor apsat scurt
cletele se nchide, senzor tactil lsat liber clete deschis.
Manipulatorul-robot a rspuns corect la comenzi? Se va
ntreprinde un schimb de experien ntre studeni, privind
codurile realizate, testele efectuate i construciile mecanice
dezvoltate.

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

  • Up Lucrarea 01
    Up Lucrarea 01
    Document11 pagini
    Up Lucrarea 01
    Alexandru Croitoru
    Încă nu există evaluări
  • Microcontrolere - Lucrarea 2
    Microcontrolere - Lucrarea 2
    Document17 pagini
    Microcontrolere - Lucrarea 2
    Sergiu Blanuta
    Încă nu există evaluări
  • Cap 5 NR
    Cap 5 NR
    Document38 pagini
    Cap 5 NR
    Crss
    Încă nu există evaluări
  • MP - Lab - Sem 3
    MP - Lab - Sem 3
    Document15 pagini
    MP - Lab - Sem 3
    Crss
    Încă nu există evaluări
  • Cap 6 NR
    Cap 6 NR
    Document53 pagini
    Cap 6 NR
    Crss
    Încă nu există evaluări
  • Tema Ascensor TE
    Tema Ascensor TE
    Document7 pagini
    Tema Ascensor TE
    Crss
    Încă nu există evaluări
  • ACSI - Structura Curs Si Laborator
    ACSI - Structura Curs Si Laborator
    Document1 pagină
    ACSI - Structura Curs Si Laborator
    Crss
    Încă nu există evaluări
  • MP - Lab - Sem 9
    MP - Lab - Sem 9
    Document13 pagini
    MP - Lab - Sem 9
    Crss
    Încă nu există evaluări
  • RI Anexa 1A
    RI Anexa 1A
    Document9 pagini
    RI Anexa 1A
    Craciun Andreea
    Încă nu există evaluări
  • Cap 6 NR
    Cap 6 NR
    Document53 pagini
    Cap 6 NR
    Crss
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document5 pagini
    Curs 3
    Crss
    Încă nu există evaluări
  • Dimensionarea Motorului de Actionare - Cor
    Dimensionarea Motorului de Actionare - Cor
    Document3 pagini
    Dimensionarea Motorului de Actionare - Cor
    Marian Richea
    Încă nu există evaluări
  • RI Lucrare9
    RI Lucrare9
    Document6 pagini
    RI Lucrare9
    Crss
    Încă nu există evaluări
  • RI Lucrare7
    RI Lucrare7
    Document5 pagini
    RI Lucrare7
    Crss
    Încă nu există evaluări
  • RI Lucrare9
    RI Lucrare9
    Document6 pagini
    RI Lucrare9
    Crss
    Încă nu există evaluări
  • RI Lucrare10
    RI Lucrare10
    Document5 pagini
    RI Lucrare10
    Crss
    Încă nu există evaluări
  • RI Anexa 03A
    RI Anexa 03A
    Document15 pagini
    RI Anexa 03A
    Crss
    Încă nu există evaluări
  • RI Lucrare8
    RI Lucrare8
    Document6 pagini
    RI Lucrare8
    Crss
    Încă nu există evaluări
  • RI Lucrare5
    RI Lucrare5
    Document11 pagini
    RI Lucrare5
    Crss
    Încă nu există evaluări
  • RI Lucrare6
    RI Lucrare6
    Document14 pagini
    RI Lucrare6
    Crss
    Încă nu există evaluări
  • RI Lucrare8
    RI Lucrare8
    Document6 pagini
    RI Lucrare8
    Crss
    Încă nu există evaluări
  • RI Lucrare2 Retel
    RI Lucrare2 Retel
    Document13 pagini
    RI Lucrare2 Retel
    Crss
    Încă nu există evaluări
  • RI Lucrare4
    RI Lucrare4
    Document7 pagini
    RI Lucrare4
    Crss
    Încă nu există evaluări
  • RI Lucrare7
    RI Lucrare7
    Document5 pagini
    RI Lucrare7
    Crss
    Încă nu există evaluări
  • RI Lucrare2 Retel
    RI Lucrare2 Retel
    Document13 pagini
    RI Lucrare2 Retel
    Crss
    Încă nu există evaluări
  • RI Lucrare4
    RI Lucrare4
    Document7 pagini
    RI Lucrare4
    Crss
    Încă nu există evaluări
  • SA2 - Comanda Ectionarilor Electrice
    SA2 - Comanda Ectionarilor Electrice
    Document8 pagini
    SA2 - Comanda Ectionarilor Electrice
    Adrian-Ionuț Dăogaru
    Încă nu există evaluări
  • Lab MAP L02
    Lab MAP L02
    Document1 pagină
    Lab MAP L02
    Cristian Razvan Gavrila
    Încă nu există evaluări