0% au considerat acest document util (0 voturi)
4 vizualizări35 pagini

Proiectul ROS

Proiectul vizează dezvoltarea unui robot capabil să detecteze și să evite obstacolele folosind un sistem hardware bazat pe Arduino și senzori ultrasonici. Robotul va fi controlat printr-un sistem ROS și va beneficia de infrastructură cloud pentru a îmbunătăți performanțele și conectivitatea. Documentul detaliază etapele de realizare a robotului, inclusiv componentele hardware și software necesare.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
4 vizualizări35 pagini

Proiectul ROS

Proiectul vizează dezvoltarea unui robot capabil să detecteze și să evite obstacolele folosind un sistem hardware bazat pe Arduino și senzori ultrasonici. Robotul va fi controlat printr-un sistem ROS și va beneficia de infrastructură cloud pentru a îmbunătăți performanțele și conectivitatea. Documentul detaliază etapele de realizare a robotului, inclusiv componentele hardware și software necesare.

Tradus de

ScribdTranslations
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Universitatea Ibn Tofail

Facultatea de ș tiinț e Kenitra


Master Specializat

Robot Detectare Obstacole

Încadrat de:
Pr YOUNES ADNANI

Anul Universitar 2023-2024


TABELUL CONȚ INUTULUI :

Partea 1 : Studiul părț ii Hardware..........................................................................................6


I. Introducere :......................................................................................................................................6
II. Material necesar.........................................................................................................................6
1. La carte Arduino............................................................................................................................6
1.1. Choix tipul de card.....................................................................................................7
1.2. Composantes de la carte Arduino UNO...........................................................................7
2 Senzori ultra-son.........................................................................................................................8
2-1 Funcț ionarea senzorului................................................................................................8
3 Motor DC........................................................................................................................................9
4 Modul Bluetooth HC-05................................................................................................................10
4-1Description :................................................................................................................................10
4-2Conectare HC-05 :..........................................................................................................11
5 Utilizarea unui L298N pentru motor DC cu un Arduino.........................................................11
6 Filii conectaț i....................................................................................................................13
7 Baterii :(alimentare de maș ină) la bătăi reureuo 18650euoei uoi flixrbrlrte daos sa
ceuofigueateuo io séerieuu io paeallllie plăcintăritaot d'adaptie la capacrté it latiosreuo io feuocteuo dis
biseuros specifice ale aplicaț ieitio.............................................................................................................14
III. Schemat general:.....................................................................................................................14
Partea 2: Studiul părț ii Software..........................................................................................16
I. Platformă de programare Arduino......................................................................................16
II. Ubuntu 2024 ș i VMWare WorkStation.........................................................................................18
III. ROS Noetic :..................................................................................................................................18
1 Organisation de l’espace de travail :......................................................................................18
2 Instalarea ROS:...................................................................................................................19
3 Sconfigurarea mediului:............................................................................................................19
4 Création du Workspace :...........................................................................................................20
5 Compilarea pachetului:............................................................................................................20
6 Crearea unui pachet în ROS :.........................................................................................20
7 Crearea nodurilor:.....................................................................................................................21
8 Codul care asigură controlul robotului :..............................................................................22
9 le ROS Master:.............................................................................................................................22
IV. NODE RED.....................................................................................................................................23
1 Lancement Node RED :..............................................................................................................24
2 SNAPPY ROS :..............................................................................................................................25
2-1 Defini ț ie :.................................................................................................................................25

2
2-2 Rol:............................................................................................................................................25
2-3 Instalare de la bibliotecă Snappy-ros :.................................................................25
3-Instalarea Firebase în NodeRED :........................................................................................26
4 Legătura între Firebase, Node Red ș i Subiecte :.......................................................................26
VI. Crearea de aplicaț ii, folosind site-ul MIT App Inventor:..........................................27
VII. Aplicaț ia este creată :...............................................................................................................28
VIII. Cod Arduino................................................................................................................................28
IX. Conexiune Bluetooth cu ROS :........................................................................................32
X. Les etape pentru a controla robotul nostru:.....................................................................................34

3
Liste de figure :

