Inteligenta Artificiala

  • Uploaded by: Daniel Anton
  • 0
  • 0
  • January 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Inteligenta Artificiala as PDF for free.

More details

  • Words: 4,012
  • Pages: 28
Loading documents preview...
Universitatea din Oradea Facultatea de Inginerie Managerială și Tehnologică Domeniul : Mecatronică Specializarea : Robotică

Proiect Inteligență Artificială

Student : Anton Daniel Melentie Grupa 841 , anul IV

˷2017˷

Argument

Conceptul de Inteligenta Artificiala a aparut in anul 1956, acest vis devenind in ultimii ani realitate, primind contur tot mai mult in orice domeniu . Inteligenta artificiala prin definitie se afirma ca rezolva situatii sau probleme noi pe baza experientei, experienta acumulata pe baza invatarii continue. Inteligenta artificiala a inceput sa ia contur in domeniul informaticii care dezvolta sisteme tehnice pentru rezolvarea problemelor tehnice legate de inteligenta umana. Aceasta inteligenta artificiala se bazeaza pe cunostintele dobandite, ea neavand o idee predominanta care sa o limiteze in activitatea de gandire si dezvoltare a unor noi idei pe baza celor anterioare.

Capitolul 1 Declarare termenului de inteligenta artificiala

Termenul de inteligenta artificiala se intalneste in numeroase domenii cum ar fi : tehnice, medicale, militare, stintifice, dar in ziua de azi ea a inceput sa isi ia contur de la recunoastere si analiza a vocii, pana la cea a imaginilor si totusi si in diferite jocuri precum sah, bridge. Principiul de baza si principalul scop al inteligentei artificiale este de a imita intrutotul creierul uman de la modul in care acesta gandeste, la cel de a raspunde si interactionand pe baza acestor doi factori. Datorita puterii de calcul a masinariilor cu inteligenta artificiala, ele se pot dezvolta foarte rapid neavand limite in ale gandirii. In electronica putem discuta de o retea neuronala artificiala de tip fizic, fiind vorba de o retea, aceasta se prezinta sub forma unor noduri de neuroni, legati intr-un mod oarecare, intre ei. Fiecare neuron avand o multime determinata de intrari si iesiri. Intrarile neuronilor fiind definite mai exact de catre mesaje primite de la o serie de senzori, aceste mesaje fiind prelucrate de catre retelele asociate si mai apoi transmise mai departe. Aceste structuri artificiale incearca sa modeleze creierul uman, retelele de neuroni sunt adaptive, care acumuleaza cunostinte prin intermediul invatarii bazate pe exemple. Retelele neuronale artificiale sunt inspirate din sistemul nervos biologic al omului, deoarece creierul uman poate fi asemanat cu un sistem natural de prelucrare paralela a informatiei distribuite. Unitatea de organizare a creierului uman fiind neuronul, toate intrarile in acesta sunt denumite dendrite, dar avand si iesiri denumite axoni. Axonii se ramifica la nivelul in care neuronii sunt interconectati intre ei formand mai multe grupuri la un loc. Orice impulsuri prezente la intrarile neuronilor, ii determina sa genereze impulsuri si catre ceilalti neuroni din grup cu care sunt conectati. Performantele creierului uman sunt foarte ridicate datorita faptului ca un numar extrem de mare de neuroni functioneaza simultan si prelucreaza o informatie distribuita.

In raport cu sistemul biologic, retelele neuronale se bazeaza pe simplul fapt ca neuronii artificiali sunt interconectati sub forma de retele. Aceste interconectari sunt facute prin conexiuni care au asociate o intensitate si un sens de circulatie a informatiei ce le face foarte rapide in distribuirea informatiei.

Capitolul 2 Neuronii

