Pojar Silviu-Gabriel [305623]

[anonimizat]:

conf. dr. ing. [anonimizat]

a unui robot mobil cu două axe

Îndrumător:

conf. dr. ing. Tiberiu Cociaș

Cuprins

Lista de figuri:

Fig. 1.1 Abordarea geometrică a manevrei de parcare

Fig. 1.2. Traiectoria propusă pentru parcarea laterală

Fig. 1.3. Componentele traiectoriei de parcare.

Fig. 1.4 Controler Fuzzy PD+I propus pentru urmărirea traiectoriei.

Fig. 1.5 PD Fuzzy pentru urmărirea traiectoriei

Fig. 1.6. Funcția de apartenență pentru eroarea EP

Fig. 1.7. Funcția de apartenență pentru eroarea derivativă ED

Fig. 1.8. Funcția de apartenență pentru variabila u.

Fig. 2.1. Senzor Lidar rotativ

Fig. 2.2 Modul de percepție și interpretare a datelor de către un sistem Lidar

Fig. 2.3. Măsurile de siguranță oferite de sistemele radar.

Fig. 2.4. [anonimizat]. 2.5. Asistentul de parcare reprezentat pe afișajul LCD din bord

Fig. 2.6. Senzori ultrasonici atașați unei bare de protecție din spate

Fig. 2.7. Exemplu de reprezentare al unui grid de ocupanță

Fig. 2.8. [anonimizat]. 2.9. Aproximare simplificată pentru proiectarea geometriei Ackermann

Fig. 3.1 Replica mașinii

Fig. 3.2 Reprezentarea principiului de calcul a distanței

Fig. 3.3 Dispunerea senzorilor în funcție de sistemul de coordonate al robotului

Fig. 3.4 Convenția de numerotare a gridului

Fig. 3.5 Celulă de 5cm2 în comparație cu dimensiunile robotului

Fig. 3.6. Tratarea măsurarii distanței în grid. Exemplu unidimensional

Fig. 3.7 Ocuparea celulelor în grid

Fig. 3.8 Numerotarea senzorilor

Fig. 3.9. Exemplu de mutare a matricii

Fig. 3.10. Strategia traiectoriei pentru parcare laterală dintr-o singură mișcare

Fig. 3.11. Calculul geometric al poziției inițiale și finale

Fig. 3.12. Reprezentarea traseului optim pentru siguranță

Fig. 3.13. Exemplu de condiție validată

Fig. 3.14. Exemplu de condiție nevalidată

Fig. 4.1 Ierarhia sistemelor

Fig. 4.2. Componentele principale ale robotului

Fig. 4.3 Cazul static

Fig. 4.4 Celulele ocupate în cazul static

Fig. 4.5. [anonimizat] 1. Starea inițială

Fig. 4.6. [anonimizat] 2. Starea finală

Fig. 4.7. Gridul de ocupanță afișat în cazul 2.

Fig. 4.8. Testarea traiectoriei de parcare laterală

Fig. 4.9. [anonimizat]. 4.10. [anonimizat]. 4.11. [anonimizat]. 4.12. [anonimizat]. 4.13. [anonimizat]. 4.14. [anonimizat]. 4.15. [anonimizat]. 4.16. [anonimizat]:

Radar – [anonimizat].

Lidar – [anonimizat].

GPS – [anonimizat]+I – [anonimizat] – [anonimizat] –[anonimizat] – rotire/ [anonimizat] – Liquid Crystal Display

Mapare – operație ce asociază un element dintr-un set dat( domeniu) cu unul sau mai multe elemente dintr-un al doilea set dat.

Index – Indice

Grid – Grilă

Li-Po – Litiu Polimer

PWM – Pulse Width Modulation, modulație în lățime a impulsului

1. Introducere

1.1 Mașina autonomă

O mașină autonomă este un vehicul care se poate ghida fără intervenția omului. Odată cu evoluția tehnologiei, această idee de vehicul devine tot mai realizabilă. Autovehiculele autonome utilizează diverse tipuri de tehnologii. Combină o varietate de senzori pentru a percepe împrejurimile, cum ar fi radar, lidar, sonar, camere video, GPS, unități de măsurare inerțială. Sistemele avansate de control interpretează informațiile senzoriale pentru a identifica căile de navigație adecvate, precum și obstacolele și indicatoarele rutiere.

Experții pentru siguranța conducerii prevăd că odată ce aceasta tehnologie va fi complet dezvoltată, accidentele cauzate de eroarea umană, cum ar fi timpul de reacție întârziat, nemenținerea distanței minime de siguranță, neatenția și alte forme de condus distras sau agresiv vor scădea substanțial.

Un avantaj suplimentar ar putea include limite de viteză mai mari, creșterea capacității soselelor și reducerea congestiei traficului, datorită micșorării spațiului minim de siguranță și a vitezelor mai mari. [1]

Posibile obstacole sau limitări ale conducerii autonome:

Inteligența artificială nu este încă capabilă să funcționeze corespunzător în mediile haotice din interiorul orașelor aglomerate.

Computerul mașinii ar putea fi compromis în timpul funcționarii, precum și sistemul de comunicații între mașini

Susceptibilitatea sistemelor de detectare și navigare ale mașinii la diferite tipuri de vreme (cum ar fi zăpada) sau interferențe deliberate, inclusiv blocarea.

Autovehiculele autonome pot necesita hărți specializate de înaltă calitate pentru a funcționa corespunzător.

Infrastructura rutieră din prezent poate necesita modificări pentru ca autovehiculele autonome să funcționeze optim.

Cu toate că domeniul conducerii autonome pe drumurile publice este un domeniu relativ nou, înca în stadiul de cercetare, anumite părți ale conducerii se pot automatiza complet, de exemplu, parcarea.

1.2 Parcarea autonomă

Odată cu creșterea rapidă a numărului de vehicule, a apărut problema lipsei de locuri de parcare, șoferii fiind nevoiți astfel să parcheze în locuri cât mai înguste. Acest lucru prezintă o dificultate chiar și pentru conducătorii experimentați. [2]

Pentru a atenua aceasta situație, au aparut sistemele de parcare inteligentă. Aceasta tehnologie permite șoferului să parcheze autovehiculul într-un mod eficient, fără a cauza zgârieturi și deteriorări în tabla mașinilor din jur sau mașinii proprie.

Cu ajutorul sistemului de parcare inteligentă, autovehiculul poate parca autonom, în spațiul disponibil cu ajustări minime sau deloc din partea șoferului.

1.3 Motivație

Această lucrare abordează o temă dintr-un domeniu destul de recent apărut. Sistemele de parcare automatizată, ca toți roboții de altfel, contribuie la usurarea vieții oamenilor. Asistentul de parcare joacă un rol important în creșterea siguranței dar în același timp ajută și la păstrarea integrității caroseriei mașinii.

Acest studiu se bazează pe utilizarea algoritmilor formali cu scopul eficientizarii procesului de parcare laterală cu spatele.

Încă o mare parte din lume consideră asistentul de parcare un accesoriu sau o caracteristică redundantă a unui autovehicul. Din această cauză multe locuri de parcare pot rămâne nefolosite într-un oraș aglomerat. Acest lucru nu face decat să contribuie la agravarea problemei umplerii orașelor de mașini. În viziunea mea, orice mașină din viitorul apropiat ar trebui să dispună de un sistem de parcare automatizat în întregime.

1.4 Obiective