FFIGURĂ1:UNE CARTEARDUINOUNO..................................................................................7
FIGURE2:CAPTEUR ULTRA-FiuHC-SR04.............................................................................8
FIGURE3:DESCRIPTION DU CAPTEUR ULTRA-FiuHC-SR04.....................................................8
FIGURE4:IILUSTRAREA SEMNALULUITRIGGERETECHO.........................................................9
FFIGURĂ5:MOTEURDC.....................................................................................................10
FIGURE 6:MODULBLUETOOTHHC-05...............................................................................10
FFIGURĂ7: SYNOPTIQUE AL MOTORULUI.........................................................................11
FIGURE8:SCAPCANE............................................................................................................13
FFIGURĂ9:: BATTERIES DE3.7V..........................................................................................14
FFIGURĂ10:SOFTWARE-UL ARDUINO.......................................................................................16

4
Introducere generală în proiect:

Acest proiect se încadrează în dezvoltarea unei aplicaț ii de robotică cloud care foloseș te
ROS (Sistemul de Operare pentru Robo ț i). Obiectivul este de a valorifica poten ț ialul cloud-ului
calculatoare pentru a întări capacită ț ile sistemelor încorporate ș i a crea robo ț i
inteligente capabile să interacț ioneze cu mediul lor în mod autonom ș i eficient.

Ne concentrăm în mod special pe proiectarea ș i realizarea unui robot capabil


de a detecta obstacolele ș i de a le evita în mod autonom. Pentru asta, vom folosi
componente hardware precum un Arduino Uno, senzori ultrasonici HC-SR04,
motoare DC ș i altele. Acest robot va fi capabil să detecteze prezenț a obstacolelor datorită...
senzori ultrasonici ș i de a-ș i ajusta traiectoria pentru a-i evita prin controlul motoarelor DC.

În paralel, vom implementa o infrastructură cloud ș i un sistem ROS pentru a oferi


un robot are o putere de calcul ș i de stocare suplimentară, precum ș i o conectivitate
cu alte sisteme ș i servicii online. Această abordare cloud Robotics va permite robotului
de a accesa date în timp real, de a comunica cu alte roboț i ș i sisteme, ș i
de a-ș i îmbunătăț i semnificativ abilităț ile.

Acest raport va detalia diferitele etape ale proiectului, de la concepț ia hardware până la
programarea comportamentului robotului prin intermediul implementării de
infrastructura cloud ș i sistemul ROS. Vom evalua de asemenea performanț ele de
solu ț ia noastră ș i vom discuta despre perspectivele de îmbunătă ț ire pentru viitor
iteratii ale proiectului.

Partea 1: Studiul părț ii hardware


5
I. Introduction :
Obiectivul acestui proiect de electronică este de a crea un robot detectoare de prezenț ă care se
se deplasează într-o încăpere ș i evită obstacolele pe care le întâlneș te. „ochii” robotului sunt
un senzor ultrasonic (de exemplu HC-SR04). Acest senzor este conectat la o placă Arduino.
Când senzorul trimite informaț ia către Arduino că există un obstacol în faț a lui, Arduino
trebuie să trimită o instrucț iune motoarelor care controlează roț ile pentru a evita obstacolul.

II. Material necesar:

Ideea este de a folosi o placă Arduino pentru a citi datele primite de la un, sau mai multe,
senzor(e) cu ultrasunete.
Când senzorul detectează un obstacol în faț a sa, Arduino trebuie să trimită instrucț iuni către
motoare care pilotează roț ile robotului pentru a-l evita. Robotul ar fi parț ial constituit din
châssis ș i componente electronice (Arduino, senzor ultrasonic, motoare, …) ar fi
fixat pe ș asiu pur ș i simplu cu ajutorul unei lipici.
Materialele de care avem nevoie pentru a realiza acest robot sunt:
Arduino UNO.
Un senzor cu ultrasunete HC-SR04.
Două motoare DC pentru a controla roț ile robotului.
O baterie de 11V ș i conectori pentru alimentarea motoarelor DC.
Driver de motor L298N
Două roț i
Modul Bluetooth HC05
Des cabluri jumper

1. La carte Arduino

O placă Arduino este o mică placă electronică echipată cu un microcontroler. Ce


microcontrolerul permite, pe baza evenimentelor detectate de senzori, să programeze ș i
comandă acț ionere; placa Arduino este astfel o interfaț ă programabilă.
Ea poate fi programată pentru a analiza ș i produce semnale electrice, astfel încât să
efectuarea unor sarcini foarte diverse, cum ar fi controlul aparatelor de uz casnic, iluminatul,
încălzire, pilotarea unui robot, informatică încorporată, etc.