Neuronii artificiali sunt unitatea functionala a retelei din care fac parte, orice neuron avand un anumit numar de intrari si o singura iesire, aceasta iesire putandu-se lega la intrarile mai multor neuroni. Fiecare intrare ii este asociata un anumit raport care ii precizeaza importanta pe care o poate avea impulsul prezentat de intrarea respectiva a neuronului. Neuronii acestor tipuri de retele neuronale artificiale dispun de intrari si iesiri booleene, conexiunile atat de intrare cat si de iesire ale acestora sunt de doua tipuri: -inhibatoare, daca o intrare primeste semnalul de tip 1 logic, el trece automat in starea inactiva -excitatoare, doar daca la semnalele de intrare se aplica numai conexiunile excitatoare, iar numarul acestora depaseste pragul setat, atunci neuronul devine activ, iar iesirea sa pe 1 logic. Acesti neuroni pot implementa functiile logice simple. Sistemul de retele neuronale artificiale au cel mai important caracter, cel adaptiv, retelele stabilindu-si singure parametrii de functionare prin simplu fapt ca ele pot evolua in urma procesului de antrenament, evolueaza si se autospecializeaza si proiecteaza pe problemele noii specializari pe care va lucra. Acestea sunt capabile in orice domeniu sa produca iesiri corecte ale neuronilor pentru intrari diferite de cele cu care se antrenase anterior, prin simplul fapt ca acestea trebuie sa nu fie foarte diferite. Neuronul artificial este copia simplificata a neuronului biologic, acesta compunanduse din corp, o multime de intrari si o singura iesire.

Fiecare intrarea este importanta, deoarece valoarea sa este multiplicata cu o valoare corespunzatoare denumita pondere. Toate intrarile ponderate sunt insumate, iar aceasta insumare reprezinta iesirea neuronului respectiv care poate sa fie activata . Totul fiind un model construit pe baza semnalelor de intrare in reteaua neuronala, antrenamentul retelei constand doar in primirea de informatii pentru a face multitudinea de rationamente cat mai apropiate de realitate. Aceste computere sunt totusi un hibrid intre reteaua neuronala si tehnologie, deoarece avantajul tehnologiei este de a fi logic si rapid in probleme matematice, totul depinzand de aceasta. De asemenea, calculatorul fiind capabil sa invete din propriile greseli si sa interactioneze cu un utilizator, acesta se foloseste de performantele puse la dispozitia sa la maxim, fiind creat pentru rezolvarea ecuatiilor complexe, procesand baze de date, ca sa-l ajute in proiectarea si producerea a unor noi algoritmi de baza care il vor ajuta in dezvoltarea sa proprie. Inteligenta si informatia neputand fi separate, aceste sisteme informatice, se cladesc in jurul bazelor de date, care le inglobeaza ca fiind pe urma, o competenta adunata , refolosita in diferite situatii.

Capitolul 3 Utilizarea inteligentei artificiale ca si sisteme expert

Aceste sisteme sunt formate din grupuri de programe si informatii specifice, ajutanduse de toate acestea pentru a putea purta un dialog computer-om, in vederea rezolvarii unor probleme de diferite tipuri. Fiecare data primita de la om, computerul incearca sa o adauge unui anumit tip de problema, iar mai apoi venind cu expunerea unei rezolvari. Aceste sisteme expert multiplica inteligenta formalizata a specialistilor, utilizand informatiile extrase din experienta umana, furnizand decizii corespunzatoare nivelului de competenta,informatii si detalii extrase primite din metodele de rationare implementate. Incorporand multe tehnologii diferite, acestea primesc denumirea de sisteme expert, aceste tehnologii fiind cunostintele de baza, mecanisme de interfata si facilitati de explicare. Realizarea acestor masini inteligente sunt determinate si de avantajele si dezavantajele care se afla la baza diferentei dintre om si masina, acestea fiind diferentele semnificative cum ar fi cunoasterea umana perisabila, iar a masinii-permanenta, expertiza umana fiind restransa, iar cea a masinii vasta. Avantajele masinii inteligente fiind rationamentul- consecvent, rezistenta nelimitata, expertiza foarte vasta, gandirea fara moarte. Limitarile masinii inteligente se refera la abilitatile sale de perceptie, rationament la care inteligenta artificiala doar prin deductie genereaza concluzii pe baza cunostintelor furnizate din mediul exterior, ea neputand genera singura noi cunostinte. Conceperea si dezvoltarea sistemelor inteligente necesita cunostinte si experienta complexa in toate domeniile atat de la proiectare pana la programare, cat si electronica, mecatronica. Pentru ca inteligenta artificiala sa poata sa ajunga sa aibe capacitatea de distinctie clara a notiunilor de sarcina, de cunoastere a problemelor dintr-un anumit domeniu, de a putea rezolva problemele, precum si integrarea unui model concceptual structurat foarte bine, e nevoie de o baza necesara pentru dezvoltarea unui sistem inteligent.

