Licenta Draft 1 [615730]

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
1

Curpins
Figuri și tabele…………………………………………………………………………………………………………………………………………………
1. INTODUCERE …………………………………………………………………………………………………………………………………..
1.1. Context …………………………………………………………………………………………………………………………………….
1.2. Stagiul actual al temei ………………………………………………………………………………………………………….
1.3. Motivația alegerii temei …………………………………………………………………………………………………………
1.4. Obiectivele lucrării și structură…………………………………………………………………………………………….
2. ROBOTUL HOLONOMIC ……………………………………………………………………………………………………………..
2.1. Cinematica roboților mobili………………………………………………………………………………………………….
2.2. Robotul holonomic ………………………………………………………………………………………………………………
2.2.1. Caracteristicile roților holonomice……………………………………………………………………..
2.2.2. Fundamente fizice………………………………………………………………………………………………..
2.3. Construcția fizică…………………………………………………………………………………………………………
3. PRINTARE 3D………………………………………………………………………………………………………………………………
3.1. Generalități …………………………………………………………………………………………
3.2. Printarea roților holonomice …………………………………………………………………………………………
4. ALCĂTUIREA ELECTRONICĂ ……………………………………………………………………………………………..
4.1. Alcătuire generală …………………………………………………………..
4.2. Arduino MEGA și microcontrolerul ATmega2560
4.3. Motoare pas cu pas ………………………………………………………………………………………………………..
4.4. Controlul motoarelor și alimentare ………………………………………………………………………………..
4.5. Modulul de bluetooth ……………………………………………………………………………………………………….
5. PROGRAMARE SOFTWARE …………………………………………………………………………………………………….
5.1. Dezvoltarea aplicației Android pentru controlul la distanță ………………………………………..

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
2
5.1.1. Conectare Bluetooth ……………………………………………………………………………………………
5.1.2. Design-ul aplicației …………………………………………………………………………………………….
5.2. Dezvoltarea aplicației pentru programarea microcontroller-ului ………………………………..
6. PROIECTAREA REGULATORULUI ……………………………………………………………………………………….
6.1. Reglarea vitezei ……………………………………………………………………………………………………………….
6.2. Rezultate experimentale înaintea și după reglarea vitezei …………………………………………..
7. CONCLUZII

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
3

Figuri și tabele

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
4

Listă de acronime

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
5

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
6

1. Introducere
Context
Stagiul actual al temei
Motivația alegerii temei
Obiectivele lucrării
Structura lucrării