Obiectivul de bază al lucrării este studiul, propunerea și dezvoltarea unei soluții, construcția și în final testarea unui sistem de parcare laterală autonom.

Obiectivele specifice:

Studiul algoritmilor similari pentru parcare laterală

Studiul gridului de ocupanță

Studiul planificării traiectoriei de parcare dintr-o mișcare

Implementarea unui grid de ocupanță potrivit situației

Dezvoltarea unui algoritm de identificare a locului de parcare

Implementarea unui algoritm cu scopul coordonării mașinii pentru a parca

Testarea robotului în diverse cazuri

1.5 Structura lucrării

Capitolul 1 – în acest capitol se prezintă noțiunile generale, stadiul actual al tehnologiei parcării autonome precum și avantajele acesteia.

Capitolul 2 – Stadiul actual al lucrării: Acest capitol are în vedere studiul algoritmilor și a sistemelor de percepție a mediului folosite în sistemele autonome de parcare.

Sisteme de percepție – acest subcapitol prezintă, în mod generalizat, cele mai des utilizate sisteme pentru percepția mediului în autovehiculele autonome.

Algoritmi similari – în acest subcapitol se prezintă algoritmul fuzzy PD+I, folosit pentru parcarea laterală.

Gridul de ocupanță – în acest subcapitol este descris gridul de ocupanță, împreună cu avantajele si dezavantajele utilizării unui astfel de algoritm.

Modelul Ackermann – acest subcapitol descrie, pe scurt, modelul geometric Ackermann, de care automodelul din proiect se folosește.

Capitolul 3 – Sistem pentru parcare autonomă a unei replici de mașină

Replica mașinii – în acest subcapitol are loc o prezentare generalizată a automodelului utilizat în proiect.

Fuziunea de date – acest subcapitol are în vedere prezentarea felului în care datele primite de la senzori sunt prelucrate, cu scopul de a genera o hartă a mediului interpretabilă de robot.

Grid de ocupanță pentru furnizarea informației de la senzori – în acest subcapitol este descris gridul de ocupanță folosit de robot.

Actualizarea informației în grid – acest subcapitol prezintă felul în care informația este actualizată în timp real.

Planificarea traiectoriei pentru parcare – în acest subcapitol sunt prezentate regulile de generare a traiectoriei pentru parcarea laterală.

Capitolul 4: Rezultate experimentale

Construcția – acest subcapitol descrie construcția automodelului, cele 5 sisteme și piesele asociate acestora.

Testarea gridului, cazul static – în acest subcapitol este prezentat cazul în care nu se consideră timpul ca variabilă.

Testarea gridului, cazul 1 – în acest subcapitol se prezintă rezultatele afișate în urma detecției unui obstacol de către robot.

2. Parcarea autonomă

2.1 Algoritmi similari

Controlerele fuzzy sunt raspândit folosite pentru parcarea autonomă. Un sistem de acest fel are următoarele etape: căutarea locului, controlul virajului și urmărirea traiectoriei. Vehiculul urmează un drum generat de o regulă geometrică, viteza este estimată folosind senzorii de distanță ca intrare a controlerului fuzzy. Controlerele fuzzy au fost cu succes folosite în rezolvarea diverselor sarcini ale roboților mobili. Acest exemplu foloseste un controler fuzzy PD+I pentru urmarea traiectoriei, cu funcțiile de apartenență bazate pe experiența șoferilor reali. [3]

Planificarea traiectoriei

Designul traiectoriei constă în trei segmente: două curbe identice conectate într-un punct de schimbare și un segment drept scurt pentru a menține vehiculul în mijlocul locului de parcare. Unghiul de bracare își schimbă direcția doar în joncțiunea celor două arce de cerc, și depinde de raza arcelor (Fig 1.1).

Fig. 1.1 Abordarea geometrică a manevrei de parcare

Drumul dorit este descris de 4 puncte: (A,B,C,D), care sunt componente ale celor trei segmente, liniile curbe AB,BC și linia dreaptă CD. fig 5. Cele două linii curbe, AB și BC, au lungimea S și unghiul α egal. Prin urmare, etapa de planificare a traiectoriei are ca scop calculul segmentului P ce reprezintă întregul drum pe care robotul controlat trebuie să-l urmeze pentru a parca corect.

(1)

Fig.1.2. Traiectoria propusă pentru parcarea laterală

Segmentele AB,BC si CD formează traiectoria întreagă pentru parcarea paralelă a unei mașini autonome. Primele două segmente sunt parcuse cu spatele în timp ce ultimul este parcurs cu fața.

Algoritmul pentru obținerea drumului complet P:

Intrări: unghiul de intrare φ, ampatament L, lățimea robotului W, distanța dintre axul din spate și bara de protectie p, punctele inițiale Xs, Ys, și distanța minimă xmin si ymin.

Fig. 1.3. Componentele traiectoriei de parcare.

Ieșiri: întregul drum P

1. Calculul distanței R:

(1.1)

2. Găsirea punctului de intersecție YT:

(1.2)

3. Calculul unghiului de deschidere α:

(1.3)

4. Găsirea punctului de intersecție XT folosind relația:

(1.4)

5. Calculul lungimii spațiului de parcare Mmin folosind:

(1.5)

6. Găsirea coordonatei XG utilizând:

(1.6)

7. Calculul coordonatei YG utilizând:

(1.7)

8. YF este egal cu YG YF=YG

Calculul lui XF utilizând

(1.8)

9. Calculul întregului drum P:

(1.9)

Strategia de control:

Strategia de control pentru rezolvarea problemei urmăririi traiectoriei este utilizarea unui controller Fuzzy PD+I. Obiectivul sistemului Fuzzy PD+I este de a reduce diferența dintre drumul dorit P și poziția actuală prin reglarea unghiului de bracare a roților robotului (fig 1.4 ). Senzorul care masoară poziția vehiculului este un odometru.

Fig. 1.4 Controler Fuzzy PD+I propus pentru urmărirea traiectoriei.

Traiectoria generată cu unghiul de bracare dorit este discretizată, astfel impunând poziția dorită P(φ) la orice unghi de bracare φ. Traductorul de rotație măsoară poziția actuală O(φ), și, în cele din urmă se calculează eroarea dintre cele două e(φ)=p(φ)-O(φ). Controlul obiectiv al sistemului considerand timpul poate fi exprimat ca: (1.11)

Eroarea e(φ ) este înmulțită cu KP și derivata erorii cu KD. Aceste rezultate reprezintă intrările pentru sistemul de inferență Fuzzy. Intrările pentru controlerul PD+I Fuzzy sunt Ep, ED, și EI; Iar ieșirea este unghiul de bracare U(φ).(Fig 1.5)

Din moment ce ieșirea sistemului de inferență Fuzzy este corecția brută a unghiului de bracare U(φ), integrala erorii Σe(φ) este adunată și înmulțită cu factorul de scalare variabil KU, acesta fiind:

(1.12)

Fig.1.5 PD Fuzzy pentru urmărirea traiectoriei

Designul sistemului de inferență:

Sistemul conține două variabile de intrare, eroarea (e) înmulțită cu KP, și derivata erorii cu KD(Ep,ED, respectiv). Fiecărei variabile de intrare îi sunt atribuite patru variabile lingviistice: NB, N, Z, P și PB. Valorile de intrare sunt măsurate în centimetri. Pentru variabila de ieșire u, sunt patru funcții de apartenență: BI, I, Z, D și BD(Fig.1.7). Scopul acestor funcții de apartenență este corectarea poziției robotului în funcție de poziția actuală a punctului de referință. Universul de discurs al ieșirii este măsurat în radiani.