O structura a unui astfel de sistem expert care inglobeaza o colectie de cunostinte relevante despre un anumit domeniu este formata din : -baza generala de cunostinte ; aici intervin regulile referitoare la operatii care vor fi efectuate pe baza conostintelor continute in baza de date specifica cazului. -datele unui caz specific ; aici intervin reguli care vor pune accent doar pe informatiile din domeniul strict studiat. Partea dinamica a acestei baze de cunostinte reprezinta faptele, si au rolul de a reprezenta starea obiectelor la un anumit timp. Care la randul lor sunt formate din: Masina de inferenta- acest program general, implementeaza mecanismul prin care se construiesc deductiile, aceasta prelucrand cunostintele si datele doar prin faptul ca poate ajunge singur la o concluzie. Interfata utilizator- acest program are niste standarde pe care le respecta precum ar fi dimensiunile, culorile si realizeaza o legatura faciala intre sistem si utilizator, prin intermediul unui dialog eficient. Interfata este folosita pentru a se introduce noi informatii in sistem, dar si pentru utilizator sa puna intrebari sistemului expert, sau sa obtina o diagrama asupra unui proces de rezolvare. Editorul de baza de cunostinte- care permite completarea sau modificarea bazei de cunostinte a sistemului expert, actiunea propriu-zisa de achizitionare se realizeaza prin chestionarea exertilor umani. Sistemul explicativ- avand rolul de a furniza explicatii operatorului in legatura cu rationamentul folosit pentru a ajunge la concluzia prezentata. Modulul grafic- reprezinta interfata grafica care faciliteaza expertului posibilitatea de a-si formaliza cunostintele intr-o maniera cat mai reprezentativa, cu o asistenta cat mai limitata a inginerului de cunostinte. Aceste sisteme inteligente sunt concepute pentru rezolvarea problemelor din domeniile in care se poate utiliza aplicatiile de inteligenta artificiala. Aceste sisteme fiind utilizate ca si aplicatii precum: -vederea artificiala pentru recunoasterea formelor -prelucrarea vocii pentru constituirea si sinteza vocii umane

-prelucrarea limbajului domeniu in care intra si integrarea, prelucrarea si redarea limbajului natural -recunoastera formelor - perceperea si clasificarea diferitelor forme -rezolvarea problemelor-formalizarea si rezolvarea unor clase generale de probleme -procesarea informatiei- se ocupa de programe capabile sa inteleaga informatia scrisa sau citita, sa realizeze rezumate si sa raspunda la diferite intrebari;

Exemple de sisteme expert :

Cele mai utilizate in cadrul medicinei sunt cele de diagnostic. Aceste sisteme dupa cum le spune si numele sunt sisteme care trateaza bolile in functie de afectiunile pacientului, iar dupa caz le recunoaste, oferind un diagnostic. Adesea aceste problemele vin odata cu o multime de observatii, multime ce poate fi de multe ori incompleta. Intotdeauna rezultatul diagnosticului fiind o selectie a uneia sau a mai multor solutii ale problemei. Daca se obtine o submultime de observatii pentru a garanta un diagnostic, aceasta va fi solutia suplimentara si totodata garantarea unui pronostic complet. In domeniul de constructie aceste sisteme incearca sa vina cu o solutie construita ca o secventa de pasi sau o configuratie de elemente interconditionate. Intotdeauna definirea unei probleme inseamna precizarea acelei conditii initiale a problemei, dar si precizarea cerintelor asupra solutiei si spatiului solutiilor, care teoretic poate avea combinatiile posibile de obiecte elementare care respecta sau nu cerintele. Sistemele expert de simulare, se bazeaza pe precizarea efectelor unor anumite presupozitii asupra unui sistem, acestea fiind cunoscute ca parti componente a comportarii parametrilor de iesire din valorile date ale unor parametri de intrare. Aceste sisteme de simulare se aplica pentru o verificare suplimentara, iar daca solutia oferita de acest sistem proiectat functioneaza in diagnostic si este intr-adevar cea dorita in constructie, atunci sistemul functioneaza.