1.1. CONTEXT
În ultimii 50 de ani, domeniul tehnologic a luat amploare mai rapid decât oricare alt domeniu
din istorie. În jurul anului 1800, cuvântul ”computer” încă se referea la o persoană, mai exact la munca
pe care aceasta trebuia să o efectueze: calculul. Abia spre sfârșitul secolului, însemnatatea cuvantului
a luat o întorsătură, fiind asociată unor dispozitive. Primele dispozitive de calcul, sau ”calculatoare”,
erau electro-mecanice, adică foloseau roți de stocare, întrerupătoare rotative și relee electromecanice
și erau programate printr-o bandă de hârtie perforată. Astfel, puterea lor de calcul era extrem de
redusă.
Astăzi, calculatoarele pot face mai mult decât adunări și înmulțiri. Evoluția tehnologică ne-a
adus în fața internetului, roboților și inteligenței artificiale. Automatizarea, chiar și a celor mai mici
sarcini umane, ne-a ușurat munca și ne-a permis să ne îndreptăm atenția spre soluționarea

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
7
problemelor existente în lume, cercetare și informare. Aceasta se găsește aproape în toate domeniile,
de la simplul control al intensității luminii într-o cameră la mașini autonome.
Roboții sunt din ce în ce mai căutați în industrie, întrucât pot fi automatizați cu efort redus și
pot avea durată mare de viață. Îndeplinesc sarcinile eficient, într-un timp mult mai scurt. Aceștia nu mai
fac parte dintr-un scenariu SF. Viețile noastre au ajuns sa depindă de aceste mașini inteligente,
făcându-ne viața mai simplă și comodă; un exemplu ar putea fi tehnologia asistată din casele oamenilor
cu dezabilități, care le permite acestora să traiască vieți independente.
Datorită dezvoltării circuitelor integrate și existenței microprocesoarelor, programarea
roboților este accesibilă, deoarece se poate utiliza aproape orice limbaj de programare cu o gamă largă
de algoritmi de control si manipulare. Se remarcă îndeosebi roboții mobili ce pot activa în orice spațiu
cu o minimă intervenție din partea omului. Parametrii spațiului în care se va mișca robotul trebuie să
fie cunoscuți și ușor de procesat. Pe parcursul traseului, pot apărea obstacole neașteptate și astfel
roboții pot avea atașați senzori de percepție. În acest caz, pe lângă controlul robotului, se vor utiliza și
algoritmi de procesare a imaginii și optimizare a mobilității.
Prin lucrarea de față se propune implementarea și controlul unui robot mobil. Robotul construit
are proprietatea de a se mișca în orice direcție, adică acesta este omnidirecțional . În acest sens, există
doi termeni des folosiți pentru a caracteriza aceasta proprietate: robot omnidirecțional și robot
holonomic. Diferența între aceștia va fi explicată în Capitolul 1.
Pentru controlul robotului s-a dezvoltat o aplicație compatibilă cu versiuni începând cu Android
6 (Marshmallow). Pentru programarea aplicației s-a folosit limbajul Java, pentru build Gradle, iar pentru
versionare GitHub. De asemenea, comunicarea între robot si aplicația Android s-a facut printr-un
modul de Bluetooth conectat la plăcuța Arduino. Mediul de dezvoltare Arduino oferă anumite avantaje
în ceea ce privește programarea microcontroller-ului Atmel. Câteva dintre acestea sunt costul redus și
mediul de programare relativ ușor de învățat și de utilizat.
Întrucât una din caracteristicile esențiale ale unui robot omnidirecțional sunt roțile acestuia, s-
au utilizat patru roți numite în literatura universală mecanum . Datorită costului ridicat al acestor roți,
am ales o altă alternativă și anume printarea 3D. Acest lucru a fost posibil datorită flexibilității unei
astfel de roți: fiecare componentă poate fi privită independent.
1.2. STAGIUL ACTUAL AL TEMEI
Roțile omnidrecționale au fost utilizate în robotică, industrie și logistică mulți ani la rând.
Analizând și revizuind sistematic literatura de specialitate actuală referitoare la acest tip de roți, s-a
dezvaluit că sistemele bazate pe roți holonomice dețin capacități omnidirecționale, pe când sistemele
bazate pe roți convenționale nu dețin asemenea proprietăți. Mai mult decât atât, aceste capacități fac
vehiculul extrem de manevrabil, lucru foarte util în diferite aplicații proiectate fie pentru spații în aer
liber, fie pentru spații închise.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
8
Prin urmare, comparativ cu vehiculele convenționale, vehiculul robotizat omnidrecțional
prezintă multiple avantaje în ceea ce priveste mobilitatea acestuia în spații restrânse și medii aglome-
rate. De asemenea, are abilitatea de a îndeplini cu ușurință anumite sarcini în medii congestionate
prevăzute cu obstacole statice sau dinamice sau medii cu zone foarte înguste. De obicei, astfel de medii
se găsesc în fabrici, depozite, spitale etc. Astfel, au rezultat numeroase necesități pentru a crea acest
tip de platforme robotizate pentru a satisface cerințe din diferite domenii, cum ar fi: militar, naval,
medical și nu în ultimul rând domeniul educativ.
Pentru a preveni anumite dezavantaje pe care acest gen de roți le poate prezenta, cercetătorii
s-au concentrat asupra optimizării sale, dezvoltând modalități noi constructive ce le-a permis acestora
să fie implementate în aplicații noi și riscante, precum sunt explorările planetare sau operațiunile în
mină. Mai jos vor fi prezentate câteva dintre domeniile unde robotul holonomic a fost folosit pentru
transport, monitorizare sau scop educațional.
Se remarcă îndeosebi domeniul industrial, în care au fost implementate acest tip de roți pe
anumite motostivuitoare ce necesită manevrare în spații înguste sau transportul lateral prin uși de
dimensiuni reduse. Un astfel de vehicul arată în felul următor:

Figura 1.1 Airtrax Sidewinder [1]
Totodată, putem observa o utilitate a acestor vehicule și în domenii precum sunt explorările
planetare, activități militare sau operațiuni efectuate în mină. Toate acestea au în comun faptul că vor
supune vehiculul la condiții meteorologice primejdioase sau terenuri accidentate. NASA deține în
momentul de față un astfel de robot, numit “OmniBot”, ce a fost testat în condiții aspre, acolo unde
este periculos a trimite personal neechipat corespunzător sau nepregătit.
În domeniul educațional, ”Uranus” a fost primul robot mobil cu roți holonomice, proiectat și
construit în Universitatea Carnegie Mellon din Pittsburgh, Pennsylvania. A fost construit astfel încât să
furnizeze o unitate mobilă cu scop general. Acesta oferea de asemenea și posibilitatea atașării de
senzori sau camere video. În schimb, nu avea sistem de suspensii, care este absolut necesar dacă
terenul pe care este utilizat nu este în totalitate drept.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
9