Fig. 1.6. Funcția de apartenență pentru eroarea EP

Fig. 1.7. Funcția de apartenență pentru eroarea derivativă ED

Fig. 1.8. Funcția de apartenență pentru variabila u.

Bazele de reguli fuzzy din tabelul găsit în fig. 1.9. au fost create pentru a stabili valoarea corecției unghiului de bracare în funcție de comportamentul erorii în timpul manevrei de parcare.

Fig. 1.9. Baza de reguli Fuzzy

2.2 Sisteme de percepție

Sistemele de percepție au rolul de extragere a informației din mediu, pentru procesarea și interpretarea ulterioară de către calculatorul robotului.

Tipuri de sisteme de percepție:

Sisteme Lidar

Lidar ( Light Detection And Ranging) este o tehnologie ce se folosește de un fascicul laser pentru măsurarea distanței până la un obiect. Din cauza că utilizează lumina ca mijloc de măsurare, este capabil să execute până la 1.5 milioane de citiri pe secundă. Datorit preciziei înalte cât și a vitezei ridicate, aceasta tehnologie a fost adoptată de vehiculele autonome iîn scurt timp. [4]

În domeniul roboților autonomi, sistemele Lidar sunt deobicei montate pe o platformă rotativă, cu scopul de a executa o scanare completa la 360 ° in jurul său, procedeu numit sweep scan în limba engleză.

Fig. 2.1. Senzor Lidar rotativ

Milioanele de date acumulate de la senzor formează un nor de puncte. Prin suprapunerea mai multor citiri se formeaă obiecte de forme recunoscute. Obiectele scanate sunt identificate, după care le sunt alocate cate un context de prezicere a următoarei mișcari. De exemplu, un vehicul se poate deplasa în directia față-spate cu viteze mari, dar nu și în lateralele sale. În același timp, un pieton se poate deplasa în orice direcție, cu o viteză relativ mică.[5]

Fig. 2.2 Modul de percepție și interpretare a datelor de către un sistem Lidar

Prin acest procedeu, sistemul lidar distinge mediul în timp real și permite sistemelor de asistență pentru șofer să faca sute de decizii amănunțite pe minut.

Spre deosebire de cameră, lidar este mult mai precis, deoarece laserul nu este influențat de umbre, lumina soarelui sau luminile mașinilor din sensul opus.

Cu toate că acesti senzori dispun de o viteză mare de măsurare, acest factor este încetinit de alți parametri precum viteza de rotație a motorului pe care sunt atașați sau puterea de procesare a calculatorului. Un alt dezavantaj al sistemelor lidar este costul ridicat, precum și dificultatea în implementarea lor.[6][7]

Sistemele radar

Radarul este un sistem de detecție ce se folosește de undele radio pentru a determina distanța, unghiul sau viteza unui obiect. În conducerea autonomă, sistemul radar, deobicei, ajută autovehiculul la detecția obiectelor din punctele moarte, frânare de urgență, avertizare înainte de impact lateral, sau pentru cruise control adaptiv.[8][9]

Fig. 2.3. Măsurile de siguranță oferite de sistemele radar.

Camera digitală

Camerele digitale, în conducerea autonomă, funcționează în mod similar cu vederea umană și folosesc tehnologie similară cu camerele digitale din viața de zi cu zi.

Camerele sunt capabile să capteze informații cruciale conducerii, cum ar fi marcajele rutiere sau indicatoarele rutiere. Acest fapt pune camerele în avantaj față de celelalte sisteme de detecție folosite în vehiculele autonome, deoarece abilitatea de a distinge culorile și de a citi indicatoarele va permite mașinilor să navigheze fără intervenția șoferului. Camerele, deasemenea, au un avantaj mare atât pentru consumator cât și pentru producător: prețul redus.[10]

Spre deosebire de radar și lidar, camerele au ca dată de ieșire o imagine, ce trebuie procesată mai departe de catre un calculator pentru localizarea și clasificarea obiectelor din imaginea captată.

Fig. 2.4. Modul de percepție al mediului într-un sistem de vedere artificială

Un posibil dezavantaj al camerelor este următorul: raza de acțiune a camerelor nu este foarte mare (cca. 0-120m), prin urmare conducerea la viteze mari nu poate fi anticipată întotdeauna corect. În plus, algoritmii camerelor necesită îmbunătațiri deoarece, în prezent, un pieton este recunoscut în doar 95% din cazuri.[11] Cu toate acestea, cel mai mare dezavantaj al camerelor rămâne imposibilitatea acestora de a funcționa pe timp de noapte, sau în medii slab iluminate.

Sistemele cu senzori ultrasonici:

Sistemele de acest tip se bazează pe senzori ultrasonici pentru măsurarea distanței până la un obiect. Pot include și ajutor vizual precum LED-uri sau afișaje LCD pentru indicarea distanței. Vehiculul poate include o pictogramă a sa pe ecranul bordului, cu o reprezentare a obiectelor din apropiere ca blocuri colorate. [12]

Fig. 2.5. Asistentul de parcare reprezentat pe afișajul LCD din bord

În conducerea autonomă, senzorii ultrasonici sunt utilizați pentru detecția obstacolelor din vecinătatea mașinii. Au un rol important în parcarea autonomă. Momentan senzorii ultrasonici pot fi folosiți doar la viteze foarte mici. Deoarece acest tip de sisteme se bazează pe reflectia undelor sonore, există o posibilitate ca acesta să nu detecteze obiectele insuficient de mari pentru a reflecta sunetul. Deasemenea un obiect cu proprietatea absorpției sunetului ridicată poate fi detectat mai greu. [13]

Pentru a crește probabilitatea de detecție a obstacolului, de regulă, se adaugă mai mulți senzori.

Fig.2.6. Senzori ultrasonici atașați unei bare de protecție din spate

2.3 Gridul de ocupanță

Pentru planificarea traiectoriei este recomandată cunoașterea poziției robotului în mediul înconjurător. Din acest motiv automodelul folosește un grid de ocupanță.[14]

Gridul de ocupanță este un instrument popular pentru reprezentarea virtuală a mediilor înconjurătoare ale roboților mobili / vehiculelor inteligente.

Algoritmul cu grid de ocupanță reprezintă harta mediului înconjurător discretizată în celule binare egal distanțate, fiecare reprezentând prezența unui obstacol în acel mediu. Informațiile despre mediu pot fi colectate de la senzori în timp real sau pot fi încărcate din cunoștințele anterioare. Algoritmii de tip grid de ocupanță calculează estimările aproximative posterioare pentru aceste variabile aleatoare. [15]

Un grid de ocupanță se folosește de valori booleene pentru reprezentarea spațiului, unde o valoare TRUE reprezintă un obstacol iar o valoare FALSE reprezintă spațiul liber. Prin acest procedeu robotul decide dacă se poate deplasa prin spațiul respectiv. Sunt utilizate în special în aplicațiile în care dimensiunea memoriei este un factor important. Cele mai comune tipuri de hărți ale rețelei de ocupare sunt hărțile 2D care descriu o secțiune a lumii 3d.

Fig. 2.7. Exemplu de reprezentare al unui grid de ocupanță