Capitolul 4 Algoritmul lui Dijkstra Acesta este un algoritm care calculeaza, in functie de datele de intrare, drumul minim de la un nod al unui graf la toate celelalte noduri ale grafului din sistemul in care se afla. Aceste grafuri pe care algoritmul lucreaza, sunt ponderate si orientate- arcele ce sunt orientate de la un nod la un altul, au si un anumit cost in aflarea drumului minim, acesta de fiecare data neputand fi schimbat, deoarece algoritmul nu poate impuse alte cerinte de situatie decat cele de a afla punctul minim de la un punct la altul si de a functiona pe arcele care nu il blocheaza, acestea fiind orientate in sensul corespunzator indeplinirii sarcinii. De asemenea si daca oferim arcelor acelasi cost, tot drumul cel mai scurt va fi ales necontand ca arcele au aceeasi valoare. Orice traseu caruia nu i sa atribuit o valoare de arc, atunci acesta va fi notat de lungime infinita, rezultatul indicand lipsa oricarui drum intre cele doua noduri. Pe toata durata aflarii drumurilor minime de la un nod de start, pana la celelalte noduri din graf, algoritmul prezinta sub forma unui grafic in care el reprezinta distanta minima de la nodul de start la toate celelalte noduri din graf. Ca si rezultat, arborele generalizat, fiind calcularea tuturor distantelor de la nodul de start pana la toate nodurile din graf, calculandu-se distanta optima si minima. Algoritmul presupunand ca drumul minim este alcatuit doar dintr-un singur arc, drumul minim nu poate avea mai mult de N-1 arce. Abia la finalul programului se definesc drumurile minime, deoarece doar atunci algoritmul poate spune ca sunt cele definitive dupa ce a cunoscut toate arcele, la inceput acestea pentru el fiind necunoscute.

Sa spunem ca D{y} contine lungimea drumului minim de la nodul de start la nodul y care trece numai prin noduri marcate. D{z} contine lungimea celui mai scurt drum de la nodul de start la nodul z alcatuit din maxim k-1 arce, acest drum trece doar prin noduri marcate, fara sa tina cont ca intre timp si y a fost marcat. Putand exista si un drum mai scurt decat D{z} de la nodul de start alcatuit din maxim k arce care trece prin noduri marcate, incusiv nodul y- care fiind unicul drum cu aceasta proprietate care poate fi mai scurt decat D{z} este cel care include drumul minim pana la y si arcul direct intre y si z, deci lungimea sa este D{y}+Arc{y,z}.

Aplicarea algoritmului Dijkstra aplicat pe un robot autonom de labirint Aceasta aplicatie consta in punerea in practica a acestui algoritm, utilizand un robot proiectat la dimensiuni optime pentru explorarea si rezolvarea unui labirint. Robotul, dupa implementarea algoritmului, robotul este capabil sa exploreze mediul si sa creeze o harta a acestuia, putand determina cel mai scurt traseu din oricare doua puncte ale labirintului. Robotul trebuie exclusiv sa preia date primite de la senzori, fiind preluate de unitatea de baza, aceste date prelevate din mediu, trebuie supuse unor reguli, care sunt definite ca fiind regulile de baza dupa care acest robot functioneaza. Prima regula de baza este de a pastra distanta minima intre robot si perete, astfel incat intalnind un blocaj sa se poata intoarce, iar mai apoi sa isi poate continua explorarea mediului. A doua regula fundamentala ar fi de a urmari un perete, acesta determinandu-se la inceputul explorarii, aceasta regula aplicandu-se peretelui din stanga si a celui din dreapta, in acest moment robotul va face doua trasee, unul pe partea stanga si unul pe dreapta, definitivatul supus unor noi reguli primul dupa explorarea intregului traseu, fiecare cotitura din traseu fiind cunoscuta deja si avand atribuita cate o distanta, iar algoritmul putand alege care dintre cele doua trasee, este mai scurt in functie de timp.

