Programul de studii: [626241]
UNIVERSITATEA POLITEHNICA DIN BUCURES TI
FACULTATEA DE S TIINT E APLICATE
Programul de studii:
Matematic a si Informatic a Aplicat a ^ n Inginerie
Aprobat decan,
Prof. univ. dr. Emil PETRESCU
PROIECT DE DIPLOM A
Geometrii modulare: design
si aplicat ii ^ n act ionarea inteligent a
COORDONATOR S TIINT IFIC, ABSOLVENT: [anonimizat].dr. Aurora-Mihaela MARICA Andreea-Alina PRECUP
BUCURES TI
2019
Cuprins
0.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1 Geometrii modulare 5
1.1 Zg^ arie-nori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Micro-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Aeroport modular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Pavaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4.1 Factori care in
uent eaz a designul pavelelor . . . . . . . . . . . . . . . 8
2 Pachetul Mindstorms NXT 2.0 10
2.1 Clasicarea pieselor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Electronice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.2 Grinzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.3 Conectoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.4 Rot i dint ate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.5 Elemente diverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Exprimarea dimensiunilor si a unit at ilor . . . . . . . . . . . . . . . . . . . . 24
3 Proiectarea si ansamblarea pieselor LEGO in Autodesk Inventor 26
3.1 Proiectarea pieselor electronice . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Proiectarea grinzilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Proiectarea pieselor conectoare . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.4 Proiectarea rot ilor dint ate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.5 Proiectarea elementelor diverse . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6 Ansamblarea pieselor LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4 Programarea robot ilor Mindstorms NXT 2.0 folosind NXC 36
4.1 Limbajul NXC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Programele NXC pentru componentele Mindstorms NXT . . . . . . . . . . . 36
5 Aplicat ii ale robotului Mindstorms NXT 2.0 40
5.1 Deplasarea robotului NXT de-a lungul unei c ai utiliz^ and peret i ca limite . . 40
5.1.1 Model optim pentru deplasarea robotului . . . . . . . . . . . . . . . 42
5.1.2 Redare de sunete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Principii computat ionale ale robotului NXT 2.0 48
6.1 Localizarea robotului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2 Controlul robotului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2.1 Viteza si controlul pozit iei . . . . . . . . . . . . . . . . . . . . . . . . 50
1
6.2.2 Controlul pozit iei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2.3 G asirea altei ie siri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.2.4 Aplicat ie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Index 56
Bibliograe 57
2
0.1 Introducere
O societate avansat a presupune o automatizare
exibil a si o modicare a tot ceea ce ne
^ nconfoar a pentru a simplica si adopta lucrurile la cerint ele actuale. O proport ie foarte
important a din univers este alc atuit a din module, ceea ce face ca geometria modular a s a e
prezent a ^ n orice domeniu, de la cel mai simplu obiect p^ an a la cea mai complex a structur a.
Tema de licent a pe care am ales-o este : Geometrii modulare: design si act ionare
inteligent a. Este o tem a de actualitate, deoarece omul ^ si do9ret e s a ^ si simplice viat a.
Este foarte important a, deoarece poate rezolva multe probleme din viat a de zi cu zi. De
exemplu, ^ n ora sele supraaglomerate se pot construi case modulare, care s a aib a tot ceea ce
este ^ ntr-o locuint a obi snuit a, alc atuite din module ce se pot ata sa si muta cu u surint a. Un
avantaj este dimensiunea redus a, put^ and s a e ansamblate ^ ntre blocuri sau ^ n spat ii mici.
Chiar si stupul, casa albinelor, este o construct ie modular a alc atuit a din mai multe corpuri
ce se pot ata sa ^ n funct ie de num arul de albine.
Unul dintre cele mai importante exemple de module este reprezentat de robotul Mindstorms
NXT 2.0, despre care am ales s arealizez cercetarea pentru aceast a lucrare. Acest robot este
un ansamblu de module, pe care le-am proiectat si le-am ansamblat. Robotul este unul
inteligent, de aceea l-am programat s a g aseasc a ie sirea dintr-un labirint. De asemenea, am
demonstrat c^ ateva principii de funct ionare ale robotului.
Licent a este structurat a ^ n sase capitole:
1.^In primul capitol am dat c^ ateva exemple de module din mediul ^ nconjur ator, pe care le-
am ^ ntalnit, dar poate nu stim c^ at de importante sunt: zg^ arie-nori, micro-case, aeroport
modular, pavaje.
Figura 0.1.1 : Zg^ arie-nori, micro-case, aeroport
2.^In al doilea capitol am prezentat pachetul Mindstorms NXT ce cont ine toate piesele
ce pot folosite pentru a construi un robot. Acesta se poate ansambola ^ n diferite
moduri. Exist a at^ at componente simple (grinzi, piese conectoare, rot i dint ate), c^ at
si componente complexe (c ar amida NXT, motorul NXT, senzorul de lumin a, senzorul
tactil, senzorul de sunet, senzorul ultrasonic), ce transform a ansamblul de piese inutile
^ ntr0un robot inteligent ce se poate utiliza ^ n diverse domenii.
3. Capitolul trei cuprinde proiectarea si ansamblarea pieselor LEGO, pe care am realizat-
o ^ n Atodesk Inventor, un program de proiectare asitat a de calculator. Cu ajutorul
acesteia se pot realiza proiectarea 3D, simularea, vizualizarea si documentat ia pieselor.
3
4. Capitolul patru cuprinde modul ^ n care poate programat robotul. Am utilizat
programul NXC (Not eXactly C), un limbaj de nivel ^ nalt, asem an ator cu C. Pentru
^ nceput am testat ecare component aelectronic a. Am realizat c^ ate un program pentru a
observa cum funct ioneaz a separat: motoru, senzorul de lumin a, senzorul tactil, senzorul
de sunet, senzorul ultrasonic.
5. Capitolul cinci cont ine o aplicat ie dar si o ansamblare optim a a robotului pentru acea
aplicat ie. Am programat robotul s a se deplaseze de-a lungul unei c ai utiliz^ and peret i
ca limite, adic a s a poat a parcurge de exemplu un labirint utiliz^ and senzorul ultrasonic
pentru a detecta peret ii. Pentru aceast a deplasare m-am g^ andit ce trebuie s a aib a
robotul ata sat pentru a realiza misiunea, dar s a nu aib a componente inutile care s a ^ i
consume energia sau s a e prea voluminos.
6.^In ultimul capitol am demonstrat c^ ateva principii computat ionale ale robotului,
localizarea si controlul acestuia. ^In primul caz mi-am pus problema c a exist a anumite
erori ^ n momentul deplas arii. De exemplu dac a ^ i derapeaz a rot ile din cauza suprafet ei
pe care se deplaseaz a si dac a acestea in
uent eaz a modul de deplasare al robotului.
^In cazul ^ n care ^ l programez s a ajung a la o anumit a locat ie, ^ n funct ie de condit iile
de drum, am stabiit dac a acesta ajunge ^ n acel loc. Al doilea caz este reprezentat
de controlul robotului: viteza si controlul pozit iei. Am demonstrat expresia care d a
controlul robotului si am realizat o aplicat ie prin care robotul trebuie s a urm areasc a
un vehicul care are traiectoria ^ n form a de elips a. Calculul este realizat cu ajutorul
MATLAB-ului.
4
Capitolul 1
Geometrii modulare
Multe culturi din ^ ntreaga istorie au folosit numerele si modelele ca mijloc de a descrie mediul
^ nconjur ator. Grecii antici credeau c a exist a cinci forme prototip, numite "solide platonice",
ca ^ n Figura 1.0.1, cu ajutorul c arora puteau s a descrie totul ^ n univers pentru c a erau pure
si perfecte.
Figura 1.0.1 : Solidele platonice
Aceast a concept ie platonic a a naturii a persistat p^ an a la mijlocul secolului al XIX-lea,
c^ and Charles Darwin a r asturnat acest concept, deoarece a armat c a formele pot v azute
ca ansambluri de materiale.[1]
1.1 Zg^ arie-nori
Studioul german Tammo Prinz Architects a dezvoltat un nou concept pentru un zg^ arie-nori
(Figura 1.1.2) rezident ial construit dintr-un teanc de cuburi modulare. Pentru construct ia
lui s-a folosit o combinat ie de forme tridimensionale care s a formeze un poligon. Conceptul
modular gloric a suprafet ele cu cinci laturi. Geamurile acoper a majoritatea suprafet ei, ^ n
timp ce balconul va cuprins ^ n geometrii proeminente (Figura 1.1.3). T in^ and cont de faptul
c a este alc atuit din module, conceptul ar putea dezvoltat ^ n toate cele trei dimensiuni, ^ n
funct ie de spat iul disponibil si de preferint ele clientului.
5
Figura 1.1.2 : Zg^ arie-nori construit din module
Figura 1.1.3 : Conceptul modular
1.2 Micro-case
Studioul din Hong Kong, James Law Cybertecture, a dezvoltat un prototip pentru micro-case
cu costuri mici, care se pot depozita ^ n t evi de beton, care ar putea avea loc ^ n golurile dintre
cl adirile ora sului.
Figura 1.2.4 : Conductele de beton transformate ^ n case
^In acest proiect conductele de ap a din beton de 2.5 m, sunt transformate ^ n case de 9.29
m2, av^ and u si ce se pot deschide cu ajutorul smartphone-ului. Fiecare unitate c^ ant are ste 20
6
de tone. Structurile tubulare se pot pune una peste cealalt a, astfel se pot crea blocuri. ^In
interiorul zidurilor de beton curbate, casa cont ine facilit at i pentru a tr ai, a g ati, ca ^ ntr-o
locuint a obi suit a.
^In prezent, ^ n multe ora se, exist a o criz a major a a locuint elor datorit a cre sterii populat iei, a
cererii de locuint e, a pret urilor imobilelor si a terenurilor limitate. Aceast a propunere nu este
o solut ie permanent a pentru aceast a criz a, dar design-ul s au ar putea oferi ajutor temporar
rezident ilor care caut a ceva accesibil pe termen scurt.[5]
1.3 Aeroport modular
Un alt concept modular pentru extinderi viitoare este Aeroportul Internat ional Queen Alia
din Amman, Iordania. Aeroportul este construit drept poart a principal a spre Amman,
precum si pentru continuarea terminalelor de recunoa stere ale aeroportului ca nou a tipologie
de cl adiri. Arhitectura sa vizionar a, dar celular a, sprijin a expertiza local a ^ n construct ii
si climatul Amman, integr^ and astfel strategii care ofer a cu succes un design pasiv ecient.
Conceptul modular si
exibil al terminalului permite extinderi viitoare, asigur^ and o cre stere
anual a de 6% si cre sterea capacit at ii de la 3 milioane la 12.8 milioane de pasageri pe an p^ an a
^ n 2030. [4]
Figura 1.3.5 : Aeroportul Internat ional Queen Alia
1.4 Pavaje
Pavajul este o structur a rutier a conceput a din materiale realizate ^ n form a de blocuri, ce se
a seaz a pe un strat de mortar sau nisip. Pavajul reprezint a o structur a alc atuit a din straturi
suprapuse confect ionate din materiale prelucrate, a c arui funct ie principal a este de a distribui
^ nc arc aturile vehiculelor.
7
Exist a trei tipuri de pavele:
exibile, rigide si mixte. Pavelele
exibile sunt realizate, de
obicei, din beton asfaltic si sunt plasate pe straturi de baz a granulate, sust inute de solul
compactat, denumit substrat. Pavelele rigide sunt alc atuite, de obicei, dintr-un strat de
beton portant plasat peste substrat cu sau f ar a strat de baz a intermediar. Pavelele mixte
sunt rezultatul reabilit arii pavajului, prin care betonul portant este utilizat pentru a acoperi
betonul asfaltic deteriorat sau invers.
1.4.1 Factori care in
uent eaz a designul pavelelor
Factorii ce in
uent eaz a designul pavelelor se pot clasica ^ n trei categorii: construct ia rot ii
cu ^ nc arc atur a, factorii climatici, materialul de compozit ie a pavelelor.
1. Construct ia rot ii cu ^ nc arc atur a se refer a la:
^Inc arc atura maxim a pe roat a – folosit a pentru a determina grosimea pavelelor
necesar a pentru a ne asigura c a solul subteran nu e sueaz a.
Presiunea de contact – determin a zona de contact si presiunea de contact dintre
roat a si supravat a pavelelor. Pentru simplitate, zona de contact eliptic a este
considerat a circular a.
Congurat ia osiei – congurat ia osiei este important a pentru a cunoa ste modul ^ n
care ^ nc arc atura se aplic a pe suprafat a trotuarului.
Figura 1.4.6 : Tipuri de osie
Echivalentul ^ nc arc aturii pe o singur a roat a (ESWL) este sarcina pe o singur a
roat a av^ and aceea si presiune de contact, care produce aceea si valoare a tensiunii
maxime, deform arii, solicit arii la tract iune sau presiunii de contact la ad^ ancimea
dorit a. Metoda Boyd si Foster este o metod a semi-rat ional a de identicare a
ESWL:
log10ESWL = log10P+0:301 log10z
d
2
log102s
d
2(1.1)
unde P este sarcina pe rot i, s este distant a dintre centrele celor dou a rot i, d este
distant a dintre cele dou a rot i si z este ad^ ancimea dorit a.
8
Figura 1.4.7 : Conceptul de stres- ESWL
De exemplu pentru ad^ ancimea de 40cm pentru o roat a dubl a care transport a c^ ate
2044kg pe ecare roat a. Distant a dintre centrele celor dou a rot i este de 20cm, iar
distant a dintre cele dou a rot i este 10cm.
Pentru ad^ ancimea de z=40cm, care reprezint a de dou a ori distant a dintre rot i,
P=2044kN, s=20cm, d=10cm, se aplic a formula anterioar a (1):
log10ESWL = log102044 +0:301 log1020
10
2
log10220
10
2= log102044 +0:301 log104
log108= 3:511
ESWL = 103:511= 3243:4kN
2. Factorii climatici:
Temperatura. Variat iile mari de temperatur a pot produce efecte d aun atoare.
Pavelele devin moi atunci c^ and temperaturile sunt ridicate, iar atunci c^ and vremea
este rece devin fragile.
Variat ia condit iilor de umiditate. Acesta depinde de tipul de pavaj, de tipul de
sol, de apa subteran a, ce pot controlate prin asigurarea unui drenaj adecvat
pentru suprafat a si subteran.
3. Materialul de compozit ie al pavelelor. Materialele din care sunt confect ionate pavelele
nu sunt perfect elastice, dar au o anumit a deformare permanent a. Cu toate acestea,
dac a ^ n comparat ie cu rezistent a materialului ^ nc arc atura este mic a, iar deformarea este
aproape complet recuperabil a, atunci materialul poate considerat elastic.
9
Capitolul 2
Pachetul Mindstorms NXT 2.0
2.1 Clasicarea pieselor
Pentru o bun a organizare si ^ nt elegere a pieselor este necesar a o clasicare a acestora.
Toate piesele se ^ ncadreaz a ^ n cinci categorii.[8] Aceste categorii sunt:
Electronice
Grinzi
Conectoare
Rot i dint ate
Elemente diverse
2.1.1 Electronice
Prima categorie include piesele electronice:
C ar amida NXT
Motorul NXT
Senzori
Senzor de lumin a
Senzor tactil
Senzor de sunet
Senzor cu ultrasunete
1. C ar amida NXT/ Centrul de comand a
C ar amida NXT, din Figura 2.1.1, reprezint a creierul robotului Mindstorms NXT 2.0,
este centrul de comand a, dar si sursa de energie a robotului. ^In interiorul C ar amizii
NXT este un microcomputer. Aceasta este o c ar amid a inteligent a, controlat a de un
calculator, care d a viat a robotului. C ar amida execut a programele realizate de utilizator
si trimite informat iile programate c atre motoare. De asemenea, C ar amida, prime ste
informat ii de la senzori, pe care le folose ste pentru a init ia parametrii programat i.
Pentru a funct iona trebuie conectat a prin cabluri la motoare si senzori. Sunetele si
a sajele sunt redate de aceast a component a esent ial a pentru funct ionarea robotului.
Conectarea C ar amizii la calculator se realizeaz a prin Portul USB care este situat l^ ang a
Porturile Alpha.
10
Figura 2.1.1 : C ar amida NXT
De si c ar amida NXT este o juc arie obi snuit a, puterea de procesare a acestui calculator
este mult mai puternic a dec^ at calculatoarele folosite pentru misiunea pe Lun a, Apollo
11 (prima misiune ^ n care omul a p a sit pe Lun a).[10]
La exterior C aramida NXT are un A saj (display), patru Butoane, trei Porturi
alfanumerice (de ie sire)( A, B si C), patru Porturi Numerice (de intrare), o lumin a
de situat ie, un Difuzor, un Port USB Gazd a si Portul Cartelei SD.
A sajul arat a ceea ce se ^ nt^ ampl a ^ n interiorul C ar amizii NXT si permite folosirea
interfet ei. Permite ad augarea de text, react ii grace sau numerice. L^ ang a a saj,
c ar amida NXT are trei butoane colorate, ^ n funct ie de caracteristicile ec aruia:
Butonul portocaliu: folosit pentru comenzile On, Enter si Run.
Butoanele gri: folosite pentru pacurgerea opt iunilor pe a sajul LCD.
Butonul gri ^ nchis: folosit pentru comenzile Stop, Clear and Back.
Prin Portul USB se conecteaz a robotul NXT la calculatorul personal, pentru a putea
desc arca programele.
2. Motorul NXT
Motorul, din Figura 2.1.2, prime ste instruct iunile programate de la C ar amid a. Acesta
este un motor inteligent si puternic. Are o sarcin a grea, deoarece are o transmisie
inferioar a pentru cerint e de mobilitate. Servomotorul este un motor de curent continuu
de 3 W, alc atuit din: corpul motorului, un senzor de rotat ie, angrenaj cu rot i dint ate,
corp de prindere ale altor piese.
Una dintre cele mai importante componente, motorul, se conecteaz a ^ n portul B, ^ n
partea de sus a c ar amizii NXT.
11
Figura 2.1.2 : Motorul NXT
3. Senzori
(a) Senzor de lumin a
Senzorul de lumin a este unul dintre cei doi senzori care ajut a robotul s a "vad a".
Acesta poate citi nivelul de lumin a ambiental a sau lumina re
ectat a de o suprafat a.
Asemenea senzorului tactil, senzorul de lumin a poate un instrument important
care ajut a robotul s a parcurg a suprafat a de joc. [10]
Figura 2.1.3 : Senzorul de lumin a
Fototranzistorul din senzorul de lumin a este mult mai sensibil la culorile
infraro su ale luminii datorit a spectrului vizibil relativ pe care noi ^ l vedem.
Senzorul vede surse de lumin a erbint i, cum ar becurile incandescente, ca ind
mult mai str alucitoare dec^ at le putem noi vedea. Figura 2.1.4 arat a modul ^ n care
r aspunsul spectral al tranzistorului se suprapune peste ochiul uman.[12]
12
Figura 2.1.4 : R aspunsul spectral al senzorului de lumin a
(b) Senzor tactil
Senzorul tactil, din Figura 2.1.5, trimite starea butonului de a ap asat, eliberat
sau de amortizare, c ar amizii pentru posibilele act iuni ^ n funct ie de parametrii
programat i. Acesta este unul dintre cei mai simpli senzori, dar si cel mai intuitiv.
Funct ioneaz a aproximativ ca un buton de comand a. Atunci c^ and este act ionat,
circuitul este ^ nchis si curentul electric trece prin el.
Comanda cea mai utilizat a a senzorului este cea de amortizare. Amortizoarele
sunt cele mai simple modalit at i de a interact iona cu mediul^ nconjur ator, ele permit
robotului s a detecteze obstacolele ^ n momentul ^ n care le ating. Amortizarea
^ nseamn a ap asarea rapid a a butonului si eliberarea acestuia ^ n mai put in de 5
secunde. [3]
De cele mai multe ori senzorul tactil este folosit pentru a stabili dac a robotul
este lovit de ceva. Acesta poate folosit pentru a programa robotul s a se comporte
ca o persoan a nev az atoare, ^ ntinde o m^ an a si react ioneaz a c^ and atinge ceva. Un
alt exemplu, ar un robot de lupt a, care atunci c^ and atinge adversarul acesta
continu a s a ^ l ^ mping a.
13
Figura 2.1.5 : Senzorul tactil
Senzorul tactil este un senzor ce returneaz a o valoare ^ ntreag a "1" dac a senzorul
este ap asat, iar dac a nu este ap asat returneaz a "0".
(c) Senzor de sunet
Senzorul de sunet, din Figura 2.1.6, m asor a zgomotul din mediul ^ nconjur ator
^ n decibeli (dB). Dup a o m asurare absolut a, decibelii m asoar a c^ at de mult nivelul
sunetului este relativ mai tare sau mai ^ ncet dec^ at alte sunete. ^In acest caz 0
dB este cel mai slab sunet pe care o persoan a obi snuit a ^ l poate auzi. Tabelul
2.1.1 listeaz a c^ ateva valori obi snuite de dB, iar Figura 2.1.7 arat a sensibilitatea
senzorului de sunet NXT. [12]
Figura 2.1.6 : Senzorul de sunet
14
Tabelul 2.1.1 : Nivelurile presiunii acustice
SPL dB Sursa
90 Zgomote puternice
80 Strig at
70 Vorbirea
60 Vorbirea la distant a
50 Lini stea din camera de zi
Figura 2.1.7 : Valoarea nivelului sonor fat a de nivelul presiunii acustice
Uit^ andu-ne ^ n Figura 2.1.4, se poate observa c a vederea uman a are sensibilitate
maxim a la lumina verde si scade la 0 spre albastru si ro su. Sensibilitatea la sunete
a omului are, de asemenea, o valoare maxim a, care este ^ n jur de 3 kHz si scade
la 0 spre 20 Hz si 20 kHz.[12]
15
(d) Senzor ultrasonic
Senzorul Ultrasonic, din Figura 2.1.8, detecteaz a distant a p^ an a la obiect si
trimite informat iile c atre C ar amida NXT pentru posibilele act iuni. El mai poate
folosit pentru a evita obstacole si s a detecteze mi scarea. Senzorul ultrasonic
m asoar a distant a in centimetrii sau inchi, ind capabil a s a m asoare distant e de la
0 la 255 cm cu o precizie de +/- 3 cm.
Principiul folosit este emiterea de ultrasunete de ^ nalt a frecvent a (peste limita
auzului uman), care rico seaz a de pe obiecte si este citit a de senzor. Principiu
folosit si de lilieci sau submarine, utilizeaz a locat ia ecoului prin emiterea unor
unde ultrasonice care se ^ ntorc la senzor dup a ce s-au lovit de obiect. Cu c^ at
intervalul de timp este mai mare cu at^ at distant a este mai mare. Timpul p^ an a la
primirea undelor determin a distant a fat a de obiectul respectiv. [3]
Senzorul ultrasonic este un senzor foarte folosit ^ n multe aplicat ii ^ n care se
dore ste m asurarea de distant e sau de detectare a obiectelor. Modulul are doi
"ochi" care reprezint a tranzmit atorul si receptorul cu ultrasunete. Senzorul func-
t ioneaz a cu formula:
distan t a=vitezatimp (2.1)
Tranzmit atorul cu ultrasunete trimite o und a ultrasonic a, aceast a und a
c al atore ste ^ n aer si atunci c^ and se love ste de un obiect se re
ect a ^ napoi spre
senzor, aceste unde re
ectate sunt captate de modul receptor al senzorului
ultrasonic. Pentru a calcula distant a folosind formula anterioar a trebuie s a
cunoa stem viteza si timpul. Deoarece folosim unde ultrasonice, cunoa stem viteza
universal a a undelor ultrasonice ^ ntr-o ^ nc apere ca ind de 330 m/s. Circuitele
^ ncorporate^ n senzor vor calcula timpul necesar ca undele ultrasonice s a se^ ntoarc a
la senzor, astfel a
am toate necunoscutele din formul a si o putem calcula. [7]
Figura 2.1.8 : Senzorul ultrasonic
Senzorul Ultrasonic funct ioneaz a ca un sonar. Acesta trimite unde ultrasonice
care se ^ ntorc la senzor, el m asur^ and timpul ^ n care undele se ^ ntorc si calculeaz a
16
distant a p^ an a la obiect ^ n funct ie de timp. Senzorul emite ultrasunete la o
frecvent a de 40000 Hz care circul a prin aer, iar dac a ^ nt^ alne ste un obstacol, acesta
se va ^ ntoarce ^ napoi spre modul, astfel, lu^ and ^ n considerare viteza sunetului se
poate calcula distant a p^ an a la obiect. [9]
2.1.2 Grinzi
A doua categorie este reprezentat a de grizi. Acestea sunt foarte importante pentru
creat iile Lego, deoarece reprezint a baza tuturor construct iior. ^In Figura 2.1.9 sunt toate
tipurile de grinzi utilizate ^ n construct ia robotului.
Figura 2.1.9 : Tipuri de grinzi
Putem distinge grinzile ^ n trei categorii:
Grinzi drepte
Grinzi cu unghi drept
Grinzi ^ nclinate
(a) Grinzi drepte
Grinda dreapt a este piesa structural a de baz a, ceea ce ^ nseamn a c a va des
folosit a ^ n cadrul acestui proiect. Are un exterior neted, capete rotunjite si un
num ar diferit de g auri numite g auri rotunde. Prin intermediul acestor g auri se
conecteaz a celelalte componente ale robotului. ^In gura anterioar a exist a opt
tipuri de grizi drepte. Lungimea grinzilor se m asoar a ^ n module, unit at i tehnice
de baz a abreviate cu M.^Intre dou a g auri rotunde exist a un prol ^ n form a de
clepsidr a. Un modul este distant a dintre mijloacele a dou a clepsidre si m asoar a
aproximativ 8 mm, a sa cum este ilustrat ^ n Figura 2.1.10.
Num arul de g auri dintr-o grind a dreapt a reprezint a dimensiunea ^ n module a
grinzii, ceea ce ^ nsemn a c a pentru a a
a lungimea unei grinzi se num ar a g aurile
rotunde. De exemplu, ^ n Figura 2.1.11 este o grind a dreapt a cu cinci g auri rotunde,
ceea ce ^ nseamn a c a are lungimea de 5 M. Grinzile drepte au dimensiuni ^ ncep^ and
cu 2Mp^ an a la 15 M.
17
Figura 2.1.10 : Un modul Mde 8 mm
Figura 2.1.11 : Grind a de lungime 5 M
(b) Grinzi ^ nclinate
Grinzile ^ nclinate sunt speciale, deoarece cont in una sau mai multe sect iuni
^ nclinate. Privind din nou Figura 2.1.9 se observ a c a exist a cinci tipuri de grinzi
din aceast a categorie, av^ and dimensiuni de la 7 Mla 11,5 M.
Majoritatea grinzilor ^ nclinate au o caracteristic a important a: gaura ^ n form a de
cruce. Acest tip de gaur a are aceea si raz a cu g aurile din grinzile drepte. M asurarea
unei grinzi ^ nclinate se face asem an ator cu m asurarea unei grinzi drepte, diferent a
ind o combinat ie at^ at a g aurilor rotunde c^ at si a g aurilor ^ n form a de cruce,
neexist^ and diferent e ^ n num ararea lor.
Figura 2.1.12 : Grind a ^ nclinat a de lungime 7 M
(c) Grinzi cu unghi drept
Grinda cu unghi drept este o grind a obi snuit a cu un unghi de 90. Acest tip
de grind a este util, deoarece ajut a la pozit ionarea corect a a pieselor de prindere.
Privind la Figura 2.1.13 se observ a c a pentru construct ia robotului sunt necesare
patru tipuri de grinzi cu unghi drept. Dimensiunea acestora variaz a de la 5 Mla
7M.
18
Figura 2.1.13 : Grind a cu unghi drept de dimensiune 7 M
2.1.3 Conectoare
Conectorul este un termen general care cuprinde o varietate de piese care asigur a
conectivitatea. ^In esent a, conectoarele sunt asem an atoare cu suruburi, cuie, capse si
alte elemente ilustrate ^ n Figura 2.1.14.
Figura 2.1.14 : Conectoare
Conectoarele se pot clasica ^ n trei categorii:
Osii
Nituri
Blocuri
(a) Osii
Osia este unul dintre cele mai importante conectoare, aceasta ind un arbore ^ n
form a de cruce Figura 2.1.15.
G aurile ^ n form a de cruce se potrivesc cu osiile. Folosirea osiilor ^ n situat iile
unor grizi cu una sau mai multe g auri ^ n form a de cruce duce la crearea unei
19
Figura 2.1.15 : Osie de dimensiune 8 M.
conexiuni foarte rigide, a sa cum este demonstrat ^ n partea st^ ang a ^ n Figura 2.1.16,
iar folosirea unor grinzi cu g auri rotunde permite s a se roteasc a liber, a sa cum se
poate observa ^ n partea dreap a a Figurii 2.1.16.
Figura 2.1.16 : Conexiuni rigide si rotat ie liber a
^In construct ia robotului se folosesc osii de dimensiuni diferite. Acestea sunt
dicil de m asurat, deoarece nu au g auri rotunde sau ^ n form a de cruce. Cu toate
acestea, osiile sunt colorate ^ n funct ie de dimensiune.
(b) Nituri
De si sunt mici, niturile, sunt componente foarte importante ^ n construct ia
robotului. Acestea sunt folosite pentru a conecta u sor dou a sau mai multe piese.
Robotul cont ine peste 200 de nituri de 11 tipuri diferite, adic a aproximativ 35%
din toate piesele. ^In funct ie de tipul de nit, se poate prinde ^ ntr-o gaur a rotund a,
^ ntr-o gaur a ^ n form a de cruce sau ambele. Nitul din Figura 2.1.17 este nitul
elementar, care atunci c^ and este ^ mpins ^ ntr-o gaur a rotund a, acesta merge p^ an a
la cap atul de oprire din mijlocul acestuia. Cu toate acestea se pot utiliza dou a
sau mai multe nituri ^ mpreun a asa cum este ilustrat ^ n Figura 2.1.18.
20
Figura 2.1.17 : Nit neted.
Figura 2.1.18 : Dou a nituri de frecare ce conecteaz a dou a grinzi 5 M.
Exist a dou a tipuri de nituri: nituri netede (Figura 2.1.17) si nituri de frecare
(Figura 2.1.18). Niturile netede se pot mi sca liber ^ n timp ce niturile de frecare
^ si p astreaz a rigid pozit ia, dar nu at^ at de rigid astfel ^ nc^ at s a e imobil a. Robotul
include cinci tipuri de nituri netede (de la 14 la 18 ^ n Figura 2.1.14) si sase tipuri
de nituri de frecare (de la 19 la 24 ^ n Figura 2.1.14).
(c) Blocuri conectoare/ Ansambluri conectoare
Blocurile conectoare sunt unice, deoarece au conectoare ^ n toate sensurile si
apart in^ n mod categoric categoriei conectoare, dar de obicei se utilizeaz a^ mpreun a
cu nituri, osii. Figura 2.1.19 prezint a ansamblul ^ n cruce, un ansamblu comun si
util, care cont ine o gaur a rotund a si o gaur a ^ n cruce.
Figura 2.1.19 : Ansamblu ^ n cruce este un exemplu de blocuri conectoare.
21
2.1.4 Rot i dint ate
Cu except ia componentelor electronice, rot ile dint ate sunt cele mai fascinante din
piesele robotului. Figura 2.1.20 cuprinde diferite rot i dint ate din robotul EV3, iar
^ n Tabelul 2.1.2 sunt c^ ateva detalii legate de ecare pies a din Figura 2.1.20. Atunci
c^ and ne g^ andim la rot i ne g^ andim la mi scare. Mi scarea se realizeaz a datorit a dint ilor.
C^ and dint ii a dou a rot i se cupleaz a, rotirea unei rot i determin a rotirea si celeilalte rot i.
Acestea sunt montate prin intermediul unor osii introduse ^ n g auri rotunde pentru a
permite rotirea lor.
Un aspect foarte important este m asurarea rot ilor care se face prin simpla num arare
a dint ilor si apoi abrevierea acestora cu t. De exemplu, o roat a cu 12 dint i va avea
m asura de 12t. ^In Figura 2.1.2 cea mai mic a roat a are 12t, iar cea mai mare are 36t.
Figura 2.1.20 : Rot ile dint ate din robotul NXT.
Tabelul 2.1.2 : Rot i dint ate
Nr. ^ n Numele piesei Culoarea piesei
Figura 2.1.20
1 Roat a dint at a conic a 12t Cafeniu
2 Roat a dint at a conic a dubla 12t Negru
3 Roat a dint at a conic a dubla 20t Negru
4 Roat a dint at a conic a dubla 36t Negru
5 Roat a m^ aner Negru
22
2.1.5 Elemente diverse
Ultima categorie de piese cont ine elementele diverse. Putem deni aceast a categorie
astfel: piese care nu se ^ ncadreaz a ^ n nici una dintre categoriile anterioare. ^In Figura
2.1.21 sunt ilustrate toate elementele diverse, iar ^ n Tabelul 2.1.3 sunt precizate detalii
despre ecare pies a. ^In aceast a categorie se ^ ncadreaz a si elementele decorative. Anve-
lopele , rot ile si benzile de rulare , de obicei, sunt folosite pentru mobilitatea vehiculelor.
De si unele dintre aceste piese nu par deosebit de utile, ele pot indispensabile ^ n unele
proiecte.
Figura 2.1.21 : Elemente diverse.
Tabelul 2.1.3 : Elemente diverse
Nr. ^ n Numele piesei Culoarea piesei
Figura 2.1.21
1 Roat a Gri
2 Anvelop a Negru
3 Band a de rulare Negru
23
2.2 Exprimarea dimensiunilor si a unit at ilor
Constructorii LEGO exprim a de obicei dimensiunile componentelor prin 3 numere,
reprezent^ and l at imea, lungimea si ^ n alt imea ^ n aceast a ordine. ^In alt imea este cea mai
simpl a proprietate de indenticat, ind distant a vertical a dintre partea superioar a si
partea inferioar a a c ar amizii de baz a. L at imea, prin convent ie, este cea mai scurt a
dintre cele dou a dimensiuni, a
at a pe planul orizontal. At^ at l at imea c^ at si lungimea
sunt exprimate ^ n stifturi, numite si unit at i LEGO. Av^ and aceste informat ii putem
descrie dimensiunile c ar amizii tradit ionale, a c arei prim a aparit ie dateaz a din 1949,
care sunt 241.
Figura 2.2.22 : C ar amida tradit ional a LEGO
Dimensiunile c ar amizilor LEGO se bazeaz a pe sistemul metric: o l at ime a stiftului
este egal a cu 8 mm si ^ n alt imea unei c ar amizi este egal a cu 9.6 mm. Un detaliu foarte
important este inegalitatea dintre aceste dimensiuni. Raportul lor este si mai important:
^ mp art ind 9.6 la 8 se obt ine 1.2 (unitatea vertical a este de 1.2 ori cea orizontal a).
^In anul 1977, LEGO a introdus o nou a linie de produse: LEGO TECHNIC. Acesta a
transformat c ar amizile 1 N ^ n ceea ce numim o grind a. Aceste g auri permit osiilor s a
treac a prin ele, si permite grinzilor s a e conectate ^ ntre ele prin intermediul niturilor.
Aceste transform ari au adus avantaje importante: reducerea costurilor prin folosirea
unei cantit at i mai mici de material, ^ mbun at at irea design-ului, greutatea mai mic a,
folosirea unui num ar mai mic de piese. De exemplu, pentru construct ia unui robot
solid avem nevoie de un sasiu solid, care cu ajutorul noilor piese LEGO va avea o
rezistent a mai mare.
Figura 2.2.23 : S asiu simplu si cu diagonal a
24
Acestui sasiu ^ i putem ata sa o grind a diagonal a prin folosirea unor nituri ^ n capetele
grizii, ca^ n Figura 2.2.23. Pentru a realiza acest lucru trebuie s a vedem grinda diagonal a
ca ind ipotenuza unui triunghi dreptunghic. Baza triunghiului are dimensiunea 8,
^ n alt imea este 6, iar ipotenuza este 10. Folosim Teorema lui Pitagora, care spune c a
suma p atratelor catetelor^ ntr-un triunghi dreptunghic este egal a cu p atratul ipotenuzei,
unde A si B sunt cele dou a catete, iar C este ipotenuza.
A2+B2=C2
A= 8;B= 6;C= 10)82+ 62= 102)100 = 100
Acesta este motivul pentru care sasiul are o rezistent a mare.
Pe parcursul timpului au ap arut noi grinzi pentru a simplica procesul de ansamblare.
Astfel au ap arut grinzi ^ ndoite sub diferite unghiuri, ca ^ n Figura 2.2.24.
Figura 2.2.24 : Modele de grinzi
25
Capitolul 3
Proiectarea si ansamblarea pieselor
LEGO in Autodesk Inventor
Autodesk Inventor este un program de proiectare asistat a de calculator pentru proiectarea
mecanic a 3D, simularea, vizualizarea si documentat ia dezvoltat a de Autodesk. Programul
include instrumente de modelare puternice, precum si capabilit at i de traducere multi-CAD
si desene industriale standard DWG.
Autodesk Inventor cuprinde toate funct ionalit at ile de baz a pentru proiectarea 3D,
productivitate si comunicare, plus capacit at i extinse pentru crearea obiectelor de plastic
manufacturabile, proiectarea sistemelor complexe si optimizarea si validarea digital a a per-
formant elor proiectelor. Aplicat ia ajut a astfel la minimizarea necesit at ii test arii proiectului
si a prototipului zic, precum si a costurilor de product ie. [6]
A sa cum este descris ^ n capitolul anterior ecare pies a are diferite caracteristici, iar ^ n
funct ie de acestea sunt proiectate in Autodesk Inventor.
3.1 Proiectarea pieselor electronice
Componentele electronice sunt cele mai importante elemente din robot, deoarece f ar a
acestea nu este un robot inteligent si nu se poate deplasa. Fiecare component a reprezint a un
ansamblu de piese ce se proiecteaz a individual si se ^ mbin a pentru a obt ine rezultatul dorit.
1. C ar amida NXT este cea mai complex a pies a din component a robotului. Proiectarea
acestei piese se poate realiza pe componente: la ^ nceput carcasa superioar a si carcasa
inferioar a, displayul , butoanele , porturile numerice si cele alfabetice , porturile USB
(Figura 3.1.1). Dup a proiectarea acestor piese se realizez a ansamblul folosind constr^ an-
geri de tipul Mate, Angle, Tangent, Insert, Symmetry.
26
Figura 3.1.1 : Desenele de execut ie ale c ar amizii
2. Motorul NXT este o component a esent ial a a robotului, deoarece ^ i asigur a mobilitatea.
Acesta cont ine un servomotor alc atuit din: angrenaj cu rot i dint ate de diferite di-
mensiuni, un senzor de rotat ie (vitezometru), corpul motrului propriu-zis si corp de
prindere ale altor piese. Proiectarea acestuia const a ^ n trei etape: realizarea carcasei,
angrenajului, senzorului si a rot ilor si ansamblarea acestora. Pentru carcas a se traseaz a
schit a din Figura 3.1.2 si se execut a pe baza acesteia Extrude si Extrude Cut pentru
realizarea g aurilor. Ansamblarea se realizeaz a folosind comanda Insert.
Figura 3.1.2 : Desenele de execut ie ale motorului
3. Senzorii au la baz a acelea si procedee de proiectare, dar si componente identice sau
asem an atoare. Senzorul de lumin a are un fototranzistor si o fereastr a mic a prin care
p atrunde lumina pentru a putea detecta intensitatea luminii. Senzorul de sunet are
un difuzor prin care face ca robotul s a "aud a". Senzorul tactil este unul dintre cei
mai simpli senzori, deoarece prezint a un buton care cont ine un amortizor . Senzorul
ultrasonic este put in diferit de ceilalt i senzori, deoarece are o form a special a dar si
componente unice. Acesta cont ine doi "ochi" care reprezint a emit atorul si receptorul .
27
Figura 3.1.3 : Desenele de execut ie ale senzorilor
3.2 Proiectarea grinzilor
Pentru proiectarea grinzilor se folosesc urm atoarele comenzi din interfat a Inventor:
Extrude si Fillet pe schit ele din Figura 3.2.5. Se realizeaz a ^ ntr-un Sketch primul desen
de execut ie din Figura 3.2.4. Pe baza acesteia se execut a: Extrude Join de 8 mm pentru
conturul de baz a al c ar amizii, Extrude Cut de 10 mm pentru a realiza g aurile de 6.4 mm,
pentru formele din capetele grizii, dar si cele dintre g auri. Pe l^ ang a Extrude se mai folose ste
Fillet de 0.1 mm pentru conturul grinzii si de 0.5 mm pentru formele dintre g auri.
Figura 3.2.4 : Desen tehnic grind a
^In pachetul Mindstorms NXT 2.0 se g asesc 14 tipuri de grinzi care se proiecteaz a ca ^ n
28
cazul grinzii anterioare, singura diferent a ind desenul de execut ie de la care se porne ste.
Figura 3.2.5 : Desenele de execut ie ale grinzilor
3.3 Proiectarea pieselor conectoare
O alt a categorie important a din pachetul Mindstorms NXT 2.0 este reprezentat a de piesele
conectoare. Prima subdiviziune din categoria conectoare este alc atuit a din osii. Pentru
ansamblarea robotului se folosesc 8 tipuri de osii simple de dimensiuni diferite (2M, 3M, 4M,
5M, 6M, 7M, 9M si 12M). Proiectarea acestora este relativ simpl a, deoarece se ^ ncepe prin
desenarea unei schit e ^ n form a de cruce dar cu capetele rotunjite, ind plasate pe un cerc de
raz a 2.4, ca ^ n Figura 3.3.6. Se execut a Extrude select^ and prolul creat anterior pe distant a
reprezentativ a pentru ecare osie (2M-16 mm, 3M-24 mm, 4M-32 mm, 5M-40 mm, 6M-48
mm, 7M-56 mm, 9M-72 mm si 12M-96 mm). De asemenea, exist a si osii mai complexe care
au c^ ate un cap at mai special, ca ^ n Figura 3.3.7. Proiectarea lor se realizeaz a ca ^ n cazul
osiilor simple. ^Intr-unul din capetele osiei de realizeaz a un Sketch nou ^ n care se proiecteaz a
detaliile specice ec arei piese, detaliate ^ n Figura 3.3.7.
29
Figura 3.3.6 : Desenele de execut ie ale unei osii simple
Figura 3.3.7 : Desenele de execut ie ale osiilor
A doua subcategorie din Elementele conectoare este reprezentat a de nituri. Aceste piese
sunt diferite, ecare av^ and detaliile sale, reprezentate ^ n Figura 3.3.8. Proiectarea niturilor
se ^ ncepe prin realizarea schit ei de execut ie principale, pe baza c areia se execut a Extrude pe
diferite dimensiuni.
30
Figura 3.3.8 : Desenele de execut ie ale niturilor
A treia subcategorie este alc atuit a din blocurile conectoare, care au la baz a acelea si
modalit at i de proiectare pe schit e diferite. Acestea cont in nituri, osii, g auri de diferite
dimensiuni.
Figura 3.3.9 : Desenele de execut ie ale blocurilor conectoare.
31
Un element important din aceast a categorie este blocul conector cu unghi drept. Proiecta-
rea se realizeaz a folosind comanda Extrude pe o distant a de 8 mm aplicat a schit ei numarul 1
din Figura 3.3.10 . Pentru realizarea g aurilor laterale se deseneaz a schit a a doua din aceea si
gur a si se execut a Extrude Cut pe o distant a de 8 mm. Select^ and partea din exterior se
creeaz a un Sketch nou ^ n care se deseneaz a a treia schit a din Figura 3.3.10 . Pentru a realiza
nitul se execut a comanda Revolution. Se procedeaz a asem an ator si pentru celelalte nituri
din blocul conector sau se poate folosi comanda Mirror pentru a oglindi nitul fat a de o ax a
stabilit a convenabil.
Figura 3.3.10 : Schit ele de execut ie ale blocului conector cu unghi drept
3.4 Proiectarea rot ilor dint ate
Unele dintre cele mai fascinante piese din robot sunt rot ile dint ate. ^In ansamblarea
robotului se folosesc patru tipuri de rot i. Acestea prezint a la suprafat a dint i, elemente foarte
importante din alc atuirea acestora, deoarece dimensiunea rot ilor este dat a de num arul de
dint i. Dint ii au acelea si dimensiuni pentru toate rot ile, cote reprezentate ^ n Figura 3.4.11.
Figura 3.4.11 : Dimensiunile unui dinte.
Rot ile din Figura 3.4.12 prezint a acelea si tipuri de dint i, dar ^ n funt ie de num arul acestora
rot ile au diametre diferite.
32
Figura 3.4.12 : Desenele de execut ie ale rot ilor dint ate.
3.5 Proiectarea elementelor diverse
Elementele diverse se proiecteaz a ^ n mod diferit. Pe baza schit elor din Figura 3.5.13 se
execut a comenzi de tipul Extrude, Extrude Cut pentru realizarea g aurilor, Revolve pentru
multiplicarea dint ilor pe anumite distant e.
Figura 3.5.13 : Desenele de execut ie ale elementelor diverse.
33
3.6 Ansamblarea pieselor LEGO
^In general piesele individuale nu sunt utilizate individual, ci integrate ^ ntr-un ansamblu.
Un ansamblu este un sier cu extensia ".iam" si este construit din componente, memorate ^ n
siere individuale. Componentele unui ansamblu pot piese individuale, preluate din siere
cu extensia ".ipt" sau subansamble, preluate din siere cu extensia "iam".
Componentele unui ansamblu trebuie s a se a
e ^ n corelat ie ^ ntre ele. Constr^ angerile se
utilizeaz a pentru a impune relat ii ^ ntre componente. Fiecare component a are ^ n spat iu
sase grade de libertate: trei translat ii si trei rotat ii. O component a c areia i s-au eliminat
toate gradele de libertate prin aplicare de constr^ angeri este o component a xat a sau total
constr^ ans a.
Prima component a plasat a ^ ntr-un ansamblu este automat xat a, dar mai pot xate si
alte componente ^ n ansamblu prin selectarea propriet at ii Grounded. Constr^ angerile se g asesc
^ n comanda Place Constraint. Fereastra Place Constraint este prezentat a ^ n Figura 3.6.14 si
cont ine trei sect iuni: Assembly, Motion si Transitional. ^Intr-un ansamblu se pot aplica:
patru tipuri de constr^ angeri xe: Mate, Angle, Tangent, Insert si Symmetry;
dou a tipuri de constr^ angeri de mi scare: Rotation si Rotation-Translation;
un tip de constr^ angere tranzit ional a Transitional.
Figura 3.6.14 : Constr^ angerile din Autodesk Inventor.
34
Sect iunea Assembly permite aplicarea contr^ angerilor xe de tip Mate, Angle, Tangent,
Insert si Symmetry. O constr^ angere de tip Mate pozit ioneaz a componentele selectate fat a
^ n fat a sau fat a l^ ang a fat a. Exist a mai multe tipuri de Mate: Mate Plane (normalele
suprafet elor se vor opune reciproc), Mate Line (suprapunerea a dou a muchii sau axa unui
cilindru cu a unei g auri), Mate Point (suprapunerea a dou a puncte), Mate Flush (normalele
suprafet elor se aliniaz a pe aceea si direct ie). Forma geometric a selectat a de obicei o fat a
component a, dar se pot selecta si curbe, planuri, muchii sau puncte. Constr^ angerea de tip
Angle pozit ioneaz a dou a piese astfel ^ nc^ at ^ ntre fet ele sau muchiile selectate s a se formeze
unghiul dorit. Comanda Tangent impune tangent a dintre dou a plane, cilindrii, sfere, conuri,
cel put in una din fet ele selectate trebuie s a e curb a. Insert, la sect ia muchiilor circulare a
dou a componente impune alinierea axelor^ n paralel cu o constr^ angere mate aplicat a planurilor
muchiilor. Constr^ angerea elimin a cinci grade de libertate, dar se aplic a numai componentelor
care au muchiile circulare. [11]
35
Capitolul 4
Programarea robot ilor Mindstorms
NXT 2.0 folosind NXC
NXC, prescurtarea de la Not eXactly C, este un limbaj de nivel ^ nalt, similar cu C. Acesta
poate utilizat pentru programarea c ar amizii NXT. NXT are un traduc ator de bytecode
(cod de octet i) (furnizat de LEGO), care poate utilizat pentru executarea programelor.
^In mod logic, NXC este denit ca dou a piese separate: limbajul NXC si API. Limbajul
NXC descrie sintaxa care trebuie utilizat a ^ n scrierea programelor. Interfat a de programare
a aplicat iilor NXC (API) descrie funt iile sistemului, constantele si macro-urile care pot
utilizate de programe. Acest API este denit intr-un sier special cunoscut sub numele de
"sier antet", care este, ^ n mod implicit, inclus automat la compilarea unui program.[14]
4.1 Limbajul NXC
Limbajul NXC include regulile lexicale utilizate de compilator, structura programelor,
instruct iuni si expresii, si funct ionarea preprocesorului. NXC este un limbaj sensibil la
scrierea caracterelor, la fel ca si C si C++, ceea ce ^ nseamn a c a identicatorul "aBc" nu
este acela si cu identicatorul "abc".[14]
4.2 Programele NXC pentru componentele
Mindstorms NXT
1. Motorul NXT
Una dintre cele mai importante componente, motorul, se conecteaz a ^ n portul B, ^ n
partea de sus a c ar amizii NXT.
36
Figura 4.2.1 : Programul de funct ionare al motorului NXT
Programul din Figura 4.2.1, face ca motorul conectat ^ n portul B s a mearg a ^ nainte
pentru 5 secunde la 100% din putere, dup a ^ n sens invers la 50% din putere pentru 5
secunde. Funct iile care controleaz a motorul sunt OnFwd si OnRev. Primul argument
al acestor funct ii este reprezentat de portul ^ n care motorul este conectat, iar al doilea
argument este procentul din puterea cu care motorul se deplaseaz a, cu valori cuprinse
^ ntre 0 si 100. [9]
2. Senzorul de lumin a
Senzorul de lumin a poate declan sat s a emit a lumin a sau nu, deci se poate m asura
cantitatea de lumin a re
ectat a sau lumina ambiental a dintr-o direct ie particular a.
M asurarea luminii re
ectat a este folositoare ^ n cazul ^ n care se vrea urm arirea unei
linii pe podea. Programul din Figura 4.2.2 congureaz a la portul 3 senzorul de lumin a.
^In continuare seteaz a robotul s a mearg a ^ nainte ^ ntr-o bucl a innit a. Atunci c^ and
valoarea luminii este mai mare dec^ at 40 se inverseaz a un motor si a steap a p^ an a se
pozit ioneaz a din nou pe pist a.
Figura 4.2.2 : Programul NXC folosind Senzorul de Lumin a
3. Senzorul tactil
Senzorul tactil este un senzor ce returneaz a o valoare ^ ntreag a "1" dac a senzorul este
ap asat, iar dac a nu este ap asat returneaz a "0".
Programul din Figura 4.2.3 face ca motoarele B si C s a funct ioneze at^ ata timp c^ at
butonul senzorului este ap asat. Comanda "SetSensor(IN 1, SENSOR TOUCH);" spune
37
Figura 4.2.3 : Programul NXC pentru Senzorul tactil
programului c a ^ n portul 1 este conectat senzorul tactil. Primul argument al comenzii
SetSensor() este portul^ n care senzorul este conectat la c ar amid a, iar al doilea argument
este tipul de senzor. Motoarele B si C sunt pornite prin "OnFwd(OUT BC, 50)".
Linia "until (SENSOR 1 == 1);" va face ca programul s a a stepte p^ an a c^ and valoarea
returnat a de senzorul tactil este "1". Senzorul returneaz a valoarea "1" c^ and este ap asat
si "0" atunci c^ and nu este. Motoarele vor funct iona at^ ata timp c^ at senzorul este ap asat.
Linia "O(OUT BC);" face ca motoarele s a se opreasc a.[9]
4. Senzorul de sunet
Programul din Figura 4.2.4 a seaz a "Este prea tare!" atunci c^ and nivelul de decibeli
al sunetului din camer a este mai mare de 50 dB si "Este prea ^ ncet!" atunci c^ and nu
este. "SetSensorSound()" este folosit pentru a congura senzorul de sunet. Singurul
parametru este folosit pentru a indica num arul portului, ^ n acest caz este "IN 3".
"SENSOR 3" returneaz a nivelul de decibeli pe care senzorul ^ l detecteaz a. Dac a
valoarea lui este mai mare de 50, bucla "while" va introdus a si va a sat "Este prea
tare!". A fost ales 50 dB, deoarece volumul unei conversat ii normale are ^ n jur de 60
dB.[9]
Figura 4.2.4 : Programul NXC folosind Senzorul de Sunet
5. Senzorul ultrasonic
Programul face ca NXT s a mearg a ^ nainte p^ an a c^ and detecteaz a un obiect la mai
putin de 20 cm ^ n fat a acestuia. La g asirea obstacolului programul opre ste motorul B
si pune motorul C ^ n sens invers pentru a roti robotul spre dreapta (presupunem c a
38
Figura 4.2.5 : Programul NXC folosind Senzorul Ultrasonic
motorul B este ^ n partea st^ ang a, iar motorul C este ^ n partea dreapt a ). Robotul va
continua s a se roteasc a p^ an a c^ and obiectul nu mai este ^ n fat a acestuia. Dup a evitarea
obstacolului robotul va continua s a se deplaseze p^ an a va^ nt^ alni un alt obstacol, moment
^ n care va repeta procesul de ocolire al obstacolului. Deoarece programul folose ste o
bucl a de programare, robotul continu a s a se deplaseze.
Declarat ia '"while" este utilizat a pentru a crea bucle in NXC, iar aceasta arat a astfel:
while (condit ie)
f
declarat ii;
g
Bucla "while" porne ste atunci cand este ^ ndeplinit a condit ia: dac a este adev arat sau
fals. Dac a este adevarat declarat iile din bucl a sunt executate, iar dac a este fals bucla
este ^ ntrerupt a si programul continu a dup a ^ nchiderea parantezelor. Dup a executarea
declarat iilor, programul veric a din nou condit ia pentru a vedea dac a este adev arat sau
fals, dac a este adevarat declarat iile sunt executate din nou, iar dac a este fals bucla este
^ ntrerupt a.
^In programul din Figura 4.2.5, condit ia pentru care bucla se execut a este dac a
valoarea returnat a de senzor este mai mica dec^ at 20.
"SensorUS(IN 4)" returneaz a valoarea calculat a de Senzorul Ultrasonic, dat a de
portul ^ n care senzorul este conectat. Valoarea reprezint a distant a p^ an a la obiect in
centimetrii. Deci "while(SensorUS(IN 4)<20)" va face ca informat iile din bucl a s a se
repete p^ an a c^ and distant a p^ an a la obiect este 20 cm sau mai mult.
^Intregul program este ^ ntr-o bucl a "while(true)", care este o bucl a ce se va roti pe
termen nelimitat. Deci atunci c^ and bucla care face ca robotul s a se ^ ntoarc a este
^ ntrerupt a, programul va reveni la ^ nceput.[9]
39
Capitolul 5
Aplicat ii ale robotului Mindstorms
NXT 2.0
5.1 Deplasarea robotului NXT de-a lungul unei c ai
utiliz^ and peret i ca limite
40
Figura 5.1.1 : Program
Programul este o cale de funct ionare ^ n care NXT se va mi sca c al atorind de-a lungul unei
c ai care folose ste peret i ca limite. Folose ste mai ales senzorul ultrasonic pentru a detecta
obiectele din fat a lui, dar, de asemenea, are si un senzor tactil de rezerv a. Acesta se opre ste
c^ and va sesiza un zgomot puternic (mai mult de 95 dB), care va detectat utiliz^ and senzorul
de sunet.
^Intoarcerile din program trebuie s a e ^ ntoarceri de 90, deoarece robotul se ^ ntoarce prin
inversarea unui motor pentru o anumit aperioad a de timp, acest timp ind sucient pentru
a se ^ ntoarce la 90. Intervalul de timp poate varia ^ n funt ie de suprafat a pe care robotul
se deplaseaz a, dar si de viteza cu care merge. Robotul are un singur senzor ultrasonic, deci
dac a i se deschide o cale la dreapta sau st^ anga, av^ and un perete ^ n fat a, acesta stie s a se
41
^ ntoarc a.
Senzorul tactil este utilizat ca rezerv a, deoarece, ^ n urma testelor, senzorul ultrasonic a
ar atat c a nu este 100% abil. C^ and sennzorul tactil este ap asat, programul face acela si lucru
pe care ^ l face dac a senzorul ultrasonic detecteaz a ceva.
Funct ionarea programului. Mai ^ ntai, programul urm are ste direct ia pe care robotul se
deplaseaz a prin variabila "direction". Variabilele pot numere ^ ntre 0 si 3. 0 ^ nseamn a nord,
1 ^ nseamn a est, 2 ^ nseamn a sud, si 3 ^ nseamn a vest.
Programul^ ncepe prin executarea funct iei "runPath()". Acest a funct ie porne ste de la bucl a
innit a care stabile ste la ^ nceput vitezele motoarelor la valorile stabilite de variabila "speed".
Buclele veric a valorile senzorilor una c^ ate una folosind instruct iunile "if" si "while". Dac a
un obiect este detectat de senzorul ultrasonic ( la mai put in de 20 cm ^ n fat a robotului),
atunci robotul se ^ ntoarce spre dreapta, dup a aceea veric a dac a diret ia ("direction") este
egala cu "lastDirection". "lastDirection" este o variabil a folosit a pentru a urm ari direct ia
din care venea robotul. Dac a robotul termin a fa ac^ and o rotat ie la 180(^ n cazul ^ n care face
o ^ ntoarcere la st^ anga), atunci robotul nu ar trebui s a mearg a ^ napoi a sa cum a venit, dar ar
trebui a fac a un nou viraj la dreapta pentru a naliza "left turn"(trei ^ ntoarceri la dreapta).
Prin urmare, daca "direction" este egal a cu opusul "lastDirection", atunci programul face ca
robotul sa fac a din nou dreapta.
Dup a ce programul este vericat dac a trebuie s a se ^ ntoarc a, "lastDirection" va setat egal
cu "direction" dac a a trecut o secund a de c^ and robotul s-a ^ ntors. Acest lucru este vericat
prin sc aderea timpului de funct ionare curent al programului din momentul ultimului viraj,
care este stocat ^ n variabila "timeOfLastTime" si este resetat dup a ecare viraj. Motivul
pentru care se a steap a o secund a pentru a trece este deoarece dup a ce robotul se ^ ntoarce la
dreapta, ar putea necesar s a se deplaseze ^ nainte, ^ nainte de a detecta peretele care se a
a
^ n dreapta lui (acest lucru se va ^ nt^ ampla ^ n majoritatea cazurilor unde un viraj la st^ anga
este necesar). ^In acest caz, variabila "lastDirection" va p astra valoarea corect a.
Dac a sezorul ultrasonic si senzorul tactil e sueaz a robotul trebuie oprit, programul veric a
senzorul de sunet pentru a vedea dac a acesta cite ste o valoare mai mare de 95 dB. Daca se
produce un sunet mai mic de 95 dB, robotul a seaz un mesaj prin care ^ i spune utilizatorului
c a ce a determinat robotul s a se opresc a pentru 5 secunde, iar dup a ceea programul va
^ ntrerupe bucla, ceea ce va opri programul. Motivul pentru care nivelul de dB a fost ales mai
mare de 95 dB, deoarece uneori nivelul de dB al motoarelor NXT dep a se ste 90 dB.
Exist a, de asemenea, o condit ie ^ n instructiunea "if" pentru senzorul de sunet care necesit a
timpul de funct ionare al programului s a e mai mare de o secund a. Acest lucru se datoreaz a
faptului c a, din motive necunoscute, senzorul de sunet va reveni la valori neobi nuit de mari
imediat dup a pornirea programului. C^ and se ^ ntampl a acest lucru, programul se termina ^ n
momentul ^ n care ^ ncepe. Acest a solut ie a fost ad augat a pentru a rezolva aceast a problem a.
5.1.1 Model optim pentru deplasarea robotului
Robotul Mindstorms NXT 2.0 se poate construi ^ n diferite moduri, dar pentru deplasarea
lui de-a lungul unei c ai utiliz^ and peret i ca limite nu sunt necesare toate componentele din
pachet. Am ansamblat un model optim pentru aceast a aplicat ie pentru a evita consumul
suplimentar de energie, dar si de piese. ^In programul din Figura ??pentru a parcurge
drumul robotul are nevoie de:
1. C ar amida NXT, f ar a de care robotul nu ar putea s a funct ioneze;
42
2. Dou a motoare conectate la porturile de ie sire B si C ale c ar amizii NXT, care asigur a
deplasarea robotului;
3. Un senzor ultrasonic conectat la portul de intrare 1 al c ar amizii NXT. Acesta stabile ste
distant a p^ an a la obiectele din fat a robotului, iar c^ and aceasta este mai mic a de 20 cm
robotul ^ si schimb a direct ia;
4. Un senzor tactil conectat la portul de intrare 2 al c ar amizii NXT. Acest senzor este
folosit tot pentru distant a fat a de obiecte, dar ^ n acest caz este o variant a de rezerv a
^ n cazul ^ n care senzorul ultrasonic nu funct ioneaz a. Robotul se deplaseaz a p^ an a c^ and
butonul senzorului este ap asat, iar ^ n acel moment robotul se rotet e la dreapta pentru
a evita obstacolul;
5. Un senzor de sunet care va opri motoarele^ n cazul^ n care va ap area un zgomot puternic,
mai mare de 95 dB.
Figura 5.1.2 : Robotul Mindstorms NXT 2.0
Pentru a ansambla robotul se creeaz a un Assembly ^ n care se plaseaz a piesele necesare,
^ n cazul acesta c ar amida NXT, dou a motoare, un senzor ultrasonic, un senzor tactil si un
senzor de sunet. Pe l^ ang a componentele electronice robotul mai are nevoie:
Grinzi: o grind a de dimensiune 13M, patru grinzi cu unghi drept de dimensiune 7M,
zece grinzi drepte de dimensiune 2M, dou a grinzi cu unghi drept de dimensiune 5M;
Piese conectoare: dou azeci de nituri, cinci osii, patru blocuri conectoare;
Elemente diverse: trei rot i, trei anvelope.
Ansamblarea a constat ^ n xarea ec arei componente la locul potrivit folosind constr^ angeri
de tip Insert, Mate, Angle,
43
Figura 5.1.3 : Robotul Mindstorms NXT 2.0
5.1.2 Redare de sunete
C ar amida NXT are un difuzor ^ ncorporat, care poate reda tonuri si chiar siere audio.
Acest lucru este extrem de util atunci c^ and dorim ca robotul s a ne spun a c^ and ceva se
^ nt^ ampl a. Dar, de asemenea poate si amuzant ca robotul s a redea muzic a sau s a vobeasc a
atunci c^ and ruleaz a programele.
Redarea sierelor audio
Programul Bricx Command Center are capacitatea de a transforma sierele .wav ^ n siere
.rso acces^ and ^ n meniul principal Tools !Sound conversion. Dup a aceea se pot stoca sierele
.rso ^ n browser-ul de memorie NXT (Tools !NXT explorer) si se porne ste folosind comanda
PlayFileEx(nume sier, volum, bucl a). Argumentele comenzii sunt numele sierului, volumul
( un num ar de la 0 la 4) si bucla: ultimul argument este setat la 1 (ADEV ARAT) dac a se
vrea ca sierul s a funct ioneze ^ n bucl a si 0 (FALS) dac a se vrea s a se redea o singur a dat a.
44
Figura 5.1.4 : Program redare muzic a
Programul din Figura ??red a mai ^ nt^ ai tonul de ^ nceput. Dup a acesta foloset e un alt
sunet standard pentru click-uri.
Redare muzic a
Pentru a reda un ton, se poate folosi comanda PlayToneEx (frecvent a, durat a,
volum, bucl a). Aceast a comand a are patru argumente. Primul este reprezentat de
frecvent a m asurat a in Hertz, al doilea este durata (in 1/1000 a unei secunde, ca ^ n
comanda de a steptare), iar ultimele sunt volumul si bucla. Poate folosit a si comanda
PlayTone(frecvent a, durata), ^ n acest caz volumul este setat din meniul NXT, iar bucla este
dezactivat a. Tabelul 5.1.1 cont ine frecvent ele utilizate.
45
Tabelul 5.1.1 : Tabel de frecvent e
Sunet 3 4 5 6 7 8 9
B 247 494 988 1976 3951 7902
A# 233 466 932 1865 3729 7458
A 220 440 880 1760 3520 7040 14080
G# 415 831 1661 3322 6644 13288
G 392 784 1568 3136 6272 12544
F# 370 740 1480 2960 5920 11840
F 349 698 1397 2794 5588 11176
E 330 659 1319 2637 5274 10548
D# 311 622 1245 2489 4978 9956
D 294 587 1175 2349 4699 9398
C# 277 554 1109 2217 4435 8870
C 262 523 1047 2093 4186 8372
Dac a se folosesc mai multe sunete pe un r^ and este bine ca ^ ntre ele s a se adauge comenzi
de a steptare, ca ^ n Figura ??.
Figura 5.1.5 : Program redare muzic a
46
Pentru ca NXT s a redea muzic a ^ n timp ce execut a comenzile date de utilizator trebuie
creat a o sarcin a separat a. Un exemplu de program ^ n care NXT conduce ^ nainte si ^ napoi ^ n
timp ce produce muzic a, este ^ n Figura ??.
Figura 5.1.6 : Program deplasare si redare muzic a
47
Capitolul 6
Principii computat ionale ale robotului
NXT 2.0
6.1 Localizarea robotului
^In momentul deplas arii robotul se mi sc a din punctul de coordonate (x,y) ^ n punctul de
coordonate ( x+ x;y+ y). La prima privire se presupune c a el se deplaseaz a fara vreo
problem a. Dac a se stie unde este robotul ^ n momentul pornirii si dac a ^ i spunem s a se mi ste
cu precizie, se presupune c a stim tot timpul unde este. Din p acate, ^ n lumea real a nu este
at^ at de simplu. Presupunem c a robotul folose ste rot i pentru deplasare. Rot ile vor aluneca
de ecare dat a c^ and accelereaz a sau decelereaz a vehiculul, iar ^ n timp aceste mici erori se
acumuleaz a si poate duce la inexactitatea pozit iei robotului.
Pentru a observa acest detaliu, presupunem c a la momentul i ^ i spunem robotului s a se
mute cu ( xi;yi), dar t in^ and cont de erori robotul se mut a cu ( xi+"x
i;yi+"y
i), unde
"x
i si"y
isunt erorile aleatorii asociate cu mi scarea. Presupunem c a erorile satisfac condit iile:
8i:E["x
i] =E["y
i] = 0
8i:E[("x
i E["x
i])("x
i E["x
i])] =2
8i:E[("y
i E["y
i])("y
i E["y
i])] =2
8i6=j:E[("x
i E["x
i])("y
i E["y
i])] = 0
Dup a N mi sc ari din pozit ia init ial a ( x0;y0) robotul ajunge ^ n pozit ia
(xn;yn) = (x0;y0) + (xi;yi).
Locat ia a steptat a de robot dup a executarea acestori mi sc ari este dat a de E[(xN;yN)]:
E[(xN;yN)] =E[(x0;y0) + (xi+"x
i;yi+"y
i)]
=E[(x0;y0)] +E[(xi+"x
i;yi+"y
i)]
= (x0;y0) + (E[(xi+"x
i)];E[(yi+"y
i)])
= (x0;y0) + ((xi+E["x
i]);(yi+E["y
i]))
= (x0;y0) + (xi;yi)
Starea a steptat a a robotului este locat ia comandat a. Dar c^ at de siguri putem de aceast a
estimare?
Consider am distribut ia a steptat a ^ n jurul acestei medii, reprezentat a de matricea de
48
covariant a:
=xxxy
yxyy
Calcul amxx;xy;yx;yyundex=x0+ (xi+"x
i) siy=y0+ (yi+"y
i):
xx=E[x E[x]]
=E[(x0+ (xi+"x
i) E[x0+ (xi+"x
i)])2]
=E[(x0+ xi+ "x
i E[x0] E[xi] E["x
i])2]
=E[("x
i E["x
i])2]
= E[("x
i E["x
i])2]
= E[("x
i E["x
i])2] + 2i<jE[("x
i E["x
i])("x
j E["x
j])]
Deoarece"x
i si"x
jsunt independente, al doilea termen este 0, iar xxeste egal cu N2. O
expresie similar a se g ase ste si pentru yy.
xy=yx
xy=E[(x E[x])(y E[y])]
=E[(x0+ (xi+"x
i) E[x0+ (xi+"x
i)])(y0+ (yi+"y
i) E[y0+ (yi+"y
i)])]
=E[(x0+ xi+ "x
i E[x0] E[xi] E["x
i])(y0+ yi+ "y
i E[y0] E[yi] E["y
i])]
=E[("x
i E["x
i])("y
i E["y
i])]
= 0
Rezultatul matricei de covariant a:
=xxxy
yxyy
=N20
0N2
=N20
02
Acest rezultat re
ect a independent a erorii ^ n direct iile x si y si cre ste f ar a s a e legat de
num arul de cre steri N.
49
6.2 Controlul robotului
6.2.1 Viteza si controlul pozit iei
Consider am un robot, reprezentat ^ n Figura , cu ecuat ia evolut iei sale dat a de:
0
BBBB@_x
_y
_
_v
_1
CCCCA=0
BBBB@vcoscos
vcossin
vsin
u1
u21
CCCCAunde ~ y =x
y
(6.1)
Presupunem c a distant a dintre centrul punt ii din spate si axa rot ii din fat a este egal a cu
1 m. Alegem ca ie sire vectorul y= (v;). Derivatele pentru y1 siy2sunt:
_y1= _v=u1;
_y2=_=vsin
Deoarece derivata _ y2a luiy2nu cont ine intr ari, o putem deriva ^ nc a o dat a:
y2= _vsin+_cos=u1sin+vu2cos
Expresiile pentru _ y1 si y2pot rescrise ^ n form a matriceal a astfel:
_y1
y2
=1 0
sin vcos
|{z}
A(x)u1
u2
u=A 1(x)v (6.2)
unde v este noua valoare init ial a, iar sistemul se rescrie astfel:
_y1
y2
=v1
v2
si prin urmare devine liniar.
w= (w1;w2) reprezint a punctul de referint a pentru y, care depinde de timp (w=w(t))
yn=u
u=a0(w y) +a1( _w _y) ++an 1(wn 1 yn 1) +wn
e=w yreprezint a eroarea
yn=u
yn=u=a0(w y)|{z}
e+a1( _w _y)|{z}
_e++an 1(wn 1 yn 1)|{z}
en 1+wn|{z}
en(6.3)
en+an 1en 1++a1_e+a0e= 0
50
Se scrie polinomul caracteristic asociat ecuat iei anterioare:
P(s) =sn+an 1sn 1++a1s+a0
De exemplu pentru n=1 scriem polinomul caracteristic P(s) si ^ i asociem un polinom de
grad 1 pentru a a
a coecientul a0:
P(s) =s+a0s0=s+ 1
unde
a0= 1
Operatorul obt inut este dat de:
w= (w y) + _w
Pentru n=2 scriem polinomul caracteristic P(s) si ^ i asociem un polinom de grad 2 pentru
a a
a coecient ii a0,a1:
P(s) =s2+a1s1+a0s0= (s+ 1)2=s2+ 2s+ 1 (6.4)
unde
a1= 2;a0= 1
Operatorul obt inut este dat de:
w= (w y) + 2( _w _y) + w
Pentru n=3 scriem polinomul caracteristic P(s) si ^ i asociem un polinom de grad 3 pentru
a a
a coecient ii a0,a1 sia2:
P(s) =s3+a2s2+a1s+a0=s+ 13=s3+ 3s2+ 3s+ 1
unde
a2= 3;a1= 3;a0= 1
Operatorul obt inut este dat de:
w= (w y) + 3( _w _y) + 3( w y) +…w
Scriem noua valoare a lui v ^ n funct ie de punctul de referint a w= (w1;w2):
v1= (w1+y1) + _w1
v2= (w2+y2) + 2( _w1 _y2) + w2
^Inlocuind ^ n Ecuat ia 6.2 se obt ine:
u=1 0
sin vcos 1(w1 y1) + _w1
(w2 y2) + 2( _w2 _y2) + w2
(6.5)
51
Observ am c a operatorul nu are variabile statice. Deci este un operator static. Deoarece:
det
A(x)
=vcos
L
poate 0, exit a singularit at i pentru care operatorul u nu este denit. Prelucrarea
corespunz batoare trebuie s a e asigurat a atunci c^ and astfel de singularit at i sunt ^ nt^ alnite
de sistem.
6.2.2 Controlul pozit iei
S a facem robotul s a urm areasc a o traiectorie ( xd;yd), folosind ca vector init ial y= (x;y).
Din sistemul 6.1 rezult a:
_x=vcoscos
x= _vcoscos v_sincos vcos_sin
=u1coscos vu2sincos v2sinsincos
_y=vcossin
y= _vcossin v_sinsin+vcos_cos
=u1cossin vu2sinsin+v2sincoscos
Scriem ecuat iile anterioare sub form a de sistem:
x
y
=coscos vsincos
cossin vsinsin
|{z }
A(x)u1
u2
+ v2sinsincos
v2sincoscos
|{z}
b(x)(6.6)
Determinantul lui A(x) este zero, deoarece cele dou a coloane ale matrcei A(x) sunt coliniare
cu vectorul (cos ;sin). Ceea ce ^ nseamn a c a partea controlabil a a accelerat iei este fort at a
^ n direct ia vehiculului. De aceea, x si ynu pot independent controlabile. Deci metoda
linializ arii nu se poate aplica.
6.2.3 G asirea altei ie siri
Pentru a evita ca matricea A(x) s a e singular a,consider am centrub axei rot ii din fat aca
ca ind ie sirea. Deci:
y=x+ cos
y+ sin
52
Deriv^ and de dou a ori obt inem:
y1
y2
=( _x _sin)0
( _y+_cos)0
=(vcoscos vsinsin)0
(vcossin+vsincos)0
=(v(cos(+)))0
(v(sin(+)))0
=( _vcos(+) v(_+_) sin(+))0
( _vsin(+) +v(_+_) cos(+))0
=(u1cos(+) v(u2+vsin) sin(+))0
(u1sin(+) +v(u2+vsin) cos(+))0
=cos(+) vsin(+)
sin(+) +vcos(+)
|{z }
A(x)u1
u2
+v2 sinsin(+)
sincos(+)
|{z}
b(x)
Determinantul matricei A(x) este diferit de 0, cu exceptia v=0. Deci u va egal cu :
u=A 1(x)(v b(x))
Controlul robotului va dat de expresia:
u=A 1(x)xd
yd
x+ cos
y+ sin
+ 2_xd
_yd
vcos(+)
vsin(+)
+xd
yd
b(x)
undewd= (xd;yd) este traiectoria dorit a pentru ie sirea y.
6.2.4 Aplicat ie
Consider am robotul A descris de urm atoarele ecuat ii de stare:
8
>><
>>:_xa=vacosa
_ya=vasina
_a=ua1
_va=ua2(6.7)
Robotul urm are ste un vehicul ale c arui ecuat ii de stare sunt necunoscute. Acest vehicul
are un punct imaginar ata sat, la care trebuie s a ajungem. vareprezint a viteza robotului,
areprezint a orientarea acestuia si ( xa;ya) coordonatele centrului. Presupunem c a putem
m asura variabilele statice ale robotului cu o precizie foarte mare. Presupunem c a robotul
trebuie s a urm areasc a traiectoria:
^xa(t) =Lxsin(!t)
^ya(t) =Lycos(!t)
unde!= 0:1,Lx= 15 siLy= 7
Se vor calcula xa, ya^ n funt ie de xa;ya;va;a;ua1;ua2. Din ecuat iile 6.7 alegem pe _ xa si _ya
53
pe care le deriv am:
_xa=vacosa
xa= _vacosa va_asina
=ua2cosa vaua1sina
_ya=vasina
ya= _vasina+_avacosa
=ua2sina+ua1cosa
Prin urmare:
xa
ya
= vasinacosa
vcosasina
|{z}
A(va;a)ua1
ua2
(6.8)
Utiliz^ and metoda liniariz arii si ecuat iile 6.2 si 6.4 obt inem:
v1= (^xd xa) + 2( _^xa _xa) +^xa
= (Lxsin!t xa) + 2(Lx!cos!t vacosa) Lx!2sin!t
v2= (^yd ya) + 2( _^ya _ya) +^ya
= (Lysin!t ya) + 2(Ly!cos!t vacosa) Ly!2sin!t
Deci:
ua1
ua2
=A 1(va;a)(Lxsin!t xa) + 2(Lx!cos!t vacosa) Lx!2sin!t
(Lysin!t ya) + 2(Ly!cos!t vacosa) Ly!2sin!t
Pentru a testa ^ n MATLAB avem nevoie de coordonatele init iale ale robotului, unghiul si
viteza de deplasare. Presupunem c a:
xa=0
BB@x
y
v1
CCA=0
BB@10
0
1
11
CCA
Codul MATLAB pentru rezolvarea problemei pe intervalul [0 ;10] cu pasul 0 :02,
presupun^ and c a vehiculul se deplaseaz a pe o elips a:
1function t r a i n
2 function xdot = f (x , u) % x =(x , y , theta , v )
3 xdot=[x (4) *cos ( x (3) ) ; x (4) *s i n ( x (3) ) ; u (1) ; u (2) ] ;
4 end
5
6 function u=c o n t r o l (x ,w, dw, ddw)
7 A = [ x (4) *s i n ( x (3) ) cos ( x (3) ) ; x (4) *cos ( x (3) ) s i n ( x (3) ) ] ;
8 y=[x (1) ; x (2) ] ;
9 dy=[x (4) *cos ( x (3) ) ; x (4) *s i n ( x (3) ) ] ;
10 v=(w y ) +2 *(dw dy )+ddw ;
54
11 u= Anv ;
12 end
13
14xa = [ 1 0 ; 0 ; 1 ; 1 ] ;
15dt =0.02;
16ua = [ 0 ; 0 ] ;
17Lx=15;Ly=7;
18f o r t =0: dt : 1 0 ,
19 c l f ; a x i s ([ 30 ,30 , 20 ,20]) ; a x i s square ; hold on ; grid on ;
20 s =0:0.01:2 *pi ; p=[Lx *cos ( s ) ; Ly *s i n ( s ) ] ; plot (p ( 1 , : ) ,p ( 2 , : ) , '
magenta ' )
21 wa=[Lx *s i n ( 0 . 1 *t ) ; Ly *cos ( 0 . 1 *t ) ] ;
22 dwa=[Lx *0.1 *cos ( 0 . 1 *t ); Ly *0.1 *s i n ( 0 . 1 *t ) ] ;
23 ddwa=[ Lx *0.1 *0.1 *s i n ( 0 . 1 *t ); Ly *0.1 *0.1 *cos ( 0 . 1 *t ) ] ;
24 ua=c o n t r o l ( xa , wa , dwa , ddwa) ;
25 draw tank ( xa , ' red ' )
26 plot (wa(1) ,wa(2) , ' ored ' )
27 xa=xa+f ( xa , ua ) *dt ;
28 drawnow ( ) ;
29 legend ( ' T r a i e c t o r i a v e h i c u l u l u i ' , ' Schita r o b o t u l u i ' , ' Punctul
de pe t r a i e c t o r i e ' )
30end
31end
-30 -20 -10 0 10 20 30-20-15-10-505101520
-30 -20 -10 0 10 20 30-20-15-10-505101520
Traiectoria vehiculului
Schita robotului
Punctul de pe traiectorie
Figura 6.2.1 : Pozit ia init ial a si pozit ia nal a robotului
T in^ and cont de faptul c a vehiculul ^ i transmite robotului anumite puncte de pe traiectoria
sa, primul punct transmis ^ n care ajunge robotul are cordonatele (12 :6445;3:7683), se a
a
la un unghi fat a de pozit ia init ial a a robotului de = 0:6314, iar viteza de deplasare a
robotului este v= 0:9952, a sa cum este ilustrat ^ n Figura ??.
55
Index
S asiu, 24
Amortizor, 27
Angrenaj, 27
Anvelope, 23
API, 36
Autodesk Inventor, 26
Band a de rulare, 23
Blocuri conectoare, 21
Butoane, 26
Conectoare, 19
Display, 26
Elemente diverse, 23
Emit ator, 27
ESWL, 8
Grinzi, 17
Grinzi ^ nclinate, 18
Grinzi cu unghi drept, 18
Grinzi drepte, 17Limbajul NXC, 36
MATLAB, 54
Metoda Boyd si Foster, 8
Nituri, 20
Osii, 19
Pavaj, 7
Pavele, 8
Pavele
exibile, 8
Pavele mixte, 8
Pavele rigide, 8
Porturi alfabetice, 26
Porturi numerice, 26
Porturi USB, 26
Receptor, 27
Rot i, 23
Rot i dint ate, 22
Senzor de rotat ie, 27
Servomotor, 27
56
Bibliograe
[1] Graham Scarr, Simple geometry in complex organisms , Journal of Bodywork and
Movement Therapies,2010.
[2] https://www.dezeen.com/2014/03/17/modular-skyscraper-tammo-prinz-dodecahedron/,
Tammo Prinz's conceptual skyscraper would be built from tessellating modules , 2014.
[3] http://cursuri.
exform.ro/, LEGO Mindstorms NXT. Senzori si Actuatori Aferent i
Platformei , 2011.
[4] http://www.evolo.us/modular-concept-for-future-expansions-queen-alia-international-
airport-in-amman-foster-partners/ Modular Concept for Future Expansions / Queen Alia
International Airport in Amman , 2013.
[5] https://www.dezeen.com/2018/01/16/opod-james-law-cybertecture-hong-kong-micro-
apartments-concrete-pipes-low-cost-housing-crisis/, Micro apartments in concrete pipes
designed to ease Hong Kong's housing crisis , 2018.
[6] http://www.inma-cadcae.ro/index.php/art-5/, AUTODESK INVENTOR , 2019.
[7] https://components101.com/ultrasonic-sensor-working-pinout-datasheet, HC-SR04
Ultrasonic Sensor , 2017.
[8] David J. Perdue, Laurens Valk, The Unocial Lego Mindstorms NXT 2.0 Inventor's
Guide , No starch press, 2011.
[9] Carson Kirkpatrick, Robotics Programming in Not eXactly C and RobotC , 2014.
[10] James J. Trobaugh, Winning Design! LEGO MINDSTORMS NXT Design Patterns for
Fun and Competition , Apress,2010.
[11] Dorian Nedelcu, Modelare parametric a prin Autodesk Inventor , Orizonturi
Universitare,2004.
[12] Michael Gasperi, Philippe "Philo" Hurbain, Isabelle Hurbain, Extreme NXT Extending
the LEGO MINDSTORMS NXT to the Next Level , Apress,2007.
[13] Daniele Benedettelli, Programming LEGO NXT Robots using NXC , 2007.
[14] Doxygen, NXC , 2011.
57
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Programul de studii: [626241] (ID: 626241)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