Figura 1.2 Robotul omnidirecțional Uranus folosit în scop educațional [2]
1.3. MOTIVAȚIA ALEGERII TEMEI
Principalul motiv ce a condus la elaborarea acestui proiect constă în dezvoltarea propriilor
cunștinte cu privire la controlul și automatizarea unui robot mobil. Făcând cercetare în acest domeniu,
am descoperit robotul holonomic. Mi-a stârnit curiozitatea, în special, abilitatea acestuia de a se mișca
în orice direcție cu atâta ușurință.
De asemenea, dezvoltarea unui astfel de robot aduce laolaltă mai multe domenii fiecare
reprezentând câte o mică pasiune: electronică, programare, printare 3D și automatică.
Cunoștințele de electronică sunt aplicate prin realizarea fizică a conexiunilor electrice dintre
microcontroler si celelalte componente folosite pentru controlul robotului. Cele de programare se regă-
sesc în implementarea agloritmilor necesari mișcării robotului, fie prin programarea directă a microcon-
trolerului fie prin programarea aplicației Android. De asmenea, cunștiințele de programare s-au dovedit
a fi extrem de utile întrucât, pentru o mobilitate precisă a robotului, trebuie implementate și legi de
reglare atât matematic, cât și în cod.
Printarea 3D a fost un subiect abordat tot din pură curiozitate. Datorită costurilor ridicate ale
unor roți holonomice am ales această opțiune mai accesibilă și interesantă. Crearea obiectelor folosind
printare 3D este posibilă folosind un model al obiectului ce a trecut printr-un proces de stabilire a unor
straturi succesive de material. Fiecare dintre aceste straturi este văzut ca o secțiune transversală
orizontală foarte subțire. Roata este proiectată astfel încât fiecare componentă este privită individual.
Astfel, fiecare componentă poate fi trecută printr-un proces de ”feliere”, în final rămânând doar
asamblarea acestora.
Cunoștințele în automatică, mai exact teoria sistemelor și ingineria reglării automate, vor fi
puse în practică prin implementarea unor metode clasice de reglare, precum regulatoarele PI sau PID.
Acest lucru se va efectua pentru cazul în care mobilitatea robotului nu este precisă și e nevoie de o
reglare a controlului și/ sau a vitezei.
Provocarea constă în utilizarea tuturor acestor cunoștințe laolaltă într-un singur proiect și
punerea lor în aplicare cu precizie și eficiență.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
10
1.4. OBIECTIVELE LUCRĂRII ȘI STRUCTURĂ
Obiectivul principal al lucrării este de a controla un robot omnidirecțional folosind un smart-
phone pe care rulează un sistem de operare Android. Motivul esențial pentru care acest tip de robot
poate fi utilizat este capacitatea sa de a se mișca cu ușurintă în spații înguste. În cazul în care există
necesitatea de a verifica un anumit mediu strâmt, într-o situație de urgență, acolo unde nu se poate
deplasa o persoană, se pot atașa senzori de gaz, temperatură sau chiar camere foto/video. Astfel, se
pot surprinde detalii despre mediul respectiv și se pot lua măsuri corespsunzătoare fără a dificultăți și
fără a pune în pericol viața cuiva.
Pașii necesari implementării robotului holonomic, adică obiectivele secundare ale lucrării, sunt
următorii:
1. Dezvoltarea aplicației Android. Inițial, a fost nevoie de proiectarea interfeței dorite a apli-
cației alcatuită din butoanele necesare conectării Bluetooth, mișcării stanga-dreapta-
diagonală a robotului și reglarea vitezei acestuia. Ulterior, s-au implementat acțiunile
butoanelor astfel încât aplicația să se conecteze la microcontroler și să efectueze toate
sarcinile.
2. Printarea 3D a roților holonomice. Acest pas a constat în achiziționarea unui model 3D
virtual care reprezintă dimensiunile reale ale componentelor. După ce modelul este
finalizat, acesta este trecut printr-un program de feliere ce are ca rezultat un fișier compa-
tibil cu imprimanta.
3. Realizarea conexiunilor necesare între microcontroler și componentele aferente: motoare
pas cu pas, modulul de Bluetooth, drivere și alți senzori dacă este cazul.
4. Asamblarea fizică a robotului. Pentru corpul acestuia s-a folosit un cadru de lemn în
interiorul căruia s-au introdus componetele. În fiecare colț s-au amplasat motoarele pas cu
pas ce vor controla fiecare roată independent, iar locul din mijloc îi revine plăcuței Arduino.
5. Testarea mobilității robotului. Pentru acest pas s-a realizat conexiunea între aplicația
Android și microcontrolerul Arduino și s-au încercat mai multe situații pentru verificarea
eficienței și preciziei acestuia.
6. Implementarea unui regulator pentru reglarea vitezei robotului. Acest obiectiv este alcătuit
la rândul său din doi pași: implementarea matematică a regulatorului și dezvoltarea algo-
ritmului ce descrie funcționarea acestuia.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
11

