SPECIALIZAREA: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ [619141]
UNIVERSITATEA “PETRU MAIOR” DIN T ÂRGU -MUREȘ
FACULTATEA DE INGINERIE
SPECIALIZAREA: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ
PROIECT DE DIPLOMĂ
Robot mobil comandat cu Raspberry Pi
Îndrumător științific :
Șef. lucr. dr. ing. Oltean Stelian Absolvent: [anonimizat]
2018
2
1. Introducere
Nevoia continuă a omului de a -și ușura viața a dus în cele din urmă la apariția automatizării
în procesele industriale și implicit, la apariția roboților, care în vremurile actuale au atins cote
nebănuite în trecut.
Termenul de automatizare își are proveniența de la cuvântul automat care se referă la un
aparat, sistem care pe baza unei instrucțiuni execută operațiuni fără intervenția omului.
Automatizarea a avut un impact crucial în industrie și a pătruns până în cele mai mici
dispozitive . De asemenea, ea se găsește și la nivel înalt în roboți manipulatori și până la cei ce
folosesc inteligența artificială .
1.1. Tema
Lucrarea de față își propune ca temă un robot mobil capabil de parcurgerea unui traseu
predefinit și detectarea, diferențierea și transportul unor obiecte.
1.2. Obiective
Obiectivul principal al acestei lucrări este navigarea unei hărți predefinite prin parcurgerea
tuturor punctelor accesibile , cu ajutorul unui robot mobil. După realizarea acestuia se mai prevede
o serie de obiective specifice .
Ca și obiective specifice r obotul trebui e să fie capabil să detecteze obiectele așezate aleatoriu
pe traseu, după care este necesară o clasificare a acestora în funcție de culoare și să decidă dacă
obiectul în cauză trebuie transportat .
1.3. Structura lucrării
În primul capitol al lucrării se face o introducere în temă și se prezintă sumar obiectivele
acestui proiect.
În al doilea capitol sunt prezentate detalii ce țin de partea teoretică a roboților mobili, spre
exemplu structura, clasificarea și componentele acestora.
În al treilea capitol se detaliază platforma nece sară realizării acestui robot prezentându -se
Raspberry Pi, Arduino, senzori și motoare .
3
În al patrulea capitol se descriu detalii de arhitectură precum schema bloc , funcțiile și
utilizarea componentelor hardware.
În al cincilea capitol se prezintă detalii de implementare ale componentelor hardware precum
circuit de alimentare și comunicare.
În al șaselea capitol este prezentată implementarea software cum ar fi algoritmi de navigare,
de procesare și prelucrare de imagini, precum ș i protocoale.
În ultimul capitol se prezintă concluziile acestei lucrări precum și perspective de viitor și
variante de îmbunătățire ce pot f i aduse.
4
2. Aspecte teoretice privind roboți mobili
2.1. Schema generală
CONTROL ACTUATORI ROBOT
SENZORI
Fig. 2.1. Schema generală a unui sistem robotic
Un sistem robotic se compune din partea de actuatori ce cuprinde motoarele ce pun în
mișcare robotul, partea de senzori ce furnizează informații despre robot și mediul înconjurător,
robotul în sine, ce integrează părțile prec edente și partea de control ce se folosește de informațiile
de la senzori pentru a genera comenzi asupra actuatorilor.
2.2. Arhitectura roboților mobili
Caracteristica roboților mobil i este reprezentată de faptul că aceștia au o bază mobilă, ce le
permite acest ora o deplasare în mediul în care acționează. Aceștia se împart în două categorii de
roboți mobili: roboți pe roți și roboți pe picioare.
Roboții mobili pe roți sunt alcătuiți de obicei dintr -un șasiu rigid și un set de roți ce îi
permit acestuia deplasarea. Aceste roți pot fi fixe, dirijabile sau de tip pivotant . Proiectul de față
se folosește de roți fixe.
Roboții mobili pe picioare sunt formați din mai multe părți rigide care sunt unite între ele
cu ajutorul articulaților. Aceștia includ roboți bipezi umanoizi până la cei hexapozi.
Roata fixă se poate roti în jurul unei axe care trece prin mijlocul roții și este perpendiculara
pe planul roții, aceasta fiind atașată rigid pe șasiu.
Roata dirijabilă are o axă de rotație care este la fel ca cea de la roate fix și încă una care este
verticală și trece prin mijlocul roții. Acest lucru îi permite roții să se miște în raport cu șasiul.
5
Roata pivotantă are de asemenea două axe, însă axa ver ticală nu trece prin mijlocul roții, ci
prin axa prinderii de șasiu. Acest lucru îi permite roții să se alinieze cu direcția de mișcare a
robotului.
Din combinarea acestor tipuri de roți se obține o multitudine de tipuri de mișcări, dintre
care cele mai relevante sunt prezentate în continuare.
Roată
fixă
Roată
fixăRoată
pivot
Fig. 2. 2. Mișcarea de tip diferențial
Mișcarea de tip diferențial se realizează cu ajutorul a două roți fixate și una pivotantă, cea
din urmă având rolul de a menține robotul în echilibr u în repaus. Cele două roți fixate sunt
controlate distinct, iar cea de -a treia roată se mișca pasiv în funcție de mișcarea celorlalte roți.
Robotul cu acest tip de mișcare se poate roti întru -un punct, acela fiind mijlocul dintre cele două
roți fixate.
Fig. 2. 3. Mișcarea de tip sincronic
6
O mișcare asemănătoare celei prezentate mai sus este mișcarea de tip sincron ic. Robotul cu
o astfel de mișcare are în componență trei roți de tip dirijabil, controlate cu ajutorul a două motoare.
Primul motor realizează mișcarea roților în jurul axei orizontale, iar cel de al doilea motor
realizează mișcarea în jurul axei verticale, modificând orientarea robotului.
Roată
fixă
Roată
fixă
Fig. 2. 4. Mișcarea de tip tricicletă
În mișcarea de tip tricicletă sunt două roți fixe și una dirijabilă. Deplasarea este controlată
de un singur motor care controlează ambele roți fixate, iar orientarea este realizată printr -un
motor care controlează roata din față.
Roată
fixă
Roată
fixă
Fig. 2. 5. Mișcarea de tip mașină
Mișcarea de tip mașină se realizează cu ajutorul a două roți fixe și două roți dirijabile. La
fel ca la mișcarea precedentă, un motor controlează deplasarea (punte față sau spate) și un altul
modifică orientarea.
7
2.3. Elemente de cinematică generală
Cinematica este știința cu ajutorul căreia se poate determina comportamentul sistemelor
mecanice.
Un element manipulator se poate descrie ca un lanț cinematic de elemente rigide conectate
prin articulații, din punct de vedere mecanic. La un capăt al acestui lanț se găsește baza, pe când la
celălalt capăt se găsește efectorul. Rezultatul mișcării acestei structuri se obține prin însumarea
mișcării fiecărui element din acest lanț.
Descrierea în spațiu a unui element rigid se poate realiza prin poziția și orientarea acestuia
față de axă de origi ne 𝑂𝑥𝑦𝑧, unde 𝑜𝑥′, 𝑜𝑦′ și 𝑜𝑧′sunt componentele unui vector 𝑜′∈ℝ3.
𝑜′=𝑜𝑥′+ 𝑜𝑦′+ 𝑜𝑧′
(2.6)
𝑜′=[𝑜𝑥′
𝑜𝑦′
𝑜𝑧′] (2.7)
Pentru a stabili orientarea elementului rigid se atașează o axă ortogonală 𝑂′𝑥′𝑦′𝑧′ față de axa
de origine. Vectorii 𝑥′, 𝑦′ și 𝑧′ se determină față de axa 𝑂𝑥𝑦𝑧.
zy
Ox
O
Fig. 2. 8. Poziția și orientarea unei axe noi față de axa de origine
𝑥′= 𝑥𝑥′𝑥+ 𝑥𝑦′𝑦+𝑥𝑧′𝑧
𝑦′= 𝑦𝑥′𝑥+ 𝑦𝑦′𝑦+𝑦𝑧′𝑧
𝑧′= 𝑧𝑥′𝑥+ 𝑧𝑦′𝑦+𝑧𝑧′𝑧 (2.9)
8
În cazul în care axa de origine 𝑂𝑥𝑦𝑧 este rotita cu unghiul α în jurul axei z rezultă axa rotită
𝑂′𝑥′𝑦′𝑧′. Vectorii noii axe pot fi determinați în raport cu axa de origine.
z=z y
O
Fig. 2. 10. Rotirea cu α în jurul axei z
𝑥′=[cos ∝
sin∝
0] 𝑦′=[−sin∝
cos ∝
0] 𝑧′=[0
0
1] (2.11)
Prin consecință matricea de rotație a sistemului 𝑂′𝑥′𝑦′𝑧′ cu unghiul α în jurul axei z față de
sistemul de origine 𝑂𝑥𝑦𝑧 este:
𝑅𝑧(∝)=[cos ∝ −sin∝ 0
sin𝛼 cos𝛼 0
0 0 1] (2.12)
De asemenea se pot considera rotații cu unghiul β în jurul axei y și rotații cu unghiul γ în
jurul axei x.
𝑅𝑦(𝛽)=[cos𝛽 0sin𝛽
0 1 0
−sin𝛽0cos𝛽] (2.13 )
𝑅𝑥(𝛾)=[1 0 0
0cos𝛾−sin𝛾
0sin𝛾 cos𝛾] (2.14 )
9
2.4. Cinematica directă
…
2.5. Cinematica inversă
…
2.6. Cinematica roboților mobili
Pentru determinarea unui model de mișcare pentru un robot mobil se ține cont de cum
contribuie fiecare roată individual la deplasarea robotului, de asemenea roțile fiind conectate la
șasiu, acestea împreună impun o constrângere asupra întregii mișcări a robotului.
xy θ
Fig. 2. 15. Poziția și orientarea unui robot mobil față de axa 𝑂𝑥𝑦
…
2.7. Elemente de control: actuatori și senzori
…
2.8. Planificare și Navigare
…
10
3. Platforma utilizată
Componenta principală, care reprezintă „creierul” acestui robot, este un computer de mici
dimensiuni numit Raspberry Pi .
Pe lângă acest calculator, mai există și alte componente care ajută la realizarea robotului
mobil cum ar fi: placă Arduino, senzori ult rasonici, infraroșii si motoare . În următoarele pagini vor
fi prezentate pe rând aceste componente.
3.1. Raspberry Pi
Raspberry Pi este un calculator de dimensiuni reduse comparabile cu cele ale unui card de
debit care se poate folosi ca un calculator normal sau în diverse proiecte de electronică.
BCM2837
Patru Nuclee 1.2GHz
64bit UCP1GB RAM
USB
și
EthernetBCM43438
Wireless LAN și
Bluetooth
40 pini GPIO
(Intrare/Ieșire cu scop general)Ethernet4 x USB
CamerăAfișaj
TFT
CSIDSIMicro SD
Alimentare
Micro USB
Până la 2,5 A
Fig. 3.1. Schema bloc Raspberry Pi 3 Model B
Modelul folosit de acest proiect este Raspberry Pi 3 Model B și acesta oferă în materie de
conectivitate 4 porturi USB, 1 port Ethernet precum și tehnologii Wireless și Bluetooth.
Acest model oferă performanțe bune datorită procesorului cu patru nuclee cu frecvență de
1200 Mhz și a memoriei RAM de 1 GB.
Pentru a putea fi utilizat ca și un calculator normal trebuie să ruleze un sistem de operare. De
exemplu, Raspbian.
11
De asemenea, Raspberry Pi ofer ă 40 de pini GPIO (Intrare -Ieșire cu scop general) de la care
se poate alimenta cu 5 sau 3,3 V, se poate lega la masa sau pentru conexiune I2C.
Acesta componentă are implicații în comunicarea cu Arduino, algoritmul de parcurgere al
traseului, algoritmul de procesare și prelucrare de imagini, precum și în apucarea obiectului cu
ajutorul brațului robotic.
3.2. Placă Arduino
Placa Arduino este un microcontroler capabil s ă citească o intrare ( ex. valoare de la un
senzor) și să o transforme în ieșire (ex. comandă pentru un servomotor ). Acesta poate fi folosit
într-o gamă variată de proiecte care au la bază electronica, precum reglarea unei temperaturi într -o
încăpere.
ATmega328P
16 MHzMemorie
Flash
32 KB
Memorie
SRAM
2 KB
Memorie
EEPROM
1 KBLED_BUILTIN
13
Pini
Intrare/Ieșire6 x
Analog ici
14 x
Digitali6 x
PWM
Fig. 3.2. Schema bloc Arduino Uno
Modelul folosit de acest proiect este Arduino Uno și acesta are 14 pini digitali, dintre care 6
dublează ca pini digita li PWM și încă 6 pini analogi.
În domeniul performanțelor , Arduino Uno oferă un procesor cu un si gur nucleu la o frecven ță
de 16 Mhz, precum și o memorie flash de 32 KB.
Acest microcontroler se poate programa cu ajutor unui program numit Arduino IDE care
oferă un mod de setare a pinilor și un mod de rulare într -o buclă infinită.
12
Placa acesta va ajuta la comunicarea cu Raspb erry Pi, la citirea și interpretarea senzorilor
infraroșii, la citirea senzorilor ultrasonici și la motoarele de curent continuu care pun robotul în
mișcare.
3.3. Senzori i
Pentru realizare a acestui proiect s -au folosit două tipuri de senzori: trei senzori infra roșii și
trei senzori ultrasonici , toți conec tați la placa Arduino Uno.
Senzorii infraroșii sunt compuși dintr -un transmițător LED infraroșu și un fototranzistor .
Modul de funcționare al acestora se bazează pe transmiterea unei unde infraroșii, care este reflectată
de o suprafață și poate fi captată de receptorul infraroșu.
În cazul proiectului de față, acest tip de senzor este folosit pentru a detecta prezența liniei
negre a traseului, bazându -se pe faptul că negru absoarbe unda infraroșie și albul reflec tă unda
transmisă.
Senzorul are o ieșire de tip digital, comparatorul indicând „0” logic când linia neagră este
detectată și „1” logic în absența acesteia.
Următorul tip de senzor este cel ultrasonic , care este de tip digital, și cu ajutorul acestuia se
poate determina distanța până la un obstacol .
Aceștia sunt compuși dintr -un transmițător ultrasonic și un receptor ultrasonic.
Transmițătorul se mai numește „Trigger” și este un pin de ieșire care trebuie ținut în starea „HIGH”
pentru 10 µs pentru a trimite unda ultrasonică. După care pinul de intrare „Echo” trece în starea
„HIGH” pentru o perioadă de timp care va fi egală cu durata de timp necesară întoarcerii undei.
Distanța este măsurată prin trimiterea unei unde sonore la o frecvență specifică, după care se
așteaptă receptarea acelei unde. Cu ajutorul formulei (3.1) se poate calcula distanța de la senzorul
ultrasonic până la obstacol.
𝑑𝑖𝑠𝑡𝑎𝑛 ț𝑎= 𝑣𝑖𝑡𝑒𝑧𝑎 𝑠𝑢𝑛𝑒𝑡𝑢𝑙𝑢𝑖 ×𝑑𝑢𝑟𝑎𝑡𝑎
2 (3.3)
Distanța se obține prin împărțirea produsului dintre viteza sunetului (aprox. 344 m/s) și durata
de timp necesară undei pentru a se întoarce la senzor, la doi.
13
Senzorul de față este folosit pentru a detecta pereții traseului și pentru a detecta obiectele din
fața robotului.
3.4. Motoare de curent continuu
Pentru deplasare robotul se folosește de p atru motoare de curent continuu controlate cu
ajutorul a două punți H duale, care permit motoarelor să se miște în ambele sensuri.
Motoarele sunt alimentate cu 5 V, suportând tensiuni între 3 si 6 V, ș i au un cupl u maxim de
0,8 kg – cm. La 5 V ating pragul de 200 rotații per minut, iar curentul consumat de un singur motor
se situează în jurul valorii de 100 mA.
Ele sunt acționate cu ajutorul a patru pini capabil i să genereze PWM ( Pulse Width
Modulation ) de pe placa Arduino Uno , care trece prin puntea H specifică motorului care se învârte
în sensul dorit . Motoarele sunt controlate în paralel, două câte două , pe fiecare parte a robotului .
3.5. Servomotoare
Obiectele ce necesită transport sunt preluate cu ajutorul unui braț robot ic compus din două
servomotoare comandate cu ajutorul Raspberry Pi.
Primul servomotor este situat la baza brațului robotic și asigură rotirea brațului propriu -zis.
Acesta este capabil de a dezvolta un cuplu maxim de 9,4 kg – cm la o tensiune de alimentare de
4,8 V.
Al doilea servomotor este situat în vârful brațului robotic și este legat de o gheară care asigură
prinderea obiectelor. Acesta este capabil de a dezvolta un cuplu maxim de 3,17 kg – cm la o
tensiune de alimentare de 4,8 V .
3.6. Acumulator
Pentru alimentarea robotului se folosește un acumulator de tip LiPo cu rezistență scăzută ce
are un voltaj de 7,4 V și o capacitate reală de 4000 mAh, care este suficientă pentru a -i permite
robotului să ruleze o perioadă îndelungată de timp.
14
3.7. Circuit de alimentare
Pentru alimentarea componentelor proiectului există o placă de alimentare concepută după
schema de mai jos.
Fig. 3.4 . Schema circuitului de alimentare
Prin conectorul „J1” se alimentează tot circuitul. Prin acesta trec cei 7.4 V proveniți de la
acumulatorul LiPo, necesari alimentării plăcii Arduino Uno și Convertorului Coborâtor Buck.
Convertorul Buck este un convertor coborâtor de tensiune de tip CC – CC, iar la ieșirea
acestuia sunt furnizați cei 5 V necesari motoarelor și pl ăcii Raspberry Pi .
În circuitul de față se mai găses c 17 pini de 5 V pentru alimentarea senzorilor și încă 17 pini
pentru legarea la masă.
Acest circuit integrează și modulele driver necesare pentru comanda motoarelor, precum și
alimentarea acestora. Intră rile „I1” și „I3” sunt legate împreună pentru ca motoarele de pe o parte
să primească aceiași comandă. Același lucru se poate spune și despre intrările „I2” și „I4” ale
driverului.
15
4. Proiectarea robotului mobil comandat cu Raspberry Pi
4.1. Schema bloc
Proiectul se bazează pe un continuu schimb de informații pe ruta Raspberry Pi – Arduino
Uno, cu ajutorul comunicație i I2C.
Circuit
de
alimentare
Braț
Robotic
Cameră
Senzori
Infraroșii
Motoare
Senzori
Ultrasonici
Raspberry Pi
Arduino Uno
Fig. 4.1 . Schema bloc a proiectului
Componentele principale împart diverse subcomponente între ele :
Raspberry Pi are:
o acces direct la camera ;
o control asupra servomotoarelor brațului robotic .
Arduino Uno are:
o conexiuni directe cu senzorii infraroșii ;
o conexiuni directe cu senzorii ultrasonici ;
o control asupra motoarelor de curent continuu .
16
4.2. Arhitectura modulelor
Fiecare dintre cele două componente principale are roluri bine definite și împreună integrează
modulele de fiecare parte.
Parcurgerea
traseului
Detectarea culorii
obiectului
Manevrarea
obiectului
Deplasarea
robotului
Menținerea
pe linie
Detectarea
obstacolului
Transportul
obiectului
Raspberry Pi
Arduino
Uno
Fig. 4.2. Arhitectura modulelor
Module precum decizia următoarei destinații pe traseu, detectarea culorii obiectului și
manevrarea acestuia intră sub comanda Raspberry Pi.
De cealaltă parte Arduino Uno asigură menținerea robotului pe linia traseului, deplasarea
robotului precum și detectarea obiectului.
4.3. Func ții ale componentelor
În continuare vor fi prezentate scopurile și funcțiile componentelor secundare care întregesc
această lucrare.
Un rol major îl au senzorii infraroșii , în număr de trei, conectați la pini digitali ai
microcontrolerul Arduino Uno . Aceștia detectează linia neagră care alcătuiește traseu, furnizând
astfel informații ce duc la menținerea robotului pe linia traseului.
17
Celălalt tip de senzori, cei ultrasonici, sunt conectați tot la placa Arduino. Aceștia au ca
funcție detectarea distanțe i până la primul obstacol în tâlnit, ce va ajuta la detecția obiectelor în
calea robotului și a pereților traseului.
Camera conectată la Raspberry Pi este folosită pentru determinarea culorii obiectului întâlnit
și pentru a ajuta robotul să confirme preluarea obiectului.
Cu ajutorul servomotoarelor se manevrează obiectul ce necesită transportare. Obiectul
respectiv va fi preluat de brațul robotic și ținut până când robotul a ajuns la destinația respectivului
obiect.
4.4. Protocol de comunicare
Schimbul de informații între Raspberry Pi și Arduino Uno are lo c prin protocolul de
comunicare sincron I2C ( Inter -integrated Circuit ).
Fig. 4.3 . Conexiune I2C între Arduino Uno și Raspberry Pi
Acest tip de comunicație necesită trei linii: una pentru date (SDA), una pentru ceas (SCL) și
una pentru masă.
Raspberry Pi reprezintă obiectul „Master” care inițiază transferul datelor spre obiectul
„Slave” reprezentat de placa Arduino.
Mesajele trimise de Raspberry Pi sunt împărțite în două cadre: un cadru de adresă, care
reprezintă adresa la care trebuie trimis mesajul și un cadru de date de 8 biți. Cadrul de date poate
conține unul sau mai multe fragmente de 8 biți.
…
18
5. Implementare hardware
…
19
6. Implementare software
…
20
7. Concluzii
…
21
Bibliografie
[1] https://despreroboti.wordpress.com/2013/12/05/istoria -robotilor/ – Istoria Roboților |
Despre Roboți
[2] M. Voicu, Introducere în automatică , Iași POLIROM, 2002
[3] B. Sicilia no, L. Sciavicco , L. Villani , G. Oriolo , Robotics – Modelling, Planning and
Control , Springer, 2009
[4] https://www.raspberrypi.org/help/faqs/ – Introducere Raspberry Pi
[5] https://www.arduino.cc/en/guide/introduction – Introducere Arduino
[6] https://store.arduino.cc/arduino -uno-rev3 – Arduino Uno Rev3
[7] http://artofcircuits.com/product/infrared -obstacle -avoidance -proximity -sensors -module –
fc-51 – Senzor Infraroșu FC -51
[8] http://education.rec.ri.cmu.edu/content/electronics/boe/ – Senzorii Infraroșii și
Ultrasonici
[9] https://components101.com/ultrasonic -sensor -working -pinout -datasheet/ – Senzor ultrasonic
HC-SR04
[10] https://learn.sparkfun.com/tutorials/i2c – Comunicare I2C
[11] http://fritzing.org/home/ – Circuite Raspberry Pi și Arduino Uno
22
Anexe
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: SPECIALIZAREA: AUTOMATICĂ ȘI INFORMATICĂ APLICATĂ [619141] (ID: 619141)
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.