Pentru crearea unei hărți de ocupanță este necesară determinarea probabilitații ocupaței fiecărei dintre celule. Se presupune că celulele gridului sunt independente. Cu toate că acest lucru nu va reprezenta cu exactitate spațiul înconjurator, simplifică cu mult algoritmul fără a crește erorile semnificativ. Rezultatul, probabilitatea unei hărți m, poate fi factorizat într-un produs al probabiliăților individuale ale celulelor. Harta depinde de istoricul locațiilor robotului, xt ={x0, …, xt}, și de citirile senzorilor la fiecare locație din traiectorie, zt.

(1.1)

Probabilitatea unei celule individuale (1.1) se poate determina cu ușurință în cazul în care poziția robotului și citirile senzorilor sunt cunoscute, întrucat robotul observă celula ca fiind ocupată sau liberă. Deoarece probabilitatea este determinată de întregul istoric al robotului, toate aceste variabile trebuie luate în considerare. Algoritmul de mapare deobicei construiește probabilitățile celulelor iterativ, considerând fiecare {xt,zt} din momentul t=0 până la cea mai recentă citire. Deși aceste citiri pot fi făcute în orice ordine, procesarea iterativă are cel mai mult sens, permițând astfel citirilor ulterioare să fie adăugate.

Continuând iterativ, celulele hărții vor fi actualizate conform poziției și citirilor din senzori. Desigur, ar fi nevoie de o putere de procesare considerabilă pentru a actualiza toată harta la fiecare pas, dar acest lucru este inutil. Doar celulele care sunt observate de robot trebuie actualizate.

Maparea cu grid de ocupanță actualizează harta conform citirilor senzorilor într-o locație astfel încat, odată cu acumularea informației, harta este augmentată. Desigur, succesul algoritmului depinde de precizia citirii locației xt.

Posibile limitări ale roboților ce se folosesc de acest algoritm este aceea că, în maparea cu grid de ocupanță o celulă poate avea doar două stări: plină sau goală. Cu toate acestea, în unele situații ar face mai mult sens umplerea parțială a unei celule. Acest lucru se poate întâmpla când obstacolele ce umple celulele au caracteristici speciale, sau dimensiuni neglijabile. Gridurile de ocupanță ar putea avea dificultăți în detectarea obstacolelor înguste. O posibilă soluție a acestei probleme ar fi implementarea unei măsuratori continue ce calculează densitatea sau probabilitatea ca undă de sunet să treaca prin obstacol, făra a se mai reflecta înapoi.[16]

2.4 Modelul Ackermann

Geometria Ackermann este un aranjament geometric de legături în sistemul de direcție al unei mașini sau a unui vehicul conceput cu scopul de a asigura alunecarea minimă a roților în timpul virajului, de a asigura control simetric pentru virajele în ambele directii, de a menține unghiuri de presiune favorabile în cuple și de a evita interferențele dintre părțile în mișcare ale mecanismului și corpul vehiculului.

Fig. 2.8. Geometria Ackermann, centrul instantaneu de rotație

Soluția geometrică pentru problema alunecării roților este ca toate roțile să aibă axele dispuse ca raze de cercuri cu un punct central comun, numit centru instantaneu de rotație sau centrul cercului de viraj. Deoarace roțile din spate sunt fixe, acest punct trebuie să se afle pe o linie extinsă de pe axa din spate. Intersectarea axelor roților din față pe această linie necesită, de asemenea, ca roata din fața să fie bracată, atunci când este direcționată, într-un unghi mai mare decât roata din afară.

În antiteză cu metoda clasică unde fiecare roată se rotește în jurul unui pivot comun, fiecărei dintre roți îi este atribuit un pivot propriu. Cu toate că acest aranjament este mai complex, îmbunătațeste controlabilitatea prin evitarea perturbațiilor datorate variației suprafeței drumului, deasemenea reducând cu mult vibrațiile din cuple. Legătura dintre butuci pivotează cele două roți împreună, iar prin aranjarea precisă a dimensiunilor de legătură, se aproximează geometria Ackermann. Acest lucru s-a realizat prin întocmirea bieletei de direcție mai scurtă decât bieleta axului, astfel încat între cele doua roți să apara o ușoară divergență în față, cu scopul ca acestea să fie mai apropiate în spate decât în față(toe out). Pe măsură ce volanul se mișcă, roțile se brachează conform modelului Ackermann, roata din interiorul virajului fiind bracată mai mult decât cea din exterior.

O aproximare simplă a geometriei Ackermann ideală poate fi generată prin deplasarea pivoților de directie spre interior, astfel încat să se găsească pe o linie trasata între pivoții de direcție și centrul axei din spate. Punctele de pivotare sunt îmbinate printr-o bara rigidă numită bieletă de direcție care poate fi, de asemenea, parte a mecanismului de direcție, de exemplu sub formă de cremalieră și pinioane. Geometria Ackermann ideală permite ca, la orice unghi de direcție, centrul instantaneu de rotație să fie în coincident cu punctul central al tuturor cercurilor trasate de roți. Acest lucru poate fi dificil de realizat în practica cu legaturi simple, fapt ce îi provoaca pe proiectanți să analizeze sistemele de direcție pe întreaga gamă de unghiuri de direcție.

Fig. 2.9. Aproximare simplificată pentru proiectarea geometriei Ackermann

Mașinile moderne nu folosesc geometria Ackermann ideală, deoarece ignoră efecte dinamice importante, dar principiul este aplicabil pentru virajele executate cu viteză redusă. Unele mașini de curse utilizează o geometrie Ackermann inversă pentru a compensa diferența mare dintre unghiul de alunecare dintre interiorul și exteriorul anvelopelor de față, în timp ce virează la viteze mari. Utilizarea unei astfel de geometrii ajută la reducerea temperaturii pneurilor în timpul rulării la viteză mare, dar compromite performanțele virajelor executate cu viteză redusă. [17]

3. Sistem pentru parcare autonomă a unei replici de mașină

3.1 Replica mașinii

Deplasarea robotului în spațiu este asigurată de cele două motoare cu reductor de pe puntea din spate. De asemenea, pentru conștientizarea deplasării în spațiu, robotul se folosește de traductorul de rotație (encoder). În vederea bracării roților, elementul conducător al mecanismului de direcție este conectat în mod direct la accesoriul de prindere al servomotorului. Pentru percepția mediului, automodelul este echipat cu cinci senzori ultrasonici dispuși uniform pe jumătatea dreaptă a șasiului.

Fig. 3.1 Replica mașinii

În care:

Servomotor – servomotor de curent continuu

M.R. – Motor de curent continuu cu reductor

Senzor – Senzor ultrasonic

TR – Traductor de rotație

3.2 Reprezentarea virtuală a mediului din jurul mașinii în grid

Dat fiind faptul că senzorul ultrasonic returnează o distanță sub forma de un număr real, iar gridul de ocupanță folosit de robot este bidimensional, datele primite trebuie prelucrate pentru a face posibilă popularea gridului cu celule de valoarea TRUE. Acest lucru este realizabil prin descompunerea distanței într-o matrice de două componente: pe axa X și pe axa Y.

Calculul pentru aducerea distanțelor într-un singur punct

Datorită faptului că cei 5 senzori sunt dispuși în poziții diferite, se recomandă aducerea lor într-un punct comun O(0,0) al sistemului de coordonate al robotului.

Fig. 3.2 Reprezentarea principiului de calcul a distanței

În care:

Xs –Componenta pe axa x a senzorului

Ys –Componenta pe axa y a senzorului

– unghiul de orientare al senzorului

dist – distanța măsurată de senzor