2. Robotul holonomic
Cinematica roboților mobili
Robotul holonomic
Construcția fizică a robotului
2.1. CINEMATICA ROBOȚILOR MOBILI
Roboții mobili sunt din ce în ce mai utilizați în acest domeniu deoarece îndeplinesc diverse sar-
cini cu eficiență maximizată, dar și efort minimizat, mai ales din partea programatorului. De la roboți de
bucătărie, utilizați în scopuri personale, la roboți trimiși în spațiu pentru noi descoperiri, roboții mobili
oferă numeroase avantaje și efectuează o muncă din ce în ce mai precisă și mai puțin costisitoare, iar
acest progres este și mai vizibil pe masură ce tehnologia avansează.
Complexitatea unui robot poate crește în funcție de scopul pentru care acesta a fost proiectat.
Robotul pe care îl propun spre analiză în această lucrare are un grad de complexitate redus, însă atinge
foarte bine punctele de bază în ceea ce privește automatizarea și controlul unui robot mobil. Prin
complexitate mă refer la la două lucruri: complexitatea algoritmilor și programării microcontrolerului și
construcția fizică a robotului.
Cinematica robotului este studiul de bază ce descrie comportamentul unui sistem mecanic.
Procesul de întelegere a mișcării unui robot începe cu descrierea contribuției fiecărei roți ce oferă mobi-
litate. Fiecare roată are un rol în activarea mișcării întregului robot, însă totodată are și anumite
constrângeri asupra acestei mișcări, spre exemplu mișcarea laterală. În continuare vom descrie cum se

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
12
mișcă un robot din punct de vedere geometric și de asemenea vom observa mobilitatea fiecărei roți
individual [3].

Figura 2.1 Cadrul de referință global și cadrul de referință al robotului [3]

Pentru a specifica poziția robotului în plan, trebuie stabilită o relație între planul global și cel de
referință (al robotului). Întâi, trebuie ales un punct P pe șasiul robotului ca și punct de referință pentru
originea planului {X R,YR}. Poziția punctului P, în planul global, este specificată de coordonatele x și y, și
de unghiul θ. Prin urmare, se poate descrie poziția robotului utilizând un vector cu aceste trei elemente:

ξ = [x yθ]T (2.1)

Pentru a exprima mișcarea robotului va fi necesară o mapare a mișcării de-a lungul axelor
planului global în funcție de mișcarea de-a lungul planului de referință. Bineînțeles că acest lucru se
poate face utilizând matricea de rotație:

R(θ)=൥ cosθsinθ0
-sinθcosθ0
0 0 1 ൩ (2.2)

Această matrice poate fi utilizată pentru a se realiza o legătură între planul global {X, Y} și planul
de referintă {X R,YR}. Această operație este notată cu 𝜉ோ:

ξ̇
R = R(θ)*ξ̇ (2.3)

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
13
Dându-se o viteză v(x ̇, ẏ, θ̇) în sistemul global, putem calcula componentele de mișcare de-a
lungul axelor de referință ale robotului. În acest caz, mișcarea pe abscisă este y ̇, iar pe ordonată este
−ẋ. Un astfel de robot se numește robot diferențial. Mișcarea acestuia este reprezentată în figura 2.2.

Figura 2.2 Robot diferențial în cadrul global de referință [3]

După cum am menționat mai devreme, pentru a descrie mișcarea unui robot într-un sistem,
trebuie, întâi de toate, descrisă contribuția fiecărei roți. Astfel, combinând legile de mișcare ale ficărei
roți se poate calcula în final legea de mișcare a întregului robot. Există patru categorii de roți de bază,
fiecare cu proprietăți cinematice diferite. Prin urmare, vom începe prin a prezenta seturile de constrân-
geri specifice fiecărui tip.

1. Roată standard, fixată

Figura 2.3 Roată standard, fixată și parametrii acesteia [3]

Roata fixată nu are axă de rotație pe direcția verticală. Unghiul pe care aceasta îl formează cu
șasiul robotului este fixat și, prin urmare, aceasta este limitată la mișcări de înainte/înapoi de-a lungul
planului. Figura 2.3 ne arată o roată fixată A și ne indică poziția relativă a acesteia față de planul de

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
14
referință al robotului. Poziția roții A este descrisă în coordonate polare, având distanța L și unghiul α.
Unghiul pe care planul roții îl formează cu planul robotului este notat cu β, care este de asemenea fixat
întrucât o roată standard fixată nu este dirijabilă.
Constrângerea de rulare pentru acest tip de roată pornește de la ideea că toată mișcarea de-a
lungul planului roții trebuie compensată de suficientă rotație din partea roții.

[cos(α+β)∙sin(α+β)∙L ∙ sinβ] ∙ R(θ) ∙ ξ̇ – rφ̇ = 0 (2.4)

Primul termen al sumei denotă mișcarea totală de-a lungul planului roții. Trebuie de asemenea
observată transformarea din planul local de referință în cel global așa cum am arătat în ecuația (2.3).
Acest lucru este necesar deoarece toți parametrii de care depinde ecuația, α, β, L, sunt raportați la robot.

2. Roată standard, dirijabilă
Roata dirijabilă se diferențiază de cea fixată doar prin faptul ca există un grad suplimentar de
libertate: roata se poate învârti în jurul axei verticale, trecând prin centrul roții și punctul de contact la
sol. Ecuația de constrângere este identică cu ecuația (2.4) cu diferența că orientarea roții față de robot,
adică unghiul pe care acestea două îl formează, β, nu mai este fix, ci depinde de timp: β(t).

3. Roată pivotantă

Figura 2.4 Roată pivotantă și parametrii acesteia [3]