Figura 1: O placă Arduino UNO


6
1.1. Alegerea tipului de card

Există mai multe tipuri de plăci Arduino, ne-am orientat doar spre tipul le
mai frecvent care este placa Arduino UNO Pentru a realiza această configurare, trebuie să ne asigurăm de
legătura între fiecare componentă electronică ș i placa noastră Arduino.
În total, vom avea nevoie de o carte Arduino care să conț ină cel puț in 9 pini digitali, ș i
de asemenea, cine va fi capabil să execute cât mai repede algoritmul gravat în memoria sa.
Pe de altă parte, placa Arduino UNO este cea mai potrivită pentru această situaț ie.
care are 14 pini digitali (dintre care 6 cu PWM) ș i 6 pini de intrare analogică.

1.2. Componentele hăr ț ii Arduino UNO

O placă Arduino UNO se compose în esenț ă din:


• Conector jack: Permite conectarea unei surse de alimentare (baterie, acumulator, adaptor de reț ea,
+ au centre Vin 7 la 12 V).
• Microcontroler: stochează programul ș i îl execută.
• Intrări analogice : Permite conectarea senzorilor ș i detectorilor analogici.
16
• Conexiune USB (Universal Serial Bus): Permite alimentarea plăcii cu energie electrică
(5V). Permite încărcarea programului în placă.
• Intrări ș i ieș iri digitale (Digital): Permite conectarea actuatoarelor. Permite de
conectează detectorii.

2 Senzori ultra-son

Figura 2: Senzor ultra-son HC-SR04


