Universitatea Politehnica BucureştiFacultatea de Automatică şi Calculatoare
Departamentul de Automatică şi Ingineria Sistemelor
LUCRARE DE DIZERTAŢIE
Robot autonom cu autoechilibrare
Absolvent Ioniţă I. Mihai Eduard
Coordonator: Prof.dr.ing. Dumitru Popescu
Bucureşti, 2013
2
Cuprins
Introducere ……………………………………………………………..…….………...41. Experienţe premergătoare proiectului “Pendulo Bot”…....………………….……5
1.1. Proiecte analogice ...………………………………………………….…….51.2. Trecerea la digital ……………………………………....……...…….....…5
1.2.1. Tahometru …...…………………………………………...….…..51.2.2. Matricea de LED-uri …………………………...………….….…6
1.3. Proiectul “Patrol Bot” ……………………………..............…………......71.4. Proiectul “RoboAres” .....…………………………..............………….....8
2. Roboţii autonomi din zilele noastre …………………………………………...…....92.1. Robotul -definiţie …………………………………………………...……...92.2. Clasificarea roboţilor …………………………………………………..…102.3. Arhitectura roboţilor ………………………………………………..……10
2.3.1. Sistemul senzorial al roboţilor …………………………….…...112.3.2. Sistemul de acţionare şi de transmisie al robotului ........…......12
2.4. Elemente de inteligenţă artificială ……………………………………….132.5. Roboţii de jucarie �i roboţii de companie …………………………….....14
3. Principiile robotului cu autoechilibrare ….…..……………………………….......144. Componentele funcţionale ale robotului cu autoechilibrare ….....……………....16
4.1. Senzorul unghiului de înclinare ………………………..……....……......164.1.1. Unitatea inerţială de măsurare, IMU ………..……...…………164.1.2. Senzorul infraroşu …………………………..……………..…...204.1.3. Potenţiometrul ……..………………………………..……..…...204.1.4. Înclinometrul ……..………………………………..……………20
4.2. Fltrarea datelor achiziţionate ……………………………..……….….....214.2.1. Fltrul complementar …………………………..…..……….…...214.2.2. Fltrul Kalman ……..………………………………..……...……21
4.3. Metoda de detecţie a vitezei de deplasare …………………..…………...234.3.1. Codificatorul rotativ ………………………………..…………..244.3.2. Codificatorul în cuadratură ………………………..…………..244.3.3. Feedback-ul câmpului electromagnetic .…………..……….…..25
4.4. Algoritmul de control ……..……………………………..…..……...……254.4.1. Controlul cu logica Fuzzy ……………………..…..……………254.4.2. Regulatorul PID ……..……………………………..…..….....…26
4.5. Comanda motoarelor ……..……………………………..…..……...……295. Realizarea practică a proiectului “Pendulo Bot” …..……………..………………31
5.1. Proiectul “Pendulo Bot” V1 …................………………………………..325.1. Proiectul “Pendulo Bot” V2 …................…………………………....…..33
5.2.1. Construcţia şasiului …................………………...……………..335.2.2. Deplasarea robotului ……………………………………........…345.2.3. Comanda motoarelor …..…………………………………….….355.2.4. Senzorul de înclinare ……….......……………………………….355.2.5. Alimentarea robotului …….................……………………....…365.2.6. Achiziţia datelor …………......................................………..….385.2.7. Microcontrollerului ATMEGA328 ……………………...….…..395.2.8. Programarea microcontrollerului ……………….…….………..40
6.Concluzii ……………………………………………………………….…...……….....44Bibliografie ……………………………………………………………….….………......45Anexă……………………………………………………………………….……….....…47
3
Lista de figuri
Fig. 1. Tahometru – numaratoare ………………………………………………….…....…..5Fig. 2. Matrice LED-uri …………………………………………………………...........…..6Fig. 3. Patrol Bot V1 …………....….....................................……………………….……7Fig. 4. RoboAres …………...................................…………………………………..…...8Fig. 5. Robotul ..................………………………………………………..............…..…..9Fig. 6. Senzori de securitate ……………………………………........……………....…....11Fig. 7. Sistemul de actionare .………..………………………………………………….....12Fig. 8. Fibra musculara artificiala .………………………………………………….…...…13Fig. 9. Inteligenta artificiala …………………………..………………………………..….13Fig. 10. Roboti de companie ……………………………………………………….……...14Fig. 11. Reprezentarea modelului fizic …………...…………………………………..…...15Fig. 12. Accelerometru ……....……………………….………………….....…….……....17Fig. 13. Detectia acceleratiei gravitationale ..…………………………………….……..…19Fig. 14. Senzor infrarosu ………………………...........……………………………….....20Fig. 15. Filtru complementar …....……………………………………………………...…21Fig. 16. Algoritm filtru Kalman ……………………………………………………......…22Fig. 17. Codificator rotativ …...........................................…………………………..….24Fig. 18. Semnal codificator in cuadratură ………………………………………….…..…24Fig. 19. Tabel de control logica Fuzzy ………………………………………………...….25Fig. 20. Algoritm PID …................................…………………………………….…….26Fig. 21. Comanda PWM …..........………………………………………………...……...29Fig. 22. Puntea H ……………………………………….......................………………...30Fig. 23. Regimurile de operare ale puntii H …..……...…………….............………..…..30Fig. 24. Pendulo Bot V1 ….......................…………………………………………..…..32Fig. 25. Baza sasiului …....…………………………………………………………......…33Fig. 26. Dimensiunile motorului ….…………………………………………………...….34Fig. 27. Motor cu encoder …......………………………………………………….….......35Fig. 28. Punte H cu MOSFET …..………………………………………………...…...…35Fig. 29. IMU cu 10 grade de libertate ……………………….…………………….……...36Fig. 30. ADXL345 – accelerometru cu 3 axe …...………..............………………...…...36Fig. 31. L3G4200D – giroscop cu 3 axe …………………………………………….…....36Fig. 32. Acumulatori ………………………………………..............................….....….37Fig. 33. Schema interna L7805 ………………………………….………………...…...…38Fig. 34. Adaptor card SD ………………………………….……………..…….…….....…38Fig. 35. Structura interna si configuratia pinilor ATMEGA328 ………………...….....….40Fig. 36. Schema programatorului USB …………………………………………..….........40Fig. 37. Programatorul realizat practic ………………………………………...…..…...…41Fig. 38. Configurarea AVRDUDE …......…………………….……………….……….....41Fig. 39. Scrierea microcontrollerului …...............………..............………………..........42Fig. 40. Scrierea in linie de comanda …......……………………………………...……....43Fig. 41. Robotul in forma finala …..………………………..............................…...…...43
4
Introducere
Un robot cu autoechilibrare pe două ro�i este un robot autonom care isi poate mentine echilibrul pe cele două ro�i ale sale. Acest principiu este asemanator pendulului invers. Pe parcursul ultimului deceniu, institutele de cercetare, companiile comerciale �i pasiona�ii de robotica au fost inspirati in dezvoltarea �i implementarea unui sistem de control pentru acest tip de robot si utilizarea lui în diferite aplica�ii.
In aceasta lucrare se prezinta construirea unui astfel de robot functional avand ca scop principal dezvoltarea performantelor sistemului precum si aplicatiile acestuia.
Structura lucrarii pune in evidenta prezentarea etapelor premergatoare proiectului
“Pendulo Bot”, descrierea comportamentului unui robot autonom, prezentarea componentelor
functionale ale robotului cu autoechilibrare, a teoriilor luate in calcul, realizarea practica a
proiectului si rezultatele experimentale.
Un robot cu autoechilibrare pe două ro�i oferă următoarele avantaje fata deplatformele cu trei sau mai multe ro�i:
mobilitate mai ridicata, permite rotatia la punct fix;
viteza mai mare datorita frecarii mici dintre cele doua roti si suprafata de rulare;
design structural simplu;
toleranta la anumiti factori perturbatori;
stabilitate crescuta pe suprafete inclinate sau pante.
5
1. Experienţe premergătoare proiectului “Pendulo Bot”
1.1. Proiecte analogice
Domeniul electronicii a reprezentat o pasiune pentru mine intotdeauna si imi doream
tot timpul sa realizez inventii si proiecte noi. Tocmai de aceea am fost sprijinit in sensul
acesta si am pornit pe acest drum prin inscrierea la Cercul de Electronica de la Palatul
Copiilor. Acolo am invatat o multime de lucruri noi, acumuland experienta si participand la
concursuri de electronica judetene, interjudetene si nationale, in anul 1999 obtinand Locul 2 la
Concursul National de Electronica de la Poiana Pinului.
Dupa aceea am inceput sa realizez proiecte si montaje electronice care imi erau utile la
vremea respectiva. Astfel am realizat sonerii muzicale, alarma cu fascicul Laser, comanda la
distanta cu Laser, emitatoare de radiofrecventa, incuietoare automata cu cifru, comanda cu
senzor de atingere, amplificatoare audio cu protectie la iesire si soft-start, mixere audio,
redresor pentru incarcat baterii auto si multe altele, toate aceste montaje fiind realizate cu
ajutorul componentelor analogice.
1.2. Trecerea la digital
Odata cu ajungerea la facultate am dobandit cunostinte noi legate de domeniul
electronic si am realizat noi proiecte atat cu componente analogice cat si digitale. Astfel am
realizat mai multe proiecte cu microcontrollere.
1.2.1. Tahometru
Fig. 1. Tahometru - numaratoare
Acest proiect l-am realizat avand nevoie de un tahometru atunci cand bobinam
transformatoare, pentru a retine numarul de infasurari. Aceasta numaratoare am conectat-o la
dispozitivul de bobinat realizat dintr-un motor de stergator de parbriz caruia i-am sudat un ax
6
pe care venea prinsa carcasa transformatorului. Acest motor avea doua lamele care faceau
contact la o rotatie completa a motorului (fiind indicatorul de capat de cursa la stergator) si
doua viteze de rotatie.
Pentru realizarea cablajului imprimat am incercat o metoda noua, aceea de a realiza
schema pe calculator, in Proteus si de a o scoate la o imprimanta Laser apoi urmand sa o
imprim cu fierul de calcat pe placuta. Bineinteles ca acesta nu mi-a reusit din prima, ci din a
3-a incercare deoarece erau trasee foarte apropiate pentru a fi cat mai compact. Pentru
realizare am ales microcontrollerul ATTINY2313 si in cadrul montajului acesta avea 3
comenzi: incrementare, decrementare si reset. Afisarea era pe 4 digiti multiplexati si
decodificati din binar in zecimal cu un circuit CD4543.
1.2.2. Matricea de LED-uri
Fig. 2. Matrice LED-uri
Ulterior am realizat o matrice de LED-uri pe care am reusit sa afisez pseudonimul meu
tot cu ajutorul unui ATTINY2313, dar am conectat un soclu si pentru
ATMEGA16/ATMEGA32. Aceasta are o rezolutie de 28x5, iar pentru realizarea acestui
proiect am efectuat peste 2000 de lipituri. De acesta data am utilizat cablaj de test pentru
suportul componentelor deoarece realizarea unui cablaj specific necesita foarte mult timp si
munca. Pentru a realiza afisarea am utilizat shift-registers pentru incarcarea bitilor deoarece
nu aveam suficienti pini de iesire, ATTINY2313 avand doar 20 de pini. Astfel am incarcat
bitii de pe o linie in cei 4 shift-registers, cate 4 o data pentru a fi cat mai rapid, iar dupa
incarcare am dat comanda de afisare si am aprins linia respectiva. Deoarece shift-registrii nu
aveau suficienta putere (cativa mA) a trebuit sa utilizez drivere de curent pentru aprinderea
LED-urilor pe coloana, iar pe linie aprinderea am realizat-o cu ajutorul MOSFET-urilor
IRF540, multiplexarea fiind facuta pe linie adica este aprinsa o singura linie la un moment
dat, liniile fiind aprinse succesiv cu viteza foarte mare. Pentru alimentarea microcontrollerului
am utilizat sursa L7805. Programul sursa avea 2048 linii de cod, adica toata memoria lui
ATTINY2313, fiind scris in Assembler.
7
1.3. Proiectul “Patrol Bot”
Fig. 3. Patrol Bot V1
Proiectul “Patrol Bot” a reprezentat o provocare pentru mine in realizarea unui robot
subacvatic, deoarece era prima interactiune cu mediul acvatic si nu stiam dificultati pot
intampina in realizarea unui astfel de proiect. In cadrul competitiei a facut fata cu succes
toturor probelor obtinand Locul 1 la “Concursul National de Roboti Subacvatici – Portul
Tomis Constanta, 19 August 2012”.
Acest robot era un ROV (Remote Operated Vehicle) pe care il controlam de la
suprafata cu ajutorul unei telecomenzi si transmitea imagini la suprafata cu ajutorul unei
camere video. Pentru realizarea robotului a trebuit sa ma documentez in legatura cu forma
sasiului si sa aleg varianta optima pentru a avea robustete si hidrodinamica in acelasi timp. O
alta provocare a constituit-o pozitionarea motoarelor pentru a avea stabilitate la miscarea in
apa dar si manevrabilitate, asadar am ales 3 motoare pozitionate astfel: unul in partea din fata
central, iar doua in extremitatile din spate cu elicea catre interior pentru a fi protejata de alge
sau alte obstacole. Ultima problema, insa cea mai importanta a fost cea legata de etanseitatea
componentelor, de aceea am utilizat pentru propulsie pompe submersibile modificate, acestea
fiind deja etanse, carora le-am atasat cate o elice de avion ajustata la forma optima, iar pentru
a nu intra apa in interiorul sasiului am introdus spuma poliuretanica. Pentru echilibrare si
aducerea la flotabilitate neutra am utilizat greutati de plumb pozitionate strategic in diferite
puncte ale robotului. Acest tip de robot poate fi dezvoltat si adaptat pentru efectuarea
misiunilor de recunoastere pe fundul marii, explorarea puturilor si conductelor petroliere dar
si cercetarea epavelor.
8
1.4. Proiectul “RoboAres”
Fig. 4. RoboAres
Acest proiect l-am realizat pentru competitia de sumo organizata de Robochallenge in
anul 2010. Fiind un robot de sumo, pentru a partcipa intr-o astfel de competitie “RoboAres”
trebuia sa respecte mai multe criterii.
Robo-sumo este o competitie intre roboti bazata pe wrestling japonez - sumo este
cuvantul japonez pentru wrestling. Similar meciurilor traditionale de sumo doi oponenti
(roboti) se afla fata in fata intr-un ring numit dohyo. Scopul este acela de a ramane in ring si
de a impinge adversarul in afara ringului. Robotul care ramane in ring cel mai mult timp
castiga meciul.
Robotii de sumo sunt mici roboti autonomi construiti special pentru competitia de
sumo. Regulile competitiei de sumo restrictioneaza dimensiunile robotului dar si greutatea,
mai exact 20 cm x 20 cm si greutate nu mai mare de 3 kg. Spre deosebire de alti roboti de
lupta in acest tip de competitie nu este permisa lovirea adversarului, este permisa doar
impingerea de pe ring.
Pentru a fi eficient, robotul trebuia sa satisfaca urmatoarele conditii:
- Sa stea in interiorul ringului;
- Sa caute adversarul;
- Sa tinteasca adversarul;
- Sa atace adversarul.
9
In urma realizarii proiectului am reusit implementarea cu succes a unui program care
sa confere autonomie deplina robotului de sumo, folosind 4 stari de comportament pentru a
cunoaste precis situatia in care se afla si ce decizie trebuie sa ia.
Prin program am implementat inteligenta robotului, modificandu-si comportamentul in
functie de datele pe care le colecteaza de la mediu prin intermediul senzorilor. Pentru
detectarea suprafetei de joc am utilizat senzori infrarosu pozitionati atat in colturile din fata
cat si in spatele sasiului, iar pentru detectarea adversarului am ales senzori Sharp, fiind o
alternativa la senzorii ulrasonici sau Laser insa cu performante comparabile. Senzorii
infrarosu i-am orientat inspre suprafata de joc la o distanta stabilita prin teste fata de teren, iar
senzorii de detectie a adversarului i-am pozitionat indreptati inainte sub un unghi de inclinare
de asemenea stabilit in urma testelor pentru a minimiza perturbatiile ce ar putea fi induse in
timpul meciului si inducerea de masuratori eronate.
Pentru propulsie am folosit 2 motoare de curent continuu cu perii ce aveau un
reductor 131:1 si o turatie 80 rot./min care antrenau 2 senile, iar pentru alimentare un
acumulator LiPo (12 volti) preferat in schimbul altui tip de acumulatori precum NiCd, Pb-
Acid datorita raportului foarte bun putere/greutate. Programul a fost implementat intr-un
microcontroller ATMEGA 16, acesta oferind suficiente facilitati de programare pentru
realizarea unui astfel de proiect, cum ar fi: 16KB memorie Flash, 16 MHz frecventa de lucru,
4 iesiri PWM, 8 intrari analogice cu rezolutie de 10 biti si 4 porturi digitale de intrare/iesire.
Limbajul de programare utilizat a fost C++ datorita complexitatii destul de ridicate a codului.
Datorita modului de deplasare cu ajutorul senilelor, am obtinut performante foarte
bune in cazul schimbarii directiei de deplasare, acestea permitand rotatia la punct fix,
diminuand considerabil timpul de reactie. RoboAres a avut o evolutie buna in cadrul
competitiei ”Robochallenge” din 2010 si 2012 reusind sa isi demonstreze performantele.
2. Roboţii autonomi din zilele noastre
2.1. Robotul - definiţie
Fig. 5. Robotul
Definiţiile robotului se referă la mişcare sau la funcţionarea într-un mediu anume.
Conform specialiştilor japonezi robotul este un dispozitiv mecanic acţionat cu forţe motrice
cu comandă inteligentă şi care acţionează conform voinţei umane.
10
Institutul Francez de Standardizare defineşte robotul ca fiind un manipulator automat
reprogramabil şi polivalent, capabil să realizeze poziţionarea şi reorintarea pieselor printr-o
mişcare variabilă şi programabilă a braţelor terminale, prin intermediul unor dispozitive.
Institutul American de Robotică consideră robotul ca fiind un operator reprogramabil
şi multifuncţional pentru deplasarea obiectelor pe traiectorii stabilite anterior în realizarea
unor sarcini concrete.
In literatura românească de specialitate robotul este definit ca fiind un echipament
automat, adaptabil prin reprogramare la condiţiile de mediu în care acţionează.
2.2. Clasificarea roboţilor
Roboţii se pot clasifica din mai multe puncte de vedere, si anume:
• din punctul de vedere al gradului de mobilitate se cunosc roboţi ficşi si mobili;
• din punct de vedere al informaţiei de intrare a informaţiei şi a metodei de instruire există:
- roboţi acţionaţi de om;
- roboţi cu sistem de comandă cu relee (secvenţial);
- roboţi cu sistem secvenţial cu program modificabil;
- roboţi repetitori (cu programare prin instruire);
- roboţi inteligenţi;
• din punct de vedere al sistemului de coordonate roboţii sunt în sistem de coordonate
carteziene (18%), cilindrice (33%) şi sferice (40%);
• din punct de vedere al sistemului de comandă:
- comandă punct cu punct (unde nu interesează traiectoria propriu-zisă);
- comandă pe contur (implică coordonarea mişcării axelor);
- comandă pe întreaga traiectorie (implică toţi parametrii de mişcare );
• din punct de vedere al sarcinii manipulate ;
• din punct de vedere al sistemului de acţionare : hidraulică (40%), electrică (30%),
pneumatică (21%), mixtă ;
• din punct de vedere al preciziei de poziţionare: sub 0,1mm, (0,1 ÷ 0,5 )mm, (0,5 ÷ 1 )mm, (1
÷ 3)mm, peste 3mm ;
• din punctul de vedere al tipului de programare :
- cu programare rigidă (fără posibilităţi de corecţie );
- cu programare flexibilă (există posibilitatea modificării programului);
- cu programare adaptivă (există posibilitatea adaptării automate a programului în timpul
funcţionării);
2.3. Arhitectura roboţilor
Arhitectura internă a unui robot conţine cinci sisteme importante, fiecare dintre
acestea aparţinând unui domeniu al tehnicii clasice:
- sistemul mecanic de susţinere şi al articulaţiilor (cuplelor de rotaţie şi de translaţie);
- sistemul de acţionare (hidraulic, pneumatic electric sau mixt);
11
- sistemul de transmisie al mişcării;
- sistemul senzorial (intern şi extern);
- sistemul decizional.
2.3.1. Sistemul senzorial al roboţilor
Tipuri de senzori:
- senzori interni (interiorceptivi) – plasaţi pe buclele interne de reglare şi ajută la descrierea
traiectoriei segmentelor mecanice componente;
- senzori externi (exteriorceptivi) – se utilizează pe buclele externe pentru coordonarea
traiectoriei generale a ansamblului;
- senzori de securitate – utilizaţi pe buclele interne sau externe de reacţie pentru sesizarea
pericolelor (ciocniri, creşterea temperaturii, etc.).
Funcţiile sistemului senzorial sunt:
- realizarea reglajului de poziţie, viteză, deplasare, acceleraţie, efort;
- modelează o serie de funcţii senzoriale umane: tactilă, vizuală;
- de tip releu pentru evitarea coliziunilor şi securitate.
Senzorii interni sunt în general de tip poziţie şi deplasare. Cei mai utilizaţi în acest caz
sunt senzorii de tip potenţiometric (rezistivi) şi cei de tip optic. Sistemele senzoriale de tip
optic conţin un generator de flux luminos (de regulă un LED) şi un element receptor
(fototranzistor sau fotocelulă). Pentru poziţionări precise se utilizează senzori inductivi.
Senzorii externi sunt senzori de efort (în general au la bază mărci tensometrice plasate pe
concentratoare de efort), senzori de alunecare sau senzori tactili.
O categorie aparte de astfel de senzori o reprezintă pielea artificială ce are la bază
proprietăţile reflexiei şi refracţiei luminii. Este vorba de senzorul cu fibră optică şi senzorii cu
ghid optic tangenţial, cei mai utilizaţi dintre variantele constructive ce folosesc fascicole
luminoase.
Fig. 6. Senzori de securitate
Sistemul senzorial de securitate are rolul de a evita coliziunile când apar regimuri
deficitare de funcţionare sau obstacole neprevăzute. Noii algoritmi inteligenţi de recunoaştere
a paternului împreună cu tehnologiile de realizare a camerelor digitale de luat vederi (CCD)
de înaltă rezoluţie dau valenţe noi acestui sistem senzorial permiţând luarea deciziilor şi
stabilirea traiectoriilor de deplasare. Cei mai utilizaţi senzori datorită raportului preţ – precizie
12
de poziţionare sunt senzorii optici în infraroşu şi senzorii cu ultrasunete, formaţi dintr-un
emiţător de undă şi un receptor comandat în fază cu emiţătorul.
Funcţionarea acestor senzori este puternic influenţată de caracteristicile mediului
(praf, fum, suprafeţe reflectorizante, etc.). Ca senzori de proximitate se mai folosesc senzori
fluidici (cu jet de aer), capacitivi sau inductivi, senzori ce comandă relee sau
microîntrerupătoare ce decuplează în situaţii critice alimentarea sistemului de acţionare.
Aceşti senzori au prioritate în nivelul de întreruperi a sistemului decizional.
2.3.2. Sistemul de ac�ionare �i de transmisie al robotului
Sistemul de acţionare se alege în funcţie de clasa de operaţii ce trebuie executate, în
funcţie de modul de lucru, de viteza de deplasare, de viteza de deplasare, de sarcină şi de
spaţiul de mişcare precum şi de precizia de poziţionare. Astfel există:
- sisteme de acţionare electrică (aproximativ 30% din numărul acestora),
- sisteme de acţionare pneumatice (cam 21% din cazuri),
- sisteme de acţionare hidraulice pentru sarcini mari şi deplasări limitate în spaţiu.
-sisteme de acţionare mixte (9% din variantele constructive) – de tip electropneumatic sau
electrohidraulic.
Fig. 7. Sistemul de actionare
Motoarele de acţionare ale roboţilor trebuie să îndeplinească următoarele condiţii:
- să dezvolte cupluri ridicate;
- să aibă gabarit şi masă reduse;
- să fie caracterizat printr-un moment de inerţie scăzut pentru a permite poziţionarea precisă;
- să fie compatibil cu sistemul de comandă şi cu sistemul senzorial;
- să fie insensibil la perturbaţii.
13
Fig. 8. Fibra musculara artificiala
Noutatea în domeniul acţionărilor o constituie fibra musculară artificială, foarte
utilizată în cazul androizilor. Aceşti muşchi artificiali modelează grosier funcţionarea fibrei
musculare umane dar pe lângă viteza de acţionare scăzută, timpul mare de răspuns şi limitarea
posibilităţilor de deplasare spaţială a braţului astfel acţionat există şi dezavantajul unei sarcini
manipulate de valoare mică.
2.4. Elemente de inteligenţă artificială
Rezultatele obţinute de Alan Turing până în momentul de fată în domeniul tehnic au
dat şi satisfacţii. Pe scurt inteligenţa artificială s-a definit chiar de la început ca fiind o
combinaţie între ştiinţa computerelor, psihologie şi filosofie la nivelul la care aceasta dă o
explicaţie creaţiei ş i naturii umane. Bazele ei au fost puse de Turing care publica în George
Boole 1950 „Computing Machinery and Inteligence”, de filosoful şi matematicianul Boole şi
de şcoala modernă de medicină. S-a reuşit modelarea pe computerele clasice a reţelelor
neuronale, au fost create sisteme autoadaptive ce recunosc scrisul de mână şi amprenta vocală,
s-au implementat sisteme decizionale pe roboţii trimişi în cosmos, pe fundul oceanelor sau în
corpul uman pentru explorări.
Fig. 9. Inteligenta artificiala
Cele mai noi succese ale inteligenţei artificiale sunt realizarea în 1997 în cadrul firmei
IBM a computerului Deep Blue care nu a putut fi învins sub formă jocul de de campionul
mondial nici o în şah către Garry Kasparov şi apariţia în comerţul de larg consum în anul
2000 a unor roboţi ce pot exprima facial emoţii.
14
2.5. Robo�ii de jucarie �i robo�ii de companie
De la un căţel şi până la persoana de companie nu a fost un drum prea lung. Este
cunoscut androidul numit Pino sau legendara Valerie care copiaza perfect o fiinţă umană şi
care are 111 articulaţii fiind capabilă şi de expresii faciale.
Fig. 10. Roboti de companie
Totuşi cea mai completă realizare în materie de „persoană” de companie este cea a
firmei Honda care comercializează androidul Asimo. Asimo este rezultatul unuiintens
program de cercetare în ceea ce priveşte copierea mersului uman şi păstrarea stabilităţii prin
controlul continuu al centrului de greutate. El este alimentat de la acumulatori la 138V, şi este
realizat în două variante constructive. Înălţimea este de 1,80 (1,60) m, viteza de deplasare de
2m/s, greutatea maximă ridicată 5 (2)Kg, fiind echipat cu senzori de tip giroscop, senzori de
forţă şi senzori vizuali. Datorită înălţimii şi bazei mici de susţinere, androidul are incorporat
un sistem complex de menţinere a echilibrului în cazul deplasării pe o traiectorie curbă, caz în
care asupra sistemului acţionează o forţă centrifugă.
3. Principiile robotului cu autoechilibrare
Un robotul cu echilibrare pe doua ro�i se compune dintr-un �asiu al robotului �i
două ro�i. După cum sugerează �i numele, acesta are capacitatea de a men�ine o pozi�ie
verticală de echilibru considerata drept stabilitatea acestuia. Acesta este unic în compara�ie
cu robo�ii cu mai multe roti sau cu senile din cauza aceastei capacitati. De asemenea, are
capacitatea de rotatie la punct fix ceea ce il face mult mai u�or de manevrat. Acest lucru face
din robotul cu autoechilibrare pe doua roti un candidat ideal pentru lucrul în zone limitate sau
în aplica�ii de transport. Stabilitatea este realizata prin mentinerea celor doua roti sub centrul
de masa al robotului.
Acest domeniu de cercetare este de obicei abordat de către ingineri �i entuzia�ti ca o
abordare fa�ă de dezvoltarea unor tehnici de cercetare, proiectare �i analiză. Acest robot are
ca principiu sistemul pendulului invers care este instabil în mod natural �i reprezinta o
problemă de control clasic. Dezvoltarea �i implementarea unui sistem adecvat de control al
stabilită�ii, care este robust si raspunde în timp util poate fi realizată fie prin abordări liniare
fie prin abordari non-liniare.
15
Pentru a dezvolta un sistem de control sigur �i capabil de echilibrarea unui robot pe
doua ro�i, o în�elegere a parametrilor din cadrul sistemului este esen�ială. Reprezentarea
aceasta poate fi ob�inuta printr-un model matematic.
Fig.11. Reprezentarea modelului fizic
Este necesara generalizarea efectelor ro�ii din stânga �i din dreapta, de aceea se vor
include împreună, combinate sub termenul "ro�i". Acest lucru simplifică calculele prin faptul
ca ambele ro�i vor lucra la unison pentru a men�ine stabilitatea. Pentru determinarea
cerin�elor specifice de cuplu pentru fiecare roată individual, valoarea ro�ilor poate fi redusa
la jumătate pentru o valoare aproximativa pe singură roată. Această abordare este considerată
acceptabilă datorita faptului ca terenul �i suprafa�a pot varia.
Scopul principiului pendulului inversat este de a men�ine ro�ile sub centrul de masa
al �asiului robotului. Dacă robotul începe să se încline înainte, pentru a men�ine stabilitatea,
roata va trebui sa se deplaseze mai departe pentru a reveni sub masa �asiului. Dacă aceasta
conditie nu este men�inuta, robotul va cădea pur �i simplu. Următoarele ecuatii de dinamica
sistemului sunt asociate cu problema matematică.
Func�ia cosinus din ecua�ia cuplului ro�ii detaliaza avantajul de înclinare a
�asiului robotului în direc�ia dorită de deplasare. Dacă robotul trebuie sa se deplaseze
înainte �i unghiul de înclinare în această direc�ie este crescut, atunci cuplul de torsiune
necesar pentru a misca robotul în această direc�ie va fi redus. De exemplu, atunci când
unghiul de înclinare este 0°, multiplicatorul cosinus va fi de 1 echivalentul a 100% din cuplu.
Atunci când unghiul de înclinare cre�te la 20° sau chiar 30°, atunci multiplicatorul va fi egal
cu 0,94 �i respectiv 0,87. Acest lucru se traduce prin aplicarea unui cuplu de 94%, respectiv
87% din cuplul disponibil comparat cu 100%.
Următoarele ecua�ii ofera un model sigur �i precis pentru dezvoltarea �i
implementarea unui sistem adecvat de control pentru robotul cu autoechilibrare pe doua ro�i.
16
Acceleratia unghiulara
Acceleratia liniara
Stabilitatea robotului cu autoechilibrare consta in abilitatea de a mentine sasiul
robotului intr-o pozitie dreapta si de echilibru. Echilibrarea robotului in mod automat, fara
interventie umana este cunoscuta ca si stabilitate autonoma deoarece robotul ia propriile
decizii legate de actiunile sale. Teoria pendulului invers ofera ecuatiile necesare pentru a
determina miscarea, fortele si reactiunile care participa la proces. De aceea este absolut
necesara implementarea unui sistem de control eficient si eficace capabil sa raspunda la
intrarile senzorilor intr-un timp cat mai scurt astfel incat stabilitatea sa fie atinsa si mai apoi
mentinuta.
4. Componentele funcţionale ale robotului cu autoechilibrare
4.1. Senzorul unghiului de înclinare
Senzorul unghiului de înclinare este partea cea mai importantă a robotului cu
autoechilibrare. Senzorul folosit trebuie să fie capabil să furnizeze masuratori ale unghiul de
înclinare rapide si precise. În caz contrar, robotul nu va fi capabil să se echilibreze atunci când
apar schimbări bru�te ale unghiului de înclinare. Patru tipuri de senzori au fost luati în
considerare pentru acest robot.
4.1.1. Unitatea inerţială de măsurare, IMU
IMU cuprinde un accelerometru �i un giroscop pentru a sesiza unghiul de înclinare si
viteza unghiulara prin plasarea acestuia direct pe PCB. Ambii senzori ofera date
complementare pentru a oferi o masuratoare cat mai precisa a unghiului de înclinare. IMU
ofera masuratori foarte rapide �i precise, dar este relativ scump �i necesita o filtrare avansata
ca urmare a măsurătorilor sale zgomotoase.
17
Accelerometrul
Fig. 12. Accelerometru
Un accelerometru este un dispozitiv care măsoară accelera�ia corespunzătoare.
Accelera�ia proprie măsurată de un accelerometru nu este neapărat coordonata acceleratiei
(rata de schimbare a vitezei). În schimb, accelerometrul vede accelerarea asociata
fenomenului de greutate experimentat de către masa de test in repaus din cadrul de referin�ă
al dispozitivului. De exemplu, un accelerometru în repaus pe suprafa�a pământului va
măsura o acceleratie g = 9.81 m/s2 drept in sus, datorita greută�ii sale. Prin contrast, un
accelerometru în cădere liberă sau în repaus în spa�iul cosmic va măsura zero. Un alt termen
pentru tipul de accelerare ce poate fi masurat de accelerometru este for�a G de accelera�ie.
Accelerometrele au multiple aplica�ii în industrie �i �tiin�ă. Accelerometre extrem
de sensibile sunt componente ale sistemelor de navigatie iner�iale pentru avioane �i rachete.
Accelerometrele sunt folosite pentru a detecta si monitoriza vibra�iile în ma�ini rotative.
Accelerometrele sunt utilizate în tablete �i camere digitale, astfel încât imaginea de pe ecran
sa fie afi�ata întotdeauna în pozi�ie verticală.
Modelele de accelerometre cu o singura axa �i multi-axa sunt disponibile pentru a
detecta magnitudinea �i direc�ia de accelera�ie corespunzătoare (sau forta g) ca o mărime
vectorială �i pot fi folosite pentru a sesiza orientarea (deoarece direc�ia greutatii se
modifica), accelera�ia de coordonate ( atât timp cât produce forta G sau o schimbare în forta
G), vibra�ii, �ocuri, �i caderea într-un mediu care opune rezistenta (un caz în care se
modifica accelera�ia corespunzătoare, deoarece aceasta începe de la zero, apoi cre�te).
Accelerometrele microprelucrate sunt prezente tot mai mult în dispozitive electronice
portabile �i controlere de jocuri video, pentru a detecta pozi�ia dispozitivului sau ofera un
mijloc de control a jocului.
18
Perechi de accelerometre distribuite pe o regiune a spa�iului pot fi folosite pentru a
detecta diferen�e (gradien�i) în accelera�iile corespunzătoare ale cadrelor de referin�a
asociate acestor puncte. Aceste dispozitive sunt numite gradiometre de gravita�ie, deoarece
acestea măsoară pante în câmpul gravita�ional. Astfel de perechi de accelerometre, în teorie,
pot fi utilizate de asemenea pentru a detecta posibile valuri gravitationale.
Conceptual, un accelerometru se comportă ca o masă amortizată pe un arc. Când
accelerometrul sesizeaza o acceleratie masa este deplasata până la punctul in care resortul este
capabil de a accelera masa în acela�i ritm ca �i carcasa. Deplasarea este apoi măsurată
pentru a da valoarea accelera�iei.
La dispozitivele comerciale sunt utilizate în mod obi�nuit componente piezoelectrice,
piezorezistive �i capacitive pentru a converti mi�carea mecanică într-un semnal electric.
Accelerometrele piezoelectrice se bazează pe piezoceramice (de exemplu, titanat-zirconat de
plumb) sau cristale (cuart, turmalina). Ele sunt de neegalat în ceea ce prive�te gama lor
superioara de frecven�ă, greutate redusă �i intervalul de temperatură ridicat.
Accelerometrele piezorezistive sunt preferate în aplica�iile pentru socuri puternice.
Accelerometrele capacitive folosesc de obicei un element de siliciu micro-prelucrat pe post de
senzor. Performan�a lor este superioară în intervalul de frecven�ă joasă �i acestea pot fi
operate în modul servo pentru a atinge stabilitate ridicată �i liniaritate.
Accelerometre moderne sunt adesea sistemele micro electro-mecanice (MEMS) �i sunt într-
adevăr cele mai simple dispozitive MEMS, compuse din mai mult decât o articulatie cu o
masa de referinta (cunoscuta sub numele de masă seismică). Rezultatele sunt amortizate de
gazul rezidual incapsulat în dispozitiv. Atâta timp cât factorul de calitate nu este prea scăzut,
amortizarea nu are ca rezultat o sensibilitate mai mică.
Sub influen�a accelera�iei externe masa de referinta deviaza de la pozi�ia sa neutră.
Această deformare se măsoară într-un mod analogic sau digital. Cel mai frecven este măsurată
capacitatea dintre un set de armaturi fixe �i un set de armaturi ata�ate masei de referinta.
Această metodă este simplă, sigura �i ieftina. Integrarea piezoresistorilor pentru a detecta
deformarea resorturilor �i astfel deviatia, este o alternativă bună, de�i sunt necesari câ�iva
pa�i de proces in plus în cadrul secven�ei de fabricatie. Pentru sensibilitate foarte mare
poate fi de asemenea utilizat efectul cuantic, insa acest lucru necesită un proces dedicat ceea
ce il face foarte scump. Măsurarea optică a fost demonstrată in laborator.
In urma plasarii unui accelerometru in campul gravitational, acesta detecteaza
acceleratia gravitationala si astfel poate fi dedus cu usurinta unghiul de inclinare si orientarea
acceleratiei Pamantului. Atunci cand una din axele accelerometrului este exact perpendiculara
pe suprafata Pamantului, dispozitivul va inregistra valoarea 1g.
19
Fig. 13. Detectia acceleratiei gravitationale
Cele mai multe accelerometre micromecanice operează în plan, prin urmare acestea
sunt concepute pentru a fi sensibile numai la o direc�ie în plan. Prin integrarea a două
dispozitive perpendiculare pe o singură matri�ă poate fi realizat un accelerometru cu două
axe. Prin adăugarea unui dispozitiv suplimentar cu axa in afara planului celor doua pot fi
măsurate trei axe. O astfel de combina�ie poate avea eroarea de nealiniere mult mai mica
decât daca cele trei module ar fi combinate ulterior in afara carcasei.
Accelerometrele micromecanice sunt disponibile intr-o mare varietate de intervale de
măsurare, ajungând până la mii de de g. Proiectantul trebuie să facă un compromis între
sensibilitate �i accelera�ia maximă care poate fi măsurată.
Giroscopul
Un giroscop este un dispozitiv pentru măsurarea sau men�inerea orientarii, bazat pe
principiile momentului cinetic. Din punct de vedere mecanic, un giroscop este o roata in
miscare sau un disc al carui ax este liber să aiba orice orientare. De�i această orientare nu
rămâne fixă, se schimbă ca răspuns la un cuplu extern mult mai pu�in �i într-o direc�ie
diferită decât ar fi fără a avea un moment cinetic mare asociat unei viteze mari de rota�ie si
fara momentul de iner�ie al discului. Orientarea aparatului rămâne aproape fixa, independent
de deplasarea platformei pe care se afla montat, pentru că montarea dispozitivului într-o
articulatie cardanica minimizează cuplul exterior.
Există, de asemenea, giroscoape bazate pe alte principii de func�ionare, cum ar fi
dispozitive electronice giroscop MEMS ce se utilizeaza în dispozitivele electronice de larg
consum, cu inele de laser, giroscoape cu fibra optica si giroscoape cuantice extrem de
sensibile.
Aplicatii ale giroscoapelor sunt si sistemele de naviga�ie iner�iale unde busolele
magnetice nu ar func�iona (ca �i în telescopul Hubble) sau nu ar fi suficient de precisă (ca în
ICBM) sau pentru stabilizarea vehiculelor zburatoare, cum ar fi elicoptere controlate radio sau
20
vehiculele aeriene fără pilot. Datorită preciziei acestora, giroscoapele sunt, de asemenea,
utilizate în giro-teodolit pentru a men�ine direc�ia de minerit in tunel.
4.1.2. Senzorul infraro�u
Fig. 14. Senzor infrarosu
Pot fi utilizati senzori infrarosu pentru a sesiza înclinarea robotului prin citirea
distantei fata de sol între două seturi de senzori aflati pe sasiul robotului si pozitionati în jos,
unul ata�at în fa�ă �i celalalt in partea din spate a robotului. Senzorii infraro�u sunt foarte
ieftini �i u�or de folosit, dar pot sesiza numai direc�ia de înclinare �i îinclinarea
aproximativă în loc de unghiul de înclinare exact. Răspunsul său este lent în compara�ie cu
IMU. Mai mult, acestia au nevoie de o suprafa�ă de podea netedă �i plană pentru a reflecta
în mod corespunzător.
4.1.3. Poten�iometrul
Poten�iometrul poate fi folosit pentru a sesiza inclinarea robotului prin ata�area unei
tije ce atinge solul la celalalt capat. Când robotul se înclină tija va rotiti butonul
potentiometrului schimband rezisten�a si astfel se schimbă căderea de tensiune pe aceasta.
Unghiul de înclinare poate fi determinat aproximativ prin compararea tensiunii actuale cu
tensiunea atunci cand inclinarea este de 0°. Este foarte simplu �i foarte ieftin, dar răspunsul
este foarte lent. Acest nu este foarte precis deoarece apar schimbări ale rezistentei o data cu
temperatura. Tija poate ingreuna de asemenea mi�carea robotului.
4.1.4. Înclinometrul
Un înclinometru sau clinometru este un instrument care masoara unghiul sau panta, inclinarea sau declinarea unui obiect in raport cu gravitatia. De asemenea, este cunoscut ca un masurator de înclinare, indicator de înclinare, alerta de panta, marime a pantei, masurator al gradientului, gradiometru, indicator de nivel si declinometru. Inclinometrul masora ambele pante: inclinarile (pantele pozitive, a�a cum sunt văzute de un observator care priveste de sus) �i declinarile (pantele negative, a�a cum sunt văzute de un observator care priveste de
jos), folosind unită�i diferite de măsură: grade sau procente. Astrolaburilecare au fost folosite pentru navigarea
Alegerea senzorului
După o analiza comparativa
În primul rând, senzorul infraro
real �i răspunsul lor este lent în com
motoare de viteza mare si de
rând măsurătorile zgomotoase
accelerometrului �i ale giroscopulu
mai mare dintre cele trei.
4.2. Fltrarea datelor achizi�
4.2.1. Fltrul complementar
Filtrul complementar actioneaza prin efectuarea unui filtraj cu pondere mai mica
pentru datele masurate de catre accelerometru si un filtraj cu pondere mai mare pentru datele
achizitionate de giroscop care implica practic calcule de mediere a valorilor celor doi senzori.
O astfel de metoda da rezultate satisfacatoare oferind un reglaj bun
medierii, lucru care produce întârzieri.
Mai mult, acesta neglijează
compensatii ale referintei în cazul în care
4.2.2. Fltrul Kalman
Filtrul Kalman, de asemenea c
este un algoritm care utilizează o serie de măsurători observate în timp, care con
(varia�ii aleatorii) sau alte inexactită�i �i produce estimări ale vaiab
tind să fie mai precise decât cele bazate pe o singură măsurare. Mai formal, filtrul Kalman
func�ionează recursiv pe fluxuri de date de intrare zgomotoase pentru a produce o estimare
rite de măsură: grade sau procente. Astrolaburile sunt inclinometre care au fost folosite pentru navigarea �i localizarea obiectelor astronomice.
După o analiza comparativa, IMU a fost ales pentru detectarea unghiului de înclinare.
imul rând, senzorul infraro�u cat �i poten�iometrul nu pot sesiza unghiul de înclinare
�i răspunsul lor este lent în compara�ie cu IMU. Pentru a compensa
cuplu ridicat, care costa mai mult de IMU singur. În al doilea
zgomotoase ale IMU pot fi filtrate ulterior combinând
scopului. In al treilea rand, IMU are rezolu�ie de 0.1
�ionate
Filtrul complementar actioneaza prin efectuarea unui filtraj cu pondere mai mica
asurate de catre accelerometru si un filtraj cu pondere mai mare pentru datele
achizitionate de giroscop care implica practic calcule de mediere a valorilor celor doi senzori.
O astfel de metoda da rezultate satisfacatoare oferind un reglaj bun, dar lent d
întârzieri.
Fig. 15. Filtru complementar
neglijează tendinta giroscopului, ceea ce poate provoca mari
în cazul în care tendinta giroscopului se modfica.
Filtrul Kalman, de asemenea cunoscut sub numele de estimator pătratic liniar (LQE),
este un algoritm care utilizează o serie de măsurători observate în timp, care con
�ii aleatorii) sau alte inexactită�i �i produce estimări ale vaiabilelor necunoscute, care
tind să fie mai precise decât cele bazate pe o singură măsurare. Mai formal, filtrul Kalman
�ionează recursiv pe fluxuri de date de intrare zgomotoase pentru a produce o estimare
sunt inclinometre
IMU a fost ales pentru detectarea unghiului de înclinare.
t sesiza unghiul de înclinare
IMU. Pentru a compensa sunt necesare
e IMU singur. În al doilea
combinând masuratorile
de 0.1°, fiind cea
Filtrul complementar actioneaza prin efectuarea unui filtraj cu pondere mai mica
asurate de catre accelerometru si un filtraj cu pondere mai mare pentru datele
achizitionate de giroscop care implica practic calcule de mediere a valorilor celor doi senzori.
, dar lent din cauza
ului, ceea ce poate provoca mari
pătratic liniar (LQE),
este un algoritm care utilizează o serie de măsurători observate în timp, care con�in zgomot
ilelor necunoscute, care
tind să fie mai precise decât cele bazate pe o singură măsurare. Mai formal, filtrul Kalman
�ionează recursiv pe fluxuri de date de intrare zgomotoase pentru a produce o estimare
optimala statistica a starii de la baza sistemul
Kálmán, unul dintre dezvoltatorii principali ai teoriei sale.
Filtrul Kalman are numeroase aplica
orientare, navigare �i control
filtrul Kalman este un concept aplicat pe scară largă în analiza seriilor de timp utilizate în
domenii cum ar fi procesare a semnalelor
Algoritmul are la baza un proces în două
produce estimări ale variabilelor actuale de stare, împreună cu incertitudinile lor. Odată
rezultatul măsurării următoare (în mod necesar alterat cu o anumită eroare, inclusi
aleator) se observă ca aceste estimări sunt actualizate folosind o pondere, o insemnatate mai
mare fiind acordată estimării cu certitudine mai mare. Datorita naturii recursive a
algoritmului, acesta poate rula în timp real, folosind doar măsurătorile de intrare curente
starea calculata anterior, nu este necesară o informa
efectuate anterior.
Din punct de vedere teoretic, ipoteza principală a filtrului Kalman este aceea că
sistemul de bază este un sistem dinamic liniar
măsurătorile au o distribu�ie Gaussiană (adesea o distribu�ie Gaussiană multivariata).
Extensii �i generalizări ale metodei au fost de asemenea dezvoltate, cum ar fi filre
Kalman extinse �i filtre Kalman modificate care func�ionează pe
de bază este un model Bayesian similar cu un model Markov ascuns, dar în care starea
spatiului de variabile latente este continuă
distribu�ie Gaussiană.
Toate măsurătorile �i calcul
Datele zgomotoase oferite de senzori, aproximările în ecua
schimbă sistemul �i factorii externi nu sunt luati in considerare pentru a introduce o anumită
optimala statistica a starii de la baza sistemului. Filtrul este numit dupa Rudolf (Rudy) E.
Kálmán, unul dintre dezvoltatorii principali ai teoriei sale.
Fig. 16. Algoritm filtru Kalman
Filtrul Kalman are numeroase aplica�ii în tehnologie. O aplica�ie comună este de
�i control al vehiculelor, în special aeronave �i nave spa�iale. Mai mult,
filtrul Kalman este un concept aplicat pe scară largă în analiza seriilor de timp utilizate în
domenii cum ar fi procesare a semnalelor �i econometrie.
Algoritmul are la baza un proces în două etape. În etapa de predic�ie, filtrul Kalman
produce estimări ale variabilelor actuale de stare, împreună cu incertitudinile lor. Odată
rezultatul măsurării următoare (în mod necesar alterat cu o anumită eroare, inclusi
aceste estimări sunt actualizate folosind o pondere, o insemnatate mai
mare fiind acordată estimării cu certitudine mai mare. Datorita naturii recursive a
algoritmului, acesta poate rula în timp real, folosind doar măsurătorile de intrare curente
rea calculata anterior, nu este necesară o informa�ie suplimentară din celelate masuratori
Din punct de vedere teoretic, ipoteza principală a filtrului Kalman este aceea că
sistemul de bază este un sistem dinamic liniar �i că toate condi�iile de eroare �i
�ie Gaussiană (adesea o distribu�ie Gaussiană multivariata).
�i generalizări ale metodei au fost de asemenea dezvoltate, cum ar fi filre
�i filtre Kalman modificate care func�ionează pe sisteme neliniare. Modelul
de bază este un model Bayesian similar cu un model Markov ascuns, dar în care starea
spatiului de variabile latente este continuă �i toate variabilele latente si observabile au
�i calculele bazate pe modele sunt estimări cu un anumit grad.
Datele zgomotoase oferite de senzori, aproximările în ecua�iile care descriu modul în care se
�i factorii externi nu sunt luati in considerare pentru a introduce o anumită
ui. Filtrul este numit dupa Rudolf (Rudy) E.
�ii în tehnologie. O aplica�ie comună este de
�i nave spa�iale. Mai mult,
filtrul Kalman este un concept aplicat pe scară largă în analiza seriilor de timp utilizate în
�ie, filtrul Kalman
produce estimări ale variabilelor actuale de stare, împreună cu incertitudinile lor. Odată cu
rezultatul măsurării următoare (în mod necesar alterat cu o anumită eroare, inclusiv zgomotul
aceste estimări sunt actualizate folosind o pondere, o insemnatate mai
mare fiind acordată estimării cu certitudine mai mare. Datorita naturii recursive a
algoritmului, acesta poate rula în timp real, folosind doar măsurătorile de intrare curente �i
�ie suplimentară din celelate masuratori
Din punct de vedere teoretic, ipoteza principală a filtrului Kalman este aceea că
�iile de eroare �i
�ie Gaussiană (adesea o distribu�ie Gaussiană multivariata).
�i generalizări ale metodei au fost de asemenea dezvoltate, cum ar fi filre
sisteme neliniare. Modelul
de bază este un model Bayesian similar cu un model Markov ascuns, dar în care starea
�i toate variabilele latente si observabile au
ele bazate pe modele sunt estimări cu un anumit grad.
�iile care descriu modul în care se
�i factorii externi nu sunt luati in considerare pentru a introduce o anumită
23
incertitudine cu privire la valorile deduse despre starea unui sistem. Filtrul Kalman atinge
ofera o predic�ie a stării unui sistem cu o nouă măsurare folosind o medie ponderată. Scopul
ponderilor este ca valorile cu incertitudinea estimata mai mica sunt considerate mai sigure.
Ponderile sunt calculate din covarian�ă, o măsură a incertitudinii predictiei estimate a stării
sistemului. Rezultatul mediu ponderat este o noua estimare a starii, care se află între starea
prezisa �i măsurata �i are o incertitudine mai buna decat a celor doua stari luate separat.
Acest proces se repetă la fiecare pas, cu noua estimare �i covarian�a informand predic�ia
utilizata în următoarea itera�ie. Acest lucru înseamnă că filtrul Kalman functioneaza recursiv
�i necesită doar ultima cea mai buna apreciere mai degrabă, decât întreaga istorie de stari a
sistemului pentru a calcula o noua stare.
Deoarece certitudinea măsurătorilor este de multe ori dificila de estimat, este de inteles
tratarea comportamentul filtrului din punct de vedere al câ�tigului. Câ�tigul filtrului Kalman
este o func�ie de siguran�ă relativa a măsurătorilor �i de estimare a stadiul actual, prin
urmare poate fi reglat pentru a ob�ine o performan�ă cat mai buna. Cu un câ�tig mare,
filtrul pune mai mult accent pe măsurători �i astfel le urmareste mai indeaproape. Cu un
câ�tig mic, filtrul urmareste predictiile modelului mai îndeaproape, netezind zgomotul, dar îi
scade sensibilitatea. La extreme, un câ�tig unitar determina filtrul sa ignore complet
estimarea starii, în timp ce un castig nul va determina ignorarea măsurătorilor. La efectuarea
calculelor actuale pentru filtrul Kalman starea estimata �i covarian�ele sunt codificate în
matrici pentru a ocupa multiplele dimensiuni implicate într-un singur set de calcule. Acest
lucru permite o reprezentare a rela�iilor liniare între diferite variabile de stare (cum ar fi
pozi�ia, viteza �i accelera�ia) în oricare dintre modelele de tranzitie sau covarian�e.
Alegerea filtrului
In urma comparatiei celor doua tipuri de filtrare atat din punct de vedere teoretic dar si
in urma testelor experimentale am decis utilizarea filtrului Kalman pentru prelucrarea datelor
achizitionate de catre senzori.
Dezavantajul filtrului Kalman este că acesta trebuie să fie reglat corespunzător înainte
de a putea fi implementat într-un sistem �i nu există nici o metodă fixa de reglaj disponibila
deoarece este aplicabil pe scară largă în numeroase domenii. Din aceasta cauza reglajul
acestuia a necesitat numeroase incercari si teste pana am ajuns la valori optime ale
parametrilor de reglare.
4.3. Metoda de detecţie a vitezei de deplasare
Pentru a cunoaste in timp real situatia in care se fla robotul, respectiv date despre
viteza de deplasare, viteza de rotatie a motoarelor este absolut necesar sa avem acces rapid la
aceste variabile in vederea adaptarii si actualizarii comportamentului robotului.
24
4.3.1. Codificatorul rotativ
Fig. 17. Codificator rotativ
Codificatorul rotativ masoara viteza motorului cu ajutorul unui senzor infraro�u �i
unui disc rotativ cu fante. Discul rotativ trebuie să fie instalat pe parte mobila a motorului.
Este o alternativa ieftina �i poate detecta viteza motorului in timp real. Precizia acestuia este
data de numarul de fante ale discului. Dezavantajul este acela ca nu se cunoaste sensul de
rotatie.
4.3.2. Codificatorul în cuadratură
Fig. 18. Semnal codificator in cuadratură
Codificatorul in cuadratura detecteaza viteza motorului prin utilizarea a doi senzori magnetici pentru a măsura viteza de rota�ie a ro�ii de referinta. Ie�irea sa este în formă de impulsuri. Principiul se aseamana cu cel al codificatorului rotativ, insa poate detecta si sensul. Se poate detecta viteza in timp real a motorului, dar �i consumă multe cicluri de calcul dinviteza procesorului.
25
4.3.3. Feedback-ul câmpului electromagnetic
Metoda feedback-ului campului electromagnetic generat de motor se bazeaza pe
detectia propriului camp electromagnetic generate de motorul de curent continuu, care este
propor�ional cu viteza motorului, prin oprirea motorului pentru o durată scurtă de timp. Prin
urmare, astfel se reduce viteza maximă a motorului. Această metodă este la indemana si
aplicabila pe orice tip de motor de curent continuu fara a aduce modificari acestuia, dar se
poate simti doar reprezentarea magnitudinii vitezei cu ajutorul metodei, nu si sensul de rotatie.
Principiul are la baza fenomenul de autoinductie si se realizeaza practic prin monitorizarea
tensiunii la bornele motorului.
Alegerea metodei de detecţie a vitezei
Dupa compararea alternativelor pentru detectarea vitezei de deplasare am considerat
ca find cel mai potrivit codificatorul in cuadratura deoarece pe langa precizia mare de detectie
a vitezei de rotatie poate detecta si sensul de rotatie al motoarelor. Sensul de rotatie fiind un
aspect foarte important in cadrul unui astfel de proiect.
4.4. Algoritmul de control
Un rol dosebit de important in controlul unui robot autonom cu autoechilibrare il
ocupa algoritmul principal de control al sistemului deoarece acesta sta la baza principiului de
autobalansare.
4.4.1. Controlul cu logica Fuzzy
Fig. 19. Tabel de control logica Fuzzy
Un controler cu logica Fuzzy este un controller care utilizeaza logica Fuzzy pentru a
determina un cursul unei ac�iuni. Calculul ac�iunii de control este compus din patru etape:
scalarea intrarii �i reprofilarea, fuzificarea, inferenta fuzzy �i defuzificarea. În scalarea
intrarii �i reprofiare, intrările sistemului pot fi prelucrate �i scalate corespunzător. În etapa
de fuzificare, intrările actualizate sunt apoi convertite în valori fuzzy. După inferen�a fuzzy,
o ac�iune adecvata de control este determinat
stabilite anterior. În cele din urmă, ie
Pentru implementarea
stari multiple care sa ia in considerare cel putin doua seturi de valori furnizate de senzori
datorita complexitatii si instabilitatii ridicate a sistemului.
4.4.2. Regulatorul PID
Un regulator propor�ional
al buclei de feedback, utilizat pe scară largă în sistemele de control industrial. Un controler
PID calculează o valoare a "erorii" ca diferen
valoarea de referin�ă dorită.
intrărilor de controlul ale procesului.
Algoritm de calcul al regulatorului PID implică trei parametri constanti diferiti
consecin�ă, este uneori numit control cu trei termen
derivat, notate P, I �i D. Mai exact, aceste valori pot fi interpretate în termeni de tim
depinde de eroarea prezenta, I de acumularea de erori din trecut, iar D este o predi
erorilor viitoare, în func�ie de rata actuală de schimbare. Suma ponderată a acestor trei
ac�iuni este utilizata pentru a regla un proces prin intermediul controlului unui element
precum pozi�ia unei vane de reglare, un amortizor sau puterea furniza
încălzire.
În absen�a cunoa�terii procesului ce sta la baza sistemului, regulatorul PID a fost
considerat inca din trecut drept fiind cel mai bun regulator. Prin ajustarea celor trei parametri
în algoritmul regulatorului PID,
pentru cerin�ele specifice ale unui proces. Răspunsul regulatorului poate fi descris ca fiind
raspunsul la o eroare al controlerului, gradul în care regulatorul se abate de la valorea de
de control este determinata de căutarea in cadrul unui tabel a regulii
anterior. În cele din urmă, ie�irea determinista este definită în etapa de
Pentru implementarea unui astfel de algoritm este necesara definirea unei matrici cu
stari multiple care sa ia in considerare cel putin doua seturi de valori furnizate de senzori
datorita complexitatii si instabilitatii ridicate a sistemului.
�ional-integral-derivat (PID) este un mecanism generic de control
al buclei de feedback, utilizat pe scară largă în sistemele de control industrial. Un controler
PID calculează o valoare a "erorii" ca diferen�ă între variabila de proces măsurată �i
�ă dorită. Regulatorul încearcă să minimizeze eroarea prin ajustarea
intrărilor de controlul ale procesului.
Fig. 20. Algoritm PID
Algoritm de calcul al regulatorului PID implică trei parametri constanti diferiti
ste uneori numit control cu trei termeni: termenul proportional
�i D. Mai exact, aceste valori pot fi interpretate în termeni de tim
depinde de eroarea prezenta, I de acumularea de erori din trecut, iar D este o predi
�ie de rata actuală de schimbare. Suma ponderată a acestor trei
�iuni este utilizata pentru a regla un proces prin intermediul controlului unui element
�ia unei vane de reglare, un amortizor sau puterea furnizată unui element de
�a cunoa�terii procesului ce sta la baza sistemului, regulatorul PID a fost
considerat inca din trecut drept fiind cel mai bun regulator. Prin ajustarea celor trei parametri
în algoritmul regulatorului PID, algoritmul poate oferi control asupra actiunii proiectate
�ele specifice ale unui proces. Răspunsul regulatorului poate fi descris ca fiind
raspunsul la o eroare al controlerului, gradul în care regulatorul se abate de la valorea de
cadrul unui tabel a regulii
de defuzificare.
necesara definirea unei matrici cu
stari multiple care sa ia in considerare cel putin doua seturi de valori furnizate de senzori
derivat (PID) este un mecanism generic de control
al buclei de feedback, utilizat pe scară largă în sistemele de control industrial. Un controler
�ă între variabila de proces măsurată �i
Regulatorul încearcă să minimizeze eroarea prin ajustarea
Algoritm de calcul al regulatorului PID implică trei parametri constanti diferiti �i, în
termenul proportional, integral �i
�i D. Mai exact, aceste valori pot fi interpretate în termeni de timp: P
depinde de eroarea prezenta, I de acumularea de erori din trecut, iar D este o predic�ie a
�ie de rata actuală de schimbare. Suma ponderată a acestor trei
�iuni este utilizata pentru a regla un proces prin intermediul controlului unui element
tă unui element de
�a cunoa�terii procesului ce sta la baza sistemului, regulatorul PID a fost
considerat inca din trecut drept fiind cel mai bun regulator. Prin ajustarea celor trei parametri
poate oferi control asupra actiunii proiectate
�ele specifice ale unui proces. Răspunsul regulatorului poate fi descris ca fiind
raspunsul la o eroare al controlerului, gradul în care regulatorul se abate de la valorea de
referin�ă, precum �i gradul de oscila
algoritmilor PID pentru control nu garantează un control optim al sistemului sau stabilitatea
sistemului.
Unele aplica�ii pot necesita folosirea uneia sau a două ac�iuni pentru a ofe
controlul adecvat al sistemului. Acest lucru se realizează prin ajustarea celorlal
zero. Un regulator PID va fi numit un regulator PI, PD, P sau I în absen
control respective. Regulatoarele PI sunt destul de comune, deoare
sensibila la zgomotul de măsurare, în timp ce absen
sistemul să atingă valoarea sa optimă, datorită ac
Sistemul de control PID este numit după cele trei termeni corectare,
reprezintă variabila manipulată (MV). Termenii propor
însumate pentru a calcula Ie
forma finală a algoritmului PID este:
Unde:
: Câ�tig propor�ional, un parametru de tuning
: Câ�tig integral, un parametru de tuning
: Câ�tig derivat, un parametru de tuning
: Eroare
: Timp sau timp instant (
: Variabilă de integrare, ia valori de la momentul 0 până în prezent
Termenul propor�ional
Termenul propor�ional produce o valoare de ie�ire
valoarea de eroare actuala. Răspunsul propor
o constantă Kp, numită constanta
Termenul propor�ional
Un câ�tig propor�ional mare are drept consecinta o schimbare majora a ie�ir
anumita schimbare a erorii. În cazul în care câ
poate deveni instabil. In contrast, un câ
la o eroare de intrare mare �i un regulator mai putin receptiv sau mai pu�in sensibile. În
cazul în care câ�tigul propor�ional este prea mic, ac�iunea de control poate fi prea mica
atunci când răspunde la perturbat
faptul că termenul propor�ional ar trebui să contribuie in cea mai mare masura la modificarea
ie�irii.
Termenul integral
gradul de oscila�ie al sistemului. De remarcat este faptul ca utilizarea
algoritmilor PID pentru control nu garantează un control optim al sistemului sau stabilitatea
�ii pot necesita folosirea uneia sau a două ac�iuni pentru a ofe
controlul adecvat al sistemului. Acest lucru se realizează prin ajustarea celorlal
zero. Un regulator PID va fi numit un regulator PI, PD, P sau I în absen�a ac�iunilor de
control respective. Regulatoarele PI sunt destul de comune, deoarece ac�iunea derivata este
sensibila la zgomotul de măsurare, în timp ce absen�a unui termen integrant poate împiedica
sistemul să atingă valoarea sa optimă, datorită ac�iunii de control.
Sistemul de control PID este numit după cele trei termeni corectare,
reprezintă variabila manipulată (MV). Termenii propor�ionale, complete, �i derivat sunt
însumate pentru a calcula Ie�irea controlerului PID. Definirea ca ie�irea regulatorului,
forma finală a algoritmului PID este:
�ional, un parametru de tuning
�tig integral, un parametru de tuning
�tig derivat, un parametru de tuning
Timp sau timp instant (prezent)
Variabilă de integrare, ia valori de la momentul 0 până în prezent
�ional
�ional produce o valoare de ie�ire care este propor
Răspunsul propor�ional poate fi ajustat prin înmul
, numită constanta de câ�tig propor�ional.
�ional este dat de:
�tig propor�ional mare are drept consecinta o schimbare majora a ie�ir
rii. În cazul în care câ�tigul propor�ional este prea mare, sistemul
poate deveni instabil. In contrast, un câ�tig mic are drept consecinta un răspuns de ie
�i un regulator mai putin receptiv sau mai pu�in sensibile. În
�tigul propor�ional este prea mic, ac�iunea de control poate fi prea mica
atunci când răspunde la perturbatiile sistemului. Teoria reglarii �i practica industrială indică
�ional ar trebui să contribuie in cea mai mare masura la modificarea
�ie al sistemului. De remarcat este faptul ca utilizarea
algoritmilor PID pentru control nu garantează un control optim al sistemului sau stabilitatea
�ii pot necesita folosirea uneia sau a două ac�iuni pentru a oferi
controlul adecvat al sistemului. Acest lucru se realizează prin ajustarea celorlal�i parametri la
�a ac�iunilor de
�iunea derivata este
�a unui termen integrant poate împiedica
Sistemul de control PID este numit după cele trei termeni corectare, a căror sumă
�ionale, complete, �i derivat sunt
�irea regulatorului,
.
care este propor�ională cu
i ajustat prin înmul�irea erorii cu
�tig propor�ional mare are drept consecinta o schimbare majora a ie�irii la o
�tigul propor�ional este prea mare, sistemul
drept consecinta un răspuns de ie�ire mic
�i un regulator mai putin receptiv sau mai pu�in sensibile. În
�tigul propor�ional este prea mic, ac�iunea de control poate fi prea mica
�i practica industrială indică
�ional ar trebui să contribuie in cea mai mare masura la modificarea
Contribu�ia termenului integrant este propor�ională atât în magnitudin
�i în durata erorii. Termenul integral într
timp �i rezulta diferen�a acumulata care ar fi fost corectata anterior. Eroare acumulata este
apoi multiplicată cu un câ�tig integral (
Termenul integral este dat de:
Termenul integral accelerează mi
�i elimina eroarea reziduală a starii de echilibru, care apare cu un regulator strict
propor�ional. Cu toate acestea, deoarece termenul integrant răspunde la erorile acumulate
anterior, se poate determina ca valoarea actualizată sa depă
Termenul derivativ
Derivata erorii din proces este calculata prin determinarea pantei de eroare în ti
înmul�ind această rata de variatie cu derivata câ�tigului
termenului derivat la ac�iunea de control general este determinata de câ�tigul derivatei,
Termenul derivat este dat de:
Ac�iune derivatei prezice
timpul tranzitoriu si stabilitatea sistemului. Cu toate acestea, ac
utilizata în practică din cauza sensibilitatii sale inerente de zgomot de măsurare. Dacă acest
zgomot este destul de sever, ac
performanta controlului. Schimbările mari, bru
atunci când punctul de setare este schimbat) determina o ac
rezultă din termenul derivat si poarte numele de lovitura a derivatei. Această problemă poate
fi ameliorata intr-o oarecare masura dacă eroarea măsurată este trecuta printr
jos liniar sau un filtru median neliniar, dar simplu.
In general stabilizarea raspunsului sistemului este necesara si procesul nu trebuie sa
oscileze pentru nicio combinatie a conditiilor initiale, desi uneori stabilitatea marginala este
acceptata. Comportamentul optimal al regulatorului variaza odata cu tipul de proces. D
cerinte sunt impuse in acest caz: reglarea (rejectia perturbatiilor
referinta) si urmarirea comenzii (actualizarea schimbarii referintei). Pot fi impuse criterii
specifice de urmarire a comenzii precum timpul tranzitoriu si
Alegerea algoritmului
Pentru realizarea controlului comportamentului robotului am ales utilizarea unui
regulator PID si ajustarea valorilor
de-a lungul efectuarii testelor. Chiar daca structura sa este destul de simpla, un regulator PID
nu este usor de reglat, mai ales in cazul in care se doreste un grad ridicat de stabilitate. Iesirea
�ia termenului integrant este propor�ională atât în magnitudin
�i în durata erorii. Termenul integral într-un regulator PID este suma erorii instantanee în
�i rezulta diferen�a acumulata care ar fi fost corectata anterior. Eroare acumulata este
�tig integral ( ) �i se adaugă la ie�irea regulatorului.
Termenul integral este dat de:
Termenul integral accelerează mi�carea a procesului fa�ă de valoarea de referin�ă
�i elimina eroarea reziduală a starii de echilibru, care apare cu un regulator strict
stea, deoarece termenul integrant răspunde la erorile acumulate
anterior, se poate determina ca valoarea actualizată sa depă�easca valoarea de referin�ă.
Derivata erorii din proces este calculata prin determinarea pantei de eroare în ti
�ind această rata de variatie cu derivata câ�tigului Kd. Amploarea contribu
�iunea de control general este determinata de câ�tigul derivatei,
Termenul derivat este dat de:
�iune derivatei prezice comportamentul sistemului �i, astfel, îmbunătă�e�te
timpul tranzitoriu si stabilitatea sistemului. Cu toate acestea, ac�iunea derivatei este rar
utilizata în practică din cauza sensibilitatii sale inerente de zgomot de măsurare. Dacă acest
ul de sever, ac�iunea derivatei va fi neregulata �i va degrada de fapt
performanta controlului. Schimbările mari, bru�te în eroarea măsurata (care apar de obicei
atunci când punctul de setare este schimbat) determina o ac�iune de control brusc, mare care
ezultă din termenul derivat si poarte numele de lovitura a derivatei. Această problemă poate
o oarecare masura dacă eroarea măsurată este trecuta printr
jos liniar sau un filtru median neliniar, dar simplu.
bilizarea raspunsului sistemului este necesara si procesul nu trebuie sa
oscileze pentru nicio combinatie a conditiilor initiale, desi uneori stabilitatea marginala este
acceptata. Comportamentul optimal al regulatorului variaza odata cu tipul de proces. D
cerinte sunt impuse in acest caz: reglarea (rejectia perturbatiilor – mentinerea unei valori de
referinta) si urmarirea comenzii (actualizarea schimbarii referintei). Pot fi impuse criterii
specifice de urmarire a comenzii precum timpul tranzitoriu si timpul de stabilizare.
Pentru realizarea controlului comportamentului robotului am ales utilizarea unui
valorilor parametrilor de calcul (proportional, integral, derivativ)
a lungul efectuarii testelor. Chiar daca structura sa este destul de simpla, un regulator PID
nu este usor de reglat, mai ales in cazul in care se doreste un grad ridicat de stabilitate. Iesirea
�ia termenului integrant este propor�ională atât în magnitudinea erorii cat
un regulator PID este suma erorii instantanee în
�i rezulta diferen�a acumulata care ar fi fost corectata anterior. Eroare acumulata este
�irea regulatorului.
�carea a procesului fa�ă de valoarea de referin�ă
�i elimina eroarea reziduală a starii de echilibru, care apare cu un regulator strict
stea, deoarece termenul integrant răspunde la erorile acumulate
�easca valoarea de referin�ă.
Derivata erorii din proces este calculata prin determinarea pantei de eroare în timp �i
. Amploarea contribu�iei
�iunea de control general este determinata de câ�tigul derivatei, Kd.
�i, astfel, îmbunătă�e�te
�iunea derivatei este rar
utilizata în practică din cauza sensibilitatii sale inerente de zgomot de măsurare. Dacă acest
�iunea derivatei va fi neregulata �i va degrada de fapt
�te în eroarea măsurata (care apar de obicei
�iune de control brusc, mare care
ezultă din termenul derivat si poarte numele de lovitura a derivatei. Această problemă poate
o oarecare masura dacă eroarea măsurată este trecuta printr-un filtru trece-
bilizarea raspunsului sistemului este necesara si procesul nu trebuie sa
oscileze pentru nicio combinatie a conditiilor initiale, desi uneori stabilitatea marginala este
acceptata. Comportamentul optimal al regulatorului variaza odata cu tipul de proces. Doua
mentinerea unei valori de
referinta) si urmarirea comenzii (actualizarea schimbarii referintei). Pot fi impuse criterii
timpul de stabilizare.
Pentru realizarea controlului comportamentului robotului am ales utilizarea unui
de calcul (proportional, integral, derivativ)
a lungul efectuarii testelor. Chiar daca structura sa este destul de simpla, un regulator PID
nu este usor de reglat, mai ales in cazul in care se doreste un grad ridicat de stabilitate. Iesirea
sistemului poate fi instabila sau poate intra in oscilatii amplificate datorita valorilo
parametrilor. De asemenea ar putea fi utilizat si un algoritm de control hibrid PD
4.5. Comanda motoarelor
Pentru controlul motoarelor este necesara o comanda variabila a vitezei, pe cat se poate de liniara. Viteza motorului este direct proporacestea, reducând tensiunea motorului pentru o turacuplul motorului.
Modularea de tip PWM, se poate folosi pentru a contracara aceasta problema. PWM
func�ionează prin trimiterea unui semnal dreptunghiular pentru pornirea �i oprirea
motorului la o frecven�ă foarte mare în
Motorul primeste maximul de tensiune pentru o perioada de timp ceea ce duce la dezvoltarea
unui cuplu mai mare decât reducerea directa a tensiunii motorului pentru controlul vitezei
Factorul de umplere PWM este propor
de umplere PWM este propor�ional cu viteza motorului.
In vederea schimbarii directie de mers si a sensului de rotatie nu este suficient sa
trimitem doar o comanda PWM modulata in frecv
cazul servomotoarelor. In cadrul acestui proiect ar putea fi utilizate servomotoare pentru ca au
un raspuns rapid dar, in general acestea au puteri destul de mici si implicit
redus.
Puntea H este un circuit electronic
sarcină în orice direcţie. Aceste circuite
a permite motoarelor de curent continuu
ca si circuite integrate, sau pot fi construite din
poate fi instabila sau poate intra in oscilatii amplificate datorita valorilo
De asemenea ar putea fi utilizat si un algoritm de control hibrid PD
Pentru controlul motoarelor este necesara o comanda variabila a vitezei, pe cat se Viteza motorului este direct propor�ională cu tensiunea motorului. Cu toate
acestea, reducând tensiunea motorului pentru o tura�ie mai mică a motorului se
Fig. 21. Comanda PWM
Modularea de tip PWM, se poate folosi pentru a contracara aceasta problema. PWM
�ionează prin trimiterea unui semnal dreptunghiular pentru pornirea �i oprirea
�ă foarte mare în a�a fel încât in realitate motorul sa nu se opreasca .
Motorul primeste maximul de tensiune pentru o perioada de timp ceea ce duce la dezvoltarea
unui cuplu mai mare decât reducerea directa a tensiunii motorului pentru controlul vitezei
re PWM este propor�ional cu tensiunea medie motorului. Astfel, factorul
�ional cu viteza motorului.
In vederea schimbarii directie de mers si a sensului de rotatie nu este suficient sa
trimitem doar o comanda PWM modulata in frecventa sau in factorul de umplere cum este
cazul servomotoarelor. In cadrul acestui proiect ar putea fi utilizate servomotoare pentru ca au
un raspuns rapid dar, in general acestea au puteri destul de mici si implicit dezvolta un cuplu
n circuit electronic care permite unei tensiuni să fie
Aceste circuite sunt adesea folosite în robotică şi alte aplicaţii
motoarelor de curent continuu să ruleze înainte şi înapoi. Puntile H
pot fi construite din componente discrete.
poate fi instabila sau poate intra in oscilatii amplificate datorita valorilor gresite ale
De asemenea ar putea fi utilizat si un algoritm de control hibrid PD-Fuzzy.
Pentru controlul motoarelor este necesara o comanda variabila a vitezei, pe cat se �ională cu tensiunea motorului. Cu toate �ie mai mică a motorului se reduce si
Modularea de tip PWM, se poate folosi pentru a contracara aceasta problema. PWM
�ionează prin trimiterea unui semnal dreptunghiular pentru pornirea �i oprirea
�a fel încât in realitate motorul sa nu se opreasca .
Motorul primeste maximul de tensiune pentru o perioada de timp ceea ce duce la dezvoltarea
unui cuplu mai mare decât reducerea directa a tensiunii motorului pentru controlul vitezei.
cu tensiunea medie motorului. Astfel, factorul
In vederea schimbarii directie de mers si a sensului de rotatie nu este suficient sa
enta sau in factorul de umplere cum este
cazul servomotoarelor. In cadrul acestui proiect ar putea fi utilizate servomotoare pentru ca au
dezvolta un cuplu
să fie aplicata într-o
alte aplicaţii pentru
H sunt disponibile
Termenul punte H este derivat din
punte H este construita cu patru
întrerupătoare S1 şi S4 (în conformitate cu
deschise), o tensiune pozitivă
întrerupătoarelor S1 şi S4 şi închiderea întrerupătoarelor
inversată , permiţând o operaţie inversă a motorului.
Folosind schema prezentată, întrerupătoarele S1 şi S2 nu trebuiesc niciodată închise în
acelaşi timp, deoarece aceasta ar
aplică şi pentru întrerupătoarele
Regimul de lucru al puntii H
motorului, dar poate de asemenea
ajunge la o oprire bruscă, pentru
permite motorului să meargă în gol
circuit.
Fig. 2
O punte H este construita de obicei utilizand dispozitive de polaritati diferite,
tranzitori PNP sau MOSFET
MOSFET-uri canal N conectate la borna negativa.
Cel mai eficient design MOSF
dar şi pe partea negativa, deoarece acestea au
urilor canal P. Acest lucru necesită
partea superioara trebuiesc alimantate pozitiv cu respectarea polaritatii sursei de tensiune.
Fig. 22. Puntea H
este derivat din reprezentarea grafică a unui astfel de circuit
cu patru switch-uri (solid-state sau mecanice
în conformitate cu prima cifră) sunt închise (S2 şi S3
pozitivă va fi aplicata la nivelul motorului. Prin deschiderea
întrerupătoarelor S1 şi S4 şi închiderea întrerupătoarelor S2 şi S3, această tensiune este
permiţând o operaţie inversă a motorului.
Folosind schema prezentată, întrerupătoarele S1 şi S2 nu trebuiesc niciodată închise în
acelaşi timp, deoarece aceasta ar provoca un scurtcircuit la sursa de tensiune. Ac
ntrerupătoarele S3 si S4.
de lucru al puntii H este, în general, folosit pentru a inversa polaritatea
de asemenea fi folosit pentru a "frana" motorul, în cazul în care
, pentru că terminalele motorului sunt scurtcircuitate
să meargă în gol într-o oprire, ca şi cum motorul ar fi efectiv
Fig. 23. Regimurile de operare ale puntii H
O punte H este construita de obicei utilizand dispozitive de polaritati diferite,
MOSFET-uri canal P conectate la borna pozitiva şi tranzitori
conectate la borna negativa.
Cel mai eficient design MOSFET utilizează MOSFET canal N atât pe partea pozitiva
, deoarece acestea au de obicei o treime din rezistenta
Acest lucru necesită un design mult mai complex, deoarece porttile de pe
trebuiesc alimantate pozitiv cu respectarea polaritatii sursei de tensiune.
a unui astfel de circuit. O
mecanice). Atunci când
S2 şi S3 şi sunt
Prin deschiderea
S2 şi S3, această tensiune este
Folosind schema prezentată, întrerupătoarele S1 şi S2 nu trebuiesc niciodată închise în
. Acelaşi lucru se
inversa polaritatea
în cazul în care motorul
scurtcircuitate, sau pentru a
ar fi efectiv deconectat din
O punte H este construita de obicei utilizand dispozitive de polaritati diferite, cum ar fi
tranzitori NPN sau
atât pe partea pozitiva
rezistenta MOSFET-
, deoarece porttile de pe
trebuiesc alimantate pozitiv cu respectarea polaritatii sursei de tensiune.
31
O altă metodă pentru conducerea punţilor MOSFET este utilizarea unui transformator
special, cunoscute ca un GDT (Gate Drive Transformer), care oferă iesiri izolate galvanic
pentru conducerea portilor superioare ale MOSFET-urilor. Miezul transformatorului este de
obicei un toroid de ferita, cu raport de înfaşurare 1:1 sau 4:9. Cu toate acestea, această
metodă poate fi utilizată numai cu semnale de înaltă frecvenţă. Designul transformatorului
este, de asemenea, foarte important, deoarece pierderile de camp magnetic trebuiesc
minimizate, sau conducere încrucişată poate avea loc. Trebuiesc montate diode zener la
iesirile transformatorului pentru că vârfurile de curent ar putea distruge jonctiunile
tranzistorilor.
O variantă comună a acestui circuit foloseşte doar doi tranzistori pe o parte a sarcinii,
similar cu un amplificator de clasa AB. O astfel de configuraţie este numită un "o jumatate de
punte". Jumatatea de punte este folosită în unele surse de alimentare care folosesc redresoare
sincrone şi în amplificatoare de comutare. O altă variaţie comună, adăugând un al treilea brat
la punte, creează un invertor cu 3 faze. Invertorul cu 3 faze este baza oricarui motor de curent
alternativ.
O alta varianta este puntea H pe jumatate controlata, în cazul în care unul dintre
dispozitivele de comutare pe borna pozitiva si negativa (pe părţile opuse ale puntii) se
înlocuiesc cu diode. Acest lucru elimină modul de esec al comenzii şi este frecvent utilizat
pentru a comanda masini care pornesc reticent şi elemente de acţionare unde fluxul de curent
bidirectional nu este necesar.
Un releu cu doua randuri de contacte poate atinge, în general, aceeaşi funcţionalitate
din punct de vedere electric ca o punte H (având în vedere funcţia uzuala a dispozitivului). O
punte H ar fi de preferat in schimbul releului deoarece are o dimensiune mai mica, comutare
de mare viteză si tensiune scăzută de conducere, sau în cazul în care nu se doreste utilizarea
unor piese mecanice.
5. Realizarea practica a proiectului “Pendulo Bot”
In urma cercetarii fenomenelor ce stau la baza robotului cu autoechilibrare am trecut la
realizarea fizica a unui astfel de sistem si testarea teoriilor de reglare descrise anterior.
5.1. Proiectul “Pendulo Bot” V1
O prima varianta a acestui proiect a fost robotul “Penduino Bot” V1 cu o inaltime de
20 cm si greutatea de 170g. Acest robot a fost realizat in special pentru intelegerea
functionarii principiului de autoechilibrare si experimentarea a diferiti algoritmi de control in
practica.
In vederea realizarii sasiului acestui robot am utilizat o placa de Comatex de care am
atasat un motor de 3 volti cu un angrenaj cu roti dintate care antreneaza doua roti motoare
coaxiale. Pentru a comanda puterea transmisa la motor dar si sensul de rotatie al acestuia
aveam nevoie de un dispozitiv miniatural dar suficient de puternic. De aceea am folosit puntea
H L298, care suporta o tensiune de alimentare de maxim 46 de volti si un curent maxim de 4
32
amperi. Este o punte duala de comanda cu o tensiune ridicata, curent mare care accepta intrari
logice de tip TTL si poate comanda sarcini inductive precum relee, bobine, motoare de curent
continuu sau motoare pas cu pas.
Fig. 24. Pendulo Bot V1
Senzorul pentru detectarea miscarii folosit este un accelerometru cu 3 axe
Freescale MMA7361 ce ofera cate o iesire analogica pe fiecare dintre cele 3 axe si are
urmatoarele caracteristici: consum redus – 400 μA / 3,3 V, sensibilitate ridicata – 800 mV/g,
sensibilitate selectabila (±1.5g si ±6g), detectie 0g pentru cadere libera si altele. Pentru
aplicatia robotului aveam nevoie de o sensibilitate cat mai ridicata, asa ca am setat scala de
masurare ±1.5g.
Partea de control unde se afla implementat un algoritm PD o reprezinta
microcontrollerul Atmega8L care coordoneaza intregul proces de autoechilibrare. Pentru
alimentarea sistemului am folosit 3 celule NiCd ce totalizeaza 3,6 volti. Microcontrollerul
fiind versiunea de voltaj redus avea o alimentare tot de 3,3 volti, ca si senzorul. Pentru
protectia impotriva supraalimentarii componentelor logice am montat la partea de intrare o
dioda Zenner de 3,3 volti.
Odata cu implementarea algoritmului am intampinat dificultati legate de calibrarea
regulatorului si prelucrarea datelor masurate de accelerometru, pentru acesta din urma
utilizand un filtru cu compensare. Atunci cand robotul sesiza o inclinare a sasiului incerca sa
se redreseze, dar aplica un cuplu prea mare asupra rotilor, astfel dezechilibrandu-se si intrand
in oscilatii amplificate.
Solutia acestei probleme a fost ajustarea filtrului cu compensare si citirea mai multor
valori dar astfel se consumau multi clicli de calcul. Daca unghiul de inclinare era mai mare de
o anumita valoare robotul se destabiliza fara a mai reusi sa se echilibreze.
33
5.2. Proiectul “Pendulo Bot” V2
Fiind deja familiarizat cu problemele ce pot aparea in cazul controlului unui robot cu
autoechilibrare am decis sa realizez o versiune imbunatatita a acestui tip de robot, la o scara
mai mare, utilizand componente mai sofisticate si incercand sa obtin un control cat mai bun
asupra proceselor ce au loc in cadrul sistemului.
5.2.1. Construc�ia �asiului
Pentru realizarea cadrului care sustine intreg sistemul am utilizat o bucata de plexiglas
decupata intr-o forma circulara, un material rezistent dar si usor in acelasi timp, careia i-am
creat ulterior orificii pentru prinderea motoarelor, a rotilor si a celorlalte componente. Forma
finala a robotului este pe mai multe straturi, pentru a putea fixa toate componentele
ansamblului si eventual modificarea centrului de greutate prin repozitionarea pieselor care au
pondere mai mare in masa robotului, cum ar fi acumulatorii.
Fig. 25. Baza sasiului
34
5.2.2. Deplasarea robotului
Modul de deplasare si control al stabilitatii robotului a fost realizat cu ajutorul a doua
motoare comandate din S.U.A. si care au montate cutii de transmisie pentru reducerea
raportului de transmisie si cresterea cuplului. Au incorporate cutii de transmisie cu raportul
102,083:1 si sunt destinate alimentarii la 6V pana la 12V. In cazul alimentarii la 12V are o
viteza de rotatie fara sarcina de 100 rot./min. si 300mA curent consumat in gol. Dezvolta un
moment de 16kg-cm la un curent de sarcina de 5A. Pentru conectare au un ax tip "D" cu
diametrul de 6mm.
Fig. 26. Dimensiunile motorului
Find disponibila si versiunea motorului cu un codificator in cuadratura atasat axului
am optat pentru aceasta varianta. Acesta reprezentand modalitatea de detectie a vitezei de
rotatie a motorului si calcularea ulterioara a cuplului si acceleratiei.
Fig. 27. Motor cu encoder
35
Acest codificator in cuadratura are o rezolutie de 64 de pasi pe rotatia axului
motorului, ceea ce corespunde la 6533 de pasi pe rotatia axului reductorului, deci o precizie
foarte mare. Pe aceste axuri ale cutiei de transmisie am montat doua roti cu diametrul de 10
cm din material plastic si cauciuc pentru a avea o aderenta sporita.
5.2.3. Comanda motoarelor
Comandarea motoarelor am realizat-o cu ajutorul unei punti H confectionata special
pentru acesta aplicatie cu 4 tranzistori MOSFET de tip N si un driver pentru acestia.
Tranzistorii de tipul N avand o rezistenta interna mai mica decat tranzistorii tip P datorita
tehnologiei actuale mai dezvoltate si a diferentei procesului fizic de realizare a jonctiunilor.
Totodata prin utilizarea unui driver MOSFET pentru controlul puntii H am obtinut un
timp de raspuns mai mic decat in cazul altui tip de punte H, lucru absolut necesar in cadrul
acestui proiect deoarece sensurile motoarelor se inverseaza cu foarte mare rapiditate in
vederea mentinerii echilibrului. Driverul de punte TLE6281G este destinat controlului PWM
al motoarelor de curent continuu cu puteri mari, are o plaja de alimentare de la 7,5 volti la 60
de volti si temperatura maxima de functionare 150 de grade.
Fig. 28. Punte H cu MOSFET
5.2.4. Senzorul de înclinare
Senzorul folosit la detectia inclinarii ales a fost o unitate inertiala de masurare,
prescurtat IMU, cu 10 grade de libertate care furnizeaza informatii de baza pentru calcularea
tuturor datelor de intrare necesare sistemului, impreuna cu codificatorul in cuadratura. Astfel
IMU este compus dintr-un accelerometru cu 3 axe, giroscop cu 3 axe, magnetometru cu 3 axe
si senzor de presiune.
36
Fig. 29. IMU cu 10 grade de libertate
Accelerometrul ADXL345
Fig. 30. ADXL345 – accelerometru cu 3 axe
ADXL345 este un accelerometru pe 3 axe mic, subtire si cu consum redus care are o rezolutie maxima de 13 biti si scala de masurare de la ±2g la ±16g. Ofera o iesire digitala pe 16 biti si este accesibila prin protocolul SPI sau interfata digitala I2C. Acest accelerometru este potrivit pentru multiple aplicatii, poate masura acceleratia statica gravitationala dar si acceleratia dinamica rezultata in urma miscarii sau socurilor. Datorita rezolutiei ridicate poate detecta modificari ale inclinarii mai mici de 1.0°. De asemenea prezinta functii speciale precum detectia miscarii sau absenta miscarii prin compararea acceleratiei pe oricare axa cu o valoare predefinita de utilizator.
Giroscopul L3G4200D
Fig. 31. L3G4200D – giroscop cu 3 axe
37
L3G4200D este un senzor de detectie a variatiei unghiului cu 3 axe capabil de o stabilitate foarte buna in timp si odata cu variatia temperaturii. Se compune dintr-un senzor si o interfata capabila sa ofere masuratorile variatiei unghiului printr-o interfata digitala (SPI/I2C). Acest giroscop are o scala selectabila ±250/±500/±2000 si o rezolutie de 16 biti.
Magnetometrul HMC5883L
HMC5883L este un senzor magnetorezistiv cu 3 axe, o sensibilitate de masurare 2 mili-Gauss intr-un camp de ±8 Gauss si o rezolutie de iesire de 12 biti pe interfata digitalaI2C. Datorita tehnologiei folosite in producerea senzorului (Anisotropic Magnetoresistive) acest senzor ofera o liniaritate si o sensibilitate sporita.
Senzorul de presiune BMP085
BMP085 este un senzor de presiune digital ce masoara presiuni cuprinse intre
300...1100hPa (+9000m...-500m sub nivelul marii) cu o rezolutie de 0.03hPa si interfata I2C.
5.2.5. Alimentarea robotului
Pentru alimentarea robotului trebuia sa aleg un tip de acumulatori care sa ofere o
energie destul de mare dar sa aiba si o greutate acceptabila. De preferat ar fi fost acumulatorii
pe baza de plumb care se gasesc pe piata la specificatiile 12V si 1...6A, dar din cauza ca
acestia aveau o greutate considerabila, aproximativ 1,5 kg nu am putut opta pentru aceasta
varianta, robotul fiind prea greu si dificil de controlat. Astfel am optat pentru acumulatori de
tip Ni-Cd care au o greutate mai mica decat cei pe baza de plumb si o putere comparabila.
Fig. 32. Acumulatori
Astfel am ales un pachet de 10 celule Ni-Cd de 1,2 volti si 1400 mA obtinand astfel o
tensiune de 12 volti si 1400 mA, suficienta pentru alimentarea motoarelor.
38
Pentru alimentarea microcontrollerului ATMEGA328 am folosit sursa de tensiune
stabilizata L7805, utilizata si in aplicatiile anterioare.
Fig. 33. Schema interna L7805
Fiind o sursa de tensiune stabilizata, L7805 este utilizata cu succes in alimentarea
microprocesoarelor si a altor echipamente ce au un consum redus. In functie de tensiunea de
intrare si curentul consumat de dispozitivul alimentat sursa disipa caldura proportional. De
aceea daca este utilizata la un curent mai mare este necesara montarea sa pe un radiator.
Pentru alimentarea senzorilor cu tensiunea stabilizata de 3,3 volti am utilizat un
montaj cu dioda Zenner.
5.2.6. Achizi�ia datelor
Pentru inregistrarea datelor despre variabilele sistemului am utilizat un adaptor pentru
SD-card care face conversia intre nivelul de tensiune de 5V utilizat de microcontroller si
nivelul de tensiune 3,3 volti la care lucreaza cardul. Astfel am stocat pe memoria cardului
parametrii de functionare ai motoarelor, respectiv valorile de comanda, datele achizitionate de
accelerometru si giroscop si ulterior le-am interpretat sub forma de grafice.
Fig. 34. Adaptor card SD
39
5.2.7. Microcontrollerului ATMEGA328
Pentru implementarea programului am ales ATmega328 , un microcontroler CMOS de 8 biti de mică putere bazat pe arhitectura RISC AVR imbunatatita.
Dispune de un set de 131 instructiuni si 32 de registri de uz general. Cele 32 de registre sunt direct adresabile de Unitatea Logica Aritmetica (ALU), permitând accesarea a doua registre independente intr-o singura instructiune. Se obtine astfel o eficienta sporita in executie (de pana la zece ori mai rapide decat microcontrorelerele conventionale CISC).
Atmega328 este un microcontroler RISC pe 8 biti realizat de firma Atmel. Caracteristicile principale ale acestuia sunt:-32KB de memorie Flash reinscriptibilă pentru stocarea programelor-2KB de memorie RAM-1KB de memorie EEPROM-două numărătoare/temporizatoare de 8 biti-un numărător/temporizator de 16 biti-contine un convertor analog – digital de 10 biti, cu intrări multiple-contine un comparator analogic-contine un modul USART pentru comunicatie serială (port serial)-dispune de un cronometru cu oscilator intern-oferă 32 de linii I/O organizate în patru porturi (PA, PB, PC, PD).
Structura internă generală a controlerului este prezentată în figura de mai jos. Se poate observa că există o magistrală generală de date la care sunt conectate mai multe module:-unitatea aritmetică si logică (ALU)-registrele generale-memoria RAM si memoria EEPROM-liniile de intrare (porturile – I/O Lines) si celelalte blocuri de intrare/iesire.
Aceste ultime module sunt controlate de un set special de registre, fiecare modul având asociat un număr de registre specifice.
Memoria Flash de program împreună cu întreg blocul de extragere a instructiunilor, decodare si executie comunică printr-o magistrală proprie, separată de magistrala de date mentionată mai sus.
Acest tip de organizare este conform principiilor unei arhitecturi Harvad si permite controlerului să execute instructiunile foarte rapid.
Modul Power-down salveaza continutul registrelor, dar blocheaza Oscilatorul, dezactivând toate celelalte functii al chip-ului pană la urmatoarea Intrerupere Externa sau Reset hardware. In modul Power-save, timer-ul asincron continua sa mearga, permitind user-ului sa mentina o baza de timp in timp ce restul dispozitivului este oprit.
In modul Standby , Oscilatorul functionează în timp ce restul despozitivului este oprit. Acest lucru permite un start foarte rapid combinat cu un consum redus de energie. In modul standby extins(Extended Stanby Mode), atat Oscilatorul principal cat si timer-ul asincron continuă să functioneze.
Memoria flash (On-chip) permite să fie reprogaramată printr-o interfată serială SPI , de catre un programator de memorie nonvolatilă conventional, sau de către un program de boot Onchip ce ruleaza pe baza AVR. Programul de boot poate folosi orice interfata pentru a incarca programul de aplicatie in memoria Flash .
Combinând un CPU RISC de 8 biti cu un Flash In-system auto –programabil pe un chip monolithic, ATmega 328 este un microcontroler puternic ce ofera o solutie extrem de flexibilă si cu un cost redus în comparatie cu multe altele de pe piata.
ATmega 328 AVR este sustinut de o serie completa de instrumente de program si dedezvoltare a sistemului, care include: compilatoare C, macroasambloare, programe debug/ simulare etc.
40
Fig. 35. Structura interna si configuratia pinilor ATMEGA328
5.2.8. Programarea microcontrollerului
Dupa realizarea partii practice a robotului am trecut la redactarea codului pentru
controlul robotului autonom. Am utilizat limbajul de programare C si ca mediu de programare
am folosit WinAVR si AVR Studio pentru a realiza simulari. Pentru incarcarea codului sursa
pe microcontroller a trebuit sa realizez un programator pe USB deoarece laptopul la care
lucram nu avea porturi de comunicatie COM(RS232) si pentru scriere am utilizat AVR Burn-
O-Mat.
Fig. 36. Schema programatorului USB
41
Realizarea acestui montaj nu mi-a luat foarte mult timp deoarece nu era o schema complicata ci se baza pe microcontrollerul ATMEGA8.
Fig. 37. Programatorul realizat practic
Pentru a putea utiliza acest programator microcontrollerul trebuia scris cu un cod care ii conferea calitatea de programator USB, lucru pe care l-am si facut.
WinAvr este un set de instrumente, incluzand avr-gcc (compilator in linie de comanda), avr-libc (librarie de compilator esentiala pentru avr-gcc), avr-as (asamblor), avrdude (interfata de programare), avr-gdb (debugger), notepad (editor programator) şi multe altele.
Fig. 38. Configurarea AVRDUDE
Multe functii de setare a întreruperilor, setarea PWM-ului au fost generate in CodeVision Avr, un mediu mai prietenos, simplu de folosit. Dezavantajul principal al acestui mediu de programare este dat de erorile pe care le genereaza in interiorul microcontroller-ului (dupa încarcarea pe microcontroller), in sensul ca la compilare şi construirea main-ului nu se afiseaza nicio eroare, dar codul este modificat într-unul gresit. De exemplu, într-un proiect
42
mai vechi am încercat sa generez functiile pentru conversia ADC. Pentru citirea de pe un singur pin, adica pentru folosirea unui singur senzor functiona perfect, însa când doream citirea mai multor senzori în timp real microcontroller-ul inversa valorile convertite indicate de senzori. Asadar microcontroler-ul indica pentru un senzor A, valoarea senzorului B şi invers, dar corect! De aceea în proiect am folosit un cod open-source dezvoltat de Pascal Stang, pentru conversia pe portul ADC. Cum am vazut, acest lucru face ca debuging-ul sadevina foarte greu de realizat, fiind necesar un timp foarte mare.
Am preferat WinAvr pentru lipsa de erori din cadrul fişierului hex generat, a codului în sine. Poate ati folosit sau nu ati folosit alte compilatoare, dar majoritatea au un buton de „compile” si un GUI. Compiler-ul avr-gcc este diferit, într-un mod ce îl face mai puternic. Poate fi folosit sa functioneze cu multe GUI-uri diferite si customizate după preferintele fiecăruia.
Unul din motivele din cauza carora se poate realiza asta este ca avr-gcc foloseste „makefiles”. Un „makefile” spune compilatorului ce comanda sa ruleze, ce fisiere sacompileze si sa faca legaturi (link), ce iesiri sa creeze, si de asemenea sa programeze chip-ul, etc. Un „makefile” poate fi gândit ca un fisier ce contine o lista de comenzi de rulat, de altfel în realitate este mult mai puternic decât acel fisier având variabile si alte proprietati. "Makefiles” au numele „Makefile” (fara extensie) ca default, si sunt procesate de un program numit make. Pentru simpla folosire, pur si simplu tastam în linia de comanda (presupunem cane aflam în C:\mydir\myproj1\directory already):C:\mydir\myproj1> make <CR>(<CR> înseamna sa tastez o comanda). Programul make va gasi „makefile” -ul în directorul curent si executa acest makefile. Daca nu exista nici un „makefile”, se va arata o eroare. Dacamake-ul nu este gasit, înseamna ca directoarele proprii nu sunt în cale. Aici intervine Windows-ul care va cauta programul ca sa îl execute.
Fig. 39. Scrierea microcontrollerului
Am folosit doar doua comenzi de baza pentru compilarea unui fisier hex: make cleansi make „nume_fisier”. „Make clean” se foloseste în cazul când modificam alte fisiere incluse de sursa, si rulând doar „make” nu va modifica nimic crezând ca nu trebuie sa recompileze nimic. Trebuie rulat „make clean” si apoi „make hex” pentru a avea efectul dorit. „Make all” este aceiasi ca si comanda „make hex”. „Make all” este default, si în acest caz AVR va compila toate fişierele de coduri sursa şi va crea fişierul cu extensia hex. „Make clean” va îndeparta toate fisiere temporare, fişierele hex, şi fişierele. Cof. Astfel el pregateşte mediul pentru o noua compilare.
43
Fig. 40. Scrierea in linie de comanda
Ca mediu de programare prezinta eficienta si acces usor în linie de comanda pentru compilare şi rulare. Pentru imprimarea fişierului hex în microcontroller, cu ajutorul programatorului USBasp, s-a folosit programul Avr-Burn-O-Mat. Acesta este un nou tool de programare, foarte util, deoarece poate comunica cu o gama foarte variata de programatoare.
Fig. 41. Robotul in forma finala
44
6. Concluzii
In cadrul proiectului „Pendulo Bot” am realizat o varianta functionala a robotului cu
autoechilibrare pe doua roti, i-am studiat performantele pentru diverse configuratii alegand
varianta optima.
Pentru realizarea practica a robotului am acordat o atentie deosbita elementelor de
executie, alegand motoare cu demultiplicatoare de turatie foarte precise si cu encodere in
cuadratura, ce se situeaza intr-o gama de precizie ridicata pentru masurarea rotatiei. In
vederea asigurarii unui feedback rapid al intregului sistem am optat pentru utilizarea unei
uitati inertiale de masurare (IMU) pentru parametrii ansamblului. Performantele exceptionale
ale acestui IMU impreuna cu algoritmii de filtrare utilizati au determinat ca influenta
factorilor perturbatori sa fie minimizata.
Dupa constructia robotului am trecut la etapa de inregistrare a parametrilor procesului
folosind un card SD interfatat cu microcontrollerul ATMEGA 328 si analizarea ulterioara a
datelor.
Obiectivele legate de constructia si dezvoltarea robotului cu autoechilibrare pe doua
roti au fost indeplinite cu succes, acesta avand o functionare complet autonoma.
Ca o dezvoltare viitoare a proiectului se propune adaugarea unui modul de control
wireless si comanda vocala, a unor senzorilor de apropiere si actualizarea algoritmilor pentru
indeplinirea unor sarcini de o complexitate mai ridicata, precum parcurgerea in mod autonom
a unor trasee predefinite si evitarea obstacolelor dar si transpunerea la o scara mai mare.
45
Bibliografie
Electronica - Intrebari si raspunsuri, Clement Brown, Ed. Tehnica 1975
Conexiuni prin lipire in aparatura electronica, Ioan Bacivarof, Ed. Tehnica 1984
Constructii radio. Amplificatoare de audiofrecventa cu tranzistoare, G. Stanciulescu,
Ed. Tehnica 1965
Piese si constructii radio - Semiconductoarele si utilizarile lor, Emanuel Vasiliu, Ed.
Tehnica 1969
"8052-Basic Microcontrollers" by Jan Axelson 1994
"Atmel’s Self-Programming Flash Microcontrollers" by Odd Jostein Svendsli 2003
Heath, Steve (2003). Embedded systems design. EDN series for design engineers (2
ed.). Newnes. pp. 11–12. ISBN 9780750655460
Robert Edwards (1987). "Optimizing the Zilog Z8 Forth Microcontroller for Rapid
Prototyping"
Astrom, K & T. Hagglund. 1995 ‘PID Controllers: Theory, Design and
Tuning’Instument Society of America. United States of America.
Bokor, J, Hangos, K & Szederkenyi, G 2004, Analysis & Control of Nonlinear
Process Systems, Springer, New York.
Ingineria Reglarii Atomate - Prof. Dr. Ing. Ioan Dumitrache
M. A. Johnson, and M. H. Moradi, PID Control: New Identification and Design
Methods. Springer, 2005.
Angeles, J 2007, Fundamentals of Robotic Mechanical Systems, Springer, New York.
Bishop, R 2006, Mechatronics - An Introduction, Taylor & Francis, London.
Haugeland, John (1985). Artificial Intelligence: The Very Idea. Cambridge, Mass.:
MIT Press. ISBN 0-262-08153-9.
NRC, (United States National Research Council) (1999). "Developments in Artificial
Intelligence". Funding a Revolution: Government Support for Computing Research.
National Academy Press.
Goher K. M. K. and Tokhi M. O. 2008. Modelling, simulation and balance control of a
two-wheeled robotic machine with static variation in load position. Proceedings of the
22nd
European Conference on Modelling and Simulation, Nicosia, Cyprus.
Salerno A., Angles J. 2004. The control of semi-autonomous self balancing two-
wheeled quasiholonomic mobile robot. Proceedings of the 15th CISM-IFToMM
Symposium on Robot Design, Montreal, Canada.
46
R. A. Hyde, L. P. Ketteringham, S. A. Neild, and R. J. S. Jones, Estimation of upper-
limb orientation based on accelerometer and gyroscope measurements, IEEE
Transactions on Biomedical Engineering, vol. 55, 2008.
Lenat, Douglas; Guha, R. V. (1989). Building Large Knowledge-Based Systems.
Addison-Wesley. ISBN 0201517523.
Ha, Yunsu & Shin’ichi Yuta. 1996 ‘Trajectory Control for Navigating of Self- Contained
Mobile Inverse Pendulum’, Robotics and Automated Systems, v 17.
D. M. Ling, and W. W. Kong, Robot head to toe, Two Wheeled Balancing Robot, vol.
4, 2010.
De Almeida, A & Khatib, 1998, Autonomous Robotic Systems, Springer, Palo Alto.
Barshan, Billur & Hugh F. Durrant-Whyte. 1995 ‘Inertial Navigation Systems for
Mobile Robots’, IEEE Transactions on Robotics and Automation, vol 11, no. 3.
Sutherland, Alistair & Thomas Bräunl, 2002 ‘An Experimental Platform for Researching
Robot Balance’, Department of Electrical & Electronic Engineering. University of
Western Australia.
D. Simon, Kalman filtering with state constraints: A survey of linear and nonlinear
algorithms, IET Proceediings in Control Theory & Applications, vol. 4, no. 8, pp.
1303-1318, 2010.
van der Walt, Christiaan; Bernard, Etienne 2006, "Data characteristics that determine
classifier performance"
A. Warnasch, and A. Killen, Low cost, high G, micro electro-mechanical systems
(MEMS), inertial measurements unit (IMU) program, IEEE Position Location and
Navigation Symposium, 2002, pp. 299-305.
Honda Asimo Robot, http://asimo.honda.com/education-materials/
Wireless Controlled Two Wheel Balancing Robot, Charles Yong and Chiew Foong
Kwong, http://ijnmt.com/
Balancing a Two-Wheeled Autonomous Robot, http://robotics.ee.uwa.edu.au/
Wikipedia – The Free Enciclopedia, http://en.wikipedia.org
Miller, P. (2008), Building a two wheeled balancing robot.
https://eprints.usq.edu.au/6168/
Pololu Robotics and Electronics, http://www.pololu.com/
Artificial Intelligence, http://www.scriptphd.com/guest-post/2013/01/28/artificial-
intelligence-robots/
nBot Balancing Robot, David P. Anderson, http://www.geology.smu.edu/~dpa-
www/robo/nbot/