Roțile pivotante au capacitatea de a se roti și în jurul axei verticale. Cu toate acestea, spre
deosebire de roțile standard dirijabile, axa verticală de rotație nu mai trece prin punctul de contact la
sol. În figura 2.4 se poate observa că o astfel de roată depinde de un parametru adițional. Punctul de
contact al roții se află acum la poziția B, care este conectat de punctul A prin intermediul unei tije rigide.
Astfel, punctul B are rol în dirijare. Constrângerea de rotație este dată tot de ecuația (2.4).

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
15
4. Roată holonomică (suedeză)
O roată holonomică nu are o axă verticală de rotație, totuși au capacitatea de a se mișca
omnidirecțional, asemenea unui roți pivotante. Acest lucru este posibil prin adăugarea unui grad de
libertate. Aceste roți sunt constituite dintr-o roată standard fixă cu role atașate a căror axe sunt anti-
paralele cu axa principală a roții. De regulă rolele sunt poziționate la un unghi de 45°.
Vom urmări în subcapitolul următor funcționarea acestora unde vom discuta despre robotul
holonomic, adică un robot format din patru astfel de roți.
2.2. Robotul holonomic
2.2.1. Caracteristicile și funcționarea roților holonomice
Roata holonomică ( mecanum wheel în literatura de specialitate) a fost inventată și proiectată
pentru prima dată în Suedia, în anul 1975, de Bengt Ilon, un inginer dintr-o companie suedeză numită
Mecanum AB . Aceasta se bazează pe o roată centrală cu un anumit număr de role plasate la periferie,
de-a lungul roții, la un anumit unghi. În cazul celor holonomice, unghiul dintre role și axa centrală a roții
este de 45° (figura 2.5). Rolele sunt construite astfel încât forma întregii roți sa fie circulară.
Rolele înclinate produc o forță de tracțiune în direcția de rotație a roții și paralelă cu solul.
Depinzând de combinația de direcții și viteze ale fiecărei roți, rezultatul acestei combinații produce o
forță totală în orice direcție dorită, oferind robotului posibilitatea să se miște liber, omnidirecțional, fără
a schimba direcția roții.

Figura 2.5. a) Roata holonomică cu partea ceantrală și role [4]
b) Prototip

Într-o roată omnidirecțională, viteza roții poate fi împărțită în două componente: activă și
pasivă. Componenta activă are direcția de-a lungul axei rolei care este în contact cu solul la un moment
dat, în timp ce componenta pasivă este perpendiculară pe această axă. Atunci când roata se învârte, se
creează un vector forță de-a lungul roții și unul de-a lungul perpendicular. Prin simplul control al rotației

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
16
fiecărei roți, aceste forțe vor fi obținute și, prin urmare, direcția vehiculului poate fi schimbată
instantaneu.
TODO

2.2.2. Robotul holonomic
Un robot holonomic, conform definiției acestuia, are proprietatea că toate gradele de liberate sunt
controlabile. Acest lucru înseamnă că, într-un spațiu bidimensional, robotul se poate deplasa pe cele
două axe ale planului, x și y, concomitent.
Un astfel de robot este, în mod tipic, construit având o formă dreptunghiulară și câte două roți pe
fiecare parte a șasiului. Utilizând patru roți holonomice, putem obține o mișcare omnidirecțională a
robotului fără a avea nevoie de un sistem de dirijare convențional. Deoarece această proprietate
necesită ca fiecare roată să aibă contact direct cu solul, roboții sunt echipați cu sisteme de suspensie.
Acest lucru este util în cazul în care solul nu este perfect drept.

Figura 2.6. Direcțiile de mișcare ale robotului holonomic în funcție de sensul de rotație al roților

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
17
Robotul are capacitatea de a se translata în orice direcție, atât înainte/ înapoi, stânga/dreapta, dar
și diagonală și întoarcere pe loc. Această capacitate este utilă, așa cum am precizat și în Capitolul 1,
atunci când robotul este manevrat în spații înguste și periculoase omului.
După cum se poate observa și în figura 2.7, roțiile sunt așezate astfel încât dacă s-ar trasa o
linie din centrul roții către șasiul robotului, acestea s-ar intersecta în același punct. Cu alte cuvinte, rolele
ce alcătuiesc roțile trebuie să aibă ca direcție de așezare centrul robotului. Astfel, s-ar putea schimba
locul roților, însă trebuie țint cont de această regulă.

Figura 2.7. Modul de așezare a roților

La acționare, rolele exterioare ale roților vor traduce o porțiune din forță în direcția de rotație a
roții într-o forță normală pe direcția roții. Controlând viteza și direcția fiecărei roți individual, vom putea
obține un vector forță în orice direcție dorită.
Dacă luăm în considerare planul x sOsys, ce reprezintă planul șasiului robotului (figura 2.8),
putem scrie matricea vitezelor după cum urmează:
൥vx
vy
ωz൩=R
4∙൦1 1 1 1
1-1 -1 1
-1
l1+l21
l1+l2-1
l1+l21
l1+l2൪∙቎ω1
ω2
ω3ω4቏