Senzorul HC-SR04 este un senzor ultrasonic low cost. Acest senzor funcț ionează cu o
tensiune de alimentare de 5 volț i, dispune de un unghi de măsură de aproximativ 15° ș i permite să
a face măsurători de distanț ă între 2 centimetri ș i 4 metri cu o precizie de 3 mm (în
teorie, în practică nu este chiar exact.

7
2-1 Func ț ionarea senzorului

Figura 3: Descrierea senzorului ultrasonic HC-SR04.

Figura 4: Ilustrarea semnalului RIGGGR etGCHO.

Le principe de fonctionnement du capteur est entièrement basé sur la vitesse du son.


Iată cum se desfăș oară o măsurare: Trimitem o impulsie HIGH de 10μs pe
la broche TRIGGER a senzorului.
Senzorul trimite apoi o serie de 8 impulsuri ultrasonice la 40KHz (inAudibil
pentru ființ a umană, este când mai plăcut decât un biiiiiiiip).
Ultrasunetele se propagă în aer până ating un obstacol ș i se întorc înapoi.
în cealaltă direcț ie spre senzor.
Senzorul detectează ecoul ș i finalizează preluarea măsurătorii.
Semnalul de pe pinul ECHO al senzorului rămâne pe HIGH în timpul etapelor 3 ș i 4, ceea ce
permet să se măsoare durata de întoarcere a ultrasunetilor ș i, prin urmare, să se determine
distanț ă.
N.B. Există întotdeauna un silenț iu de durată fixă după emiterea ultrasunetelor pentru a evita
a primi prematur un ecou în provenienț ă direct de la senzor.

8
3 Motor DC

Un motor DC este un convertor electromechanic care permite conversia


bidirecț ională de energie între o instalaț ie electrică parcursă de un curent continuu
ș i un dispozitiv mecanic. Motoarele CC au astfel particularitatea de a putea funcț iona
în ambele sensuri, în funcț ie de modul în care curentul îi este aplicat. Motoarele DC sunt
controlate de un controler de motor. Controalele pentru motoare electrice permit pilotarea
un
motor în viteză, în poziț ie sau în cuplu, furnizând puterea electrică ș i semnalul
adecvat.

Figura 5: Motor DC.

Module Bluetooth HC-05

Bluetooth este un protocol de comunicare care facilitează schimbul bidirecț ional de


informaț ii despre distanț e scurte folosind unde radio UHF în banda de frecvenț ă
de 2,4 GHz. Obiectivul său este de a simplifica conexiunile între dispozitivele electronice la
proximitate eliminând necesitatea cablurilor. De exemplu, permite înlocuirea cablurilor
între calculatoare, tablete, difuzoare ș i telefoane mobile.

9
Figura 6: modul Bluetooth HC-05

4-1Description :
Ce modul Bluetooth permite adăugarea unei conexiuni serioase fără fir Bluetooth pe dispozitivul dvs.
ARDUINO. El comunică cu microcontrolerul printr-un port serial.
Specificaț ii
100 % compatibil cu
ARDUINO
Tension nominale : 3,3 V- 5
V MAX
Antena de 2,4 GHz
integrată
Controlaț i al tău
ARDUINO fără fir

4-2Conectarea HC-05:

- RXD -> TXD de la Arduino (recepț ia datelor).


- TXD -> RXD de la Arduino (transmisia datelor).
- GND -> conectat la pinul GND al plăcii ARDUINO GND
- VCC -> sursa de alimentare 5V

5 Utilizarea unui L298N pentru motor DC cu un Arduino


Driverul de motor L298N este un component electronic utilizat pentru a controla viteza ș i
direcț ia a două motoare cu curent continuu simultan. Funcț ionează cu motoare
având o tensiune de 5 la 35V ș i un curent de vârf care poate atinge 2A.

10
Principiul de funcț ionare

Figura 7: Sinoptic al driver-ului


motor

Description
Driverul de motor L298N este un circuit monolitic integrat în carcase Milliwatt ș i
PowerSO20 cu 15 pini. Este un driver cu punte dublă completă de înaltă tensiune ș i
curent ridicat conceput pentru a accepta sarcinile inductive de antrenare a nisipului de nivel
logică TTL standard, cum ar fi releele, solenoizii, motoarele cu curent continuu ș i pas
La pas. Două intrări de validare sunt furnizate pentru a activa sau dezactiva dispozitivul
indiferent de semnalele de intrare. Emitatoarele tranzistorilor inferiori de fiecare
punctele sunt conectate între ele, iar terminalul extern corespunzător poate fi folosit pentru a
conexiune a unei rezistenț e de detecț ie externe. O intrare de alimentare suplimentară
este furnizată pentru ca logica să funcț ioneze la o tensiune inferioară.

Schema de principiu a modulului de antrenare a motorului L289N

11
Caractéristiqes :

Tensiune de funcț ionare ridicată, care poate ajunge până la 40 de volț i;


Curent mare de ieș ire, curentul de vârf instantaneu poate ajunge până la 3A;
Cu o putere nominală de 25 W;
Două punte în H integrate, tensiune înaltă, curent mare, pilot de punte complet, care
pot fi folosite pentru a antrena motoare cu curent continuu, motoare pas cu pas
pas, des bobines de relais et d'autres sarcini inductive.
Utilizarea semnalului de nivel logic standard pentru control.
Capabil de a conduce un motor pas cu pas cu două faze sau un motor pas cu pas cu patru
faze ș i motoare cu curent continuu în două faze.
Adoptaț i un condensator de filtrare de capacitate mare ș i o diodă de roată liberă care protejează
aparatul circuitului împotriva daunelor cauzate de curentul invers al unei
încărcare inductivă, îmbunătăț ind astfel fiabilitatea
Le module peut utiliser le tube stabilisateur 78M05 intégré pour obtenir 5 V de
alimentarea. Dar pentru a proteja cipul 78M05 împotriva daunelor, atunci când
tensiunea variatorului este mai mare de 12v, o alimentare logică externă de 5v trebuie să fie
utilizată.
tensiune de antrenament: 5-35 V; tensiune logică: 5 V
dimensiunea circuitului imprimat: 4,2 x 4,2 cm

Modulul L298N permite controlul separat al două motoare cu curent continuu DC de


3 la 30V, sau un motor pas cu pas, acesta a fost fabricat în 1930, adevăratul său dezvoltare
este legat de evenimentul micro-informaticii (microprocesor). Motorul pas cu pas poate
completaț i două funcț ii :
Conversia energiei electrice în energie mecanică (este motorul clasic).
- conversia informaț iei digitale într-o poziț ionare unghiulară sau liniară.
Driverul motorului L298N funcț ionează cu o interfaț ă de comandă TTL 5V (deci compatibil
cu ARDUINO sau cu multe alte microcontrolere cu tensiune redusă). acesta conț ine
două punț i în H pentru comutarea curentilor (2A pe punte în vârf, 20W). Acest modul permite
de a varia viteza de rotaț ie (în modulare PWM) ș i de a inversa sensul de rotaț ie
motor. Poate controla sarcini inductive (bobinaje, relee), ie ș irile de
puterile sunt protejate prin diode de roată liberă anti-revenire.
Programare driver motoare L298N :
Programul următor permite pornirea motorului conectat la puntea B în
trecând prin portul serial. Prin intermediul monitorului serial, se trimite un întreg între -255
et 255 pentru a acț iona motorul, valoarea 0 semnificând „oprirea motorului” [anexa 1]
Aplicaț ie de driver motor L298N :
Circuitul integrat de pilotare a motorului L298N are numeroase aplicaț ii în domeniu
îmbarcat, în special pe partea de robotică. Majoritatea microcontrolerelor
funcț ionează la o tensiune ș i un curent foarte mici (5v) în timp ce motoarele necesită
tensiuni ș i un curent mai mare. Astfel, microcontrolerele nu le pot furniza

12
un curent de asemenea mai mare. Pentru aceasta, utilizăm circuite integrate de pilotare de
motor. Pilotul motorului este un mic amplificator de curent sau de tensiune. Acesta ia un
semnal de curent slab ș i emite un semnal de curent puternic care poate activa un motor. El
poate de asemenea controla direc ț ia motorului. Antrenamentele motorului sunt de
numeroase tipuri în funcț ie de tensiunea maximă de alimentare, de curentul de ieș ire
maximal, de la disipare a puterii nominale, a tensiunii de încărcare ș i a numărului de
ieș iri, etc. Vom discuta aici despre driverul de motor L298N. Acesta este folosit în proiectul de
controlul vitezei motorului cu curent continuu ș i puteț i interfaț a cu uș urinț ă
motor cu curent continu cu microcontrolerul cu ajutorul acestui pilot de motor. Ș i de asemenea
într-un robot controlat prin Bluetooth care utilizează un microcontroler PIC. Puteț i consulta
robotul următor de linie pentru a afla mai multe despre aplicaț iile sale.
6 Firele conectoare
Cablurile, firele sau conectorii sunt elemente necesare pentru a stabili conexiuni
între diferite componente electrice.

Figura 8: Cureaua

7 Baterii :(alimentare de maș ină)

bateria Li-ion 18650 oferă o flexibilitate în configurarea sa în serie sau în paralel,


permiț ând adaptarea capacităț ii ș i a tensiunii în funcț ie de nevoile specifice
aplicaț ia.
Ele pot fi conectate în serie. În acest caz, tensiunea se dezvoltă ș i capacitatea rămâne
egală cu o baterie. Acest lucru poate fi făcut folosind un caz special. Prin conectarea a 3 baterii
de 3,7 v fiecare, obț inem o baterie de 11,1 volț i 3600 mA.

13
Figura 9:: Batterii de 3.7V

III. Scheme generale :

IV. etapele realizării montajului :

1 2 3

14
4 5

1. Instalarea ro ț ilor + motoarele DC.


2. Instalarea Arduino, senzorul ultrason ș i bateriile.
3. Instalarea driverului motoarelor L298N ș i modulului Bluetooth HC-05.
4. Conectarea benzilor.
5. Rezultate finale

15
Partea 2: Studiul părț ii Software
Această parte este dedicată reprezentării platformelor informatice utilizate în
dezvoltarea sistemului robotic.
I. Platforma de programare Arduino
Interfaț a IDE-ului Arduino este destul de simplă, oferind o interfaț ă minimală ș i curată pentru
dezvolta ț i un program pe plăcile Arduino. Acesta dispune de un editor de cod cu
sintaxă de colorare ș i un panou de instrumente rapid. Acestea sunt cele două elemente cele mai
importanț ii interfeț ei sunt cei pe care îi utilizăm cel mai des. De asemenea, găsim o
bară de meniuri, mai clasică, care este utilizată pentru a accesa funcț iile avansate ale IDE-ului.
În cele din urmă, o consolă care afiș ează rezultatele compilării codului sursă, operaț iunilor pe
cartea, etc.

Figura 10: software-ul Arduino

16
a. Scrierea unui program Arduino
Un program Arduino (Sketch) = 1 funcț ie setup() + 1 funcț ie loop() Limbajul folosit
C/C++

Funcț ia setup(): trebuie să conț ină iniț ializarea


Funcț ia loop(): funcț ie repetată la infinit
Aceste două funcț ii sunt apelate de un program principal main() impus,
caché ș i nemodificabil

17
II. Ubuntu 2024 ș i VMWare WorkStation

Ubuntu este un sistem de operare Linux popular, cunoscut pentru prietenia sa ș i


securitate. VMware Workstation este o aplicaț ie de virtualizare care permite crearea ș i
gestionează ma ș ini virtuale pe un computer. Prin combinarea Ubuntu cu VMware
Post de lucru, utilizatorii pot crea medii de dezvoltare flexibile ș i
sigur, ideale pentru testarea aplicaț iilor, dezvoltarea de software sau configurarea de
servere fără a afecta sistemul lor de operare principal.

III. ROS Noetic :

ROS, sau Robot Operating System, este un cadru de dezvoltare software open
sursă utilizată pe scară largă în robotică. Oferă instrumente ș i biblioteci pentru
simplificarea creării, controlului ș i comunicării între componentele unui robot. Datorită
la un sistem de comunicaț ie asincronă ș i la o gestionare eficientă a pachetelor, ROS
facilitează dezvoltarea aplica ț iilor robotice modulare ș i reutilizabile.
În ROS întâlnim un număr de concepte comune la multe middleware-uri:

Noduri : Un nod este un executabil care foloseș te ROS pentru a comunica cu altele
noduri.
Messages :Type de données ROS utilisés pour souscrire ou publier sur un topic.
Subiecte: Nodurile pot publica mesaje pe un subiect, precum ș i să se aboneze.
la un subiect pentru a primi mesaje.
Master: Numele serviciului pentru ROS (adică ajută nodurile să se găsească reciproc).
Parametrii: Informa ț ii foarte pu ț in dinamice care trebuie împărtă ș ite în
aplicaț ia.
rosout : Echivalent de stdout/stderr.
roscore :Master+rosout+server de parametri (server de parametri).

1 Organizarea spa ț iului de lucru :

Pachetele sursă nu au o structură ierarhică (sau la un singur nivel atunci când


depozitele conț in mai multe pachete ROS).

18
2 Instalarea ROS :
Actualizaț i lista pachetelor disponibile ș i instalaț i ROS cu următoarea comandă:

3Configurarea mediului:
Configura ț i-vă mediul ROS executând următoarea comanda:

19
4 Crearea Spa ț iului de Lucru:
Pentru a crea un spa ț iu de lucru (workspace) în ROS, folosim comenzile
următoarele :

5Compilarea pachetului:
Comanda catkin_make este un pas fundamental în utilizarea ROS
(Sistemul de Operare pentru Roboț i). Rolul său principal este de a compila pachetele incluse în
un spaț iu de lucru ROS

6 Crearea unui pachet în ROS :


Pentru a crea un nou pachet, se folosesc comenzile următoare:

20
7 Crearea nodului :

Odată ce a ț i folosit comanda "touch subscriber_node.py" pentru a crea un


noua fiș ier denumit "subscriber_node.py", care ar putea servi ca bază pentru crearea
Un nod ROS, acest fi ș ier este creat în mod neexecutabil în mod implicit. Pentru a-l face
executabil ș i astfel să permită executarea sa ca program sau script, puteț i
utilizaț i comanda "chmod +x subscriber_node.py". Aceasta va adăuga dreptul de execuț ie la
fi ș ier, ceea ce vă va permite să lansa ț i scriptul direct fără a fi necesar să specifica ț i
interpreterul de comenzi. Această etapă facilitează procesul de dezvoltare ș i testare a
noduri ROS.
Creând în acelaș i mod nodul Publisher.

21
Codul care asigură controlul robotului:

9 le ROS Master:
Facilite descoperirea dinamică a nodurilor într-o re ț ea ROS, permi ț ându-le
diferite componente ale sistemului de a comunica între ele într-un mod flexibil. El
simplifică gestionarea mediului ROS oferind un punct central de
coordonaț ie ș i informaț ie pentru nodurile sistemului.

22
Comanda rosrun în ROS permite pornirea unui nod specific prin specificarea numelui
pachetul în care se află nodul, precum ș i numele nodului în sine. Această comandă este
utilizată pentru a executa noduri particulare. Pentru a interacț iona cu subiectele :

IV. NODE RED

Node-RED este o platformă de programare vizuală bazată pe browser, concepută


pentru a facilita crearea de aplicaț ii IoT. Aceasta utilizează un model de flux de date în care
utilizatorii conectează noduri prestabilite pentru a crea aplicaț ii prin glisare ș i plasare.
Node-RED oferă o bibliotecă de noduri gata de utilizare, o extensibilitate pentru a integra
servicii diverse ș i o flexibilitate pentru a dezvolta rapid aplicaț ii bazate pe
flux de date.

23
1 Lansare Node RED :

Prima fereastră după lansarea adresei IP în browserul Node RED :

24
2 SNAPPY ROS

2-1 Definiț ie :
Snappy ROS este un modul sau o bibliotecă care permite Node-RED să
a comunica cu sisteme robotice utilizând Sistemul de Operare pentru Roboț i (ROS). El
utilizează protocolul "Snappy" pentru a schimba mesaje ș i date cu nodurile
ROS, permiț ând astfel o integrare transparentă între Node-RED ș i ecosistemul ROS.
2-2 Rol:
Snappy ROS în Node-RED facilitează integrarea ș i comunicaț ia între Node-RED
ș i ecosistemul ROS, care permite dezvoltatorilor să creeze aplicaț ii robotice
mai bogate ș i mai interactive prin combinarea func ț ionalităț ilor acestor două platforme
forme.

2-3 Instalarea bibliotecii Snappy-ros:

25
3-Instalarea Firebase în NodeRED :

4 Legătura între Firebase, Node Red ș i Topics :

V. FireBase
26
Firebase este o platformă de dezvoltare pentru aplicaț ii mobile ș i web oferită de
Google. Oferă o gamă de servicii de backend gata de utilizare, SDK-uri pentru
multiple platforme, ș i instrumente de dezvoltare ș i testare pentru a ajuta dezvoltatorii să
crea, îmbunătă ț i ș i dezvolta aplica ț iile lor. Firebase este cunoscut pentru u ș urinț a sa
de integrare, disponibilitatea sa ridicată ș i performan ț ele sale ridicate, ceea ce îl face o alegere
popular pentru dezvoltatori care caută să construiască aplica ț ii moderne ș i
evolutive.

VI. Crearea de aplica ț ii, folosind site-ul MIT App Inventor :

27
VII. Aplicaț ia este creată :

VIII. Cod Arduino

#include <ros.h>
#include <std_msgs/Int32.h>
int m1a = 9;
int m1b = 10;
int m2a = 11;
int m2b = 12;
int speedPinRight = 2;
int speedPinLeft = 3;
int demar =0;
#define trigPin 6
#define echoPin 7
ros::NodeHandle nh;

void callBackFunctionEtat(const std_msgs::Int32 &EtatROS) {


int statut = [Link];
//__________________________comenzi
dacă(statue == 2)

28
{
Înapoi();
demar = 1;
}
altfel dacă statuia == 4

{
întoarceStânga();
demar = 1;
}
altfel dacă statul == 1
{
Înaintaț i();
demar = 1;

}
altfel dacă statul == 3
{
turnRight();
demar = 1;
}
altfel dacă(statuia == 0)

{
opriț i();
demar = 1;
}
}
std_msgs::Int32 CapteurROS;
ros::Publisher CapteurROSPublisher("Capteur", &CapteurROS);
ros::Subscriber<std_msgs::Int32> EtatROSsubscriber("Etat", &callBackFunctionEtat);

29
void setup() {
[Link]()->setBaud(9600);
[Link]();
[Link](EtatROSsubscriber);
[Link](CapteurROSPublisher);
//______________________________OUTPUT INPUT
pinMode(speedPinRight, OUTPUT);
pinMode(speedPinLeft, OUTPUT);
pinMode(m1a, OUTPUT);
pinMode(m1b, OUTPUT);
pinMode(m2a, OUTPUT);
pinMode(m2b, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
[Link]();
întârziere(5);
dacă (demar == 1) {
durată lungă, distanț ă;
digitalWrite(trigPin, LOW);
întârziaMicrosecunde(2);
digitalWrite(trigPin, HIGH);
întârziereMicrosecunde(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
dacă (distanț a < 15) {
[Link] = 1 ;
}

30
altfel {
[Link] = 0 ;
}
[Link]ă(&CapteurROS);
}
}
void Înapoi() {
digitalWrite(m1a, ÎNALT);
digitalWrite(m2a, LOW);
digitalWrite(m1b, LOW);
digitalWrite(m2b, ÎNALT);
analogWrite(speedPinRight, 150);
analogWrite(speedPinLeft, 150);
}
void Înainta(){
digitalWrite(m1a, LOW);
digitalWrite(m2a, ÎNALT);
digitalWrite(m1b, HIGH);
digitalWrite(m2b, LOW);
analogWrite(speedPinRight, 150);
analogWrite(speedPinLeft, 150);
}
void întoarceStânga() {

digitalWrite(m1a, LOW);
digitalWrite(m2a, LOW);
digitalWrite(m1b, ÎNALT);
digitalWrite(m2b, LOW);
analogWrite(speedPinLeft, 150);
}
void întoarceDreapta() {

31
digitalWrite(m1a, LOW);
digitalWrite(m2a, ÎNALT);
digitalWrite(m1b, LOW);
digitalWrite(m2b, LOW);
analogWrite(speedPinRight, 150);
}
void stop(){
digitalWrite(m1a, LOW);
digitalWrite(m2a, LOW);
digitalWrite(m1b, LOW);
digitalWrite(m2b, LOW);
}

IX. Conexiune Bluetooth cu ROS :

32
Subiectul senzor
Absenta obstacolului.
Data’1’ prezenț a obstacolului

Starea subiectului:

Datele ‘0’ Oprire


Data ‘1’ Avansat
Data ’2’ Întoarceț i la stânga
Datele ‘3’ Întoarceț i-vă la dreapta
Data '4' reculer

33
X. Paș ii pentru a controla robotul nostru:

Concluzie generală :
34
În cadrul acestor mini-proiecte, am explorat două abordări distincte pentru
dezvoltarea sistemelor încorporate ș i a roboț ilor inteligenț i. Primul mini-proiect a fost
concentrat pe crearea unui robot detector de prezenț ă echipat cu senzori ultrasonici,
în timp ce al doilea mini-proiect a implementat o aplicaț ie cloud Robotics utilizând
ROS (Sistemul de operare pentru roboț i).

În primul mini-proiect, am conceput ș i realizat un robot capabil să detecteze


obstacole folosind senzori ultrasonici ș i a evita coliziunile ajustându-ș i traiectoria.
Am utilizat componente de hardware comune, cum ar fi un Arduino Uno, motoare
DC, senzori ultrasonici HC-SR04 ș i alte elemente. Acest proiect ne-a permis să
a în ț elege principiile de bază ale roboticii integrate ș i de a dezvolta
competenț e practice în materie de design hardware ș i programare.

În al doilea mini-proiect, am explorat abordarea roboticii în cloud, punând


în implementarea unei aplica ț ii care folose ș te ROS pentru comunicarea între diferite
componente, în special cloud-ul, smartphone-urile ș i sistemele integrate. Această abordare
ne-a permis să valorificăm puterea cloud computing-ului pentru a consolida capacităț ile
robo ț ii no ș tri, permi ț ându-le să acceseze resurse de calcul ș i stocare
suplimentare, precum ș i în legătură cu servicii online, cum ar fi baze de date ș i servicii
de comunicare. Acest proiect ne-a permis de asemenea să înț elegem avantajele ș i
provocări asociate cu utilizarea cloud-ului în domeniul roboticii.

În concluzie, acest proiect a fost îmbogă ț itor ș i instructiv, permi ț ându-ne să dobândim despre
noi competenț e ș i de a înț elege mai bine provocările ș i oportunităț ile oferite de
robotica modernă. Ne-au oferit de asemenea ocazia de a ne dezvolta creativitatea ș i
capacitatea noastră de a rezolva probleme complexe. În cele din urmă, ne-au sensibilizat la
importanț a în creș tere a integrării cloud-ului în domeniul roboticii pentru a crea
sisteme mai inteligente, mai flexibile ș i mai performante.

35

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