Capitolul 5 Arhitectura robotului Maze Arhitectura robotului Masina a fost realizata avand la baza o placa denumita PixelBoard, cu un microcontroler din seria PIC18F4550. Mediul de dezvoltare folosit pentru scrierea programului pe placa a fost Pickit, limbaj C.

Acest microcontroler este dezvoltat de Microchip, avand 32k bytes memorie flash, 13 bit analogi-digitali.

Fig.1 Arhitectura Microncontrolerului PIC18F4550

Fig.2 Placuta cu microcontrolerul PIC18F4550

Aceasta familie de dispozitive ofera avantajele tuturor microcontrolelor PIC18 si anume computere de performanta inalta la pret economic cu adaugare de inalta rezistenta si memorie flash. In plus fata de aceste caracteristici familia PIC18F2455,2550,4455,4550 introduce designul imbunatatirii care fac aceste microcontrolere un logical pentru multi utilizatori de inalta performanta, sensibili la puterea aplicatiilor. Aceste noi dispozitive incorporeaza o serie de caracteristici care pot reduce in mod semnificativ consumul de energie in timpul functionarii. Elementele cheie sunt ca acestea au moduri alternative de rulare: -prin ceasul regulatorului de la sursa timer1 sau la oscilatorul intern bloc consumul de energie in timpul executarii codului poate fi redus cu pana la 90% -moduri multiple in regim de asteptare: poate functiona controlerul cu nucleu CPU dezactivat, dar perifericele inca fiind active.

Modificarea comutarii modului de functionare: -regimurile de gestionare a energiei sunt invocate de codul utilizatorului in timpul functionarii, permitant utizatorului sa includa puterea de economisire a ideilor in aplicatiile lor de proiectare de software. -consum redus in modulele cheie: puterea atat pentru timer1 cat si pentru whatchdog timerul este redus la minim. Aceste noi dispozitive incorporeaza magistrala de serie universala, modul de comunicatii care este compatibil cu usb. Comunicatii de viteza redusa si cu viteza mare pentru toate tipurile de transferuri de date transferate. De asemenea, incorporeaza propriile sale on-chip transmitator si 3.3V regulator si sprijina utilizarea transmitatoarelor externe si a regulatoarelor de tensiune. Aceasta noua familie ofera 12 optiuni diferite de oscilator, permitand utilizarea la o gama larga de optiuni in dezvoltarea aplicatiilor hardware care includ: -4 moduri crystal, folosint cristale sau rezonatoare ceramice -4 moduri de ceas extern, oferind optiunea cu doi pini adica intrare oscilator si o diviziune de 4 iesiri pentru ceas, sau un pin, adica de intrare oscilator cu al doilea prin realocarea ca 1/0 general -un bloc oscilator intern care ofera un ceas 8MHz si INTRC cu 32kHz stabil peste temperatura si voltaj, precum si o serie de 6 frecvente de ceasuri selectabile de utilizator. Modul CCP imbunatatit : In modul PWM, acest lucru ofera 1,2 sau 4 iesiri modulate

Fig.3 Schema electrica a traseului placutei PIXELBOARD

Fig.4 Microcontrolerul PIC18F4550

Pentru a scadea dimensiunile si greutatea robotului s-a utilizat un driver L293D, care comanda motoarele robotului de 1000 rpm la iesirea din reductor. Acest driver alimenteaza doua motoare, deoarece placuta PixelBoard nu este capabila sa furnizeze foarte mult curent continuu, asa ca atasam un driver pentru motoare care se alimenteaza direct la sursa de curent continuu. Aceasta punte cu frecventa inalta, este proiectata pentru a furniza curenti bidirectionali de actionare de pana la 600mA la tensiuni de la 4,5V la 36V. Dispozitivele sunt proiectate pentru a actiona sarcini inductive cum ar fi relee, solenoizi, motoare de curent continuu si bipolar, precum si alte sarcini de inalta tenzine sau de inalta tensiune in aplicatii cu consum pozitiv. Toate intrarile sunt compatibile cu TTL. Fiecare iesire este un circuit de actionare complet, cu un tranzistor Darlington si o sursa pseudo-Darlington. Driverele sunt activate in perechi, cu driverele 1 si 2 activate si driverele 3 si 4 activate. Atunci cand o intrare de