unde R este raza roții, ωi este viteza unghiulară a acesteia și l1, l2 sunt distanțele între axa roții și
centrul robotului.
Dacă viteza robotului este impusă, trebuie sa calculăm viteza unghiulară a fiecărei roți în parte:
቎ω1
ω2
ω3ω4቏=1
R∙
⎣⎢⎢⎡1 1 -(l 1+l2)
1 -1 l 1+l2
1 -1 -(l 1+l2)
1 1 l 1+l2⎦⎥⎥⎤
∙൥vx
vy
ωz൩

Toți acești parametrii se pot observa în figura 2.8.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
18

Figura 2.8. Cinematica robotului

TODO
2.3. CONSTRUCȚIA FIZICĂ A ROBOTULUI
După cum am menționat mai devreme, robotul construit are o formă dreptunghiulară și patru
roți așezate astfel încât fiecare rolă să fie îndreptată spre centrul robotului. Pentru construcția fizică a
acestuia am folosit un cadru de lemn pe care am facut măsurătorile necesare, astfel încât să se poată
atașa cele patru motoare pas cu pas și cele patru roți holonomice. Totodată, am lasat loc în interior
pentru a așeza celelalte componente.
Pentru motorul NEMA 17, folosit pentru a acționa roțile, a fost nevoie de un alezaj de 25 mm,
iar lăngă acesta, la distanțe egale, alte patru orificii pentru a fixa motorul. În figura următoare se poate
observa această construcție:

Figura 2.9. Cadrul din lemn al robotului cu alezajul necesar (TODOpoza)

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
19
Pentru a putea fixa motoarele pe acest cadru, am folosit șuruburi cu o lungime de 12 mm și
grosime de 3 mm. TODO

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
20

3. Printarea 3D
Generalită ți
Printarea roților holonomice

3.1. GENERALITĂȚI
Procesul de imprimare 3D mai este cunoscut și sub denumirea de fabricare aditivă și reprezintă
procesul prin care o imprimantă 3D creează obiecte tridimensionale prin depozitarea materialelor, strat
după strat, după un anumit model proiectat digital. Avantajul față de o metodă clasică de fabricare
constă în utilizarea materialului care ar fi fost în exces și, prin urmare, irosit. Acest material este depus
încă de la început în forma dorită, fără a fi nevoie de prelucrări ulterioare.
Printarea 3D permite oricui să proiecteze și să creeze obiecte complexe din confortul propriei
case. În ultimii ani, acest proces a devenit din ce în ce mai accesibil din punct de vedere al costurilor,
atat imprimanta 3D, cât și materialele sunt din ce în ce mai rentabile.Totodată, au dimensiuni reduse și
sunt ușor de instalat și de operat.
Pentru a putea utiliza o imprimantă 3D, trebuie urmați următorii pași:
1. Proiectarea tridimensională a obiectului ( design)
Pentru a putea imprima un obiect, este nevoie de un fișier digital ce conține aspectul geometric
tridimensional al obiectului respectiv. Utilizând tehnologii CAD ( Computer Aided Design în literatura de
specialitate), se pot proiecta ușor și rapid aceste modele 3D, fără a fi necesare cunoștințe particulare
de proiectare sau desen tehnic.
Totodată, pentru o și mai ușoară utilizare, există numeroase pagini web ce furnizează
utilizatorilor și pasionaților de printare 3D astfel de modele deja proiectate sub forma unui fișier cu
extensia STL (abreviere la stereolitografie). Un exemplu ar putea fi www.thingiverse.com .

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
21
2. Tăierea și scalarea fișierelor STL
Odată proiectat obiectul, fișierul STL trebuie trecut printr-un proces de tăiere ( slicing).
Software-ul dedicat are rolul de a procesa design-ul 3D și de a crea un alt fișier ce va conține instrucțiu-
nile pentru imprimanta 3D. Aceste instrucțiuni reprezintă, de fapt, un set de straturi așezate unele
peste celelalte, în direcție orizontală, de aici și numele de ”tăiere”. Imprimanta va trata aceste straturi
individual și va găsi metode optime de a se mișca în plan pentru a le forma.
3. Imprimarea
Acest pas presupune conectarea imprimatei la un computer sau încărcarea fișierului menționat
anterior printr-un card de memorie. Odată apăsat butonul de start, imprimanta 3D va începe să
folosească materialul furnizat (de obicei materiale plastice de tip ABS, PLA sau policarbonat) dezvol-
tând, strat după strat, obiectul fizic dorit.

3.2. PRINTAREA ROȚILOR HOLONOMICE
Unul dintre motivele pentru care am decis să folosesc o imprimantă 3D și să asamblez fiecare
componentă, este costul ridicat al unei astfel de roți în comerț. Totodată, urmărirea celor 3 pași descriși
în subcapitolul 3.1, s-a dovedit o experiență interesantă și inedită.
În figura următoare se poate observa design-ul 3D al componentelor ce alcătuiesc roata.

Figura 3.1. Modelul CAD al componentelor utilizate: role, partea exterioară, partea interioară și arborele
de cuplaj specific motorului pas cu pas [6]