Utilizând relații trigonometrice de bază, rezultă următoarea formulă generală pentru un senzor oarecare S:

(3.1)

Considerând pozițiile celor 5 senzori:

Fig. 3.3 Dispunerea senzorilor în funcție de sistemul de coordonate al robotului

Din fig. 3.3 rezultă următoarele matrici pentru distanța fiecărui senzor Sn în particular:

(3.2)

(3.3)

(3.4)

(3.5)

(3.6)

în care: dist1…5 – distanța măsurată în senzorul 1…5

3.3 Grid de ocupanță pentru furnizarea informației de la senzori

Gridul utilizat este salvat în memoria robotului sub forma de structură de date. Constă într-o matrice de dimensiunea 20×20 cu rezoluția de 5cm. Din acestea rezultă că gridul reprezintă harta mediului pe o arie de 1 m2. Numerotarea celulelor gridului începe din colțul superior din stânga.

Fig. 3.4 Convenția de numerotare a gridului

Luând în considerare dimensiunile robotului de 23x18cm, o rezoluție a gridului de 5 cm este suficientă pentru aproximarea mediului în scopul căutării unui loc disponibil de parcare, fără umplerea memoriei microcontrolerului în mod inutil.

Fig. 3.5 Celulă de 25cm2 în comparație cu dimensiunile robotului

O celulă reprezintă 5 cm2 din mediul înconjurător și are următoarea proprietate:

Stare – proprietate de tipul boolean, căreia îi este atribuită valoarea FALSE în momentul pornirii programului, devine TRUE în momentul în care apare un obstacol la distanța corespunzătoare celulei.

Luăm de exemplu următorul caz unidimensional cu rezoluția gridului egală cu 5 cm. Orice valoare din intervalul [10;15] va fi mapată indexului 3.

Fig. 3.6. Tratarea măsurarii distanței în grid. Exemplu unidimensional

Din figura 3.6. rezultă următoarea relație de calcul a indexului distanței în grid:

(3.7)

În care: i – indexul gridului

X – distanța măsurată de senzor

r – rezoluția gridului

Funcția ceiling (ceil) mapează x cu cel mai mic numar întreg mai mare sau egal decat x. [18]

Notat ceil(x) = [x] (3.8)

De exemplu: ceil(2.4) = [2.4] = 3 (3.9)

3.4 Fuziunea datelor primite de la sistemul de odometrie

Sistemul de odometrie returnează un număr de impulsuri pentru fiecare rotație completă a roții robotului. Cunoscând raza roții robotului și numărul de impulsuri, tansformarea acestora în distanță parcursă [cm] se realizează cu următoarele relații:

Distanța parcursă de o revoluție completă a roții este egală cu circumferința roții:

(3.10)

În care: r – raza roții [cm]

În continuare, prin aplicarea regulii de 3 simplă se află câte impulsuri sunt necesare pentru un centimetru parcurs de robot:

(3.11)

(3.12)

În care: n – numărul de impulsuri pentru o revoluție completa a roții

C – circumferința roții

x – numărul de impulsuri necesare pentru 1 cm parcurs

Calculul pentru automodel:

Robotul este echipat cu roți de raza r = 3 cm, prin urmare, circumferința roții robotului este de:

(3.13)

Sistemul de odometrie al robotului generează 104 impulsuri pentru o rotație completă:

(3.14)

În final, se calculează necunoscuta (3.15), prin urmare, impulsuri sunt generate la parcurgerea fiecărui centimetru.

3.5 Actualizarea informației în grid

Popularea celulelor gridului:

Robotul este poziționat în centrul gridului, pe linia a 10-a, coloana a10-a. Harta construită se va deplasa în jurul robotului. Celulele gridului se actualizează pe măsură ce robotul avansează înainte. De asemenea, celulele sunt ocupate după următoarea regulă:

Fie matricea grid[20][20]: cunoscând distanța de la senzori descompusă în două componente (pe axa x și pe axa y) și considerând gridul drept un sistem de coordonate, se aplică următoarea regulă pentru umplerea unei celule:

Dacă distanța citită ≤ 50 cm, starea celulei din poziția

devine TRUE. (3.15)

În care:

Sx – poziția pe axa X a senzorului față de sistemul de coordonate al robotului

Sy – poziția pe axa Y a senzorului față de sistemul de coordonate al robotului

dist – distanța măsurată de senzor– unghiul de orientare al senzorului în raport cu sistemul de coordonate al robotului

Semnul din fața fracțiilor diferă în funcție de orientarea senzorului, dar și după convenția de numerotare a gridului.

Fig. 3.7 Exemplu de ocupare a celulelor în grid, a – pentru senzorul 1; b – pentru senzorul 2; c – pentru senzorul 3; d – pentru senzorul 4; e –toți senzorii in același grid, f – pentru senzorul 5;

În fig. 3.7e este prezentat un exemplu de ocupare al celulelor prin fuziunea datelor primite de la toți senzorii în același program.

Fie matricea gridului de ocupanță g[20][20]. Robotul se află în centru, pe poziția [10][10] din grid (linia 10, coloana 10). În figura 3.8, se reamintește numerotarea senzorilor:

Fig. 3.8 Numerotarea senzorilor

Din relația (3.15) rezultă următoarele reguli de umplere pentru fiecare senzor în parte:

Senzorul 1:

Dacă distanța din senzorul 1 ≤ 50, celula din poziția:

(3.16)

Senzorul 2:

Dacă distanța din senzorul 2 ≤ 50, celula din poziția:

(3.17)

Senzorul 3:

Dacă distanța din senzorul 3 ≤ 50, celula din poziția:

(3.18)

Senzorul 4:

Dacă distanța din senzorul 4 ≤ 50, celula din poziția:

(3.19)

Senzorul 5:

Dacă distanța din senzorul 5 ≤ 50, atunci celula din poziția:

(3.20)

În care:

dist – distanța returnată de senzorul respectiv.

– operator de atribuire

Interschimbarea celulelor gridului conform deplasării robotului în spațiu:

Harta necesită actualizare la fiecare schimbare a poziției robotului în mediu. Având în vedere acestea, matricea gridului de ocupanță trebuie mutată cu o linie, în sus, sau în jos, corespunzător direcției în care robotul se îndreaptă. De asemenea, rezoluția gridului de 5 centimetri trebuie luată în considerare la fiecare avans.

Exemplu: În fig. 3.9a, se presupun următoarele obstacole detectate și afișate în grid:

Fig. 3.9. Exemplu de mutare a matricii

Pe măsură ce robotul înaintează cu 15 centimetri, gridul se actualizează prin mutarea matricei cu 3 linii în jos (fig 3.1b).

Pentru mutarea matricii, se folosește următoarea regulă doar pentru elementele cu valoarea TRUE a matricii:

Fie matricea :

Pentru mutarea în sus cu o linie se aplică următoarea operație pe celule:

Dacă starea celulei este TRUE, atunci (3.21)

Pentru mutarea în jos cu o linie se aplică următoarea operație pe celule:

Dacă starea celulei este TRUE, atunci (3.22)

Toate celulele de pe linia nou apărută după mutarea matricii sunt inițializate cu valoarea FALSE.

3.6 Algoritm pentru identificarea locului de parcare

Algoritmul pentru identificarea locului de parcare are ca scop căutarea unui spațiu liber de 30 cm, în mediul înconjurător. Această condiție este verificată prin căutarea a 3 coloane cu câte 6 celule libere (cu valoarea stării FALSE), adiacent aliniate vertical. Programul verifică dacă condiția următoare (3.31)este adevărată la fiecare 5 cm parcurși:

(3.31)

În care:

g12,12…g12,17 reprezintă celulele de pe pozițiile menționate din matricea g.

∧ reprezintă operatorul logic ȘI (AND).

TRUE reprezintă valoarea adevărului.

Stare se referă la starea celulei (TRUE/FALSE, ocupat/liber)

Fig. 3.13. Exemplu de condiție validată

Fig. 3.14. Exemplu de condiție nevalidată

Odată validată condiția (3.31), robotul începe execuția manevrei de parcare laterală.

3.7 Planificarea traiectoriei pentru parcare

Traiectoria parcării în acest proiect este proiectată în așa fel încat să imite traiectoria unui șofer, luând în calcul în același timp și păstrarea simplității.

Conform acestei manevre, roțile mașinii se brachează din poziția de maxim stânga în maxim dreapta în punctul unde cele două cercuri se ating. Prin conectarea acestor două arce de cerc se formează o traiectorie în formă de S. Planificarea traseului în formă de s este reprezentat în figura 3.9.

Fig. 3.10. Strategia traiectoriei pentru parcare laterală dintr-o singură mișcare

Calculul poziției inițiale longitudinale și a pozitiei de viraj în funcție de poziția inițială laterală

Odată găsit spațiul liber de parcare, robotul se deplasează în față până când se poziționează paralel față de mașina din fața locului liber. În același timp, robotul măsoară distanța laterală până la această mașină(Δy). Odată masurată poziția de început xs și punctul de viraj Pt în conformitate cu distanța Δy, manevra de parcare poate începe.

În figura 3.9 este prezentată diagrama informațiilor geometrice pentru găsirea poziției de pornire longitudinală xs și coordonata xt a punctului Pt.

Fig. 3.11. Calculul geometric al poziției inițiale și finale

Pentru început, robotul se va deplasa din punctul xi către punctul xs, în continuare începe bracarea roților la maxim către dreapta în timp ce se deplasează cu spatele înspre punctul Pt. Odată atins acest punct roțile se vor braca la maxim către stânga, robotul păstrându-și sensul de deplasare cu spatele. Prin efectuarea acestor manevre robotul intră în spațiul de parcare liber. Poziția finală a robotului va fi egală cu Lmin-p.

Centrul instantaneu de rotație C1(xf,yf) este în permanență perpendicular cu poziția finală a parcării. În mod similar, centrul instantaneu de rotație C2 este în permanență perpendicular cu poziția inițială. Razele ambelor cercuri R sunt egale, având arcele conectate printr-un punct comun. Centrul cercului C1 se află într-o poziție fixă la sfârșitul manevrei în timp ce cercul C2 se mișcă de-a lungul arcului cercului C1 în concordanță cu deplasarea laterală Δy.

Poziția inițială a robotului este calculată cu urmatoarea relație:

xi=Lmin-p+Δx (3.21)

yi= (3.22)

Raza poziției inițiale a cercului cu centrul C1 se calculează cu relația

(3.23)

Poziția inițială și poziția deplasării laterale sunt aceleași:

(3.24)

Raza poziției inițiale cu centrul C1 este:

(3.25)

Poziția inițială longitudinală xs se calculează prin scăderea următoarei ecuație circulare:

(3.26)

Punctul de schimbare a direcției bracării Pt(xt,yt) se calculează cu relația:

(3.27)

(3.28)

Unghiul de bracare a roților β se calculează din punctul tangent al celor două cercuri:

(3.29)

Lungimea arcului pe care robotul o urmează se calculează cu relația:

(3.30)

Automodelul este supus limitei unghiului de bracare a roților: -βmax < β <βmax. În cazul de față, unghiul β maxim posibil pentru mecanismul de direcție este de β = 35ș. Când viteza v este constantă și unghiul de bracare β este fix, traiectoria vehiculului este aproape un cerc. Raza de viraj a cercului depinde de unghiul β. Prin urmare unghiul de direcție va influența raza minimă a cercului.

Planificarea traseului de siguranță

O posibilă problemă a planificării traiectoriei este siguranța drumului. În primul rând deoarece traseul trebuie să ia în considerare geometria vehiculului. Testarea robotului va avea loc într-un mediu cunoscut, singurele obstacole fiind cele două modele dispuse în fața și în spate cu scopul luării în seama probabilitatea de coliziune a robotului cu acestea.

Cercul roșu din fig. 3.12. include o parte din calea bării de protecție din fața a robotului. Conform traseului galben din fig. 3.12, robotul are o probabilitate ridicată de coliziune. Δs este distanța parcursă din momentul în care robotul a găsit locul de parcare pâna la începerea manevrei. Prin deplasarea acestui punct cu d centimetri, în directia longitudinală, traseul manevrei se va schimba astfel încat traseul barei de protecție de față (cercul verde fig. 3.12.) să nu se intersecteze cu mașina parcată.[19]

Fig. 3.12. Reprezentarea traseului optim pentru siguranță

4. Rezultate experimentale

4.1 Construcția

Robotul este construit în așa fel încât comportarea automodelului să imite pe cea a unui autovehicul de dimensiune reală. Dimensiunile robotului sunt de 18 x 23 cm, cu scara de 1:20 (fig 4.2). Roțile robotului au diametrul egal cu 6 cm.

Construcția autovehiculului se împarte în 5 sisteme principale:

Fig. 4.1 Ierarhia sistemelor

În fig. 4.1 este prezentată împărțirea sistemelor în 3 nivele de ierarhie: alimentare, luarea deciziilor și execuția acestora.

Sistemul de alimentare

Sistemul de alimentare furnizează curent electric tuturor sistemelor și subsistemelor. Este alcătuit dintr-un acumulator Li-Po cu 3 celule.

Caracteristici tehnice acumulator Li-Po:

Voltaj nominal: 11,1 V

Tip celule: 3S 1P

Rata de descărcare: 30C (66A)

Dimensiuni: 102x34x20mm

Capacitate: 2200 mAh

Curent de încărcare: 1C (2.2A)

Greutate: 160g

Datorită faptului că microcontrolerul funcționează la tensiuni între 7-12V, alimentarea sistemului de control se realizează prin legătură directă între acumulator și microcontroler. Pentru alimentarea sistemului de percepție cât și a traductorului de rotație s-a folosit un modul AMS1117 coborâtor de tensiune la 5V. De asemenea, alimentarea servomotorului din sistemul de direcție a fost realizată în mod similar cu ajutorul unui modul regulator de tensiune reglabil LM2596, reglat pe valoarea de 7V. Alimentarea sistemului de transmisie se realizează prin legătură directă cu acumulatorul la driverul motoarelor.

Sistemul de control

Sistemul de control are rolul de luare a decizilor prin calcule și condiții impuse în scopul rezolvării problemei. De regulă, în aplicațiile de dimensiuni mici, se folosește un microcontroler. În cadrul acestui proiect s-a folosit un microcontroler de tip Arduino Mega 2560 R3.

Caracteristici tehnice:

Nivel logic: 5V

Tensiune de alimentare: 7V-12V

Intrări/Ieșiri: 54

Intrări/Ieșiri PWM: 15

Intrări/Ieșiri analogice: 16

Memorie flash: 256KB

Frecvența de procesare: 16MHz

Acest tip de microcontroler este ideal pentru proiectele ce necesită un număr mare de pini de comunicație.