activare este ridicata, driverele asociate sunt activate, iar iesirile lor sunt active si in faza cu intrarile lor. Cand intrarea de activare este scazuta, acele drivere sunt dezactivate si iesirile lor sunt oprite si in starea de inalta impedanta. Cu intrarile de date corespunzatoare, fiecare pereche de drivere formeaza o transmisie reversibila pe puntea H potrivita pentru aplicatii solenoidale sau pentru motoare. Motoarele de curent continuu ale robotului sunt cu reductor, raportul de transmisie fiind de 30:1, viteza de rulare libera este 1000 rotatii pe minut la 12V. Momentul de torsiune maxim este echivalent cu 63.6 mNm. Curentul maxim de lucru ajungand pana la 800mA, cel normal fiind de 100mA, acesta fiind diferit in functie de greutatea robotului si forte de frecare care apar intre roti si suprafata pe care ruleaza. Rezistenta electrica a motorului poate fi exprimata prin impartirea tensiunii nominale la curentul de stingere. Constanta fortei electromotoare poate fi aproximata prin impartirea tensiunii nominale la viteza de rulare libera . Pentru a aproxima constanta cuplului motorului se poate imparti cuplu de strangere cu curentul de stingere.

Fig.5 Motor micro metal 1000 rpm cu reductor 30:1

Pentru aproape orice motor de curent continuu, curbele de curent, viteza, putere si eficienta in functie de cuplu vor arata ca in graficul urmator, presupunand ca tensiunea si temperatura motorului sunt constante:

Fig.6 Curba de curent, viteza si putere in functie de cuplu

Curbele de curent si de viteza sunt aproximativ lineare, acestea fiind aproximative cu 0 cuplu si fara curent in sarcina, iar cuplul de blocare cu curent de stationare linia rosie si 0 cuplu cu viteza fara sarcina, si cuplul de torsiune 0 cu viteza pentru linia albastra. Curba de putere cea portocalie este rezultatul vitezei si al cuplului, ceea ce are ca rezultat o parabola inversata cu varful la 50% din momentul cuplarii. Curba de eficienta, cea verde, este puterea de iesire impartita la puterea de intrare, unde puterea de intrare este tensiunea curenta. Tensiunea este constanta, astfel incat se poate imparti curba puterii de iesire cu linia curenta pentru a obtine forma generala a curbei de eficienta, care la randul sau va permite sa se identifice cuplul, viteza si curentul care corespund eficientei maxime.

Encoderele magnetice includ senzorii Hall cu discuri magnetice, cu 6 poli, care pot fi utilizati pentru a adauga codificarea cuadratura la micrometalele cu reductor. Placa de codare detecteaza rotirea discului magnet si ofera rezolvutia de 12 citiri pe rotatie a arborelui motor , doar la rotatia ambelor muchii a celor doua canale. Pentru calcularea numarului total de rotatii a arborelui de iesire la dupa reductor, se multiplica raportul de transmisie cu 12. Este cea mai simpla solutie de codare, si cea mai compacta incadrandu-se in 12mm pe 10 mm. Aceasta placa de codare este proiectata sa fie lipita direct pe parte din spate a motorului, axul motorului fiind iesit prin encoder la fel si pinii motorului de alimentare.

Fig.7 Encoder cu senzori hall

Senzorii sunt alimentati prin pinii de VCC si GND, alimentarea lor putandu-se face de la 2,7V pana la 18V, iar iesirile de tip A si B sunt semnalele digitale care sunt fie de actionare joasa adica 0V trase de catre senzor i , fie de VCC prin rezistentele de tractiune de 10 kΩ, in functie de campul magnetic aplicat. Comparatoarele senzorilor au o histereza incorporata, care previne semnalele false in cazurile in care motorul se opreste in apropierea unui punct de tranzitie.