Pentru imprimare, există două alternative: imprimată carteziană și delta. Diferența între cele
două constă în modul în care poziția mâinii se modifică. O imprimantă carteziană, după cum îi spune și
numele, utilizează sistemul cartezian pentru a se deplasa. Pentru a depune straturile de material, se va
mișca doar pe axele X, Y pentru extrudarea materialului și pe Z pentru deplasarea suprafeței de printare
pe verticală (în sus sau în jos).

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
22
Pe cealaltă parte, sistemul delta utilizează tot sistemul cartezian de coordonate, însă aduce
câteva modificări la acesta: poate efectua și mișcări circulare. Mișcarea brațului se face la un anumit
unghi fix, iar acest lucru va crește viteza de printare. Un alt avantaj este înălțimea mare pe axa verticală,
ce va permite printarea obiectelor de mari dimensiuni.
În proiectul de față, am utilizat un sistem delta pentru a imprima componentele roților datorită
rapidității acestuia. În figura următoare se poate observa rezultatul acesteia.

Figura 3.2. Componentele utilizate (model fizic)
Pentru a crea o roată holonomică am ales un model asemanător celor folosite de robotul Omni-
1, de la Universitatea South Australia, a căror jante lasă foarte puțin loc pentru rolă. Acestea au un
aspect circular dacă sunt privite din lateral, asemenea unor roți obișnuite.
Acest model are ca avantaj faptul că roata va fi foarte bine fixată de șasiul robotului, respectiv
motorul corespondent, ceea ce face ca acesta să aibă o mobilitate foarte bună pe suprafețe dure și
drepte. Dezavantajul acestui model, însă, constă în faptul că robotul își pierde proprietatea de a fi
omnidirecțional odată plasat pe suprafețe moi sau alunecoase.
Pentru a asambla rolele, am utilizat tije metalice cu o lungime de 45 de mm. În figurile 3.2 și 3.3
se poate vedea cum toate componentele au fost asamblate.

Figura 3.2 Asamblarea componentelor roții holonomice (model 3D) [6]

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
23

TODOpoza
Figura 3.3 Roata asamblată (model fizic)

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
24

4. Componente electronice
Alcătuire generală și funcționalitate
Arduino MEGA și microcontrollerul ATmega2560
Motoare pas cu pas
Controlul motoarelor și alimentare
Modulul de bluetooth

4.1. ALCĂTUIRE GENERALĂ ȘI FUNCȚIONALITATE
După cum am menționat în capitolele anterioare, robotul holonomic este un vehicul de forma
dreptunghiulară ce are dispuse în fiecare colț câte un motor pas cu pas, fiecare contrololând câte o
roată holonomică. Creierul acestui ansamblu este, în mod firesc, microcontrollerul.
În ultimii ani, mediul de dezvoltare Arduino a fost o soluție din ce în ce mai căutată datorită
lizibilității și ușurinței cu care se utilizează. Acesta conține un microcontroller open-source ce poate fi
programat, șters și reprogramat cu ușurință la orice moment în timp. Unul din avantaje constă, de
asemenea, în costul redus al plăcuței dar și a componentelor compatibile cu aceasta.
În figura 4.1 se poate observa schema bloc a alcătuirii interne a robotului. Cele patru motoare
sunt conectate la câte un driver prin care se va controla modul în care acestea operează. De fapt,
legătura dintre motoare se face prin aceste drivere. Alimentarea se face prin doi pini logici de la Arduino,
aceasta însemnând între 2.5 și 5.25V, și doi pini de la o sursă de alimentare între 8.2 și 45V. În
continuare, găsim conectat la microcontroller-ul Arduino, un modul HC-05 ce face posibilă comunicarea
bluetooth între robot și telefonul mobil.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
25

Figura 4.1. Schema bloc a componentelor interne ale robotului

4.2. ARDUINO MEGA ȘI MICROCONTROLLER-UL ATmega2560
Mediul de dezvoltare Arduino ne facilitează și o versiune extinsă a acestuia, numită Mega, ce
deține mai multe linii de intrare/ ieșire, o memorie vastă pentru fișierele cod, numite sketches (schițe),
și mai multă memorie RAM. Acestea oferă posibilitatea de a dezvolta proiecte a căror structură necesită
mai mult loc fizic pe plăcuță.
Arduino Mega poate fi pornit printr-o conexiune USB sau printr-o sursă externă, adică o baterie
sau un adaptor de curent alternativ – curent continuu. Deține un total de 54 de pini digitali care pot fi
folosiți fie ca intrări, fie ca ieșiri, care operează la 5V. Fiecare pin suportă în jur de 40mA și deține un
resistor intern de pull-up de 20-50 k Ω. Ba mai mult, câțiva pini au funcții specifice [7]:
– Comunicare Serială: pinii 0, 1 și pinii de la 14-19, utilizați pentru a transmite și recepționa
date TTL seriate. Aceștia sunt conectați la pinii corespunzători adaptorului USB-TTL.
– Întreruperi externe: pinii 2, 3, 18, 19, 20 și 21, care pot fi setați să genereze o întrerupere
pe nivel Low sau High, pe front crescător sau descrescător, sau la orice schimbare a
frontului.
– PWM (Pulse Width Modulation ): pinii 0-13, utilizați pentru a furniza un semnal de 8 biți,
modulat în frecvență.
– Comunicație SPI ( Serial Peripheral Interface ): pinii 50-53.
– Interfață I2C: pinii 20 și 21.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
26