Sistemul de percepție

Sistemul de percepție furnizează date despre mediul înconjurător pentru a fi trimise către microcontroler, și ulterior procesate. Este alcătuit din cinci senzori ultrasonici de distanță.

Senzorii utilizați sunt de tip HC-SR04, sunt greu influențați de zgomot, cu o precizie de măsurare de ordinul centimetrilor:

Caracteristici tehnice modul HC-SR04:

Tensiune de alimentare: 5V

Curent consumat: 15mA

Distanța de funcționare: 2cm – 4000 cm

Unghi de măsurare : 15ș

Durata semnal input: 10us

Sistemul de transmisie

Sistemul de transmisie are rolul de a pune în mișcare robotul. Este alcătuit din două motoare cu reductor și o punte H. Motoarele sunt conduse de un modul cu driver de motoare în punte H L298N, de asemenea sunt conectate de șasiul mașinii prin suporți specifici. Axele motoarelor sunt conectate la roți prin cuplaje flexibile. Traductorul de rotație inclus în motoare generează 108 pulsuri pentru o rotație completă. Cele două motoare de pe puntea din spate a robotului sunt de tip 37D de curent continuu.

Caracteristici tehnice motor 37D 1:10:

Raportul reductorului de 1:10

Greutate: 215 [g]

Diametrul axului: 6 [mm]

Viteza motorului: 1500 [rpm]

Sarcina suportată: 1.3 [kg]

Tensiunea de lucru: 7-13 [V]

Puterea: 7 [W]

Motoarele cu reductor, spre deosebire de cele fără, dezvoltă un cuplu mult mai mare. În același timp sunt utile robotului deoarece, datorită reductorului, au o viteză de rotație scăzută, factor ce crește controlabilitatea autovehiculului. În concluzie, un motor cu reductor este alegerea ideală pentru proiectele unde controlul este un factor mai important decât viteza de deplasare a robotului.

Sistemul de direcție

Sistemul de direcție are rolul de a braca roțile de pe puntea din față cu scopul schimbării direcției de deplasare a robotului. Mecanismul de direcție este acționat de un servomotor din micrometal de tip DS3119.

Caracteristici tehnice DS3119.:

Greutate: 56g

Dimensiuni: 40x20x37,5mm

Viteza: 6V – 0.16s, 7.2V – 0.14s

Cuplu în blocaj: 6V – 14kg, 7.4V – 18.0kg

Tensiunea de funcționare: 6-7.2V

Curent consumat: 150mA

Unghi de rotație: 180ș

Numărul de dinți de pe ax: 25

Cu toate că unghiul de rotație al servomotorului este de 180 ș (câte 90ș în fiecare direcție), mecanismul de direcție al automodelului este limitat la unghiul de bracare a roților de 35ș în ambele direcții. Prin urmare unghiurile de bracare βmax și βmin vor fi de 35ș, respectiv -35ș.

Fig. 4.2. Componentele principale ale robotului: 1 – Microcontroler, 2 – Senzor ultrasonic,

3 – Servomotor, 4 – Motoare cu reductor

4.2 Testarea gridului – cazul static

În cazul static, motoarele robotului sunt oprite, prin urmare robotul va detecta obstacolele și le va afișa în grid, fără a se mai ține cont de mutarea matricii și de deplasarea robotului. Distanțele returnate de senzori sunt următoarele:

Senzorul 1: 18 cm

Senzorul 2: 15 cm

Senzorul 3: >50 cm, distanță mai mare decat permite gridul.

Senzorul 4: 26 cm

Senzorul 5: 25 cm

Celulele gridului de pe afișaj se vor popula conform regulilor prezentate în cap. 3.

Fig. 4.3 Cazul static – dispunerea obstacolelor în mediul real

Fig. 4.4 Celulele ocupate în cazul static; roșu – robotul; verde – celule ocupate;

4.3 Testarea gridului – cazul 1

În acest caz robotul se deplasează înainte, cu scopul detectării obstacolelor si afișarea lor in grid. De această dată se ține cont de deplasare, așadar matricea se va actualiza conform rotației motoarelor. Obstacolul prezentat în fig. 4.5. are 22,5 cm lungime, prin urmare în grid se vor ocupa 5 celule.

Fig. 4.5. Testarea gridului – cazul 1. Starea inițială

După înaintarea robotului cu 80 cm, celulele gridului de ocupanță se populează conform obstacolului detectat. (Fig. 4.6)

Fig. 4.6. Testarea gridului – cazul 2. Starea finală

După parcurgerea distanței, gridul de ocupanță se va umple conform figurii 4.7.

Fig. 4.7. Gridul de ocupanță afișat în cazul 2.

4.4 Testarea construcției – testarea traiectoriei

Pentru testarea traiectoriei, robotul este programat să se deplaseze 50 cm înainte, după care să înceapă o manevră de parcare laterală predefinită, asemănătoare figurii 1.2 din capitolul 1.

Fig. 4.8. Testarea traiectoriei de parcare laterală

4.5 Testarea algoritmului pentru identificarea locului de parcare – cazul condiției nevalidate

În acest caz este testat comportamentul robotului în situația în care nu găsește un spațiu liber de parcare. Cu toate că între cele trei obstacole se află două spații libere, acestea sunt insuficient de largi pentru a fi recunoscute drept locuri disponibile de parcare.

Fig. 4.9. Cazul condiției nevalidate – starea inițială

Odată parcursă jumatate din traiectorie, afișajul robotului arată următoarele rezultate prezentate in fig. 4.10. Primul spațiu liber este egal cu 15 cm în lățime, prin urmare în rezultatele gridului vor apărea 3 celule libere, insuficient pentru validarea condiției de căutat spațiu liber.

Fig. 4.10. Cazul condiției nevalidate – rezultatele afișate la jumătatea traiectoriei

Odată trecut pe lângă cel de al treilea obstacol, robotul afișează în grid încă un spațiu liber, egal cu 4 celule goale, sau 21 cm, insuficient de larg pentru validarea condiției. În acest caz robotul se deplasează înainte și continuă căutarea până este oprit din buton.

Fig. 4.11. Cazul condiției nevalidate – rezultatele afișate în poziția finală

4.6 Testarea algoritmului pentru identificarea locului de parcare – cazul condiției validate

În acest caz obstacolele sunt aranjate astfel încât condiția de validare pentru identificarea locului liber de parcare să fie validată. Programul robotului funcționează într-o buclă închisă, prin urmare se va deplasa înainte până când găsește un loc liber. Spațiul dintre obstacole este de 35 cm.

Fig. 4.12. Cazul condiției validate – starea inițială

Fig. 4.13. Cazul condiției validate – robotul detectează spațiul liber

Odată validată condiția, robotul începe manevra de parcare.

Fig. 4.14. Cazul condiției validate – robotul brachează roțile maxim dreapta

În această etapă a manevrei de parcare, robotul se oprește, brachează roțile maxim către dreapta, și începe să se deplaseze cu spatele.

Fig. 4.15. Cazul condiției validate – robotul se oprește și brachează roțile maxim stânga

În această etapă a manevrei de parcare, robotul atinge punctul de joncțiune al celor două arce de cerc, își schimbă unghiul de direcție maxim către stânga, și continuă să se deplaseze cu spatele până când intră în spațiul disponibil.

Fig. 4.16. Cazul condiției validate – robotul se deplasează cu spatele până când intră în spațiul liber

5. Concluzii

5.1 Concluzii generale

