Proiectarea Unui Robot Mobil Pentru Evitarea Obstacolelor
PROIECTAREA UNUI ROBOT MOBIL PENTRU EVITAREA OBSTACOLELOR
INTRODUCERE
De-a lungul timpului omul a încercat sa creeze mașini care să îi ușureze munca și să îl ajute cu sarcinile sale, trecerea anilor dezvoltând performanțele și conturând o înfățișare cât mai omenească a acestora. Această asemănare are o importanță mare în ceea ce privește simțurile: vederea, auzul, mirosul, gustul și simțul tactil, în cazul roboților ele fiind reprezentate de senzori.
Cel mai important simț al omului este și va rămâne vederea, deoarece omul, la fel și roboții, pentru a ajunge să se folosească de restul simțurilor trebuie să perceapă mediul în care se află în toalitate: în cazul mersului cu ajutorul vederii știm poziția noastră în mediu, recunoaștem obiecte, obstacole, distanța dintre noi si ele, culoarea etc., la fel și în cazul problemei de manipulare a unor obiecte cât și pentru a mirosi, atinge și mai ales a gusta, este nevoie de a trece prin acest proces de recunoaștere a mediului și a obiectelor cu care vrem să interacționăm.
Fig. 1 – LEGO Mindstorm NXT 2.0 folosit.
Având în vedere că tema acestui proiect vizează, proiectarea unui robot mobil pentru evitarea obstacolelor, iar robotul folosit este unu mobil, mai exact LEGO Mindstorm NXT 2.0(Fig. 1), în cele ce urmează se vor prezenta toate etapele necesare pentru crearea unui program pe un robot mobil cu scopul de a conduce robotul pe un traseu cu obstacole.
SIMBOLURILE FOLOSITE
Fig = figură.
x și y= Dată de coordonate.
vs = Viteza roții din partea stângă.
vd = Viteza roții din partea dreaptă.
ω = (Omega)viteza unghiulară.
θ = Unghiul de rotație.
R= raza arcului de cerc.
ICR = centrul de curbură.
v1(t) si v2(t) = parametrii de control.
STADIUL ACTUALAL CERCETĂRILOR TEORETICE ȘI PRACTICE
INTRODUCERE ÎN DOMENIUL MECATRONICII
Există o mare varietate de modalități de a prezenta domeniul mecatronicii, dar după cum se știe bine mecatronica este un domeniu transdisciplinar al ingineriei care se bazează pe disciplinele clasice: ingineria mecanică, ingineria electrică și știința calculatoarelor[1].
Conceptul de mecatronică s-a născut în Japonia la începutul deceniului al optulea al secolului trecut. Termenul în sine a fost brevetat de către concernul Yaskawa Electric Co. și a fost utilizat pentru a descrie fuziunea tehnologică: mecanică – electronică – informatică. Tot ceea ce numim astăzi produs de înaltă tehnicitate, este produs mecatronic. Exemplele de produse mecatronice includ automobilul modern la care putem aminti managementul motorului, sistemele de siguranță active și pasive, suspensia activă etc., mașinile-unelte cu comandă numerică, tehnica de calcul, tehnica de telecomunicații, aparatura de cercetare, roboții, aparatura biomedicală, apara-tura electrocasnică ș.a.m.d.
Mecatronica s-a născut ca tehnologie și a devenit foarte curând filosofie care s-a răspândit în întreaga lume. În ultimii ani mecatronica este definită simplu: Mecatronica este combinația sinergeticǎ ṣi sistematicǎ a mecanicii,electronicii ṣi a informaticii în timp real. Integrarea celor 3 discipline se poate observa și înțelege cu ușurință în figura 2.
Fig. 2 – Schema de integrare a tehnologiei mecanice, eletronice si informatice[2].
Apariția mecatronicii este rezultatul firesc al evoluției în dezvoltarea tehnologică. În opinia japonezilor, mecatronica este tehnologia mecanică cerută de societatea informațională. Mecatronica se diferențiază net de tehnologia tradițională. În tehnologia tradițională, elementele de bază sunt materialul și energia. În mecatronică, acestor două elemente li se adaugă informația. Tehnologia mecatronică și principiile mecatronice în educație au condus la definirea filosofiei mecatronice. Pentru practica inginerească această filosofie a marcat saltul de la ingineria tradițională, secvențială, la ingineria simultană sau paralelă.
Sistemele mecatronice sunt caracterizate de faptul că stochează, procesează și analizează semnalele obținute și execută sarcini adecvate. Scopul este de a extinde și de a completa sistemele mecanice cu senzori și microprocesoare pentru a crea produse fiabile și inteligente. Metodele de a integra aceste componente reies din teoria sistemelor, control și tehnologia informațiilor [2].
In figura 3 se vor prezenta elementele de bază ale unui sistem mecatronic:
Fig. 3 – Elementele de bază ale unui sistem mecatronic[2]
După ce s-a înțeles ce este mecatronica și cu ce se ocupă se poate vorbi și despre domeniul roboticii a cărei definire nu este una ușoară, deși are o importanță majoră. O definire simplă ar fi: robotica e știința roboților, dar apare o problemă: ce este acela un robot?
Revenind la ce este robotica pe larg am putea spune că: Robotica este știința proiectării, realizării, implementării, utilizării și întreținerii roboților. În general lumea larga înțelege prin robot cele două clișee care au apărut în mass-media și anume, robotul antropomorf (care seamănă cu omul) care apare mai ales în filmele de science-fiction și, respectiv, roboții industriali. Desi in mare parte aceste lucruri sunt corecte nu sunt si complete, excluzand o mare parte din caractersiticile robotilor.
Termenul robot a fost folosit pentru prima dată de scriitorul ceh Karel apek în piesa intitulată “Robotul Universal al lui Rossum”, publicată în anul 1920, iar cea de robotică a fost folosită, pentru prima oară, de scriitorul S.F. american Isaac Asimov, în anul 1942.
Joseph Engellberger, creatorul primului robot industrial și fondatorul firmei “Unimation” spune: “nu știu ce este un robot, dar pot să spun când văd unul”.
În urma căutării în literatura de specialitate a definiției robotului am ajuns la concluzia că este prea grea alegerea unei definiții care să reprezinte în totalitate robotul și am ales mai degrabă caracteristicile ce îl definesc:
este un sistem mecatronic;
realizează acțiuni specifice omului;
exercită o acțiune fizică asupra mediului;
este dotat cu funcții specifice inteligenței;
este un sistem caracterizat prin flexibilitate;
lucrează într-un mediu complex și variabil, căruia i se auto-adaptează.
Primele cercetări în domeniul roboticii au fost inițiate la începutul anilor '60. După un avânt substanțial al aplicațiilor roboticii în domeniul industrial, cu precădere în industria automobilelor, la începutul anilor '90 s-au conturat multiple aplicații în domeniile neindustriale. Asupra acestor aplicații dorim să atragem atenția, cu atât mai mult cu cât s-a estimat că robotica urmează sa joace un rol însemnat în restructurarea civilizației mileniului trei.
Această afirmație poate fi ușor susținută cu câteva date statistici conținute în raportul din 2008 al Federației Internaționale de Robotică (Fig. 4) în care se preciza că la finele anului 2007 în fabricile și uzinele din jurul lumii existau 1 milion de roboți industriali, iar în legatură cu roboții adresați serviciilor numărul acestora a crescut la 5.5 milioane, ceea ce aducea populatia roboților în lume la 6.5 milioane.
Conform prezicerii date de “World Robotics” în 2013 populația roboților în lume a ajuns la 18.2 milioane din care doar 1.2 milioane sunt roboți industriali, iar restul de 17 milioane fiind ocupate de roboți adresați serviciilor.
Fig. 4 – Statistica privind populația roboților în lume[3].
Domeniile specifice roboților adresați serviciilor sunt construcțiile, reabilitarea bolnavilor, comerț, transporult și circulația mărfurilor, administrația locală, protecția mediului înconjurător și agricultura; supraveghere, inspecție, protecția de radiații și intervenții în caz de catastrofe; hoteluri și restaurante; în medicină, gospodărie, hobby și petrecerea timpului liber.
Indiferent de domeniul de utilizare sau de tip, orice robot are o structură, care poate fi urmărită în figura 5 și este explicată în urmatoarele rânduri:
Sistemul mecanic este constituit din mai multe elemente legate între ele prin cuple cinematice.
Sistemul de acționare servește la transformarea unei anumite energii în energie mecanică și transmiterea ei la cuplele cinematice conducătoare.
Sistemul de comandă și programare este un ansamblu de echipamente și de programe care realizează mișcarea robotului.
Sistemul senzorial reprezintă un ansamblu de elemente specializate ce se ocupă de transpunerea proprietăților diferitelor obiecte în informații.
Fig. 5 – Structura generală a unui robot
Odată definite noțiunile de robotică și robot, putem încerca să clasificăm principalele părți componente ale roboticii. Acestea sunt:
robotica industrială;.
robotica mediilor ostile (teleoperarea);
.robotica medicală;
.robotica militară;
.microrobotica;
-roboții mobili.
Având în vedere că în cadrul proiectului este folosit unul robot mobil, capitolul 2.2 este dedicat roboților mobili în care vor fi prezentate aspectele generale ale acestora.
ROBOȚI MOBILI. ASPECTE GENERALE
Robotul mobil este un sistem complex care poate efectua diferite activități într-o varietate de situații specifice lumii reale. El este o combinație de dispozitive echipate cu servomotoare și senzori ce operează într-un spațiu real, marcat de o serie de proprietăți fizice (de exemplu gravitația care influențează mișcarea tuturor roboților care funcționează pe pământ) și care trebuie să planifice mișcările astfel încât robotul să poată realiza o sarcină înfuncție de starea inițială a sistemului și în funcție de informația existentă, legată de mediul de lucru.
Succesul în îndeplinirea acestor sarcini depinde atât de cunoștințele pe care robotul le are asupra configurației inițiale a spațiului de lucru, cât și de cele obținute pe parcursul evoluției sale.
Problemele specifice ce apar la roboții mobili ar fi următoarele: evitarea impactului cu obiectele staționare sau în mișcare, determinarea poziției și orientării robotului pe teren, planificarea unei traiectorii optime de mișcare.
În cazul unui sistem robotic automat distribuit pozițiile spațiale sunt de o extremă importanță și de ele depinde îndeplinirea scopurilor dorite și funcționarea întregului sistem. Cu alte cuvinte, robotul trebuie să fie capabil să-și planifice mișcările, să decidă automat ce mișcări să execute pentru a îndeplini o sarcină, în funcție de aranjamentul momentan al obiectelor din spațiul de lucru.
Planificarea mișcărilor nu constă dintr-o problemă unică și bine determinată, ci dintr-un ansamblu de probleme dintre care unele sunt mai mult sau mai puțin variantele celorlalte.
Evitare coliziunii cu obstacole fixe sau mobile (de exemplu alți roboți mobili) aflate în spațiul de lucru al robotului se poate face prin mai multe metode: realizarea unei apărători mecanice care prin deformare oprește robotul, folosirea senzorilor care măsoară distanța până la obstacolele de pe direcția de deplasare, folosirea senzorilor de proximitate, folosirea informațiilor corelate de la mai multe tipuri de senzori.
Localizarea obiectelor se poate realiza și prin contact fizic, dar acesta impune restricții asupra vitezei de mișcare a structurii manipulate. Contactul fizic dintre robot și obiectele din mediu generează forțe de reacțiune care modifică starea robotului.Vitezele mari de lucru fac ca efectele dinamice ale unui contact fizic cu obstacole sau obiecte manipulate să fie riscante (pot duce la deteriorarea obiectelor sau a robotului).
Navigarea robotului este posibilă și fără o determinare a poziției și orientării față de un sistem de coordonate fix, dar această informație este utilă pentru sisteme de comandă a mișcării. Dintre metodele de navigație mai des utilizate se pot menționa:măsurarea numărului de rotații făcute de roțile motoare, folosirea de acceleratoare și giroscoape, geamanduri electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip optic sau magnetic [Brooks 1985].
Scurta clasificare a roboților mre, folosirea senzorilor de proximitate, folosirea informațiilor corelate de la mai multe tipuri de senzori.
Localizarea obiectelor se poate realiza și prin contact fizic, dar acesta impune restricții asupra vitezei de mișcare a structurii manipulate. Contactul fizic dintre robot și obiectele din mediu generează forțe de reacțiune care modifică starea robotului.Vitezele mari de lucru fac ca efectele dinamice ale unui contact fizic cu obstacole sau obiecte manipulate să fie riscante (pot duce la deteriorarea obiectelor sau a robotului).
Navigarea robotului este posibilă și fără o determinare a poziției și orientării față de un sistem de coordonate fix, dar această informație este utilă pentru sisteme de comandă a mișcării. Dintre metodele de navigație mai des utilizate se pot menționa:măsurarea numărului de rotații făcute de roțile motoare, folosirea de acceleratoare și giroscoape, geamanduri electromagnetice instalate în teren, semnalizatoare pasive sau semipasive de tip optic sau magnetic [Brooks 1985].
Scurta clasificare a roboților mobili în funcție de anumite caracteristici de bază:
În funcție de dimensiune: macro, micro și nano roboți.
În funcție de mediul în care acționează: roboți tereștri care se deplasează pe sol, roboți subacvatici care se deplasează în apă, roboți zburători care se deplasează în aer, roboți extratereștri care se deplasează pe solul altor planete sau în spațiul cosmic.
Roboți tereștrii pot fi și ei la rândul lor clasificați în funcție de modul de deplasare. Vom avea:
Roboți cu roți sau șenile
Roboți pășitori: bipezi, patrupezi, hexapozi, miriapozi
Roboți târâtori: care imită mișcarea unui șarpe, râme etc.
Roboți săritori, care imită deplasarea unei broaște, cangur, lăcuste etc.
Roboți de formă sferică ce se deplasează prin rostogolire etc.
Utilizările pentru care au fost, sunt și vor fi concepuți roboții mobili sunt dintre cele mai diverse . Mulți roboți din zona micro își găsesc utilizarea în medicină,fiind capabili să se deplaseze de-a lungul vaselor și tuburilor corpului omenesc, în scopul investigațiilor, intervențiilor chirurgicale, dozării și distribuirii de medicamenteetc. La fel de spectaculoase sunt și multe utilizări ale macro-roboților:
În domeniul industrial, agricol, forestier: în domeniul industrial roboții mobili sunt reprezentați de AGV-uri (Automated-Guided Vehicles), vehicule pe roți, cu ghidare automată, care transportă și manipulează piese, constituind o alternativă flexibilă la benzile de montaj; în agricultură există tractoare și mașini agricole fără pilot, capabile să execute singure lucrările pe suprafețele pentru care au fost programate; în domeniul forestier roboții mobili pot escalada copacii înalți.
În domeniul militar: este luată în considerare de către armata americană perspective înlocuirii soldaților combatanți cu roboți, pentru a reduce riscul pierderilor umane în luptă; roboți mobili de cele mai ingenioase și robuste configurații suntaruncați în clădi și incinte din zone de conflict, în scopuri de investigare și chiar anihilare a inamicului.
În domeniul utilităților publice: una dintre cele mai utile și economice utilizăriale roboților mobili o reprezintă inspectarea conductelor de combustibili gazoși și lichizi și a canalelor de canalizare. De exemplu rețeaua de canalizare a Germaniei însumează 400.000 km, iar inspectarea și curățirea acesteia presupune costuri de 3-6 Euro pe metru. Numai 20% din conducte sunt accesibile, iar utilizarea roboților poate reduce costurile cu un sfert.
În domeniul distractiv și recreativ: sunt roboții-jucării, roboții pentru competiții
În domeniul serviciilor: Există posibilități deosebit de largi de implementare. Sunt roboți pentru: deservirea bolnavilor în spitale; ajutorarea persoanelor bătrâne sau cu diferite handicapuri; ghidarea și informarea publicului în muzee aspirarea și curățirea încăperilor; spălarea geamurilor și a pereților clădirilor;
În domeniul securității: Multe operații de inspectare și dezamorsare a unor obiecte și bagaje suspecte sunt executate de roboți;
În domeniul operațiilor de salvare: Roboții salvatori (Rescue robots) sunt utilizați în operațiile de salvare a victimelor unor calamități: cutremure, incendii,inundații.
În continuare vom prezenta două dintre cele mai avansate sisteme mobile la nivel internațional și trei roboți mobili, două de obstacole și una de urpărirea liniei.
-Robotul Curiosity
În 2011 NASA a trimis “Curiosity” (Fig. 6) pe suprafața planetei Marte cu scopul de a o studia din punct de vedere biologic și chimic, de a urmări nivelul de radiații și evoluția atmosferei. Întregul robot are dimensiunea unui automobil, iar pentru a se deplasa folosește 6 roți motoare de 50 cm diametru, dintre care 4, cele din față și din spate, sunt viratoare. Deși viteza maximă este de 90 m/h, viteza medie de deplasare este de 30 m/h.
Fig. 6 – Robotul Curiosity [4]
Robotul folosește două camere video alb-negru ce formează imagini 3D pentru navigație și alte patru perechi de camere similare pentru monitorizarea mediul înconjurător de eventuale pericole.
-Robotul BigDog
Robotul patruped BigDog(Fig. 7) realizat de compania Boston Dynamics este cel mai avansat robot patruped realizat pana acum. Poate merge cu usurinta pe teren accidentat si isi pastreaza echilibrul chiar si atunci cand aluneca pe gheata sau este impins.
Robotul este controlat de un computer prin intermediul mai multor servomotoare, a unui motor pe gazolina, senzori si cu ajutorul unui sistem hidraulic ce pun in miscare cele 4 picioare. Este dotat cu un giroscop laser si un sistem video stereo.
Fig. 7 – Robotul BigDog[5]
BigDog masoara 1 metru lungime, 70 cm inaltime si cantareste 75 kg. Robotul poate atinge o viteza de 1,7 m / sec, poate urca pante de 35 de grade si poate cara 150 de kg in spate.
Calculatorul avand o frecventa de actualizare si repozitionare de 500 de ori pe secunda, poate sa comande eficient picioarele din aluminiu ale robotului. Fiind dotat cu senzori ce masoara forta si pozitia, calculatorul determina locul unde trebuie sa se afle fiecare picior pentru a-si pastra echilibrul.[5]
-Roboți Mobili de evitarea obstacolelor:
În robotică, evitarea obstacolelor este sarcina de satisfacere a unor obiective de control supuse cu non-intersecție sau constrângeri de poziție non-coliziune. În vehicule aeriene fără pilot, acesta este un subiect fierbinte. Ceea ce este important cu privire la conceptul de evitare a obstacolelor în acest domeniu este nevoia tot mai mare de utilizare a vehiculelor aeriene fără pilot în zonele urbane pentru aplicații militare, în special în cazul în care aceasta poate fi foarte util în orașe de războaie. În mod normal, de evitare a obstacolelor este considerat a fi distinct de planificarea de cale în care unul este de obicei implementat ca o lege de control reactiv în timp ce celălalt implică înainte calculul unui traseu lipsit de obstacole care un controler va ghida apoi un robot va parcurge.
-Robot AVOIDER
Robotul "AVOIDER"(Fig. 8) este un robot care sub forma sa simplă uimește prin capacitatea sa de a se deplasa evitând orice obstacol întâlnit în calea sa. Este dotat cu senzori IR și diferiți captori care îi permit sa vadă obstacolele și să anticipeze coliziunea reducând viteza uneia dintre roți pentru a face o rotație astfel înconjurând obiectul care se află în calea sa. Este un robot foarte performant și didactic.
Fig. 8 – Robotul ,,AVOIDER”[6]
Caracteristici ale robotului:
MRM-GM03 Gearbox (2x motoare DC);
Captori: 2 leduri emițătoare + 2 leduri receptoare IR;
Alimentare: 5V (4 baterii ”AA”);
-Robotul Invention Sistem
Robotul a fost conceput cu sarcina de a parcurge un spațiu de lucru populat cu obstacole fixe, pornind dintr-un punct inițial și ocolind aceste obstacole, să ajungă într-un punct final. Obstacolele prezente în spațiul de lucru al robotului sunt corpuri de diferite culori și mărimi. În structura robotului sunt incorporați senzori de prezență și de culoare.(Fig.9)
Fig. 9 – Robotul Investigation Sistem[6]
Robotul mobil este dotat cu o cameră LEGO ce are următoarele caracteristici:
conectare USB cu cablu lung de 5m;
focalizare adaptabilă;
microfon incorporat;
înregistrare de 30 cadre pe secundă;
imagine color de înaltă rezoluție 352*288.
Robotul tip line follower este un robot mobil capabil să urmărească o linie de culoare diferită față de suprafața de rulare.
-Robotul Silvestre
Robotul Silvestre(Fig. 10) a fost creat de către Daniel Alvarez din Spania, este unul dintre cei mai avansați roboți tip line follower.
Fig. 10 – Robotul Silverstre[6]
Caracteristicile robotului:
8 senzori IR;
2 motoare de curent continuu Maxon cu encoder;
După două ture de traseu robotul extrage punctele de frânare și accelerare.
Modul Bluetooth pentru telemetrie și configurare wireless;
Microcontroller LPC2148 ARM7 32-bit cu frecvența de 60Mhz;
Accelerometru și giroscop pentru a detecta alunecările și urmării performanțele robotului;
Având în vedere că în cadrul proiectului sunt folosite senzori capitolul 2.3 este dedicat sistemelor senzoriale.
SISTEME SENZORIALE
Considerații generale:
Dicționarele din prima parte a anilor '70 nu cuprind cuvântul "senzor". Acesta a apărut odată cu dezvoltarea microelectronicii, împreună cu alte noțiuni de mare impact, cum ar fi cele de „microprocesor”, „microcontroller”, „transputer”, „actuator” etc., adăugând o noțiune nouă unei terminologii tehnice având o anumită redundanță. Astfel, o mare parte din elementele tehnice senzitive sunt încadrate în categoria de traductor. Un traductor este un dispozitiv care convertește efecte fizice în semnale electrice, ce pot fi prelucrate de instrumente de măsurat sau calculatoare. În unele domenii, în special în sfera dispozitivelor electro-optice, se utilizează termenul de detector (detector în infraroșu, fotodetector etc.). Traductoarele introduse într-un fluid sunt denumite, uneori, probe. O categorie largă o constituie sistemele terminate în "-metru": de exemplu, "accelerometru" pentru măsurarea accelerației, "tahometru" pentru măsurarea vitezei unghiulare.
Ce este senzorul? Nu există o definiție unitară și necontestată a „senzorului”, motiv care lasă mult spațiu pentru interpretări, ambiguități și confuzii. Mulți autori preferă să folosească sintagma „senzori și traductoare”, în cadrul căreia, fie pun pe picior de egalitate senzorul și traductorul, utilizând, alternativ sau preferențial, unul dintre termeni, fie consideră că unul reprezintă o categorie ierarhică superioară, incluzându-l pe celălalt. De multe ori se mai utilizează și noțiunea de „captor”, care amplifică semnele de întrebare, întrucât în limba franceză, termenul „capteur” este utilizat pentru a desemna elementele tehnice, care în această carte au fost numite „senzor”.
Denumirea senzorului provine din cuvântul latin „sensus”, care însemnă simț și înainte de a fi adoptat pentru sisteme tehnice, a fost și este utilizat pentru a desemna capacitățile organelor de simț ale oamenilor și ale organismelor vii, de a culege și prelucra informații din mediul înconjurător și a le transmite creierului. În acest proces mărimile fizice, neelectrice, sunt convertite în semnale electrice, pe care creierul le poate prelua și interpreta și pe baza cărora coordonează acțiunile mușchilor. Modelul din biologie îl întâlnim, în mare măsură, la sistemele mecatronice, astfel că nu este inutilă o scurtă trecere în revistă a sistemelor senzoriale ale omului, cu unele comentarii privind contribuția acestora în supervizarea proceselor de producție de către om:
Cea mai solicitată și importantă funcție senzorială este cea vizuală, care asigură cantitatea preponderentă de informație, având și cea mai mare viteză de transfer (cc.3.106 biți/s). Vederea facilitează omului cvasi-totalitatea acțiunilor de investigare a mediului -identificarea obiectelor și a configurației, poziției și orientării lor, aprecierea distanțelor. Extraordinara perfecționare a simțului vizual explică, poate, absența altor senzori de investigare la om, cum ar fi cei ultrasonici, cu care sunt dotate specii de animale, ca lilieci, delfini, balene ș.a. Funcția ochiului nu se rezumă la simpla preluare a unei imagini pe retină și transmiterea ei către creier, ci presupune și o serie de reglări inteligente, prin intermediul mușchilor optici, ale cristalinului și irisului, precum și o prelucrare și compresie a datelor transmise.
Simțul auzului permite omului recepționarea undelor sonore din domeniul "audio", având frecvențe cuprinse între aproximativ 16 Hz și 16 kHz. Rata de transfer a informației auditive este de circa 2.104 biți/s. Acest simț stă la baza comunicației dintre oameni; asigură și funcții de investigare a mediului, prin receptarea unor sunete, precum și funcții de supraveghere a procesului de
producție, în baza unor semnale sonore provenite de la sisteme de avertizare, a unor zgomote anormale. Foarte importantă, inclusiv în procesele de producție, este sensibilitatea cutanată a omului, asigurată de multipli receptori implantați în piele. Au fost identificate următoarele forme de sensibilitate cutanată: sensibilitatea tactilă, sensibilitatea termică și sensibilitatea dureroasă. Cele trei feluri de sensibilitate cutanată nu sunt răspândite uniform pe suprafața pielii. Sensibilitatea tactilă este dezvoltată, în special, pe pielea de pe fața volară a vârfurilor degetelor, iar sensibilitatea termică este mai accentuată pe fața dorsală a mânii, unde există și o sensibilitate dureroasă accentuată. Receptorii cutanați sunt specializați.
Simțul mirosului (102 biți/s) și cel gustativ (10 biți/s) sunt extrem de utile omului în viața de zi cu zi, dar utilizate de om într-un număr restrâns de procese de producție, din industria alimentară, cea cosmetică etc.
Fig. 11 – Structuri ale sistemelor senzoriale
Sistemele mecatronice trebuie să fie capabile să identifice, în anumite condiții și limite, parametri ai mediului ambiant și să reacționeze la modificări ale acestora. Extrapolând considerațiile despre sistemele senzoriale ale lumii vii la sistemele mecatronice, prin senzor se va înțelege dispozitivul tehnic destinat înzestrării mașinilor cu simțuri. Are rolul determinării unei sau unor proprietăți, și, în funcție de nivelul de integrare, poate avea funcții mai simple sau mai complexe (fig.11). Senzorul cuprinde traductorul/traductoarele pentru transformarea mărimii de intrare într-un semnal electric util, dar și circuite pentru adaptarea și conversia semnalelor și, eventual, pentru prelucrarea și evaluarea informațiilor. Senzorul care include și unitățile micromecanice și microelectronice de prelucrare, realizate prin integrare pe scară largă (LSI) sau foarte largă (VLSI), se întâlnește în literatura de specialitate și sub denumirile de "sistem senzorial" sau "senzor inteligent" (smart-sensor). Producerea senzorilor inteligenți este facilitată de dezvoltarea tehnicii microsistemelor, care permite integrarea în volume extrem de mici atât a traductoarelor de diferite tipuri, cât și a micromecanicii și microelectronicii de prelucrare.
Clasificarea senzorilor:
Există în ziua de azi senzori pentru mai mult de 100 de mărimi fizice, iar dacă se iau în considerare și senzorii pentru diferite substanțe chimice, numărul lor este de ordinul sutelor. Se pot pune în evidență circa 2000 de tipuri distincte de senzori, oferite în 100.000 de variante, pe plan mondial.
Datorită marii diversități a principiilor de conversie a mărimilor fizice în mărimi electrice, precum și a soluțiilor de implementare a acestor principii, există și o multitudine de criterii de clasificare a senzorilor, dintre care vor fi enumerate câteva dintre cele mai importante:
Senzorii pot fi clasificați în funcție de tehnologiile utilizate pentru realizarea lor:
Tehnologii ale materialelor feromagnetice;
Tehnologii ale materialelor piezo-ceramice;
Tehnologii ale microeelectronicii și microsistemelor;
Tehnologii ale staturilor groase
Tehnologii ale staturilor subțiri;
Tehnologii pentru materiale sinterizate;
Tehnologii ale foliilor etc.
În funcție de tipul mărimii fizice de intrare senzorii pot fi clasificați în:
absoluți, când semnalul electric de ieșire poate reprezenta toate valorile posibile ale mărimii fizice de intrare, raportate la o origine aleasă;
incrementali, când nu poate fi stabilită o origine pentru toate punctele din cadrul
domeniului de măsurare, ci fiecare valoare măsurată reprezintă originea pentru cea
următoare.
Foarte importantă este clasificarea în funcție de tipul mărimii de ieșire, în:
senzori analogici, pentru care semnalul de ieșire este în permanență proporțional cu
mărimea fizică de intrare;
senzori numerici (digitali), la care semnalul de ieșire poate lua numai un număr limitat
de valori discrete, care permit cuantificarea semnalului fizic de intrare.
Privind problema semnalului de ieșire din punctul de vedere al numărului de valori
posibile, pot fi puse în evidență alte două clase distincte:
senzori binari, care prezintă la ieșire numai două valori distincte;
senzori cu un număr mare de valori, pentru măsurarea unei mărimi într-o anumită
plajă; pot fi analogici sau numerici.
Senzorii pot fi clasificați și în funcție de domeniul în care sunt utilizați:
În industrie Robotică, fabricație flexibilă, controlul calității, activități de birou etc.
În protecția mediului
În transporturi
În automatizarea clădirilor și locuințelor
Clasificarea senzorilor din dotarea roboților:
Cele două ramificații principale permit gruparea senzorilor în două categorii mari:
Senzorii interni (denumiți de unii autori și intero-receptori), care servesc la obținerea
unor informații legate de funcționarea robotului, cum ar fi poziția relativă a elementelor
cuplelor cinematice, vitezele și accelerațiile liniare și unghiulare, deformațiile
elementelor lanțului cinematic ș.a.
Senzori externi (denumiți de unii autori și extero-receptori), utilizați pentru culegerea
unor informații asupra mediului înconjurător și asupra interacțiunii robot/mediu;
servesc la identificarea prezenței și stabilirea tipului, poziției, orientării, culorii sau a
altor proprietăți ale obiectelor din mediu, la identificarea unor obstacole, la
determinarea forțelor de interacțiune robot/mediu.
Fig. 12 – Clasificarea senzorilor externi.
Un criteriu care poate permite clasificarea senzorilor externi este cel referitor la contactul cu obiectele din mediu (fig.4.4). Un senzor care măsoară pozițiile/deplasările în cuplele cinematice este un senzor intern, un senzor de investigare, care baleiază mediul înconjurător pe principiul radarului, este un senzor extern fără contact, un senzor tactil este un senzor extern cu contact direct, iar un senzor de forță/moment este un senzor extern cu contact indirect, întrucât forțele de interacțiune cu mediul nu sunt exercitate direct asupra senzorului, ci sunt resimțite de acesta prin propagarea lor de-a lungul unor elemente intermediare.[01 Zamfira]
Tipuri de senzori
Senzorul de atingere:
Senzorul de atingere permite robotului de a sesiza atunci când acesta atingere un obiect. El citește adevărat sau fals indicând dacă este sau nu este apăsat. Senzorul de atingere poate fi folosit pentru a detecta dacă robotul a dat peste un obstacol sau poate fi utilizat pentru a face robotul sa efectueze o acțiune pe comanda (Fig. 13).[7]
Fig. 13 – Senzorul de atingere de la Lego Mindstorms NXT[7]
Senzorul de culoare:
Senzorul de culoare poate fi utilizată pentru a măsura un număr limitat de gama de culori. Se poate distinge între alb, negru , rosu, galben, verde și albastru. Acesta poate fi, de asemenea, folosit ca un senzor de lumină pentru a măsura luminozitatea și lumina ambientala. Senzorul de culoare ar putea fi folosită pentru a sorta cărămizi Lego, face un robot să urmeze o linie, sau robotul să răspunde la diferite lumini de colorate (Fig. 14).
Fig. 14 –Senzor de culoare pentru Lego Mindstorms NXT.[7]
Senzorul Ultrasonic:
Senzorul ultrasonic poate fi folosit pentru a măsura distanța până la obiecte. Acesta poate fi operat în mod continuu sau setat pentru a lua instantanee atunci când a spus să facă acest lucru. Senzorul ultrasonic poate fi folosit pentru a face robotul să evite obiecte în timp ce se deplasează în jurul sau de a pune robotul să reacționeze la mișcare.(Fig. 15).[7]
Fig. 15 – Senzor ultrasonic Lego Mindstorms NXT.[7]
Senzorul de sunet:
Senzorul de sunet este un microfon simplu. Bazat pe amplificator LM386 de putere și microfon electret, acesta poate fi utilizat pentru a detecta puterea sănătoasă a mediului.Valoarea de ieșire poate fi corectată prin potențiometru. Acest modul foloseste amplificator de putere LM386 pentru a consolida semnalul electronic produs de microfon cu electret. Când este pornit, codul PIN SIG va transmite semnalul reglementate de LM386.Potențiometrul la ieșire poate fi folosit pentru a regla creșterea.
Fig. 16 – Senzorul de sunet Lego Mindstorms NXT.[7]
Senzorul Compass
Sensorul Compass este un compas digital, care măsoară câmpul magnetic al pământului și furnizează o valoare care reprezintă titlul curent.Poziția magnetică se calculează cu o precizie de 1 ° și returnat ca un număr între 0 și 359. Senzorul Compass actualizează rubrica de 100 de ori pe secundă. El operează în două moduri, modul de citire și modul de calibrare. În modul de citire, titlul curent este calculat și sa întors de fiecare dată cu programul NXT care executa o comanda de citire. În modul de calibrarea busolei poate fi calibrat pentru a compensa obținute pe plan extern de câmp magnetic, cum ar fi cele care înconjoară motoare și baterii, menținând astfel precizie maximă (Fig.17).[7]
Fig. 17 – Compass Senzor Lego Mindstorms NXT.[7]
Senzorul de lumina:
Senzorul de lumină este utilizată pentru a măsura luminozitatea luminii ambientala. Este mult mai precis în a face acest lucru decât senzor de culoare. Senzorul de lumină ar putea fi folosit pentru a face un robot de urmarire de linie sau ca robotul să găsească o zonă luminată.
Fig. 18 – Senzor de lumina Lego Mindstorms NXT.[7]
KITUL LEGO MINDSTORMS NXT 2.0
Reprezintă cea mai nouă generație de roboti programabili. Lego Mindstorm NXT este o serie de roboți programabili fabricați de Grupul Leg, cu scop educațional. Prima variantă de Lego Mindstorms a fost lansată în 1998 sub denumirea de Robotics Invention System. Următoarea versiune a fost lansată în 2006 numindu-se Lego Mindstorm NXT, iar ultima versiune lansată în 5 august 2009 este cunoscută sub numele de Lego Mindstorm NXT 2.0.
Componenta cea mai importantă a kitului este denumita „Brick” în care se afla partea de comandă a kitului. Primul mediu de programare a kitului a fost creat de University of Colorado în 1994 bazându-se pe ArgentSheets , numit LEGOsheets. Kitul Mindstorms Robotics Invention System: conținea două motoare , doi senzori de atingere și un senzor de lumină. Varianta NXT conținea: trei servo motoare, și câte un senzor de lumină , sunet, de proximitate și unul de atingere, pe când varianta NXT 2.0: conține câte doi senzori de atingere , lumină, proximitate (Fig. 19).
Fig. 19 – Componenta Lego Mindstorm NXT 2.0
Componenta Brick are în structura sa un microprocesor pe 32 biti, un ecran de tip matrice, patru porturi de intrare (pentru senzori) și trei de ieșire (prin care se face conetarea la servomotoare), fiind alimentat de 6 baterii AA. „Cărămida” permite conetarea sa la calculator prin intermediul USB sau Bluetooth, acesta din urmă permite conectarea în serie a mai multor cărămizi pentru sarcini mai complexe.
NXT-ul permite programarea su C++, Java precum și softuri mai performante, cum ar fi LAB View , Matlab precum și multe alte compilatoare și limbaje de programare. Acest fapt precum și posbilitățile vaste de modelare conferă o flexibiliate foarte mare a kitului.
Această flexibilitate se poate observa în aplicațiile practice realizate, cum ar fi: un simplu proces de manipulare(Fig. 20), desenare(Fig. 21) , până la înlocuirea unor periferice ale ale calculatorului (Fig. 22).
Fig. 20 – Aplicație de manipulare.
Fig. 21 – Aplicație de desenare.
Fig. 22 – Aplicație de birou.
2.4.1 KITUL LEGO MINDSTORMS EV3
Lego Mindstorms EV3 este a treia generație de roboți de la Lego Mindstorms din seria LEGO-ului. Este succesorul al Kitului Mindstorms NXT 2.0. Denumirea de "EV", înseamnă că este o evoluție a seriei NXT. Acesta a fost anunțat oficial la 4 ianuarie 2013 și va fi disponibil la 1 august 2013. Cea mai mare schimbare de la NXT pentru seria EV3 este îmbunătățirea tehnologiei de cărămidă programabilă. Procesorul principal al NXT-ului a fost un microcontroler ARM7, iar la EV3 va fi un procesor ARM9 rulata pe Linux. Un conector USB și slot pentru SD sunt noi pentru kitul EV3. Acesta va venii cu 5 modele diferite de a alege, și de asemenea, posibilitatea de a construii propriile lor roboti cu acele piese noi. Varianta EV3 va conține trei servo motoare, două mari si unul mediu, câte un senzor de sunet, de lumina, de culoare, un senzor giroscopic, și doi sensori de atingere(Fig. 23).[8]
Fig. 23 – Componenta Lego Mindstorms EV3[8]
Noul Lego Mindstorms EV3 bazate pe Linux, nici măcar nu au nevoie de un calculator, putem seta rutine de program direct de pe componeta ,,Brick” în sine, și / sau cu control de la distanță a robotului cu Android sau iOS smartphone. Exista mai multe tipuri de roboti EV3, cum ar fii robotul șarpe ,,R3PTAR”(Fig. 24) care târăște de-a lungul pe roți, și de fapt se fixeaza pentru a mușca de mana atunci când senzorul infraroșu te vede acolo. Dacă mișcam smartphoneul șarpele șuieră si ataca. Exista și un robot rover ,,TRACK3R”(Fig. 25) care poate urmării liniile de pe podea, și are un set de unelte neschimbabile: un gripper de prindere, un lansator de minge, un ciocan, si o lama. Și apoi mai este robotul scorpion ,,SPIK3R”(Fig. 26), cu o caută-și-distruge modul.
Fig. 24 – Robot EV3 R3PTAR[8]
Fig. 25 – Robot EV3 TRACK3R[8]
Fig. 26 – Robot EV3 SPIK3R[8]
Servomotoarele dă robotul posibilitatea de deplasare și să interacționeze cu obiectele.Motoarele pot fi programat pentru a rula pentru o anumită perioadă de timp. Se pot stabili, de asemenea, le-a roti un anumit număr de grade, oferindu-vă un control mai precis. De asemenea, motoarele pot fi folosite ca senzori de rotație la măsura cât de departe au fost transformate.[9]
Interiorul servomotorului cu tachogeneratoare:
Fig. 27 –Interiorul Servomotorului.[9]
Motoarele pas cu pas (MPP) sunt de fapt motoare sincrone la care fazele infasurarilor statorice sunt alimentate in impulsuri de curent, rezultate in urma aplicarii unor impulsuri de tensiune de tip “treapta”, iar rotorul este de tip reactiv – cu poli proeminentii – sau in component rotorului putem avea si magneti sau electromagneti cu capetele infasurarilor scoase prin perii la inele colectoare. Perile colectoare sunt destinate sa transforme impulsurile electrice in deplasari unghiulare sau liniare discrete, respective “pasi”.
Partile componente ale motoarelor pas cu pas sunt urmatoarele:
Motoarele pas cu pas (MPP) se pot clasifica in :
MPP cu o singura infasurare de comanda.
MPP cu doua infasurari de comanda.
MPP cu trei sau mai multe infasurari de comanda.
Se mai construiesc si alte variante de MPP :
MPP cu circuite imprimate
MPP electrohidraulice
MPP liniare
Motoarele pas cu pas cu o singura infasurare de comanda este reprezentat in figura de mai jos.
Cand infasurarea de comanda nu este alimentata, axa longitudinala a rotorului are aceasi pozitie cu axa polilor din magnetii permanenti.Acest tip constructive se poate construe cu un numar de poli statorici divizibil cu patru ( 2p = 4 k , k=1,2,3…) . Numarul de poli rotorici va fi jumatate din cel al statorului. Pasi sunt realizati mai mici de 90 .
Motoarele pas cu pas cu doua infasurari de comanda reprezentat in figura de mai jos:
Fiecare cuplare a unei infasurari de comanda corespunde unui pas 90.
Marind numarul de poli se poate micsora pasul.Astefel s-au realizat MPP cu rotorul excitat in curent continu care permite optinerea unui pas de 15 .
Motoarele pas cu pas cu trei sau mai multe infasurari de comanda :
Aceste tipuri se construiesc in doua variante :
1.Cu mai multe statoare , pe fiecare stator avand cate o infasurare de comanda
( reprezentat in figura de mai sus ),
2.Cu un singur stator cu mai multe infasurari de comanda .
Motorul pas cu pas se utilizeaza in schemele sistemelor de comanda cu program si prin impulsuri. Folosirea ordinatoarelor pentru comanda unor procese tehnologice complexe necesita prelucrarea unor semnale, sub forma e impulsuri ceea ce se poate realiza cu MPP.
In prezent MPP se foloseste in diverse instalatii industriale, dupa cum urmeaza:
Actionarea masinilor unelte cu comanda numerica
Industria metalurgica si usoara
Sisteme periferice ale calculatoarelor numerice
In aeronautica.
SISTEME DE CONDUCERE
Flexibilitatea, fiabilitea, insensibilitea la perturbații precum și o serie de cerințe privind facilitățile oferite la introducerea sau la modificarea programelor de lucru sunt câteva din caracteristicile de bază ce se impun la ora actual echipamentelor de conducere pentru majoritatea aplicațiilor ce utilizează roboți.
În continuare vor fi prezentate unele dintre cele mai utilizate sistem de conducere:
Sisteme de conducere cu Vision
Înainte de a putea defini și înțelege noțiunea de vision trebuie înțeles pe deplin sensul acestui cuvânt. În limba română, cuvântul este tradus prin viziune,mai exact fiind un mod de a vedea și de a concepe lucrurile, cu alte cuvinte percepție vizuală.
Omul a fost înzestrat cu cel mai bun sistem de percepție conferându-i posibilitatea de a vedea și percepe mediul în care trăiește, prin urmare el putându-se deplasa în acest mediu, putând identifica obiectele fără probleme și interacționa cu ele.
Cercetatorii ingineri au căutat multă vreme o metodă de a înzestra mașinile cu abilitatea de a vedea și percepe tocmai pentru ca acestea să poată înțelege mediul din jurul lor și să interacționeze cu acesta.
O noțiune veche folosită pentru sistemele vision este machine vision ce presupune capabilitatea unei mașini de a percepe, vedea mediul sau anumite zone de interes. Având în vedere cum a evoluat tehnologia în ultimele decenii această noțiune nu mai este valabilă deoarece în ziua de azi orice sistem de calcul mai complex dotat cu un senzor optic poate fi numit un sistem vision, trecându-se doar la noțiuni de vision.
Prin urmare acum putem spune că știința care se ocupă de aceste probleme este vision de unde si definiția: Vision este știința care se ocupă de programarea calculatoarelor pentru a procesa și în final a înțelege (percepe) imagini sau capturi video.[10]
Fig. 27 – Etapele de captare și procesare
ale unui sistem vision.
Orice imagine în cadrul unui sistem vision, din momentul capturii până la informația obținută în final trece printr-un număr de etape (Fig. 27), acestea sunt descrise în următoarele rânduri:
1.Captarea imaginii
Se realizează cu ajutorul unui scanner, uneia sau mai multor camere foto sau video. Acestea au în componența sa un număr de lentile pentru focalizare și cel mai important, un senzor optic care poate fi de tip CMOS,CCD și Faveon.
Indiferent de tipul de senzor optic lumina ajunge pe senzor în același fel, mai exact razele de lumină provenite de la soare sunt reflectate de obiectele de care se lovesc înmagazinând inele de culoarea acestor obiecte care apoi sunt captate de aparat, lumina trecând prin lentile până la senzor, vezi figura 28, a.
b).
Fig. 28- Formare imaginii într-un aparat de fotografiat.a). Trecere luminii prin
lentile până la senzorul optic; b). Filtrarea luminii în cadrul senzorului optic.
Lumina captată ajunge pe suprafața senzorului optic unde trece printr-un filtru infraroșu, apoi printr-unul de culoare care separă toate culorile în RGB, proiectându-le pe suprafața unor senzori de lumină ce transformă lumina în impulsuri electrice (Fig. 28, b). Senzorul optic formează 3 straturi cu spectru de intensitate pentru fiecare culoare în parte (roșu, verde și albastru); aceasta se poate vedea în figura 29.
Fig. 29 – Formare imaginii RBG[1]
În cazul folosirii mai multor camere se poate vorbi despre noțiunea Stereovision. Aceasta presupune suprapunerea a două (sau mai multe) imagini decalate pentru obținerea unei iluzi de profunzime. Cele două imagini 2D captate de la cele două camere sunt combinate de calculator pentru a da senzația 3D.
O diferență mai clară a folosirii stereovision se poate vedea în figura 30 urmărind imaginile captate de o singură cameră fața de imaginile captate de 2 camere ce se folosesc de stereovision.[11]
Fig. 30 – Imaginile captate de la o camere și de la două camere.[11]
2. Procesarea imaginilor
Procesarea imaginilor presupune modificare acestora pentru a le îmbunătăți, restaura, extragerea de informații și pentru a le schimba structura. Îmbunătățirea și restaurarea imaginilor presupune modificare acestora pentru a mări calitatea lor; reducerea bruiajului prin aplicarea unui filtru cu efect de blur sau mărirea contrastului pentru a descoperi mai multe detalii sunt unele din procesele de îmbunătățire a imaginii.
În primă fază se alege folosirea imaginii originale (colorată) sau imaginea convertită în nuanțe de gri (imagine binară) pentru o procesare mai ușoară, în funcție de necesitate.
În urmatoarele rânduri se vor prezenta operațiile folosite la prelucarea imaginilor și o scurtă descrie a acestora:
Modificarea Luminozității și Contrastului: pentru a scoate în evidență sau ascunde detalii din imagine;
Corecție Gamma: este folosită în general pentru corectarea pecepției umane;
Operații Morfologice: Incluziunea, Reuniunea, Intersecția, Diferența, etc. cu rolul de modificare a formei sau extragere de componente, reprezentarea și descrierea formei unei regiuni / obiect;
Operatii Logice: and, or not și combinațiile lor, aplicate imaginilor binare cu același scop pe care îl au operațiile morfologice;
Dilatarea și eroziunea: modifică imaginea prin adăugarea, respectiv substragerea pixelilor din marginea unui obiect ( a conturului);
Deschidere și închidere: Prima operație este efectul de delimitare clară a contururilor între două obiecte apropiate respectiv cu rol de netezire contur, umplere goluri mici în obiecte, spargere legaturi slabe între obiecte. Cea de-a doua este efectul de umplere a spațiilor mici între contururile obiectelor cu rol de netezire contur, eliminare goluri mici intre obiecte, unire legături slabe între obiecte;
Extragere contur: efectul este de determinare a conturului obiectelor;
Operații de obținere proprietăți geometrice simple ale obiectelor din imagini binare: aria, poziție/centru de masa. orientarea, proiecția, pixeli vecini etc.
Scheletizarea: Reducerea unui obiect la un schelet, prin înlăturarea de pixeli
Transformarea Hit and miss: Identificarea unor forme dorite în imagine
Filtre: filtru trece jos, filtru trece sus, filtru median, filtru gaussian acestea se bazează pe operațiile matematice de convoluție și corelație și au rolul de a reduce zgomotul,netezi și dau un efect de blur imaginilor
Embossing: Efectul de embossing dă senzația că unele obiecte ar fi mai departe sau mai aproape de fundalul imaginii(efect 3D)
Tranformata Hough: folosită pentru detectarea anumitor forme geometrice într-o imagine.
O simplă exemplificare de procesare a imaginii se poate observa în figura 31 asupra căreia s-au aplicat operațiile de dilatare și erodare.
Fig. 31 – Operațiile de dilatare și erodare.[11]
Aplicații vision
Sistemele vision și-au găsit aplicații aproape în toate domeniile de activitate:
în medicină unde sunt un număr mare de aplicații cum ar fi: extragerea informațiilor din radiografii, tomografii, imagini ultrasonice (exemplu detectarea tumorilor de pe creier); operații ghidate de calculator (exmple fig. 32);
în industrie în general cu rol de suport în procesul de fabricare: de verificare a calității; pentru detectarea unui obiect ce urmează a fi manipulat de un robo t(exmplu fig. 33)
în agricultură: la sortarea de fructe și legume în funcție de anumite caracteristici, cum ar fi mărimea, culoarea, forma; la detectarea și avetizarea apariției bolilor la culturi;
aplicațiile militare sunt cele mai numeroase și pot fi: la detectarea soldaților și vehiculelor inamice; pentru ghidarea rachetelor;
o nouă aplicabilitate a sistemelor vision este legată de vehiculele autonome: la navigare pentru a ști unde se află sau pentru a produce o hartă a mediului și obstacolelor; un alt exemplu sunt sistemele de suport la autovehicule pentru avetizarea de obstacole sau pentru aterizare autonomă la avioane; conducerea autonomă a autovehiculelor, acesta mai având insă nevoie de dezvoltare.
localizarea unor obiecte ăn imaginile provenite de la sateliți
în divertisment: recunoașterea feței omului; prezenței sale precum și a gesturilor acestuia (exmplu Microsoft Kinect figura 34);
alte întrebuințări: la detectarea amprentelor; sisteme de controlul traficului rutier;
Fig. 32 – Operații minim invazive realizate de un robot ghidat de operator[12]
Fig. 33 – Robot cu sistem vision de urmărire a unui obiect de interes.[12]
Fig. 34 – Microsoft Kinect. Urmărirea gesturilor omlui și
reproducerea lor în jocuri.[13]
Sisteme de conducere cu automate programambile
Un automat programabil este un sistem specializat destinat pentru tratarea problemelor de logică secvențială și combinaționale, simulând structurile logice de comandă printr-o configurație elastică, programabile. Prin concepția sa, automatul programabil este adaptabil pentru funcționarea în mediu industrial, poate opera într-o plajă largă de temperaturi și umiditate, este ușor adaptabil la interfațarea cu orice proces și nu pune probleme deosebite privind formarea personalului de deservire datorită facilităților de programare oferite. Toate aceste caracteristici, la care se mai pot adăuga robustețea generală a echipamentului și prețul relativ redus, fac ca automatele programabile să constituie o pondere importantă în sistemele de conducere ale roboților industriali.
Arhitectura generală a unui automat programabil este desfășurată în jurul unei magistrale de date la care sunt conectate circuitele de intrare – ieșire, unitatea centrală și memoria sistemului (fig. 35).
Variabilele de intrare sunt realizate sub forma diverselor elemente de comandă și măsurare incluse în sistemele operaționale și auxiliare ale roboților: limitatoare de poziție, marimi mecanice de la traductoare de deplasareincrementale sau absolute sau chiar de la sisteme de măsurare analogică după o conversie analog-numerică.
Variabilele de ieșire dirijează acționarea elementelor de execuție de tipul contactoarelor, electrovalvelor, elementelor de afișare, etc.
Fig. 35 – Schema Automat.
Circuitele de interfață intrare-ieșire au rolul de a converti semnalele de intrare de diverse forme în semnale logice adaptate unității centrale și de a transforma semnalele logice ale unității în semnale de ieșire corespunzătoare acționării impusă de sistemul de forță al robotului.
Unitatea de comandă coordonează toate transformările de date furnizate de proces, efectuează operații logice asupra datelor recepționate și asigură alocarea corespunzătoare a rezultatelor obținute la ieșirile programate. De asemenea,execută și o prelucrare de informație numerică de la proces, rezultatul acestor operații condițtionând starea operatorilor logici ai unității de control.
Unitatea de programare permite introducerea și definitivarea programului în raport cu evoluția robotului și cu modificările impuse în secvențele funcționale de bază ale acestuia.
Soluțiile adoptate de proiectanți cuprind două versiuni: o consolă autonomă cu memorie proprie sau o consolă ce operează împreună cu automatul utilizând memoria acestuia. Prima variantă oferă avantajul unei programări simple, într-un birou de proiectare, a doua implică cuplarea directă la automat deci implicit programarea se realizează nemijlocit în intimitatea procesului tehnologic condus.
Unitatea centrală este, în principiu, o unitate logică capabilă să interpreteze un număr mic de instrucțiuni care exprimă funcțiile de bază într-un proces de conducere; instrucțiuni de evaluare a unor expresii booleeene cu păstrarea rezultatului la o variabilă din memorie sau la o ieșire, instrucțiuni de numărare sau temporizare, instrucțiuni aritmetice de adunare, scădere, comparație, etc. De asemenea, pot fi utilizate instrucțiuni de salt condiționat, instrucțiuni de subrutine și instrucțiuni de indexare.
Executarea instrucțiunilor este ciclică, ceea ce determină o simplificare considerabilă a structurii logice interne și evită introducerea unui sistem de întreruperi prioritare. Ținând cont de constantele de timp proprii acționării roboților industriali, se impune ca timpul de baleaj al unui program de conducere să fie inferior celei mai mici constante de timp. În acest fel, se asigură preluarea tuturor informațiilor privind elementele semnificative ale mișcării și interpretarea lor imediată.
Memoria automatelor programabile stocheazaă programe de date și este, în general, o memorie de dimensiune mică, între 1k și 16k cuvinte, standardizate de obicei la 8 sau 16 biti. Memoria este segmentată în zone: una rezervată variabilelor de intrare-ieșire, alta variabilelor ce definesc starea internă a automatului și ultima este destinată programului ce urmează să fie executat.
O caracteristică esențială a automatelor o constituie simplitatea limbajului de programare. O persoană, nefamiliarizată cu tehnici specifice de informatică, poate să programeze ușor și rapid un automat. Programarea constă într-o scriere directă a unor secvențe de instrucțiuni sau de ecuații plecând de la o diagramă, organigrame de stări, expresii logice, etc. Unele automate utilizează, pentru programare, un limbaj similar unei logici cablate, altele preferă limbaje simbolice de tip boolean,ceea ce le conferă o suplețe deosebită.
Sisteme de conducere fuzzy
Metodele de conducere convenționale se bazează pe o modelare corespunzătoare a sistemului supus reglării și o tratare analitică cu ajutorul funcțiilor de transfer sau a ecuațiilor de stare. În majoritatea cazurilor, o tratare completă a problemei conducerii impune cunoștinte avansate de matematică și sisteme de conducere.
În contrast cu tehnicile convenționale, metodele fuzzy de conducere oferă soluții mult mai pragmatice, cu evidente facilități de aplicare în domenii diverse, impunând cunoștințe de nivel acceptabil în domeniul sistemelor, logică de control și tehnologie.
Utilizarea logicii fuzzy în implementarea unor sisteme de conducere în condițiile absenței unei informații totale asupra sistemului a reprezentat, de asemenea, unul din factorii care au determinat larga răspândire a controlului fuzzy în cele mai diverse domenii. Am asistat ( în ultimele două decenii) și asistăm la o adevărată explozie a tehnicilor de implementare de tip fuzzy atât în problemele clasice de control cât și în domeniul sistemelor expert, ale inteligenței artificiale sau în complexele probleme de decizii în domeniul economic.
Conceptul de Logica Fuzzy a fost introdus pentru prima dată de Lotfi A. Zadeh de la Universitatea din California, Berkley, în 1965 în lucrarea Fuzzy Sets. La acea epocă, de afirmare a calculatoarelor numerice bazate pe logica exactă 0, 1, un astfel de concept părea neverosimil. Zadeh, prin această logica fuzzy a impus o altă modalitate de tratare a problemelor în care mărimile ce determină evoluția unui sistem nu au frontierele clar definite, 0 sau 1, alb sau negru, aceasta putând fi asociate unei anumite zone incerte, "gri". De exemplu, sistemele ternare (cu trei valori logice 0, 1/2, 1) au fost studiate în nenumărate lucrări de algebră de comutație, dar Zadeh a introdus conceptul de mulțime fuzzy, "vaga" pentru cazurile când frontiera valorii 1/2 are o caracteristică incertă.
Primele aplicații ale acestui nou concept au apărut în jurul anilor 1975 în domeniile economic și medicină. Ulterior, japonezii au introdus metodele fuzzy în sistemele de control cu aplicații diverse în industrie sau în echipamente electrocasnice.
Sfârșitul secolului trecut marchează o creștere spectaculoasă a metodelor fuzzy datorată atât noilor domenii de aplicație: robotică, inteligența artificială, industria ușoară, industria materiilor compozite, navigație, economie, etc., cât și extinderii geografice a noilor utilizatori în SUA și Europa.
Logica fuzzy poate fi interpretată ca un concept de implementare a logicii umane în problemele de tip ingineresc. În limbajul uman există diferite tipuri de incertitudini numite frecvent "incertitudini lexicale" care identifică imprecizia în evaluarea unor concepte sau în stabilirea unor concluzii.
Să considerăm cuvinte ca "bărbat înalt", "bărbat tânar" sau "zi caldă", ce nu exprimă foarte clar atributul asociat. Un bărbat poate fi înalt dacă are 1,80 m, dar unul care are numai 1,79 m nu poate fi considerat imediat ca unul de "înălțime medie". De asemenea, atributul de înalt poate fi diferit interpretat de un copil, pentru care toăi bărbații sunt înalți, ți altfel de un adult.
În aceeați manieră se poate interpreta "bărbat tânar". Pentru un om de 60 de ani, toți cei care au 54 de ani pot intra în această categorie, ceea ce evident că nu corespunde unor alte criterii de apreciere. Acesta poate fi considerat "între două vârste" sau "în vârstă", dar delimitarea nu poate fi în nici un caz exactă.
Aceste exemple sugerează faptul că o eventuală abordare a acestor incertitudini într-o tratare logică necesită introducerea unui model matematic.
Să reconsiderăm, pentru exemplificare, modelul lingvistic "bărbați înalți". Într-o tratare convențională, conform teoriei mulțimilor, mulțimea "bărbați înalți" va cuprinde toți bărbații cu înăltime peste 1,77 m (de exemplu). Deci se poate introduce o funcție care să poată identifica exact apartenența sau neapartenența unui element (bărbat) la această mulțime (fig. 36).
Fig. 36 – Mulțimea “Bărbați Înalți.” Conform teoriei convenționale a mulțimilor.
În figura 37 este prezentată o mulțime în care elementele ei pot fi "mai mult sau mai puțin" definite ca "bărbați înalți". Această mulțime este o "mulțime fuzzy".Fiecărui element al acestei mulțimi i se poate asocia un anumit grad de apartenență la "bărbați înalți". Acest grad este numit "grad al funcției de apartenență" (x) al elementului xX.
Fig. 37 – Multimea fuzzy “Barbate inalti”.
Reprezentarea printr-o funcție continuă a funcției de apartenență este redată în figura 38. Rangul lui este de la 0 la 12.
Fig. 38 – Funcția de apartenență (x).
Fig. 39 – Funcții de apartenență pentru câteva etichete lingvistice.
Exemplul de mai sus poate fi extins și pentru alte "etichete lingvistice" cum ar fi: "bărbați scunzi" si "bărbați de înaltime medie" cărora li se vor atribui funcții de apartenență corespunzătoare (Fig. 39).
Deci funcția de apartenență transformă X într-un spațiu M al funcției de apartenență (x). Daca M conține numai două puncte 0 si 1, atunci caracterul incert dispare și se poate discuta de o mulțime convențională (figura 40).
Fig. 40 – Mulțimea ce conține doar două puncte 0 si 1.
Dacă se consideră submulțimea bărbaților cu înalțime "peste 1,80 m" atunci fiecare element x al universului de discurs poate aparține sau nu (cu certitudine) acestei submulțimi:
A:X[0,1]; (1.1)
OBIECTIVELE ȘI IPOTEZELE CERCETĂRII
OBIECTIVE
Obiectivul principal al tezei este proiectarea unui robot mobil pentru evitarea obstacolelor ca acesta să se poată deplasa și sa poată evita obstacole în mod autonom. Pentru realizarea obiectivului principal s-au atins urmatoarele obiective specifice:
Folosirea softului Mathworks MATLAB R2009b, și librariei de programare a kitului Mindstorm RWTH – Mindstorms NXT Toolbox.
Plasarea obstacolelor pe o suprafață de lucru si a componentelor pentru ca robotul să poate evita obstacolele și sa ajunga la punctul final.
IPOTEZELE DE CERCETARE
În urma analizei din stadiul actual s-au identificat o parte din necesitățile proiectării unui robot mobil pentru evitarea obstacolelor. Astfel cunoscand obiectivul principal și etapele realizării acestuia s-a elaborat o schemă de cercetare, vezi figura 41.
Fig. 41 – Schema de cercetare.
O dată structurate, obiectivele sunt atinse unul câte unul. Inițial s-a studiat problema legată de mediul înconjurat și erorile care pot apare la emitarea luminii de la senzori; rezolvarea lor practică printr-o stabilire corectă a mediului de lucru și prin aplicarea unei calibrări, studierea robotului și controlul acestuia, apoi controlul propriu-zis. studierea sistemelor senzoriali și folosirea acestora, detectarea și ocolirea obstacolelor, iar în final evaluarea rezultatelor obținute în urma procesului de cercetare.
În general procesul de cercetare s-a desfașurat prin studierea noțiunilor și problemelor urmate de teste, experimente aplicate pe teorie
ECHIPAMENTE FOLOSITE
Echipamentele necesare deplasarii robotului pot să difere foarte mult de la caz la caz, de aceea în urmatoarele rânduri vor fi prezentate echipamentele folosite pentru realizarea acestui proiect:
Spatiul de lucru: suprafață plană;
Trei senzori de lumină;
Extensie USB;
Robot Lego Mindstorm: două servomotoare cu tahogeneratoare, microprocesor pe 32 biti, bluetooth, alimentare cu 6 baterii, roată rotativă;
Caluculator: procesor Intel(R) Core(TM) i7, 2.20 Ghz, memorie RAM 8.00 Gbyte, memorie stoacare 500 Gbyte, acelerator grafic NVIDIA GeForce GT 540M 2 Gbyte;
Mediu de programare Mathworks MATLAB R2011b ;
Librarie de programare a kitului Mindstorm RWTH – Mindstorms NXT Toolbox;
Obstacole;
O descrie mai amănunțită a fiecărui echipament precum și alegerea lor se găsește în paragrafele dedicate analizei și utilizării acestora.
STUDII TEORETICE
Capitolul cuprinde studiile teoretice analizate pentru proiectare unui sistem de conducere pe un robot mobil pentru a evita obstacole. Un prim pas a fost înțelegerea procesului de conducere, în ce constă acesta și necesitățile sale. În urma acestui studiu s-a realizat că este necesară întâi o înțelegere a problemelor legate de deplasarea robotului, parametrii de funcționare a acestuia și a informațiilor ce trebuie obținute prin intermediul sistemului senzorial. Odată ce aceste informații se cunosc se poate trece la analiza procesului de conducere
ANALIZA PROCESULUI DE CONDUCERE
Pentru o mai bună înțelegere a procesului de conducere a robotului s-a decis descompunerea acestuia într-o serie de faze, acest lucru permițând analizarea sa mai eficientă datorită posibilității studierii fiecărei faze în parte ( figura 42.) .
Informațiile obținute de la senzori circulă spre actuatori și sunt modificate în tot acest timp de o serie de faze care ajută la transformarea acestora din informații generale captate de robot într-o informație precisă, mai exact comenzile trimise actuatorilor pentru a fi excutate[Brooks 1985].
Se observă că procesul începe prin colectarea de informații de la „senzorul de lumina” în cadrul fazei de percepție și este trimisă mai departe la faza de analiză.
Fig. 42 – Fazele parcurse de informație în cadrul procesului de conducere.
Analiza presupune extragerea infomațiilor necesare din senzori pentru conducerea robotului. Printre aceste informații se numără prezența obstacolelor, iar în cazul în care prezența obstacolului nu este detectată, robotul merge in continuare.
Planificarea constă în prelucrarea informațiilor primite de la faza de analiză. Odată ce știm pozițiile obstacolelor, putem genera o traiectorie de urmat de către robot printre obstacole.
Cunoscând sarcina robotului (traiectoria de urmat) în faza de execuție a taskulu,i se va genera un set de comenzi pe care robotul le va executa. Odată ce informația ajunge la robot, acesta o interpretează, punând motoarele în mișcare pentru excuția sarcinii.
TRANSMISIA DIFERENȚIALĂ A ROBOTULUI
ALEGEREA ROBOTULUI CU TRANSMISIE DIFERENTIALĂ
În acest subcapitol se prezintă motivele alegerii unui robot cu transmisie diferențială.
Înainte de a începe studiul/proiectarea se caută echipamentul optim în funcție de necesitate.
În majoritatea aplicațiilor în care terenul de deplasare al robotului este o suprafață plană se optează pentru o deplasare pe roți. După alegerea tipului de deplasare se alege numărul de roți folosite, în acest caz alegându-se folosirea a 3 roți poziționate în formă de triunghi deoarece prezintă o stabilitate mărită, punctul de greutate situându-se în interiorul triunghiului. Adăugarea de patru roți sau mai multe ar mări stabilitatea, dar aceste tipuri de aranjamente sunt hiperstatice si necesită un sistem de supensie flexibil. Roțile mai mari permit o trecere mai ușoară peste anumite obstacole, însă acest lucru necesită un cuplu mai mare, mărimea acestora nefiindluată in calcul datorită suprafeței plane a proiectului[Siegwart 2004].
Combinarea mișcării de direcționare, precum și cea de tracțiune într-o singură roată complică proiectarea și aduce pe lângă ea erori de odometrie, prin urmare s-a ales un robot cu 2 roți conducătoare și o a treia pentru stabilitate cu rol de suport, aceasta fiind o roată mobilă de tip castor (vezi figura 43).
Fig. 43 – Poziționarea roților precum și rolul acestora la un robot
cu tracțiune diferențială
METODE DE DEPLASARE
Această configurație a roților robotul are 2 grade de libertate iar gradul de orientabilitate este 0 deoarece roțile conducătoare nu sunt mobile. Pentru deplasarea robotului înainte ambele roți conducătoare se învârt în același sens, cu aceeași viteza (viteza roții drepte este egală cu viteza roții stîngi; vezi figura 44). Deplasarea înapoi nu se poate realiza într-un mod corect datorită roții mobile, de aceea pentru întoarcerea în punctul de start se efectuează o rotire de 180 grade urmată de înaintare până în punctul inițial. Această rotire se face față de centrul instantaneu de rotație(ICR), vezi figura 45, c și d [14].
Fig. 44 – Deplasarea înainte a robotului cu transmisie diferențială.
Rotirea robotului se face în funcție de poziția centrului instantaneu de rotație, în cazul în care centrul instantaneu de rotație se afla la o distanță R fața de mijlocul ecartamentului roților, robotul se mișcă pe un arc de cerc de rază R în timp ce roțile conducătoare au viteze diferite, cea exterioară arcului de cerc având viteza mărită(fig. 45, a). În cazul în care centrul instantaneu de rotație se află exact în centrul uneia dintre roțile conducătoare, roata opusă este cea conducătoare în timp ce cealaltă rămâne frânată, rotirea făcându-se pe un arc de cerc de rază egală cu ecartamentul roților (fig. 45, b), iar în cazul în care centrul instantaneu de roație se află exact la mijlocul ecartamentului roților conducătoare, rotirea se face pe loc față de acest punct prin rotirea în sens opus al roților. Când roata stângă se învârte înapoi și cea dreaptă înainte, robotul va executa o rotire spre stânga (fig. 45, c), respectiv o rotire spre dreapta când roata stângă se învârte înainte și cea dreaptă înapoi(fig. 45, d).
Fig. 45 – Rotirea robotului cu transmisie diferențială în funcție de poziția
centrului instantaneu de rotație.
CINEMATICA ROBOTULUI
Sistemele diferențiale sunt printre cele mai simple sisteme de locomoție întâlnite la un robot mobil. Cinematica se ocupă de relațiile între parametrii de control și comportamentul sistemului în spațiul stărilor. Pentru a se cunoaște locația robotului se raportează acesta la un spațiu cartezian în care poziția este dată de coordonatele x și y iar orientarea de θ (vezi figura 46).
; (3.1)
Fig. 46 – Poziția și orientarea unui robot mobil în spațiu cartezian.
În cadrul unui sistem de locomoție diferențial, rotirea robotului se face în jurul unui punct numit centru instantaneu de rotație care a fost prezentat si în subcapitolul 4.1.2. Prin modificare vitezelor celor două roți traiectoria de rotație poate fi modificată,vezi figura 45. Vitezele celor două roți trebuie să respecte următoarea relație:
; (3.1)
unde vs reprezeintă viteza roții din partea stângă, vd viteza roții din partea dreaptă, R raza arcului de cerc parcurs de robot, ω viteza unghiulară, iar l distanța între cele două roți(ecartamentul). Unghiul de rotație este reprezentat de θ. Rezolvare sistemului de ecuații de mai sus duce la urmatoarele soluții:
(3.2)
Fig. 47 – Deplasarea robotului pe un arc de cerc cu distanța d și de raza R.
b). Vitezele unghiulare ale celor două roți.
Un caz special îl constituie vs=vd. Distanța R devine în acest caz infinită, deci robotul se va mișca în linie dreaptă. Dacă vs=-vd, distanța R devine 0, iar robotul se va mișca pe loc în jurul centrului instantaneu de rotație (vezi figura 47, c si d). Pentru oricare alte valori ale lui vs si vd, robotul se va roti pe un cerc de rază R fată de centrul de curbură(ICR).
O mulțime de puncte diferite de punctul de start se pot atinge prin alegerea vitezelor vs și vd. Determinarea unui punct care poate fi atins de robot prin manipularea parametrilor de control poartă numele de ecuații cinematice directe ale robotului.
; (3.3)
Ecuația 3.3 descrie mișcarea de rotație a unui robot la o distanță R dintre mijlocul axei celor două roți și centrul de curbură cu viteză unghiulară ω.
Prin integrarea ecuației de mai sus, pornind de la un set de condiții inițiale (x0, y0, θ0), se poate determina poziția robotului la un timp t, pe baza parametrilor de control v1(t) si v2(t).
; (3.4)
; (3.5)
; (3.5)
Determinarea parametrilor de control (vitezele vs si vd) pentru a ajunge intr-un anumit punct deja stabilit, poartă numele de eacuții cinematice inverse ale robotului. Datorită faptului că rezolvarea sistemului de ecuații de mai sus este anevoioasă, se propun două cazuri speciale de mișcare a robotului cu sistemul de locomoție diferențială.
În primul caz, dacă se egalează vs cu vd=v ecuația de mai sus devine:
; (3.6)
În al doilea caz, dacă se alege vs=-vd=v, ecuația devine:
; (3.7)
Astfel, pentru a deplasa un robot din (xa, ya, θa) in (xb, yb, θb) cu θa≠ θb, se poate folosi legea a doua de control (vs=-vd) până în momentul în care θa= θb, urmând apoi a deplasa robotul folosind prima lege de control (vs= vd) [EBETIUC 2005].
. 2.3.4 ROSTOGOLIREA ROȚII PE UN PLAN ORIZONTAL
Reducând cilindrul la secțiunea sa dreaptă, ne vom ocupa de mișcarea discului circular, greu, omogen, de centru O’ și de rază R, în planul vertical xOy (fig.48), discul fiind obligat a rămâne tangent necontenit la orizontala Ox. Vom presupune că în afară de greutatea proprie G și de reacțiunea normală N în punctul de sprijin A mai lucrează asupra discului un sistem de forțe situate în planul discului, forțe care se pot reduce la un torsor în O’ exprimat printr-o forță aplicată în O’, de proiecție pe axele de coordonate , și la un cuplu de moment normal la planul xOy. Vom presupune că sub acțiunea acestor forțe, discul capătă viteza orizontală aplicată în centrul O’, precum și o rotație în planul său, în jurul centrului O’, de viteză unghiulară .
Fig.48
Vom indica în figură prin săgețile curbilinii sensul pozitiv al momentului respectiv al rotației discului de viteză unghiulară . În punctul A de tangență discul are tendința de a luneca pe Ox. Vom nota cu viteza de alunecare a punctului A aparținând discului pe axa Ox. Între mărimile există o relație care se poate stabili imediat dacă observăm că viteza a punctului A (viteza absolută) poate fi considerată ca fiind rezultanta dintre viteza de rotație în jurul centrului O’ (viteza de transport). Vom avea deci:
(3.8)
STUDII APLICATIVE ȘI EXPERIMENTALE
În cadrul acestui capitol vor fi prezentate în detaliu etapele realizării sistemului de conducere precum și problemele întâmpinate în procesul de proiectare al acestuia.
CONECTAREA ECHIPAMENTELOR. SCHEMA BLOC A SISTEMULUI
Sistemul de conducere este realizat prin interconectarea echipamentelor precum și configurarea acestora atât hardware, cât și software. La baza sitemului stă calculatorul care are rol de integrare a părții hardware cu partea software. El trebuie să permită comunicarea nestingherită între echipamente.
S-a ales ca mediu de programare Matlab, creat de The MathWorks. Acesta permite o manipulare ușoară a matricelor, a graficelor funcțiilor și a datelor, implementarea de algoritmi, crearea de interfețe pentru useri și interfațarea cu programe ce au la bază alte limbaje de programare [15].
Fig. 49 – Schema bloc a sistemului.
INSTALAREA ȘI CONTROLAREA ROBOTULUI LEGO MINDSTORM NXT 2.0
Controlul robotului Lego Mindstorm NXT se realizează printr-o conexiune USB sau Bluetooh cu ajutorul Matlab-ului si librărie RWTH – Mindstorm NXT. Pentru a putea folosi aceasta librărie trebui instalat mai întai driverul robotului și copiat în memoria acestuia MotorControl22.rxe ce se găsește în folderul librăriei. MotorControl22.rxe este un program ce rulează pe robot, acesta permite de fapt controulul motoarelor [16].
Programele sunt scrise în fișiere numite m-files. Acestea sunt de 2 feluri: fișiere script și fișisere ce conțin funcții. Fișierele script nu conțin argumente de intrare și nici nu returnează nimic, pe când fișierele de funcții o fac.
Pentru a face un fișier m, după deschiderea Matlab-ului se dă click pe opțiunea file, apoi se selectează new și se dă click pe M-File din menu. Se va dechide fereastra de editare/debugger în care se scrie codul.
Un lucru de ținut minte este faptul că în cazul în care vrem să lucrăm cu anumite fișiere, acestea trebui să se afle în folderul care este setat ca folder curent. De exmplu pentru a putea folosi funcțiile librăriei RWTH – Mindstorm NXT trebui să ne situăm în folderul cu acestea (exemple …/ RWTHMindstormsNXT/).
Înaintea începerii unei noi aplicații se curăță spațiul de lucru cu urmatoarele comenzi:
close all – închide toate ferestrele;
clear all – șterge toate variațile din memorie;
Programarea se face online, acest lucru însemnând că odată conetat la robot această conexiune stă în picioare până la întâmpinarea în cod a comenzii:
COM_CloseNXT('all') – închide toate conexiunile cu robotul;
De aceea antetul fiecarei aplicații ar trebui să arate astfel:
COM_CloseNXT('all')
close all
clear all
Conectarea la robot se face într-o maniere la fel de ușoară:
hNXT = COM_OpenNXT('bluetooth.ini'); – caută o conexiune bluetooth sau usb
COM_SetDefaultNXT(hNXT); – setează implicit “handle”
Pentru controlul motoarelor inițial se definește o variabilă ce va conține în ea informații legate de motor/motoare cum ar fi:
portul motorului A,B si C;
puterea motorului: aceasta poate oscila între 1 și 100, în cazul în care este precedat de semnul “-“ motorul își schimbă sensul mișcării;
prin argumentul TachoLimit se poate comanda motoarelor la câte grade să efectueze acestea
Iar apoi cu ajutorul comenzii “variabila motor”.SendToNXT()se pornește motorul specificat. Comanda “variabila motor”.WaitFor() nu permite trecere la urmatoarele comenzi până când motoarele nu au parcurs numărul de grade specificate. Oprirea motoarelor se face prin folosirea comenzii mA.Stop('parametru') unde parametrul poate fi:
‘off’ – întrerupe alimentarea motorului făcându-l să se oprească din inerție;
‘Brake’ – oprește instantaneu motorul, acesta rămânâd sub tensiune și frânat.
În exemplul de față se inițializează în variabilele mB și mC parametrii de funcționare a robotului și apoi se pornesc motoarele, robotul deplasându-se pentru trei secunde, după care fiind frânat.
mB = NXTMotor ('B', 'Power', 50, 'TachoLimit', 1000);
mC = NXTMotor ('C', 'Power', 50, 'TachoLimit', 1000);
mB.SendToNXT();
mC.SendToNXT();
mBC.WaitFor();
mA.Stop('off');
mA.Stop('brake');
Folosirea a doua oară a comenzii de stop cu parametrul brake are rolul de a opri alimentarea motorului deoarece în urma comenzii stop cu parametrul off, robotul se oprește dar motoarele rămân sub tensiune, acest lucru ducând în timp la epuizarea curentului din baterii.
Un lucru important de sesizat este că în timpul experimentului s-a observat faptul că succesiunea de comenzi de pornire a motoarelor introduc erori în deplasare deoarece comenzile nu sunt executate simultan de catre Matlab. Prin urmare pornirea celui de-al doilea motor are o întârziere de câteva mili-secunde care produce o scurtă rotire a robotului: vezi sub-capitolul 4.2.2 unde este explicat în detaliu rotirea robotului. O soluție ar fi următoarea:
mBC = NXTMotor ('BC', 'Power', 50, 'TachoLimit', 1000);
mBC.SendToNXT();
setarea într-o singură variabilă a ambelor motoare la câmpul de port, dar acest lucru este valabil doar în cazul deplasării pe linie dreaptă și rotire când ICR se află în mijlocul uneia dintre roți, vezi figura 45, b. În cazul rotirii când avem ICR la distanța R față de robot(fig. 45, a) motoarele trebui să se deplaseze distanțe diferite, motorul exterior arcului de cerc format de distanța R se va roti mai multe grade decât motorul interior. Deci pentru efectuarea acestei rotiri trebuie inițializate motoarele separat pentru a putea seta fiecărui motor un număr diferit de grade, ceea ce nu mai permite pornirea lor simultan.
Fig.50- Testarea deplasări robotului.
Apoi în cazul rotirii când ICR se află la jumatea distanței ecartamentului roților(fig. 45, c si d) avem aceeași problemă deoarece roțile trebuie să se rotească în sense diferite, deci la unu dintre motoare trebuie setat sensul de deplasare invers, ceea ce nu se poate realiza fără inițializarea separată a motoarelor.
Având în vedere cele spuse mai devreme, s-a ales aplicarea un artificiu tehnic ultimului tip de rotire. Acesta consăa în rotirea segvențială a motoarelor, mai exact în cazul care se dorește rotirea robotului cu 90 de grade unul din motoare va executa o rotire de 45 de grade într-un sens iar cel de-al doilea motor va executa tot o rotire de 45 de grade, dar în sens opus primului și dupa acesta.
Aplicația de testare a controlului robotului se găsește în cadrulul anexelor.
ALGORITMI DE CALCULARE A DISTANȚEI DE DEPLASARE
Având în vedere cele spuse în capitolul precedent legat de faptul ca robotul Lego Mindstorm NXT se poate deplasa pe baza tahogeneratoarelor din motoare, presupunem ca atata timp cât cunoaștem numărul de rotații în grade al fiecărui motor pentru executarea unei rotiri de x grade sau/și deplasarea acestuia într-o linie dreaptă egală cu distanța x, acesta poate fi condus cu ușurință.
Din acest motiv în continuare se vor prezenta algoritmii aplicați pentru deplasarea pe o linie dreaptă și rotirea robotului cunoscând distanța de parcurs, respectiv numărul de grade necesare rotirii.
Se știu: diametrul roții D=5.6 [cm], ecartamentul roților E=10.5 [cm], π=3.14 și gradele unui cerc =360 .
Algoritmul de deplasare pe o linie dreaptă:
Inițial se află circumferința roții
; (4.1)
Aflarea numărului de rotații necesare pentru parcurgerea distanței dorite
; (4.2)
Trasformarea rotațiilor în grade necesare deplasării motorului
; (4.3)
Algoritmul de rotire, ținând cont de artificiul făcut:
Inițial se află circumferința roții
; (4.4)
Calcularea circumferinței cercului mare pe care l-ar face robotul dacă sa-r învârti în jurul unei roți
; (4.5)
Calcularea arcului de cerc pe care robotul trebuie să îl parcurgă, gradele de rotire fiind gradele de rotire dorite ale robotului
; (4.6)
Aflarea numărului de rotații necesare pentru a parcurge arcul de cerc
; (4.7)
Trasformarea rotațiilor în grade necesare deplasării motorului
; (4.8)
CONCLUZII
Pentru îndeplinirea obiectivelor sa pornit de la schema de analizarea a procesului de conducere și au fost realizate o serie de aplicații experimentale privind conducere robotului NXT care individual pot fi folosite și în viitoare cercetării.
Prin îndeplinirea obiectivelor specifice sa ajuns la următoarele concluzii privind problema studiată:
O concluzie realizată pe parcursul alegeri robotului este că nu există o configurație ideală de poziționarea a robotului pentru a obține simultan o stabilitate maximă, manevrabilitate și controlabilitate.
Folosirea Kitului Lego Mindstorm cu Matlab + RWTH-Toolbox permite exploatarea la maxim a resurselor kitului.
BIBLIOGRAFIA
[1].Informații prelucrate de pe siteul:
http://de.wikipedia.org/wiki/Mechatronik
(Accesat in data 02.04.2013).
[2]. Informații prelucrate și imagini de pe siteul:
http://mdm.utcluj.ro/Revista/capa.htm
(Accesat la data 02.04.2013).
[3]. Imagine de pe siteul:
http://www.robotize.com.au/robotic-news/articles
(Accesat la data 03.04.2013).
[4]. Informații prelucrate și imagini de pe siteul:
http://en.wikipedia.org/wiki/Curiosity_(rover)
(Accesat la data 14.04.2013).
[5]. Informații prelucrate și imagini de pe siteul:
(Accesat la data 14.04.2013).
[6]. Informații prelucrate și imagini de pe siteul:
http://robital.ro/roboti/roboti-mobili?gclid=CNa6qqGgorgCFXMbtAodrXQAcw
(Accesat la data 03.05.2013).
[01 Zamfira]. Curs Senzori și traductoare, Brașov
[7]. Informații prelucrate și imagini de pe siteul:
http://mindstorms.lego.com/en-us/products/10285.aspx
(Accesat la data 06.28.2013).
[8]. Informații prelucrate și imagini de pe siteul:
http://blog.laptopmag.com/lego-mindstorms-ev3-makes-it-easy-to-build-advanced-robots
[9]. Informații prelucrate și imagini de pe siteul:
(Accesat la data 06.28.2013).
http://cursuri.flexform.ro/courses/L2/document/Cluj-N apoca/ grupa3/Trif an_ Gabriela Xenia/site/senzori_actuatori.html
(Accesat la data 06.30.2013).
[10]. Informații prelucrate și imagini de pe siteul:
http://www.mentor.com/products/sm/system_integration_simulation_analysis/systemvision/
(Accesat la data 05.05.2013).
[11]. Informații prelucrate și imagini de pe siteul:
http://www.vision-systems.com/index.html
(Accesat la data 05.06.2013).
[12]. Imagini de pe siteul:
http://www.evaluationengineering.com/articles/200812/vision-system-online-help.php
(Accesat la data 05.06.2013).
[13] Imagini de pe siteul:
http://gamerant.com/microsoft-kinect-reviews-guide-benk-51320/
(Accesat la data 05.05.2013).
[14]. Informații prelucrate de pe siteul:
http://www.nebomusic.net/neborobotics.html
(Accesat la data 07.02.2013).
[15]. Informații prelucrate de pe siteul:
http://computervision.wikia.com/wiki/Matlab
(Accesat la data 07.02.2013).
[16]. Informații prelucrate din toolboxul RWTHMindstormsNXT.
file:///C:/Program%20Files/MATLAB/R2011b/toolbox/RWTHMindstormsNXT/doc/toolbox.html
(Accesat la data 07.04.2013).
[Brooks 1985]. Rodney A. Brooks, A Robust Layered Control System For A Mobile Robot, A. I. Memo 864, 1985
[Siegwart 2004] Roland Siegwart, Illah Reza Nourbakhsh, Introduction To Autonomus Mobile Robots, 2004
[EBETIUC 2005] Ebediuc Silvia, Staab Harald, Applying Differential Geometry to Kinematic Modeling in mobile Robotics, Germany 2005
BIBLIOGRAFIA
[1].Informații prelucrate de pe siteul:
http://de.wikipedia.org/wiki/Mechatronik
(Accesat in data 02.04.2013).
[2]. Informații prelucrate și imagini de pe siteul:
http://mdm.utcluj.ro/Revista/capa.htm
(Accesat la data 02.04.2013).
[3]. Imagine de pe siteul:
http://www.robotize.com.au/robotic-news/articles
(Accesat la data 03.04.2013).
[4]. Informații prelucrate și imagini de pe siteul:
http://en.wikipedia.org/wiki/Curiosity_(rover)
(Accesat la data 14.04.2013).
[5]. Informații prelucrate și imagini de pe siteul:
(Accesat la data 14.04.2013).
[6]. Informații prelucrate și imagini de pe siteul:
http://robital.ro/roboti/roboti-mobili?gclid=CNa6qqGgorgCFXMbtAodrXQAcw
(Accesat la data 03.05.2013).
[01 Zamfira]. Curs Senzori și traductoare, Brașov
[7]. Informații prelucrate și imagini de pe siteul:
http://mindstorms.lego.com/en-us/products/10285.aspx
(Accesat la data 06.28.2013).
[8]. Informații prelucrate și imagini de pe siteul:
http://blog.laptopmag.com/lego-mindstorms-ev3-makes-it-easy-to-build-advanced-robots
[9]. Informații prelucrate și imagini de pe siteul:
(Accesat la data 06.28.2013).
http://cursuri.flexform.ro/courses/L2/document/Cluj-N apoca/ grupa3/Trif an_ Gabriela Xenia/site/senzori_actuatori.html
(Accesat la data 06.30.2013).
[10]. Informații prelucrate și imagini de pe siteul:
http://www.mentor.com/products/sm/system_integration_simulation_analysis/systemvision/
(Accesat la data 05.05.2013).
[11]. Informații prelucrate și imagini de pe siteul:
http://www.vision-systems.com/index.html
(Accesat la data 05.06.2013).
[12]. Imagini de pe siteul:
http://www.evaluationengineering.com/articles/200812/vision-system-online-help.php
(Accesat la data 05.06.2013).
[13] Imagini de pe siteul:
http://gamerant.com/microsoft-kinect-reviews-guide-benk-51320/
(Accesat la data 05.05.2013).
[14]. Informații prelucrate de pe siteul:
http://www.nebomusic.net/neborobotics.html
(Accesat la data 07.02.2013).
[15]. Informații prelucrate de pe siteul:
http://computervision.wikia.com/wiki/Matlab
(Accesat la data 07.02.2013).
[16]. Informații prelucrate din toolboxul RWTHMindstormsNXT.
file:///C:/Program%20Files/MATLAB/R2011b/toolbox/RWTHMindstormsNXT/doc/toolbox.html
(Accesat la data 07.04.2013).
[Brooks 1985]. Rodney A. Brooks, A Robust Layered Control System For A Mobile Robot, A. I. Memo 864, 1985
[Siegwart 2004] Roland Siegwart, Illah Reza Nourbakhsh, Introduction To Autonomus Mobile Robots, 2004
[EBETIUC 2005] Ebediuc Silvia, Staab Harald, Applying Differential Geometry to Kinematic Modeling in mobile Robotics, Germany 2005
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Proiectarea Unui Robot Mobil Pentru Evitarea Obstacolelor (ID: 123281)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