Figura 4.2. Arduino MEGA și pinii aferenți [7]

Această structură permite ca toate plăcile de dezvoltare sa poată fi interfațate cu diferite plăci
de extensie pentru Arduino ( shields în limba engleză) sau circuite conexe. De asemenea, se pot proiecta,
într-un mod personalizat, și plăci PCB ( Printed Circuit Board ). Acestea ajută la extinderea functionalității
unei plăcuțe Arduino, scăpând totodată de problema firelor și menținând componentele într-un mod
organizat.

Figura 4.3. Arduino PCB (personalizat pentru componentele robotului holonomic)

De asemenea, Arduino ne pune la dispoziție un editor de cod ce permite încărcarea și rularea
codului pe microcontroller. Acesta este open-source, iar fișierele executabile se numesc sketches și au
extensia .ino. La creearea unui nou program sunt adăugate în mod implicit doua secțiuni de cod:
– Setup este o secțiune rulată o singură dată la inițializarea programului, adică atunci când
placa este alimentată, prin urmare atunci cand placa este pornită.
– Loop este o buclă infinită ce se execută ciclic atâta timp cat placa este alimentată.

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
27
Arduino Mega oferă numeroase metode prin care că comunice cu un calculator, o altă plăcuță
Arduino sau alte microcontrollere. Comunicarea serială este o comunicare de tip digital, în sensul că e
pe fir se transmit biți, asemenea unei rețele de calculatoare, diferența fiind că acest protocol este mult
simplificat. Atmega2560 oferă un mod hardware de comunicare, numit UART ( Universal Asynchronous
Receiver/ Transmitter ) prin care va realiza aceasta comunicare serială.
Arduino IDE oferă și un monitor pentru aceasta comunicare, ce permite vizualizarea în timp real
a transmiterii datelor sub format text. În lucrarea de față am utilizat o librărie numită SoftwareSerial
care oferă anumite avantaje față de comunicarea serială clasică. Aceste avantaje vor fi prezentate în
capitolul 5.

4.3. MOTOARE PAS CU PAS
Un motor pas cu pas este un motor electric, sincron, fără perii ce convertește pulsul digital într-
o rotație mecanică. De regulă, toate înfășurările din motor fac parte din stator, iar rotorul este un
magnet permanent sau un bloc dințat fabricat dintr-un material magnetic moale. Toate comutările
trebuie manipulate extern de un controller.
Motorul pas cu pas este ideal pentru aplicațiile în care este crucială o măsurare precisă a poziției
rotorului. Acesta funcționează diferit față de alte motoare: în locul unui voltaj aplicat la bornele acestuia
pentru ca rotorul să se învârtă, asemenea unui motor de curent continuu clasic, motoarele pas cu pas
exercită mișcarea de rotație în urma unei succesiuni de impulsuri electrice aplicate înfășurărilor
acestora. Fiecare impuls rotește rotorul cu un număr exact de grade. Aceste impulsuri sunt numite pași,
de aici și numele de motor pas cu pas.
Sistemele ce utilizează astfel de motoare sunt ușor de implementat, au un control intuitiv și
sunt ideale pentru aplicațiile de putere mică, dar precizie mare, datorită cuplului bun la viteze mici. De
regulă, motoarele pas cu pas operează la o rezoluție de 1.8 grade/pas. Cu un controller potrivit,
majoritatea motoarelor hibride pot funcționa și în diferite faze numite micro-steps .

Tabelul 4.1. Modurile de setare a rezoluției motorului pas cu pas hibrid
MODE0 MODE1 MODE2 Rezoluție
0 0 0 Full step
1 0 0 Half step
0 1 0 1/4
1 1 0 1/8
0 0 1 1/16
1 0 1 1/32
0 1 1 1/32
1 1 1 1/32

Facultatea de Inginerie Electrică și Știința Calculatoarelor Automatică și Informatică Aplicată
Departamentul Automatică și Tehnologia Informației
28
Acesta este unul dintre cei mai importanți factori atunci când intervine problema alegerii unui
motor pas cu pas. Acest factor specifică numărul de grade cu care arborele se va roti pentru fiecare pas
întreg. Operațiunea care implică jumătate de pas, half-step resolution , va dubla numărul de pași/
rotație și va înjumătăți numărul de grade/ pas. Pentru a ne referi la acest număr de grade/ pas, de
regulă, se folosește termenul de rezoluție a motorului .
Motoarele pas cu pas se pot clasifica în mai multe categorii în funcție de aranjamentul
înfășurărilor, construcția motorului sau rezoluție. Astfel, distingem două mari categorii de motoare pas
cu pas: unipolare și bipolare.

4.3.1. Motoarele unipolare

Similar Posts