În concluzie, o mașină autonomă se poate ghida fără intervenție umană dacă este proiectată și programată corespunzător pentru rezolvarea sarcinii impuse. Cu ajutorul gridului de ocupanță implementat, robotul este capabil să identifice obstacolele statice din mediul în care se află. Prin algoritmul propus de identificare a locului disponibil de parcare, robotul decide dacă spațiul liber este suficient pentru a putea executa manevra de parcare. În cele din urmă, prin urmarea traiectoriei generate, robotul realizează manevra de parcare laterală.

5.2 Contribuții personale

Contribuția personală adusă acestui proiect este adoptarea diverselor mijloace utilizate în domeniu (gridul de ocupanță, reguli de populare a celulelor, reguli de actualizare, generare de traiectorie), îmbinarea lor într-un singur program funcțional, aplicarea și testarea lor. O altă contribuție este concepția algoritmului de căutare al spațiului liber disponibil precum și alegerea dimensiunii gridului adecvată rezolvării problemei, prin experimentare. De asemenea, o notabilă contribuție este implementarea unui vizualizator în timp real al gridului pe un afișaj LCD atașat robotului.

5.3 Posibilități de dezvoltare ulterioară

Pentru extinderea proiectului, se propun următoarele obiective:

Îmbunătațirea algoritmului de fuzionare a datelor prin introducerea probabilităților în gridul de ocupanță. În momentul de față, sistemul de percepție al robotului afișează în mod direct citirile fără a mai fi interpretate probabilistic.

Înlocuirea sistemului de percepție cu un sistem LiDAR pentru o detecție mai precisă a obstacolelor. Momentan, sistemul de percepție se folosește de 5 senzori, ceea ce oferă un mare dezavantaj datorită așa ziselor unghiuri moarte, în care robotul nu poate detecta prezența obstacolelor.

Bibliografie

[1] Autonomous car

https://en.wikipedia.org/wiki/Autonomous_car

[2] Soe Yu Maung Maunga, Yin Yin Ayeb, Nu Nu Winc, “Autonomous Parallel Parking of a Car-Like Mobile Robot with Geometric Path Planning”pp. 23-24

[3] Enrique Ballinas, Oscar Montiel, Oscar Castillo, Yoshio Rubio, Luis T. Aguilar "Automatic Parallel Parking Algorithm for a Car-like Robot using Fuzzy PD+I Control" pp. 2-7

[4] LIDAR https://en.wikipedia.org/wiki/Lidar

[5] An Introduction to LIDAR: The Key Self-Driving Car Sensor https://news.voyage.auto/an-introduction-to-lidar-the-key-self-driving-car-sensor-a7e405590cff

[6] 8 Ways Lidar Brings Mobile Robots to Life https://velodynelidar.com/newsroom/8-ways-lidar-brings-mobile-robots-to-life/

[7] What is Lidar and How Does it Help Robots See?

https://www.roboticsbusinessreview.com/rbr/what_is_lidar_and_how_does_it_help_robots_see/

[8] New Radar Applications Driven by Technology

https://www.microwavejournal.com/articles/print/27921-pasternack-radar-applications

[9] Radar https://en.wikipedia.org/wiki/Radar

[10] Cameras: The Eyes of Autonomous Vehicles:

https://sites.tufts.edu/jquinn/2017/10/10/cameras-the-eyes-of-autonomous-vehicles/

[11] Here's How The Sensors in Autonomous Cars Work:

https://www.thedrive.com/tech/8657/heres-how-the-sensors-in-autonomous-cars-work

[12] Ultrasonic systems

https://en.wikipedia.org/wiki/Parking_sensor#Ultrasonic_systems

[13] An introduction to ultrasonic sensors for vehicle parking

http://www.newelectronics.co.uk/electronics-technology/an-introduction-to-ultrasonic-sensors-for-vehicle-parking/24966/

[14] Occupancy grid mapping https://en.wikipedia.org/wiki/Occupancy_grid_mapping

[15] Occupancy Grids https://www.mathworks.com/help/robotics/ug/occupancy-grids.html

[16] Statistical Techniques in Robotics (16-831, F10) Occupancy Maps

[17] Ackermann steering geometry https://en.wikipedia.org/wiki/Ackermann_steering_geometry

[18] Handling Range Sensor https://www.coursera.org/lecture/robotics-learning/3-2-3-handling-range-sensor-1OwaK

[19] Soe Yu Maung Maunga, Yin Yin Ayeb, Nu Nu Winc “Autonomous Parallel Parking of a Car-Like Mobile Robot with Geometric Path Planning” pp. 27-32

Rezumatul lucrării în limba engleză

An autonomous car is a vehicle able to drive itself with little or no human input with the help of environmental perception systems. In addition to these, perception systems are also used across a wide spectrum of applications ranging from raising a vehicle’s safety on the road to even assisting the driver in performing difficult actions, such as parking in narrow spaces.

This project covers the following topics: the study of the already existing parallel parking algorithms, the conception of a new one, implementation of the so called algorithm, the construction of the robot and the testing phase.

The study of the already existing algorithms describes the used algorithms, in order to gain a better understanding of the problem to be solved. The conception topic refers to the creation of all the necessary components for programming an autonomous parallel parking system. Next, the construction matter describes the problem specifically in the robot’s case, considering its dimensions and mechanical limitations. The testing phase takes place in different situations such as the static case, the case in which an available parking space is found, and the case in which one isn’t found.

By implementing an occupancy grid algorithm the robot is able to acknowledge the presence of obstacles in an unknown environment, save the positions of said obstacles in its memory, and update their position accordingly in real time. The free space searching algorithm allows the robot to decide wether it is ready to perform the parking maneuver or not. Finally, with the aid of the trajectory generation algorithm, the robot executes the parking maneuver until it enters the available space.

To conclude, a robot’s behaviour can be completely autonomous if designed and programmed accordingly for executing the given task.

Rezumatul lucrării

Lucrarea acoperă următoarele subiecte: studiul algoritmilor pentru parcare laterală deja existenți, concepția unui algoritm potrivit situației, implementarea lor, construcția și în cele din urmă testarea unui robot de parcare complet autonomă.

Studiul algoritmilor deja existenți are în vedere prezentarea algoritmilor folosiți, cu scopul de a aprofunda înțelegerea problemei de rezolvat. Concepția unui algoritm acoperă crearea tuturor componentelor de program necesare pentru coordonarea unui automodel în vederea efectuării unei parcări autonome. În continuare, subiectul construcției se referă strict la rezolvarea problemei pentru automodelul proiectului, luând în considerare dimensiunile robotului precum și limitările mecanice ale construcției. Testarea comportamentului robotului are loc în mai multe situații: cazul static, cazul în care se găsește un spațiu liber și cazul în care nu se găsește.

Cu ajutorul gridului de ocupanță implementat, robotul este capabil să conștientizeze prezența obstacolelor statice în timp real, să memoreze pozițiile acestora și să le actualizeze conform deplasării în mediu. Prin algoritmul de căutare al spațiului disponibil, robotul poate astfel să detecteze un loc suficient de larg pentru a putea parca. În cele din urmă, robotul execută manevra de parcare ghidat de algoritmul pentru generare a traiectoriei de parcare laterală dintr-o mișcare, astfel intrând în locul liber de parcare.

În concluzie, un robot autonom se poate ghida fără intervenție umană dacă este proiectat și programat corespunzător pentru rezolvarea problemei date.

Similar Posts