Fig.8 Semnalele digitale ale iesirilor A si B ale codificatorului magnetic pe un micrometal cu reuctor de mare putere functionand la 6V

Fig.9 Senzorii Hall U1 si U2

Fig.10 Robotul maze dotat cu encodere magnetice

Senzorii de distanta analogici utilizati sunt de model sharp, cu suprafata de vedere de la 10cm pana la 80cm senzori de nivel mediu de perceptie a distantei. Acesti senzori reflexivi fiind capabili sa ne spuna foarte clar distanta in cadrul robotului nostru pana la un perete, de obicei acesti pereti fiind albi, deoarece rata de reflexie este de 90%, dar in unele cazuri gri, pe aceste suprafete scazand enorm pana la 20% deoarece absoarbe toata lumina emisa de dioda, iar detectorul nu mai receptioneaza decat o parte din aceasta. La pragul maxim de citire exista un histerezis de cativa milimetri, la cel minim neexintand deloc. Senzori detecteaza doar in tervalul de-a lungul liniilor de vedere. Cu o distanta de pana la 80 cm si o rata tipica de esantionare de aproape 400Hz, acesti senzori ofera alternativa atractiva, datorata perechilor de fototranzistori led cu reflexie.

Fig.11 Schema electrica a senzorilor de distanta

Capitolul 6 Aplicarea algoritmului Dijkstra

Programarea unui areal de test pentru a aplica acest algoritm care se bazeaza pe distantele cunoscute dupa parcurgerea traseului in totalitate si gasirea drumului cel mai scurt in functie de distanta si timp. Determinant matricea peretilor(mp) aceasta matrice va contine in totalitate toti peretii care robotul ii va ocoli, punctul de start si cel de finish. Declararea matricii se va face pe j randuri si i coloane, toate mai apoi fiind un mediu pentru robot.

Fig.12 Definirea randurilor si colonelor Desenarea interfetei se face pe baza unei matrici, in care peretii care trebuiesc ocoliti se noteaza cu 1, iar cu 0 se noteaza traseul pe unde robotul poate merge in voie pentru a indeplini misiunea impusa la inceput, aceea de a alege traseul optim.

Dupa aceea se stabileste punctul de start si punctul de finish, conturul in care se va preciza labirintul, si labirintul propriu zis al robotului in care isi va desfasura activitatea de exploatare a tuturor distantelor, pentru aflarea drumului mai scurt.

Fig.13 Labirintul robotului in care se va aplica algoritmul Dijkstra

Exploatarea labirintului, la fiecare blocaj de artera secundara, el revine in momentul in care artera sa despartit fata de cea principala, si continua drumul pana la momentul in care robotul ajunge in punctul final.

Fig.14 Gasirea unui nod secundar

In acest moment robotul gaseste un alt nod secundar fata de primul secundar, si isi continua traseul pana ce acesta se reintoarce la drumul principal.

Fig.15 Intoarcere la traseul principal

Isi continua drumul pana la atingerea scopului final, de a ajunge la finish.

Fig.16 Traseul optim

Traseul optim obtinut este datorata celor doua reguli de baza care il face sa aleaga intotdeauna cel mai scurt si rapid traseu.

Bibliografie

1. http://bryukh.com/labyrinth-algorithms 2.https://www.cs.bu.edu/teaching/alg/maze/ 3.http://toysengineering.blogspot.ro/2013/02/maze-solving-algorithm-recursive-c.html 4.https://ro.wikipedia.org/wiki/Algoritmul_lui_Dijkstra 5.https://www.pololu.com/product/3038/faqs 6.https://www.tme.eu/ro/details/pololu-3081/module-de-senzori/pololu/magneticencoder-pair-kit/ 7.https://www.robofun.ro/docs/GP2Y0A21YK.pdf 8.http://www.academia.edu/8550705/Curs_Gratuit_Arduino-Lectia7-Senzori_Distanta 9.Florin Bîrleanu-Aplicarea algoritmirilor in sisteme de programare labirint 10.https://www.engineersgarage.com/electronic-components/l293d-motor-driver-ic

Related Documents


More Documents from "Darius Moti"