Cap. 1 Noțiuni despre roboți mobili [309530]

Cap. 1 Noțiuni despre roboți mobili

1.1. Robotica

Termenul “robot”, este originar din piesa de teatru: “Roboți universali ai lui Rossum” scrisă de Karel Čapek, scriitor ceh. [anonimizat], fac o revoltă împotriva lui. Termenul ,,robot” provine din slavicul ,, robota” și înseamnă efectuarea unei munci grele forțat.

[anonimizat] ,,science fiction”, a [anonimizat], înainte ca primul robot real să existe. De asemenea, a formulat conceptul de ,, Robotică”, definit ca știința care se ocupă de roboți și cele ,,Trei Legi ale Roboticii:

[anonimizat].

[anonimizat] 1.

[anonimizat], cu excepția cazurilor când acțiunile rezultate contravin legilor 1 și 2.

[1]De-a [anonimizat], omenirea a creat sisteme tehnice care vin ca răspuns unor probleme din practică. [1][anonimizat], primii roboți mobili au fost rezultatul tehnicii avansate a unor cercetări relativ noi din domenii de cercetare precum Știința calculatoarelor și Cibernetica. [anonimizat]. [anonimizat] ,,smart” care se detonează doar când se află într-o anumită rază a țintei, acestea folosind sistem de ghidare și radar.

Secțiunea unei bombe V1

Bombele V1 și V2 foloseau un sistem de autopilot primitiv bazat pe o preche de giroscoape și o busolă magnetică. [anonimizat] o anumită valoare spre 0. [anonimizat] 30 [anonimizat] o unitate spre 0. La atingerea valorii 0, încărcătura se detona automat prin 2 bolțuri de detonare. Bombele V1 și V2 sunt predecesorii ale actualelor rachete de croazieră.

Construirea primelor instalații de teleoperare are loc prin anii 1940-1950, [anonimizat]. Aceste instalații erau folosite pentru a manipula materialele radioactive în spații unde omul ar risca să fie expus radiațiilor. [anonimizat], este dezvoltată și se înlocuiește elementul uman de acționare și de comandă cu acționarea hidraulică și comanda calculatorului.

În 1948-1949, W.Grez Walter îi construiește pe Elmer și Elsie, 2 roboți autonomi numiți ,,Machina Speculatrix”, întrucât acești roboți erau cosntruiți să exploreze mediul înconjurător. [anonimizat] o [anonimizat], evitând obstacolele din calea lor. [anonimizat]. Cei doi roboți erau echipați fiecare cu echivalentul a două celule nervoase.

Elmer și Elsie

În 1961-1963, Universitatea John Hopkins dezvoltă ,,Bestia”. [anonimizat]. Era dotat cu inteligență rudimentară și abilitatea de a se descurca în mediu de unul singur. Automatul căuta pe pereții albi din laborator o pată neagră care era priza și se cupla automat la încarcare. Dispozitivul era cibernetic. Nu folosea un calculator. Circuitul de control era format din o mulțime de tranzistori. Acesta era dotat cu fotocelule optice și sonar pentru navigație. Sonarul era folosit pentru detectarea distanței față de pereți sau obstrucționarea calei de rulare ori detectarea scărilor și a ușilor. Sistemul optic de ghidare ajuta pentru detectarea prizei pe perete pentru a se conecta la sursa de tensiune.

Bestia-automat dezvoltat de Universitatea John Hopkins

În 1971, Rod Schmidt, de la Universitatea Standford dezvoltă ,,Standford Cart”. Acesta este un robot mobil capabil să urmărească o linie albă, folosind o cameră alb-negru ca să vadă. Robotul era conectat prin radio la un server care opera calculele.

Robotul mobil ,,Standford Cart”

În aproximativ aceași perioadă, Institutul de Cercetare Standford dezvoltă proiectul ,,Shakey” (Tremurici), nume dat după deplasarea sacadată. Shakey era dotat cu o cameră, un telemetru, un senzor de impact și o antenă radio. Era primul robot care putea ,,raționa” deciziile ce trebuiau luate. În acest sens, se putea da comenzi generale, iar robotul planifica acțiunile necesare pentru împlinirea obiectivului.

Shakey the robot

În 1974, compania suedeză ASEA manufacturează primul robot industrial care este acționat electric. Denumirea acestuia este IRB6. Evoluția tehnologică a dus la comandarea roboților cu ajutorul microcomputerelor. În 1990, Brown-Bovery Robotics cumpără ASEA, iar toți roboții fabricați în continuare se numesc ABB.

Björn Weichbrodt și primul robot IRB 6

În 1980, crește interesul public pentru roboții care pot fi cumpărați pentru uz casnic. Acești roboți serveau drept scop ca divertisment sau scopuri educaționale. Exemplele includ robotul ccare încă există și face parte din seria HERO. RB5X este un robot mobil personal în formă de cilindru, cu o cupolă transparentă și dotat opțional cu un braț. Aplicațiile acestui robot erau educaționale cât și ca scop demonstrativ a roboților mobili.

RB5X

Deceniul anilor ’80 este marcat de proiecte precum robotul mașină, al echipei lui Ernst Dickmanns de la Universitatea Bundeswehr din Munich; diferite metode de control ale roboților precum programarea paralelă folosindu-se sistemul multitasking de la Seria 1 IBM (proiect condus de Stevo Bozinovski și Mihail Sestakov), controlul prin comanda vocală(Stevo Bozinovski și Gjorgi Gruevski), controlul prin semnale EEG; inventarea roboților BEAM.

Roboții BEAM (Biology, Electronics, Aesthetics, Mechanics – Biologie, Electronică, Estetică, Mecanică) sunt caracterizați de modul acestora de control. Aceștia folosesc circuite primare analogice simple, precum comparatoare în loc de microprocesoare pentru a avea un design simplu și cât mai ieșit din comun. Deși roboții BEAM nu sunt flexibili, sunt eficienți și robuști în execuția instrucțiunilor pentru care au fost proiectați.

ScoutWalker III

În deceniul anilor '90 aplicațiile robotizate stagnează atât datorită unor circumstanțe economice, cât și datorită saturării din punct de vedere științific al roboticii industriale, fapt determinat de existența soluțiilor tehnice la toate problemele specifice posbile. Ca rezultat, dezvoltarea roboticii își va muta focusul spre aplicații si domenii neindustriale, cum ar fi cele casnice, agricultură etc.

În prima jumatate a deceniului anilor ’90, se observă apariția a mai multor aplicații ale roboților în domeniile serviciilor și a medicinei recuperatorii. Cercetarea se extinde și în noi direcții, parțial corelate cu diversificarea aplicațiilor vertebroizi. Acestea stau la baza realizării de structuri noi de roboți de tip paraleli, pașitori, târâtori, cățărători, săritori. Compania Festo are un portofoliu bogat de roboți mobili care imită aproape perfect animale precum, cangurul, fluturii, peștii, lilieci, păienjeni și multe altele. Din cele menționate, un robot care a dus la o dezvoltare și în industrie a aplicației, Bionic Handling Assistant (Asistent manipulare bionic) dezvoltată de Festo. Această aplicație se bazează pe reproducerea mișcării trompei de elefant. Acționarea este pneumatică și constă în 3 segmente, fiecare în parte fiind formată din tuburi subțiri care alimentează mușchii artificiali responsbili de mișcarea segmentului.

Comparația dintre trompa unui elefant și Bionic Handling Assistant

1.2. Definiții

Normele francize (Normalisation française, NF) dau definițiile cele mai concrete și corelate logic. Astfel, norma E61 – 005 definește manipulatorul:

“Structura mecanică constituită dintr-o serie de elemente articulate sau alunecătoare unul față de celălalt, utilizat pentru a prinde, deplasa, poziționa și orienta obiecte (piese, scule, etc), urmărind în general mai multe grade de libertate. El poate fi comandat de un operator, de un automat programabil electric sau prin orice sistem logic (dispozitiv cu came, logică cablată, logică programată, etc.) independent sau asociat”.

În același standard, mai sunt definite: manipulatorul de sarcini echilibrat cu comandă manuală, instalația de teleoperare și manipulatorul cu secvențe fixe. Acesta din urmă “efectuează automat fiecare etapă a unei operații date, în conformitate cu o succesiune de mișcări predeterminate, care nu pot fi schimbate fără modificări fizice. Limitarea mișcărilor se face prin opritoare mecanice, electromecanice sau senzori”.

Norma franceză NF61-100 definește robotul:

“Robotul este un mecanism de manipulare automată, aservit în poziție, reprogramabil, polivalent, capabil să poziționeze și să orienteze materiale, unelte sau dispozitive specializate, în timpul unor mișcări variabile și programate, destinate executării unor sarcini variate”.

Standardul german DIN 2801 definește:

“Roboții industriali sunt automate mobile cu aplicații universale, cu mai multe axe, ale căror mișcări sunt liber programate pe traiectorii sau unghiuri într-o anumită succesiune a mișcărilor și în anumite cazuri, comandate prin senzori. Ei sunt echipați cu dispozitive de prehensiune, scule sau alte mijloace de fabricație și pot îndeplinii activități de manipulare și de fabricație. Robotul industrial poate fi montat fix, într-un anumit loc sau poate fi deplasat ca un ansamblu.

În standarde japoneze robotul este definit ca:

“Un sistem mecanic, dotat cu funcțiile motoare flexibile analoage cu cele ale organismelor vii sau imitații ale acestora, cu funcții inteligente, sisteme care acționează corespunzător voinței omului”.

După standarde rusești, robotul industrial se definește:

“Robotul industrial este o mașină automată staționară sau deplasabilă, constând din dispozitivul de execuție, având mai multe grade de libertate și din dispozitivul reprogramabil de comandă după program pentru îndeplinirea în procesul de producție a funcțiilor motoare și de comandă”.

Institutul de Robotică din America (Robot Institute of America, RIA) precizează că:

"Robotul este un manipulator reprogramabil multifuncțional, destinat să deplaseze materiale, piese, scule sau aparate, prin mișcări programate variabil, în scopul îndeplinirii unor sarcini diferite.

Robotul este componenta evoluată de automatizare, care combină electronica de tip calculator cu sisteme avansate de acționare mecanică, pentru a realiza un echipament independent de mare flexibilitate.

Robotul este un echipament cu funcționare automată, adaptabil condițiilor unui mediu complex – în care el evoluează – prin reprogramare, reușind să prelungească, să amplifice și să înlocuiască una sau mai multe din funcțiile umane în acțiunile acestuia asupra mediului înconjurător."

După definiția Asociației Britanice de Robotică (British Robot Association), robotul este: ,,Un dispozitiv reprogramabil, construit pentru manipulare prin mișcări variabile programate, pentru a îndeplini sarcini specifice.”

1.3. Familia robot

În continuare se va prezenta elementele familiei robot, pornind de la diagrama din figura 1.3

Diagramă Familia robot

În figura 1.3.1, este prezentată, structurat, familia robot, în funcție de funcționalitatea fiecărui tip de dispozitv.

Astfel, dacă un dispozitiv nu funcționează în mod automat, acesta poate fi purtat de om.

De obicei, în acestă categorie se află roboți de tip exoschelete, manipulatoare etc. Dacă dispozitivul nu este purtat de om, acesta poate fi cu sau fără reacție.

Dispozitivele cu reacție sunt reprezentate de instalații de teleoperare și manipulatoare medicale.

1.3.1. Instalații de teleoperare

Instalațiile de teleoperare sunt formate dintr-un robot care va îndeplini sarcinile date și un sistem de comunicare prin care se controlează robotul de la distanță și se primește feedback. Sistemul de comunicare, în general, este format din elementele de intrare pentru comenzi (joystick, mouse, tastatură) și elemente de ieșire a informațiilor (ochelari VR, ecrane, sisteme audio, sisteme haptice etc.). Teleprezența utilizatorului va fi dată prin sistemul vizual și senzoristic al robotului, prin care se poate vedea spațiul de lucru al acestuia. Senzorii de pe robot ajută la imitarea simțurilor umane (auditiv, tactil, vizual) pentru ca utilizatorul să poate cunoaște mediul de lucru, să îl observe, cât și să reacționeze în funcție de eventualele evenimente neprevăzute. Un astfel de exemplu de instalație este dispozitivul de fixare virtual.

Primul dispozitiv de fixare virtual a fost introdus de Rosenberg în 1992. Acesta era o suprapunere de informații virtuale senzoriale dintr-un spațiu de lucru, cu scopul de a îmbunătăți direct performanța omului și a manipula sarcini la distanță. Informațiile senzoriale puteau fi reprezentate ca structuri realistice fizice, înregistrate în spațiul de lucru așa cum erau percepute de către operator. De asemena, informațiile senzoriale puteau fi elemente abstracte care aveau proprietăți imposibile pentru structurile reale fizice.

Louis Rosenberg și sistemul de telecomunicare

Aplicațiile instalațiilor de teleoperare sunt vaste și se întind de la controlarea roboților la distanță pentru manipularea de deșeuri periculoase (radioactive) până la explorarea de spații necunoscute sau inacesibile unei persoane.

1.3.2. Manipulatoare medicale

Un manipulator master/slave medical este excelent în operabilitate și capabil de a reduce răspunderea de pe medicul care face operația. Manipulatroul medical include o unitate master dotată cu o parte de control, o unitate slave dotată cu un dispozitiv de lucru, un mecanism de sincronizare a unității slave cu unitatea master, un mecanism de măsurare a diferenței de orientare dintre unitatea master și unitatea slave și un mecanism de ajustarea a orientării unității slave față de orientarea unității master, astfel încât diferența dintre cele două orientări, să tindă spre 0 într-un mod de operare tranzitoriu, în care modul de operare se schimbă de la un mod de operare fără restricții, la un mode de oprare de tip master/slave. –Patent US6853879B2

Primul manipulator medical a fost dezvoltat în 1984 de către inginerul biomedical James McEwen și Geof Auchinleck în cadrul spitalului UBC Vancouver, robotul ARTHROBOT. Acest manipulator era capabil să potiționeze piciorul pacientului după comenzi vocale.

Arthrobot

În 1985 se folosește Unimation Puma 200, pentru orientarea unui ac, în biopsia unui creier, procedură supravegheată cu ajutorului unui computer tomograf

Unimaton Puma 200

Aplicațiile manipulatoarelor medicale sunt vaste, în ziua de azi acestea fiind folosite de la operații ortopedice până la operații neurochirurgicale. Avantajele acestor dispozitive sunt privatizarea medicului operator de oboseala obținută de pe parcursul operației, acuratețea de poziționare și mișcare, astfel încât reduce spre 0 riscul unor incizii invazive care pot duce la complicații chirurgicale.

1.3.3. Exoschelet amplificator

Dacă un dispozitiv este purtat de om dar nu este atașat membrelor, ci este folosit ca un element locomotor, acesta este un exoschelet amplificator.

Exoscheltul amplificator își are originile în 1890, când inginerul rus Nicholas Zagn a dezvoltat primul aparat de asistare a mișcării. Acesta folosea energie înmagazinată în perne de aer care asistau la mișcare, deși dispozitivul era pasiv și necesita forța umană.

Primul exoschelet activ a fost dezvoltat în 1960 de către General Electric și Armata Americană. Dispozitivul se numea Hardiman și era propulsat hidraulic și electric, amplificând factorul de putere a utilizatorului cu 25 de ori mai mare.

Hardiman

Aplicabillitatea exoscheletelor amplificatoare în domeniul medical a devenit realizabilă mai târziu, în 1996 când a luat naștere compania Hocoma cu primul robot pentru reabilitare și recuperare numit Lokomat.

Lokomat

1.3.4. Robot

Dispozitivele care funcționează automat cu un sistem mecanic cu un număr mare de grade de mobilitate, reprogramabil care nu se deplasează sunt reprezentate de roboți, în general de roboții industriali.

Primul robot industrial conform standardelor ISO a fost conceput de către Griffith P. Taylor din piese Mecanum, numit robotul Gargantua. Acesta avea aspectul unei macarale și era acționat de un singur motor electric.

Gargantua

În 1954 a fost produs primul robot industrial Unimate, care era controlat prin tuburi cu vacum, echivalentul a tranzistorilor în tehnica evoluată. Întrucât sistemele ,,off the shelf” nu puteau fi folosite în construcția robotului, sub îndrumarea lui George Devol, s-au dezvoltat și produs fiecare componentă necesară. Primul robot Unimate a fost vândut către compania General Motors, care au folosit dispozitivul pentru sudura în puncte a caroseriei și pentru a manipula piesele din matriță după procesul de trunare.

Unimate

Aplicațiile acestor roboți sunt vaste în domeniul industrial, de la paletizarea automată, până la sudare, manipulare asamblare etc.

1.3.5. Roboți mobili

Dispozitivele automate cu sistem mecanic cu un număr mare de grade de mobilitate, reprogramabil, ce se deplasează, este un robot mobil. Aceștia se clasifică după modul de deplasare.

1.3.5.a. Vehicul ghidat automat (AGV-Automated Guided Vehicle)

Roboții mobili se pot deplasa cu ajutorul roților. Această categorie de roboți se întâlnește tot mai des în industrie. Motivul utilizării platformelor AGV este reducerea timpilor pierduți și a deplasărilor care nu aduc valoare adăugată produsului, elemente de Waste în Lean Manufacturing. Astfel, prin utilizarea acestor roboți mobili, operatorul se poate axa pe alte instrucțiuni mai importante.

În 1950 a fost implementat primul robot mobil ghidat după un cablu. De aici, metodele de ghidare au evoluat în tandem cu evoluția și dezvoltarea calculatoarelor, a sistemelor de poziționare, sistemelor senzoriale etc. Astfel ghidarea se poate face prin:

Cablu;

Marcaje pe podea;

Ghidare laser;

Sisteme giroscopice;

Sisteme radar de detectie a obstacolelor.

Domeniile de aplicabilitate ale acestor roboți sunt vaste și pot fi aplicabili aproape oriunde.

Robotul Mir 1000 este un robot de tip AGV care este folosit pentru manipularea paleților goi, sau încărcați, în zona de depozit și producție.

Mir Robot 1000

În domeniul medical, aplicabilitatea acestor platforme este dată de posibilitatea de a transporta materiale dintr-un punct în altul al unității medicale, fapt ce elimină deplasările personalului pe distanțe foarte mari.

Kuka robotics au dezvoltat o platformă mobilă, Kuka omniMove. Acest robot mobil este dotat cu roți mecanum și este folosit cu succes în industria aviatică, unde tranportă fuselajele avioanelor de la un pas de proces la altul. De asemenea Kuka a dezvoltat și platforme precum KMR Quantec. Acestor platforme li se pot atașa brațe robotice, care în combinație cu platforma mobilă, pot inspecta suprafețe foarte mari în inspecția de calitate.

Un robot KR Quantec montat pe o platformă KMR Quantec

1.3.5.b. Robot pășitor

Roboții care se deplasează cu ajutorul picioarelor sunt roboți pășitori. Aceștia pot avea de la 1 la mai multe picioare. Pot fi folosiți ca și înlocuitor al omului în diverse acțiuni și sarcini, precum deplasarea prin medii periculoase (clădiri în stare avariată) sau prin medii inaccesibile omului (medii strâmte, peșteri, canalizare) pentru misiuni de recunoaștere, recuperare etc. În ultima perioadă, cei de la Boston Dynamics, au dezvoltat un robot biped asemeni omului, care este autonom și se poate ovserva, din experimentele făcute, tendința de a fi folosiți în domeniul de apărare și armată.

Atlas

În 1980, Universitatea Carnegie Mellon a dezvoltat primul robot pășitor cu un picior pentru a studia balansul.

Odată cu avansarea tehnicii de calcul și a senzoristicii, în prezent sistemele de control ale roboților pășitori sunt avansate astfel încât aceștia au capabilitatea de a-și menține echilibrul pe suprafețe accidentate, alunecoase etc. Un astfel de robot este Big Dog, un robot dinamic creat pentru aplicații militare. Acest robot era dotat cu un motor, având cilindru în 2 timpi. Aria de mișcare al acestui dispozitiv era largă, încât se poate ridica de jos, se poate așeza, iar deplasarea se face prin mișcarea a câte unui picior pe rând, cu ridicarea picioarelor de pe diagonală sau prin alergare. Proiectul a fost oprit datorită zgomotului, fiind înlocuit de robotul cu acționare electrică Spot, acesta având o masă de transport mult mai mică (18kg, față de 180kg, cât avea Big Dog).

Big Dog

Proiectul Spot a fost și el oprit, iar în locul lui a fost lansat Spot Mini, în anul 2019. Acesta poate fi dotat cu un braț folosit pentru manipularea diverselor obiecte în funcție de domeniul în care este folosit.

Spot mini

1.3.5.c. Robot târâtor

Roboții târâtor, sunt în general roboți care folosesc diferite metode de deplasare imitate din mediul natural. Astfel că, s-au dezvoltat roboți care se deplasează precum șerpii. Aplicabilitatea acestora este determinată de mediile în care se deplasează.

În medicină, roboții cu deplasarea asemeni șarpelui, sunt folosiți pentru a reduce riscul de invaziune la opearțiile pe inimă. Institutul de robotică din cadrul universității Carnegie Mellon a dezvoltat un asemenea sistem, cu un număr ridicat de articulații (HARP-Highly Articulated Robotic Probe). Astfel de sistem ajută la reducerea mărimii inciziilor necesare pentru operație, dar dezvotatorii speră ca în viitor, se va putea folosi și pentru alte aplicații medicale precum transplantul de celule prin injecție intramiocardică.

Robotul HARP

Un program în derulare îl are Israelul, dorind să folosească un robot tip șarpe în acțiuni militare. Robotul are o lungime de 2 metri și este dotat cu o cameră și cu un microfon, transmițând date live către operator. Flexibilitatea dată de posibilitatea de articulare a fiecărui segement individual, ajută la deplasarea prin spații cu obstacole, înguste, imposibil de accesat pentru alte dispozitive sau oameni.

1.4. Roboți mobili, Tipologii

Clasificarea roboților mobili se face pe mai multe ramuri, în funcție de mediul în care se deplasează, în funcție de modalitatea de deplasare.

Roboți care se deplasează în mediul aerian

Aceștia sunt roboții care zboară și pot fi roboți cu elice, cu aripi sau cu motor cu propulsie.

Roboții cu elice pot fi:

Tricopter ( FeiYu Y6 Scorpion Tricopter ARF);

Quadcopter(mavic air 2);

Hexacopter(DBPOWER X600C);

Octocopter(DJI Spreadwings S1000).

Roboți cu elice (stânga sus-Mavic Air 2; dreapta sus-FeiZu Y6 Scorpion

Tricopter ARF; stânga jos-DBPOWER X600C; dreapta jos-DJI Spreadwings S1000)

Dezavantajul acestora este autonomia lor, astfel încât sistemul încearcă să învingă forța de gravitație pentru a se menține în aer.

Robții cu aripi pot fi:

Cu aripi fixe (Albatross UAV);

Cu aripi mobile;

Robot cu aripi fixeAlbatros UAV

Avantajul celor cu aripi fixe este autonomia ridicată, întrucât acesta nu se menține în poziție fixă în aer (hover). Roboții cu aripi fixe de obicei folosesc motoare cu propulsie pentru deplasarea lor în aer.

O altă categorie de roboți mobili aparte este cea a roboților cu un singur rotor. Aceștia seamănă cu un elicopter, ca și mod de funcționare. (ProDrone Delix)

Robot cu aripi mobile ProDrone Delix

Roboți tereștri

Roboții tereștrii sunt cea mai largă categorie de roboți, aplicabilitatea lor fiind constrânsă de deplasarea acestora într-un mediu cu contact cu calea de rulare. Astfel avem:

Roboți pășitori, care pot fi:

Roboți bipezi (Alpha one);

Quadruped (Spot Boston Dynamics);

Hexapod (Z6 Hexapod).

Roboți terestri (de la stânga la dreapta): Alpha ONE, Spot, Z6

Roboți târâtori

Robot târâtor

Roboți cu roți, care pot fi:

Roboți cu 2 roți conducătoare (2WD);

Roboți cu 4 roți conducătoare (4WD);

Roboți cu șenile.

Roboți cu roți (sus stânga dreapta-robtot cu 2 respectiv 4 roți, jos-robot cu șenile)

Roboți săritori

Salto

Roboți înotători

Roboții înotători folosesc mai multe variante de deplasare în mediul acvatic, acestea fiind inspirate din mediul înconjurător. Astfel avem deplasarea șerpuită care ajută robotul la deplasare, deplasarea fiind făcută cu ajutorul înotătoarelor.

Roboți înotători

Roboții se mai pot împărți după modul de control. Astfel avem:

Roboți autonomi

Aceștia au ca și trăsătură principală capacitatea decizională fără a fi influențată de către operator.

Roboții semiautonomi

Roboții semiautonomi sunt definiți ca roboți care îndeplinesc anumite sarcini în funcție de decizia pe care operatorul acestuia o ia.

1.5. Aplicații ale roboților mobili

Aplicațiile roboților mobili se extind în multiple domenii precum securitate, servicii livrări, topografie, sport, navigație etc. Datorită diversității posibilităților de locomoție, aplicabilitatea într-un domeniu poate fi îndeplinită de mai multe tipuri de roboți mobili.

1.5.1. Domeniul de securitate

Securitatea națională și securitatea în general este un subiect sensibil, când vine vorba despre atacuri cu bombe, supravegherea unor teritorii/clădiri/persoane de la distanță. Dacă în urmă cu zeci de ani, supravegherea sau dezamorsările bombelor se făceau de către o persoană, în ziua de azi există roboți special dedicați pentru fiecare activitate. Pentru supravegherea teritoriilor, armata folosește roboți mobili zburători cu aripi fixe precum Gray Eagle Drone, Reaper, General Atomics MQ-1 Predator. Unele misiuni includ recunoașterea poziționării diverselor mașini de război ale inamicului sau chiar eliminarea acestuia.

MQ-9 Reaper

MQ-9 Reaper este un robot mobil de tip UAV (Unmanned aerial vehicle- Vehicul aerian fără pilot) produs de compania General Atomics Aeronautical Systems (GA-ASI), prima dată fiind dezvoltat pentru Forțele Aeriene ale Statelor Unite ale Americii (USAF). MQ-9, uneori numit și Predator B, fiind urmașul dornei MQ-1 Predator, este primul aparat de zbor fără pilot, folosit în programul neoficial american hunter killer, dezvoltat pentru rezsitență îndelungată și supraveghere de la altitudini mari. Controlul acestui dispozitiv se face de la sol de către o echipă dedicată. Dotată cu un turbopropulor TPE 331, dezvoltat de compania Honeywell, MQ-9 are o putere de 970 cai putere, net superioară predecesorului său MQ-1.

Turbopropulsorul Honeywell TPE331

Avantajele TPE331-ului sunt elemente cheie care au dus la folosirea lui, elemente precum, eficiența combustibilului, decolări mai scurte, distanța de croazieră mai mare, viteza de croazieră mai mare, costuri mici de întreținere și operare. Un alt factor rezultat din puterea mare dezvoltată, este capacitatea de transport a artileriei mai mare de 15 ori, și viteza mai mare de 3 ori față de MQ-1.

MQ-9 este folosit în primul rând, de către Forțele Aeriene ale Statelor Unite ale Americii, ulterior fiind exploatate de alte organizații precum NASA, U.S. Homeland Security, cât și de către alte țări precum Australia, Republica Dominicană, Franța, Germania, Italia, Olanda, Spania, Marea Britanie, India, Belgia.

Caracteristicle MQ-9 sunt:

Caracteristici generale

Echipaj: 0 la bord, 2 în stația la sol;

Lungime: 11 m;

Anvergura aripilor: 20 m;

Înălțime: 3,81 m;

Greutate netă: 2,223 kg;

Greutate maximă la decolare: 4.760 kg;

Capacitate combustibil: 1.800 kg;

Sarcină utilă: 1.700 kg;

Intern: 360 kg;

Extern: 1.400 kg;

Propulsie: 1 × turbopropulsor Honeywell TPE331-10, 900 CP (671 kW) cu control electronic digital al motorului.

Performanță

Viteza maximă: 482 km/h;

Viteza de croazieră: 313 km/h;

Distanța zbor: 1.900 km;

Rezistență: 14 ore de zbor încărcată la capacitatea maximă;

Plafonul de serviciu: 15.000 m;

Altitudine operațională: 7,5 km.

Armament

Până la 680 kg pe cele două stații de arme interioare;

Până la 340 kg (750 lb) pe cele două stații de mijloc;

Până la (68 kg) pe stațiile de bord;

Consola centrală nu este utilizată pentru armament;

Pot fi transportate până la 4 rachete AGM-114 Hellfire aer – sol, sau patru rachete Hellfire și două bombe ghidate cu laser GBU-12 Paveway II de (230 kg).

Avionică

Sistem de targetare multi-spectral AN/DAS-1 MTS-B;

Radar AN/APY-8 Lynx II;

Radar Raytheon SeaVue Marine.

Conform datelor publice de pe siteul www.af.mil (site-ul Forțelor Aeriene ale Statelor Unite ale Americii), prețul de achiziție al unui dispozitiv este de 64.2 milioane dolari americani. (cotație din anul fiscal 2006)

Drona MQ-9 Reaper B

Între anii 2004-2018, guvernul Statelor Unite au atacat sute de ținte din Nordul Pakistanului folosind MQ-9 sau MQ-1 operate de către Forțele Aeriene ale Statelor Unite. Deși autoritățile pakistaneze susțin că decesele civile sunt minimale, o scurgere de informație susține că majoritatea deceselor nu erau și ținta atacurilor, cu o rată de aproximativ 13% fiind țintele dorite, 81% fiind alți militari și 6% fiind civili.

1.5.2. Domeniul industial

Evoluția domeniului industrial, al tehnicilor de manipulare, expansiunea ca amprentă la sol al fabricilor și necesitatea de transport de materiale și unelte, a dus la adaptarea pentru industrie a roboților mobili. Dacă la începutul lor, aceștia erau ghidați cu cablu, șine având un traseu prestabilit, astăzi putem vorbi despre tehnologii de calcul și planificare a rutei, de adaptabilitate la obstacole, recalcularea rutei în funcție de impedimentele de pe traseu și multe altele. Cel mai des, roboții mobili din domeniul industrial sunt platforme mobile dotate cu două motoare care acționează individual câte o roată. Pentru echilibru se folosesc și roți castor în cele 4 colțuri ale robotului. Deplasarea roboților se va face pe principiul tancului cu șenile unde, pentru rotire în jurul axei perpendiculare pe suprafața de deplasare, motoarele vor fi acționate în sens opsus unul față de celălalt. Unele platforme sunt dotate cu roți mecanum pentru o manevrabilitate și flexibilitate mult mai ridicată față de roboții cu 2 roți cu un grad de mobilitate.

Platforma Youbot dotată cu roți mecanum

MIR 200

MIR 200 este un produs al companiei MIR (Mobile Industrial Robots), un robot mobil proiectat pentru optimizarea logisticii în industria globală.

În 2011 se pune fundația companie, când Niels Ju Jacobsen, fondator MIR, crează primul exemplu a ceea ce urma să fie un robot MIR, din seturi de LEGO. Compania a luat ființă oficial în 2013, iar în 2015 sunt lansați primii roboți MIR care prind avânt pe piața industrială.

În 2016 se lansează dispozitivul MIRHook, un dispozitiv care va ajuta la tractarea unui cărucior după robot pentru a crește capacitatea de transport.

Robotul Mir 200 cu un căriucior atașat

În 2017 se lansează MIR 200, care are o capacitate de transport mult mai mare decât predecesorul său MIR 100. Urmează MIR 500 și MIR 1000, care vor fi lansate în 2017, respectiv 2018. Aceștia sunt dezvoltați pentru logistica paleților în cadrul companiilor, depozitelor etc.

Automatizarea proceselor de transport a cărucioarelor cu MIR 200 duce la posibilitatea concetrării operatorilor pe alte activități, care aduc valoare companiei. Robotul poate transporta până la 200 kg și se pot atașa diferite module de transport precum benzi automate, containere cutii, conveioare, lifturi etc. Flexibilitatea robotului permite montarea și demontarea ușoară a modulelor, astfel robotul poate fi folosit în alte activități.

Modul cu conveior pentru Robot MIR

Programarea robotului este simplă existând o interfață web care poate fi accesată de pe orice dispozitiv cu conectivitate la internet. Siguranța manevrabilității este susținută de sistemele radar și camerele 3D ale robotului care detectează obstacole statice și mobile.

Radrul și camerele 3D

O caracteristică cu impact este posbilitatea de a programa robotul ca atunci când ajunge la un anumit procent din baterie, să se deplaseze singur spre stația de încărcare și să nu primească altă misiune până nu atinge un procent prestabilit din capacitatea totală a bateriei.

Caracteristicle robotului MIR 200 sunt:

Utilizare

Pentru transporturi mici în logistica industrială și medicală.

Dimensiuni

Lungime: 890 mm;

Lățime: 580 mm;

Înălțime: 352 mm;

Distanța de la sol: 50 mm;

Masa (fără încărcătură): 70 kg;

Suprafața pentru încărcare: 600×800 mm.

Capacitate încărcare

Capacitate încărcare robot: 200 kg la o înclinație de max 5% a suprafeței de rulare;

Capacitate de tragere cu cârlig: 500 kg.

Performanțe

Timp de rulare: 10 ore sau 15 km;

Viteză maximă: în față: 4 km/h; în spate: 1km/h;

Raza de întoarcere: 520 mm;

Acuratețe la andocare: +/- 50mm la poziție, +/- 10mm la marker de andocare;

Lățimea minimă a culoarului de deplasare: 0.95 m.

Putere

Baterie: LI-NMC, 24V, 40Ah;

Timp încărcare: prin cablu 4.5 ore, prin stația de încărcare 3 ore;

Timp standby: 13 ore.

Mediu de lucru

Temperratura ambientală: +5șC – 40 șC;

Clasa IP: IP20;

Certificări: certificat pentru ESD, camere curate.

Comunicare

WIFI: Wireless AC/G/N/B;

Intrări/Ieșiri: USB și Ethernet.

Senzori

Sistem de siguranță SICK: 2 x Sick S300 cu vedere 360 grade;

Camere 3D: 2 x Camera Intel RealSense Detection cu detectare între 50-1800 mm.

1.5.3. Domeniul educațional

Educația este un proces de bază și elementar pentru dezvoltarea tinerilor ingineri. Pentru acest domeniu, companiile din lume precum Arduino, SparkFun Electronics, Adafruit Industries au creat elemente ce facilitează mult mai ușor înțelegerea fenomenelor și a elementelor de bază care stau ca fundație pentru dezvoltarea electronicii și a mecatronicii.

La incipitul erei electronicii, chiar dacă elementele precum tranzisotri, rezistențe, memorii sau miniaturizat, tot era necesar construirea unui PCB care era populat cu un microcontroler și elementele de control dorite. Azi, companiile au creat module de tip breakout, dedicate pentru produsele lor care respectă unele standarde pentru a ajuta mai mult comunitatea tinerilor și instituțiile de învățământ în punerea în practică a cunoștințelor din domeniul electronicii, programării etc. Astfel, se pot găsi pe piață cu mare ușurință, senzori, leduri, module LCD, drivere pentru motoare, care se pot conecta foarte ușor cu o placă de dezvoltare de tip Arduino prin intermediul unor fire dotate cu mufe (fire dupont).

Kit Arduino

Odată cu evoluția electronicii modulare care poate fi folosită în educație, au apărut diverse platforme educaționale sub formă de roboți mobili care ajutau la înțelegerea principiilor de programare, electronică sau chiar înțelegerea fenomenelor fizice care au loc asupra unei mașinuțe în funcție de suprafața de rulare pe care se deplasează, înclinație etc.

Odată cu dezvoltarea centrelor educaționale, au apărut competițiile de robotică (Robotics Championship- Oradea, România; BattleLab Robotica-Cluj, România etc.), competiții care aveau ca sarcină construirea unui robot bazat pe un regulament general standard la nivel internațional. Pe lângă aceste competiții, mici sau mari companii din domeniul electronicii hobby, au dezvoltat produse de tip roboți mobili care se încadrează în regulamentele competițiilor. Astfel, au apărut pe piață roboți de lupte de tip Sumo Mini și Sumo Mega, roboți urmăritori de linie, roboți humanoizi.

Robotul Sumo Omega

Robotul Omega este un produs nou, lansat de Jsumo. Jsumo este o comunitate creata de Firat Dede, un împătimitor al luptelor cu roboți. Compania are pe site diverse componente necesare pentru construirea aproape a orcărui tip de robot dintr-o competiție, roboți urmăritori de linie, roboți de sumo. De asemenea pune la dispoziție o gamă largă de senzori, baterii, elemente mecanice de prindere, motoare etc.

Omega a fost dezvoltat pentru a permite o pătrundere mai ușoară a pasionaților în construcția și programarea roboților Sumo Mega. Elementele principale ale unui robot nu au fost excluse din design, elemente precum motoarele cu reducție personalizată, senzorii pentru adversar, placa de bază pregătită pentru montarea magneților etc.

Robotul Omega

Jsumo pune la dispoziție pe lângă partea mecanică și electronică (ce vine asamblată sau neasamblată, în funcție de preferințe), codul de programare scris în Arduino. Pe lângă inițializarea senzorilor, codul dispune de 7 tactici ce se pot folosi în meciuri, tactici selectabile printr-un microîntrerupător. Cele 7 tactici sunt:

Zigzag stânga;

Zigzag dreapta;

Semicerc stânga;

Semicerc dreapta;

Curba 180 grade;

Retragere;

Atac frontal.

Nu se va pune accentul pe descrirea lor, întrucât în lucrarea de față se vor prezenta tacticile de luptă ale robotului care fac obiectul acestei lucrări.

Caracteristicile robotului Omega sunt:

Caracteristici tehnice

Lungime: 195 mm;

Lățime: 200 mm;

Înălțime: 105 mm;

Masă totală: 2750 g;

Viteză maximă: 1400 mm/s;

Forța maximă de împingere: 45 kgF;

Baterie: maxim 2 baterii LI-PO 2S fiecare.

Conținut pachet

1 x ArduPro Arduino Nano bazat pe arduino Nano;

2 x Drivere de motoare ZeroLAG 12V-32V 40A;

2 x Plăci cu leduri RGB;

5 x Senzori digitali infraroșii JS200XF;

3 x Senzori analogici de linie ML1;

2 x Reducții cu axele și elementele de prindere necesare;

2 x Roți JS4530 45mm diametro;

2 x 12V 75 Watt DC Gear Motor;

2 x Baterii 2S Li-Po;

1 x Conector serie pentru baterii;

1 x Kit complet a carcasei robotului (conține 11 piese);

5 x Lame Japoneze;

10 x Magneți neodim;

1 x Modul start-stop;

1 x Telecomandă Sony;

1 x Elemente de asamblare (șuruburi, piulițe).

Cap. 2 Sisteme de achiziții de date pentru programarea algoritmilor roboților mobili

Sistemele de achizitie de date (SAD) sunt sisteme complexe de supraveghere a unor procese în care intervin, de regulă, mai multe mărimi fizice. Ele realizează prelevarea, prin intermediul unor traductoare adecvate, de semnale analogice sau numerice (în funcțe de natura traductorului), în scopul memorării, transmiterii sau prelucrării informației achizitionate.

Preluare și prelucrare semnal

Prelucrarea informației poate consta în operatii simple (comparări), pâna la prelucrări matematice complicate (integrări, diferențieri, medieri, calcul de transformate Fourier, etc.). Scopul prelucrării diferă de la caz la caz: comanda unui proces (industrial, militar, de cercetare), sau numai informare asupra evolutiei procesului prin vizualizarea datelor.

Operația cea mai importantă este conversia analog – digitală (A/D), realizată cu unul sau mai multe circuite. În functie de tipul aplicației mai pot fi necesare și alte circuite analogice de prelucrare.

Conversie A/D

Configurația și tipurile de circuite utilizate într-un SAD depind de o serie de factori:

rezoluția și precizia cu care se cere realizarea conversiei A/D;

numărul de canale analogice investigate;

frecvența de eșantionare pe fiecare canal;

capacitatea sistemului de prelucrare în timp real a datelor;

necesitatea condiționării (adaptării) semnalului analogic de intrare.

Datele achiziționate pot fi:

analogice (tensiuni, curenți – continue sau alternative, lungime de undă a luminii) și reprezintă, de regulă, ieșirile unor traductoare ce supraveghează mărimile care intervin în procesul condus;

digitale, provenind de la traductoare cu ieșire numerică sau de la alte echipamente implicate în desfășurarea procesului.

SAD va fi prevăzut deci cu un număr corespunzător de intrări adecvate acestor date:

intrări analogice;

intrări digitale.

Un SAD poate prelucra datele primite pentru a formula o ieșire/semnal de control în funcție de semnalele de intrare. Astfel, se folosesc sisteme de reglare. Sistemele de reglare sunt sisteme care pe baza a unui sau mai multe semnale de intrare dau o ieșire care este în strânsă legătură de intrare prin diferite legi. Unul din cele mai folosite sisteme de reglare este regulatorul PID.

Regulatorul de tip PID este unul din cele mai utilizate regulatoare în industrie și nu numai, pentru un control continuu modulat. Acesta calculează valoarea erorii e(t), ca diferența dintre o valoare de referință și valoarea măsurată a procesului, ulterior aplicând o corecție bazată pe proporționalitate, integrativitate și derivativitate. (PID).

Trăsătura distinctivă a controlerului PID este capacitatea de a folosi cei trei termeni de control proporțional, integrativ și derivat, și de a influența semnalul de ieșire al controlerului având un control precis și optim. Diagrama bloc (Fig.2.3.) ne arată principiul de generare și aplicare al acestor termeni. Acesta arată un controler PID care calculează continuu o eroare e(t) ca diferența între o valoare de referință dorită SP= r (t) și o valoare măsurată PV= y (t), și aplică o corecție bazată pe termenii PID. Controlerul încearcă să minimizeze eroarea în timp prin ajustarea unei variabile de control u (t), cum ar fi deschiderea unei supape de control, la o nouă valoare determinată de o sumă ponderată a termenilor de control .

Controlerul PID

În acest model:

Termenul P este proporțional cu valoarea curentă a erorii SP-PV e (t). De exemplu, dacă eroarea este mare și pozitivă, rezultatul controlerului va fi proporțional mare și pozitiv, ținând cont de factorul de amplificare "K". Utilizarea doar a controlerului proporțional va duce la o eroare între valoarea de referință și valoarea reală a procesului, deoarece necesită o eroare pentru a genera răspunsul proporțional. Dacă nu există nici o eroare, nu există un răspuns corectabil;

Termenul I contabilizează valorile anterioare ale erorii SP – PV și le integrează în timp pentru a produce termenul I. De exemplu, dacă există o eroare reziduală SP-PV după aplicarea controlerului proporțional, termenul integrat încearcă să elimine eroarea reziduală prin adăugarea unui efect de control datorită valorii cumulative a erorii. Când eroarea este eliminată, termenul integral va înceta să crească. Acest lucru va duce la diminuarea efectului proporțional cu scăderea erorii, dar aceasta este compensată de efectul integral în creștere;

Termenul D este cea mai bună estimare a tendinței viitoare a erorii SP-PV, pe baza ratei actuale de schimbare. Se numește uneori "control anticipator", deoarece încearcă efectiv să reducă efectul erorii SP-PV prin exercitarea unei influențe de control generate de rata de schimbare a erorii. Cu cât schimbarea este mai rapidă, cu atât este mai mare efectul de control sau de atenuare;

Funcția de control poate fi exprimată prin următoarea formulă matematică:

unde:

și sunt numere diferite de 0;

Pentru definirea u(t) ca valoarea de ieșire a controlerului, forma finală a algoritmului PID este:

unde:

Kp – factor amplificator de proporționalitate;

Ki – factor amplificator integrativ;

Kd – factor amplificator derivativ;

e(t) = SP-PV(t) este eroarea (SP- valoare de referință, PV(t)- valoarea măsurată de proces);

t – timpul prezent;

τ – variabilă a integratorului (ia valori de timp de la 0 la t).

Echivalent, funcția de transfer Laplace a controlerului PID este:

unde s este frecvența;

Termen proporțional

Termenul Proporțional calculează o valoare de ieșire proporțională cu eroarea curentă. Răspunsul proporțional poate fi ajustat prin înmulțirea erorii cu o constantă Kp.

Kp este dat de relația:

Un factor amplificator de proporționalitate mare va duce la o schimbare mare în valoarea erorii date la timpul t. Dacă valoarea este prea mare, sistemul devine instabil. Contrastant, dacă valoarea factorului amplificator de proporționalitate este mică, răspunsul va fi unul mic pentru o eroare mare și sitemul va fi mai puțin promt în răspuns sau mai puțin sensibil.

Termenul integrativ

Contribuția termenului integrativ este proporțională atât în magnitudinea erorii, cât și în durata de timp a acesteia. Integrativa într-un sistem PID, reprezintă suma erorilor instantanee acumulate în timp și calculează valoarea de referință care trebuie corectată anterior. Eroarea acumulată este amplificată cu Ki și adunată ieșirii controlerului.

Ki este dat de relația:

Termenul derivativ

Derivativa erorii procesului este calculată prin determinarea curbei erorii în timp și multiplicată cu factorul amplificator derivativ.

Kd. este dat de relația:

Derivativa prezice comportamentul sistemului și îmbunătățește timpul de răspuns și stabilitatea sistemului. Un derivativ ideal nu este cauzal, deci implementarea controlerului PID include adăugarea unui filtru de joasă frecvență pentru termenul derivativ pentru a limita zgomotul și amplitudinile de înaltă frecvență.

SAD al unui robot mobil, în principiu, este format din totalitatea senzorilor interni și externi, PCB-ul care conține componentele responsabile pentru achiziția de semnal și codul sursă care este responsabil pentru prelucrarea datelor.

2.1. Sistem dge achiziȚii de date pentru robot mobil de tip sumo mega

În capitolul de față ne propunem să analizăm teoretic un SAD folosit de către roboții de Sumo Mega pentru detectarea oponentului și a marginii ringului. Sistemul este compus din:

Placă de achiziție semnal;

Senzori fotoelectrici reflexivi Omron E3Z D82;

Senzori reflexivi QTR-3A.

Senzorii optici sunt dispozitive care convertesc lumina sau schimbarea cantității de lumină în semnal electric care poate fi interpretat de către un microcontroler. Senzorii optici sunt de diferite tipuri, cele mai comune fiind:

Fotoconductivi: își modifică rezistența internă în funcție de cantitatea de lumină incidentă de pe sensor;

Fotovoltaici: convertesc cantitatea de lumină de pe senzor în tensiune electrică;

Fotodiodele: convertesc cantitatea de lumină de pe senzor în curent electric;

Fototranzistorii: sunt tranzistori bipolari care au baza și coletorul expuse la lumină.

Principiul de funcționare al senzorilor optici se bazează pe emiterea și recepționarea luminii, obiectul pentru detectat, întrerupând sau reflectând raza de lumină emisă de dioda emițătoare.

Depinzând de tipul dispozitivului, se evaluează întreruperea sau reflexia luminii. Astfel, se pot detecta obiecte din diferite materiale precum: lemn, metal, plastic etc. Unele dispozitive speciale pot detecta chiar și obiecte transparent sau obiecte cu culori sau variații de contrast.

În funcție de principiul de funcționare avem 3 tipuri de senzori optici:

Tipuri de senzori optici după principiul de funcționare

Senzori de tip barieră

Sistemul este format din 2 componente separate, emițătorul și receptorul poziționate opus unul față de altul. Emițătorul emite un fasciul de lumină către receptor. Întreruperea fasciculului de lumină este înterpretat ca un întrerupător de către receptor, fiind irelevant locul în care a avut loc întreruperea. Ca și avantaje majore putem menționa distanțe mari de operare și independența față de structura, culoarea sau reflexivitatea suprafeței obiectului. Pentru a asigura o funcționare optimă a sistemului, se recomandă ca suprafața obiectului să fie suficient de mare astfel încât să întrerupă complet fasciculul de lumină.

Sistem de tip senzor barieră

Senzori retro-reflexivi

Atât emițătorul cât și receptorul se află în aceași carcasă. Fasciculul de lumină este reflectat în receptor cu ajutorul unui reflector montat opus senzorului. Întreruperea fasciculului de lumină duce la întreruperea reflexiei în receptor și astfel se obține același effect ca și în cazul senzorului de tip barieră. Ca și avantaje putem specifica posibilitatea operării pe distanțe mari cu puncte de schimb, fiind necesară repoziționarea reflectorului. Cularea sau structura suprafeței obiectului nu influențează fasciculul de lumină.

Sistem de tip senzor retro-reflexiv

Senzori reflexivi

Atât emițătorul, cât și receptorul se află în aceași carcasă. Fasciculul de lumină emis lovește obiectul și astfel devine difuz la unghiuri arbitrare. O parte din fascicul se întoarce la receptor și astfel obiectul este detectat. Ca și avantaje la acest sistem se poate specifica faptul că intensitatea luminii la receptor servește drept condiție de întrerupere. La testul de “foaie albă” 90% din fasciculul de lumină este reflectată în receptor.

Sistem de tip senzor reflexiv

2.2. Fenomen măsurat

În continuare vom analiza din punct de vedere teoretic fenomenele pe care vom dori să îl măsurăm. Roboții de Sumo Mega au în componența lor, atât senzori optici pentru detectarea adversarului, cât și senzori optici pentru detectarea marginii ringului. În continuare vom analiza fenomenele măsurate de către cele două tipuri de senzori.

A) Senzori oponenți, B) Senzori linie

Senzorii pentru detectarea oponentului.

Acești senzori sunt de tip industrial și ca principiu de funcționare sunt reflexivi. Pe robotul de față sunt folosiți 11 senzori. Aceștia sunt amplasați pe diferite nivele și la diferite unghiuri unul față de altul (fig.2.2.1.a.) pentru a acoperi o zonă cât mai mare din fața robotului.

Intervalul de funcționare

Conform Fig.2.2.2. se poate observa intervalul în care senzorul este funcțional. Fiind un senzor reflexiv, acesta va emite un fascicul de lumină și la întâlnirea unui obstacol, o parte din fascicul va fi reflectată înapoi spre receptor. În principal, roboții de mega folosesc materiale negre, mate, așadar din fig.2.2.2. reiese că intervalul de funcțioanre optim al senzorului în parametrii dați este 0.5m pe axa X și 0.15m pe axa Y.

Schema de principiu internă a senzorului Omron E3Z D82

În concluzie, emitorul senzorului va emite un fascicul de lumină, iar la întâlnirea adversarului, fasciculul se va descompune și o parte din acesta va fi reflectat către receptorul senzorului. Se poate observa în figura 2.2.4. o reprezentare a acestui fenomen.

Detectarea adversarului și descompunerea fasciculului de lumină emis

Senzorii pentru detectarea liniei

Acești senzori sunt formați din module de fototranzistori cu emițătorul și receptorul în aceași carcasă. Pe robot se folosesc două module diferite care conțin fototranzistori GP2S60 (Figura 2.2.1.B). Modulele din față folosesc câte 3 fototranzistori iar modulele din spate folosesc câte un fototranzistor. (Fig 2.2.5.)

Fototranzistor GP2S60

Principiul de funcționare constă în cantitatea de lumină care se reflectă în receptor. Ringurile de Mega sunt negre și pe margine au marcat o dungă albă lată de 5cm (ca și în figura 2.2.6.).

Doi roboți de Mega la competiția Robotics Championship 2018

Conform graficului din figura 2.2.7. se poate observa că albul are un coeficient de reflectare mult mai mare față de culoarea neagră. Astfel, cantitatea diferită de lumină de la receptor permite o variație a ieșirii senzorului, unde albul va reflecta o cantitate mai mare de lumină decât culoarea neagră

Nivelul de reflectivitate a culorilor

În concluzie, dioda va emite un fascicul de lumină, negrul va absorbi o parte din aceasta, iar albul va reflecta aproximativ 100% din cantitatea emisă. Variația aceasta de lumină va crea o variație de curent pe fototranzistor.

Principiul de funcționare intern al capsulei GP2S60

2.3. Componente folosite

Componentele folosite de către robot pentru SAD sunt:

1. Placă de achiziție de date cu microcontroler ARM Cortex M4-Teensy 3.5

Placa de achiziție de date Teensy 3.5 are în componență ca și microcontroler un cip MK64 care are următoarele specificații principale:

1 port CAN;

Pinii I/O digitali sunt toleranți 5V  62 pini I/O;

2 ieșiri analogice cu rezoluție 12 biți;

25 intrări analogice cu rezoluție 13 biți;

20 ieșiri PWM;

Port USB;

14 timere hardware;

Port card SD nativ;

Port audio I2S, 4 canale audio digitale I/O;

Generator numere aleatorii;

6 porturi seriale (3SPI & 3 I2C);

Frecvență procesare 120 MHz (170 MHz overclock).

Teensy 3.5

2. Senzor Omron E3Z D82

Robotul folosește 11 senzori plasați atât pe diferite nivele cât și la diferitre unghiuri în plan orizontal. Cele mai importante caracteristici ale senzorului sunt:

Rază acțiune: 0…1m;

Ieșire de tip PNP;

Tensiune alimentare: 12…24 V;

Curent maxim de lucru: 100 mA;

Timp de reacție: <1ms

Senzor Omron E3Z D82

3. Modul senzor QTR 3A și modulul QTR 1A

Modulul senzor folosește 3 fototranzistori respectiv un fototranzistor pentru detectarea liniei albe de pe marginea ringului. Ieșirile de la fiecare fototranzistor sunt analogice, în funcție de cantitatea de lumină reflectată pe receptor. Se folosesc comparatoare pentru a stabili un prag de trecere de la negru la alb, iar pentru modulul cu 3 fototranzistori, cu cele 3 semnale de la comparatoare se va efectua o operație buleană ȘI printr-un integrat cu 3 porți logice de tip ȘI.

Principalele caracteristici ale fototranzistoarelor componente ale modulelor sunt:

Detectare fără contact;

Pachet miniaturizat;

Temperatura de lucru: -40șC-+85 șC;

Tensiune Coletor-Emitor: 30V;

Tensiune Emitor Coletor: 5V.

A) Baretă QTR 3A, B) Baretă QTR 1A

4. Comparatoare, optocuploare și porți logice

Pentru un sistem cât mai eficient din punct de vedere al vitezei de procesare, pentru senzorii de linie se folosesc comparatoare pentru a transforma semnalul analogic în semnal digital. În partea din față a robotului se vor folosi barete cu 3 senzori pe fiecare parte, pentru a avea mai multe puncte de verificare pentru detectarea liniei albe. Pentru a evita conectarea a 6 intrări digitale în microcontroler și verificarea lor, se optează pentru porți logice de tip ȘI pentru a obține un singur semnal digital, astfel vom avea doar două semnale digitale de intrare din partea din față a robotului.

Senzorii pentru detectarea oponentului sunt industriali cu ieșire de 24V. Astfel se va folosi optocuploare pentru protejarea senzorilor de restul electronicii, iar la intrarea optocuplorului se folosește o rezistență pentru a reduce tensiunea de ieșire a senzorului să nu ardă intrarea de la optocuplor. Caracteristicile principale ale celor două compoenente sunt:

Comparator Texas Instruments TLV350

Tip comparator: rapid;

Tensiune de lucru: 2.2V…5V;

Montare SMD;

Număr comparatoare în integrat: 2.

Comparator TLV350

Optocuplor Panasonic APS2241S

Număr canale:1;

Turn-on time: 2ns;

Turn-off time: 2ns;

Tensiune lucru 3V…5V.

OptocuplorAPS2241S

Poartă logică NC7SZ08M5

Tensiune lucru: 1.65…5.25V;

Timp întârziere reacție: 0.8-4 ns;

Tip pachet: SMD;

Temperatură lucru: -40șC-+85 șC.

Poartă Logică NC7SZ08M5

2.4. Schema de funcționare a sistemului de achiziții de date

Figura 2.4.1. prezintă schema de principiu a sistemului de achiziție de date.

Schema de principiu a SAD

Semnalul de la senzorii de linie este trimis către comparatoare unde este comparat cu tensiunea de pe un divizor de tensiune conectat la 5V cu rezistențele egale, care ulterior este trimis mai departe câte 3 la porțile logice. Dacă toate 3 comparatoare au semnal 1 logic la ieșire, poarta devine activă și trimite mai departe către intrarea digitală a procesorului semnal 1 logic.

A) Schema electrică a conexiunii senzor linie-comparator, B) Poarta logică

Semnalul de la senzorii pentru oponent este 1 logic atunci când adversarul este detectat. Semnalul este trecut printr-o rezistență, astfel coborând la 5V și ulterior activează dioda internă a optocuplorului. Dioda activează la rândul ei fototranzistorul intern și astfel obținem un semnal 1 logic care este preluat de o intrare a microcontrolerului.

Schema electrică conexiune senzor-optocuplor-microcontroler.

În figura 2.3.4. se poate observa conexiunile hardware la placa de date. Optocuploarele sunt conectate la pinii 26 respectiv 27-32. Ieșirile de la porțile logice sunt conectate la pinii 25, respectiv 26, iar ieșirile celorlalte două comparatoare sunt conectate la pinii 39, respectiv 38. Pe schemă se pot observa și celelalte conexiuni necesare controlului: pinii de comunicare cu ecranul; componenta de alimentare cu filtre specifice; un buton pentru comutarea între modul programare și modul arenă, modulul pentru pornirea și oprirea robotului de la distanță, portul pentru microcomutatoare folosite pentru stabilirea tacticii de atac.

Schema conexiilor componentelor la Teensy 3.5`

2.5. PCB-ul pentru SAD

PCB-ul a fost proiectat în programul Eagle ca și schemă electrică și layout, ulterior fiind introdus în proiectul 3D pentru a poziționa placa, cât și prinderea acesteia. În figura 2.3.5., se poate observa imaginea de ansamblu atât pentru top, cât și pentru bottom-ul plăcii. Ca și caracteristici ale plăcii, dimensiunile ei sunt de 94.3×81 mm, înălțimea totală (de la cea mai înaltă componentă de pe bottom până la cea mai înaltă componentă de pe top) este de 22.8 mm. PCB-ul este din două straturi. Pe partea de top sunt 61 de componente, din care 43 sunt componente de tip SMD, iar 18 sunt componente de tip THT. Pe partea de bottom avem 19 componente, toate fiind componente SMD. Placa conține 160 de găuri, 95 sunt pentru componente THT, iar 65 sunt găuri vias, de trecere de pe un strat pe celălalt. În total, pe placă, sunt rutate 70 de semnale diferite. Placa are mai multe caracteristici însă acestea au fost considerate ca fiind cele mai importante.

Captura ecran cu vedere Top/Botton al PCB-uilui

În figura 2.5.2., se pot observa 4 vederi (vedere isometrică – colț sus stânga, vedere de sus – colț sus dreapta, vedere laterală – colț jos stânga, vedere din față – colț jos dreapta) ale ansamblului.

Vederi cu PCB-ul asamblat în CATIA V6

PCB-ul a fost proiectat într-un sistem modular. Astfel, componenta principală, placa de dezvoltare Teensy 3.5 este modulară, aceasta fiind inserată în soclu, nefiind cositorită direct. Alte componente modulare sunt convertoarele de tensiune, senzorii care sunt conectați prin intermediul conectorilor de tip PicoBlade Molex și modulul start stop, care primește semnalul de pornire/oprire a robotului. Celelalte componente (porți logice, conectori, led-uri etc) sunt cositorite direct pe placă. Conectorii pentru senzorii de oponent și a encoderelor sunt plasați pe partea de bottom a plăcii pentru a facilita conectarea. Restul conectorilor (pentru comanda driverului de motor, a senzorilor de dohyo) sunt plasate pe partea de top a plăcii.

Amplasarea conectorilor pe bottom

Cotele de gabarit a PCB-ului

Cap. 3. Programarea și strategiiLE de luptă pentru un robot de tip Sumo Mega

3.1. Condiții și limitări în luptele de tip sumo robotic

Luptele de tip Sumo au un punct incipient în Japonia în 1980, când prima competiție locală a fost organizată de Hiroshi Nozawa, CEO-ul companiei Fuji Software Inc.

Prima expoziție a competiției a avut loc în August 1989, iar prima competiție oficială a avut loc în 1990 cu 147 de roboți. De atunci, în fiecare an, competiția a crescut considerabil. În 2001, peste 4000 de roboți au participat în faze locale pentru a ajunge în finală. În timp, fondatorii competiției au creat legături cu alte concursuri de robotică care ofereau ca premiul la locul 1, la categoria Sumo Mega, o invitație oficială la competiția internațională în Japonia, ce se ține anul în 23 Decembrie. În total, ajung doar 128 de roboți – 64 autonomi și 64 controlați prin telecomandă – din întreaga lume. Astăzi, mii de roboți concurează în peste 10 competiții, în speranța de a obține o invitație pentru campionatul mondial.

În România, două mari competiții oferă această invitație la câștigătorii aceste probe, și anume RobotChanllenge și BattleLab Robotica.

Siglele competițiilor care oferă invitație la Japan Sumo Torunament

Ca și reguli de construcție, trebuie ținut cont de faptul că Sumo Mega este o reproducere a celebrelor competiții de Sumo umane. Astfel, prima regulă esențială constă în scoaterea adversarului din spațiul de joc doar prin împingeri. Roboții autonomi sunt dotați cu un modul de pornire-oprire care primește semnal de la telecomanda arbitrului, în funcție de statusul meciului.

În continuare vom defini condițiile și limitările suprafețelor de joc și a roboților din categoria Sumo Mega.

3.1.1. Suprafața de joc (Dohyo)

Suprafața de joc, sau Dohyo, este definită ca o tablă de oțel cu grosime de 3 mm de culoare neagră și un diametru de 1540 mm. Marginea ringului este marcată cu o dungă albă (Tawara) lată de 50 mm. În funcție de posibilitatea confecționării ringului, unele competiții au grosime mai mare a ringului (5 mm) și diametrul mai mare(1560 mm). Din aceste motive, regulamentul oficial permite abateri de 10% de la dimensiunile oficiale.

Interiorul ringului este suprafața discului cu marginea albă inclusă. Orice suprafață din exteriorul acestui disc este definită ca exteriorul ringului. Acest termen este folosit pentru stabilirea câștigătorului unei runde.

Zona de siguranță este definită ca un pătrat cu latura de 4 m, în centrul căruia este poziționat ringul.

3.1.2. Poziția de START

De-alungul anilor, competițiile au abordat diferite metode de start.

Prima variantă, care nu este oficială în Japonia este metoda cadranelor. La începutul fiecărei rundă, arbitrul poziționeză la întâmplare, o cruce pe mijlocul ringului, care împarte suprafața de joc în 4 cadrane. Concurenții trebuie să poziționeze roboții în cadrane opuse cu o parte a robotului peste linia albă. După poziționare arbitrul va elibera zona de siguranță și va porni meciul din telecomandă.

Poziție de start în cele 4 cadrane

A două variantă, cea oficială în Japonia, și adoptată tot mai mult și de alte competiții, este pornirea de la liniile de start (Shikiri-Sen). Liniile de start sunt definite ca două linii de culoare maro, cu dimensiunile de 200×20 mm, poziționate simetric față de centrul ringului. Poziționarea roboților trebuie să fie pe linii, sau pe continuarea acestora spre exteriorul ringului, ca în figura de mai jos.

Poziția de start determinata de Shikiri-Sen

3.1.3. Desfășurarea unui meci

După primirea semnalului de start, roboții au sarcina de a căuta adversarul, de a-l elimina din ring, dar și de a rămâne în interiorul ringului. Sunt acceptate doar împingerile, ca și metodă de atac asupra adversarului. Un meci se poate extinde ca durată până la maxim 3 minute. Dacă după 3 minute, nici unul din roboți nu este scos afară din ring, arbitrul va găsi o variantă de partajare a acestora sau de reluare a meciului, în general, competițiile având fiecare câte o metodă proprie de stabilire a câștigătorului.

3.1.4. Limitările robotului

Robotul este limitat din punct de vedere constructiv, după cum urmează:

Dimensiunea maximă a robotului este de 200×200 mm, fără limită de înălțime;

Masa maximă admisă este de 3 Kg;

Roboții trebuie să fie dotați cu un modul start stop a cărui funcționalitate va fi verificată în faza de omologare;

Este interzisă folosirea dispozitivelor de bruiaj a electronicii adversarului, aruncătoare de flăcări și alte substanțe, sau a altor dispozivice care pot deteriora ringul sau adversarul. Lamele roboților sunt acceptate ca și dispozitive de atac;

Este interzisă folosirea unor substanțe lipicioase sau altor tratamente pe elementele în contact cu ringul pentru creșterea aderenței roboților. În faza de omologare, se va testa acest aspect cu o coală A4. Robotul va fi poziționat pe o coală A4, iar după o secundă va fi ridicat. Robotul nu trebuie să poată ridica foaia mai mult de 2 secunde;

Se permite folosirea magneților pentru creșterea aderenței.

De-alungul anilor, constructorii de roboți s-au arătat tot mai inventivi, astfel în prezent, unii roboți sunt dotați cu lame mobile, steaguri pentru derutarea oponentului sau un set de lame suplimentar pentru a avea o arie mai mare de acțiune. Lamele suplimentare și steagurile sunt atașate de robot cu un sistem mobil care, după semnalul de start, permite elementelor atașate, din poziție verticală să cadă în poziție orizontală, astfel păstrându-se limita de dimensiune.

Robotul echipei Flex dotat cu steaguri

3.2. Ansamblu mecanic

3.2.1. Proiectarea șasiului, carcasei, roților

La proiectarea șasiului s-a avut în vedere pereții robotului în a fi înclinați. Astfel adversarii care au senzori optici vor avea dificultăți în detectarea robotului. Șasiul a fost proiectat de la 0, pereții laterali, frontali și din spate, au fost fabricați din fibră de carbon pentru rigiditate fiind un material ușor. Placa de susținere a robotului este făcută din aluminiu 7075 de 6 mm. Lama robotului este de 3 mm din oțel arc, care a fost trecut printr-o serie de procese atât pentru durificarea acesteia, cât și pentru a crea o zona perfect plană la suprafața ringului. În continuare se vor prezenta 2D-urile pieselor cât și ansamblul 3D.

S-au folosit pereți înclinați din carbon pentru ca structura să fie ușoară. Rolul pereților este mai mult de protecție, rolul de rezistență fiind preluat de alte elemente precum întăriturile din partea superioară a robotului și întăriturile care țin pereții prinși de structură.

Ansamblu 3D Mark

Pereți înclinați

Întărituri pentru partea de jos a susținerii pereților

Placă de bază

Lamă

Suport motor

Senzori oponent

Întărituri pentru partea de sus a pereților

Driver Motor

3.2.2. Elementele nestandardizate ale componentei mecanice

În continuare sunt prezentate elemenetele care au fost proiectate spcific pentru aplicația dată.

Bază robot

Fabricată din aluminiu 60****, Pe aceasta se montează toate elementele mecanice (suporții de motoare, lagărele pentru rulmenți, întăriturile robotului etc.) Se poate observa în figura 3.2.2.1. în imaginea din dreapta sus, decupajele pentru a introduce cofrajele în care sunt lipiții magneții.

Vederi ale bazei robotului

Suport motor

Acest element este fabricat în pereche, perechea fiind oglinda acestuia. Rolul acestora este de a fixa motoarele împreună cu angrenajul și axele de susținere a acestora. Roțile sunt fixate de ultima roată dințată a angrenajului.

Vederi ale suportului motor

Vedere ansamblu bază + suport motor

Paneluri

Panelurile sunt realizate din compozit de fibră de carbon. Rolul acestora este de protecție a elementelor mecanice și electronice la impact. În panelul din față și cel lateral s-au frezat orificii pentru a nu bloca vederea senzorilor optici.

fig

Vederi paneluri robot

Lama

Lama este realizată din OLC45. Rolul ei este fundamental, fiind primul element în contact cu adversarul la un atac direct frontal. S-a decis o dispunere a găurilor de prindere necoliniară, pentru a crește suprafața de prindere a lamei. De menționat este faptul ca ascuțișul lamei este de 19ș, fapt care permite coborârea planului înclinat de contact.

Vederi lama

Elemente de întărire

Prelucrate din aluminiu scopul acestor elemenete este de ranforsare și conectare a pereților între ei și cu baza robotului. Elementele superioare au și rol de suport pentru prinderea unui capac

Vederi elemente de întărire

Vedere ansamblu robot

3.3. Elemente componente ale robotului

3.3.1. Alegerea senzorilor, actuatorilor precum și a elementelor standardizate

1) Senzori

Senzorii au fost aleși în funcție de două caracteristici importante: timpul de răspuns și distanța pe care senzorii funcționează. Pentru distanță s-a ținut cont de dimensiunile maxime ale robotului și dimensiunea ringului. Astfel, suprafața totală de joc este de 1500 mm. Având în vedere că roboții, la start, pornesc din interiorul ringului, distanța minimă necesară pentru senzori este 1900 mm (diferența dintre dimensiunea ringului și suma lungimilor maxime celor 2 roboți (Fig.3.3.1.1.).

Amplasarea robotilor pe ring

Având în vedere cele menționate anterior s-au ales senzorii Omron E3Z-D62, plasați ca în figura 3.3.1.2.

Poziționarea senzorilor de distanță

Cei 8 senzori sunt poziționați astfel încât câmpul vizual al robotului să fie cât mai mare. Principalele caracteristici sunt:

Rază acțiune: 0…1m;

Ieșire de tip NPN;

Tensiune alimentare: 12…24 V;

Curent maxim de lucru: 100 mA;

Timp de reacție: <1ms.

Senzor Omron E3Z D62

Pentru linie s-au folosit 2 module, a câte 3 senzori pentru a evita detectarea zgârieturilor de pe ring. Astfel, cele 3 semnale analogice vor fi trecute prin comparatoare, ulterior prin câte două porți logice cu 3 intrări pentru combinarea semnalului.

Principalele caracteristici ale fototranzistoarelor componente ale modulelor sunt:

Detectare fără contact;

Pachet miniaturizat;

Temperatura de lucru: -40șC-+85 șC;

Tensiune Coletor-Emitor: 30V;

Tensiune Emitor Coletor: 5V.

Senzor de linie

2) Motorul și driverul de motor

Știind că se impune viteza maximă a robotului, vmax, raza roții robotului este R și raportul de transmisie între motor și roată este i, se poate calcula viteza unghiulară maximă Ωmax [rad/s], respectiv turația maximă a motorului, nmax [rot/min], din relațiile (3.3.1.1) și (3.3.1.2):

Puterea maximă necesară pentru ambele motoare este:

unde:

m – masa robotului

M – cuplul electromagnetic.

Fiind 2 motoare, puterea necesară a unui motor se obține ca fiind jumătate din .

Se calculează cuplul electromagnetic necesar pentru un motor:

Având relațiile (3.3.1.4) și (3.3.1.8), se alege un motor de c.c. care are cuplul electromagnetic mai mare decât 0.0801 [N] și o turație mai mare decât .

Se alege motorul Maxon RE 40 (COD: 148867), având caracteristicile prezentate în continuare:

Tabel 3.3.1.1 Caracteristici motor Maxon RE40

Motor Maxon RE40

Conform producătorului, acest tip de motor poate să funcționeze în regim de supratensiune având valoarea dublată, într-un interval de timp de maxim 60 secunde, astfel, ținând cont de faptul că rotațiile rotorului cresc odată cu tensiunea, la 48 V vom avea o turație nominală teoretică de 13880[rpm] > 13837.7[rpm]. Cuplul electromagnetic al motorului este de 0.177 [N] > 0.0801 [N].

În continuare, se va alege convertorul electronic pentru comanda motoarelor. Din considerente de restricții de dimensiune și greutate, curentul și tensiunea necesară motoarelor, se va alege un convertor electronic de tip punte H, cu două canale pentru a comanda ambele motoare. Se alege driverul de motoare Sabertooth 2×60, cu următoarele caracteristici:

Driver motor

Tabelul 3.3.1.2 Caracteristici driver motor Sabertooth 2×60

Curentul maxim al driverului, pe un canal este de 120[A] < 80.2[A] al curentului motorului cu rotorul blocat, iar tensiunea maximă este de 60 [V] < 48 [V] al motoarelor. În concluzie, driverul Sabertooth 2×60 este optim pentru controlul celor două motoare. De menționat faptul că s-a renunțat la elementele de răcire din motive de greutate și spațiu.

4)Encodere motoare

Pentru a putea controla mai eficient motoarele, din punct de vedere a vitezei de deplasare și a distanței, se vor folosi encodere optice montate pe axul motorului dedicat pentru encoder. Sunt alese encoderele de la producătorul USdigital, seria E4T-1000-157-S-D-D-1 datorită dimensiunilor reduse. Se alege un model cu o rezoluție de 1000CPR cu gaura pentru ax de 4 mm.

Encoder ET4

5)Controler mișcare

Pentru a putea folosi encodere și a elimina suprasolicitarea sistemului și cu calculele de viteză și distanță parcursă, se decide utilizarea unei controler de mișcare de la producătorul driverului de motoare. Avanatajele acestui controler sunt atât dimensiunea mică, cât și posibilitatea de self tuning, fapt care reduce timpii de setare și reglare. Caracteristicile principale sunt:

2 canale autoreglabile prin PID;

Control poziție sau viteză;

Răspuns de feedback de la encoder;

Procesare 80 000 pulsuri/sec;

Semnal de intrare serial, analog, R/C.

Controler mișcare Kangaroo 2x

6) Baterii

Alimentarea robotului se face cu două baterii: o baterie de 7.4V (2S) LI-PO pentru alimentarea electronicii, iar pentru partea de putere se folosesc 2 baterii 16V (4S) LI-PO legate în serie.

A) Baterie Turnigy nanotech 2S 300mAh, B) Baterie Turnigy Bolt 6S 1300mAH

Schema conexiunilor este prezentată în figura 3.3.1.10:

Schema de principiu a conexiunii motoarelor, controlerului, driverul și bateriile

3.4. Conducerea roboților

Conducerea roboților a ajuns la un nivel avansat în care, de exemplu, în industrie, roboții sunt învățați prin manipularea directă a efectorului final de către utilizatorul uman cu mâna. Robotul are senzori care detectează când utilizatorul impune o anumită direcție efectorului final pentru a fi dus într-un punct. Se elimină astfel manipularea robotului din teach pendant. Pentru conducerea roboților mobili se folosesc algoritmi avansați pentru a putea urmări o rută prestabilită cât mai precis sau se implementează inteligența artificială cu ajutorul căreia se găsește cea mai eficientă cale de a ajunge din punctul A, în punctul B.

Un robot mobil este un robot capabil de mișcare locomotorie. Acesta este dotat cu roți, șenile, aripi, elice pentru a executa locomoția. Roboții mobili pot naviga atât pe suprafețe nepredefinite, colectând date din mediu cu ajutorul senzorilor și adaptându-și ruta. Pe de altă parte, există posibilitatea ca robotul să urmărească o traiectorie bine predefinită din programul robotului sau să urmărească un traseu prestabilit și marcat adecvat. Primii roboți mobili au fost construiți în perioada celui de al Doilea Război Mondial (1939-1945) ca un rezultat a combinării tehnicii avansate cu noi domenii precum cibernetica și știința calculatoarelor. În general acești roboți erau bombe zburătoare. Un exemplu de bombă “deșteaptă” estea acel tip care se detonează doar într-un perimetru bine determinat al țintei folosind sistem de ghidare și radar. Rachetele V1 și V2 aveau primul sistem “autopilot” și autodetonare. Acestea stau la baza rachetelor de croazieră din ziua de azi.

Principalele componente comune la roboții mobili sunt:

Structura mecanică – un lanț cinematic de tip serie sau paralel respectiv de tip “master-slave”;

Sistemul de acționare – electric pentru sarcini mici și medii și hidraulic pentru sarcini mari;

Sistemul senzorial – folosește senzori interni pentru determinarea diferiților parametrii (turație, poziție, forță etc) la nivelul punctelor de acționare; senzori externi (camere, senzori de proximitate) pentru determinarea poziției relative și recunoașterea obiectelor;

Sistemul de comandă este de tip ierarhizat, de obicei multiprocesor;

Roboții mobili pot fi atât autonomi, cât și ghidați prin sisteme de control radio.

SPOT – Robot autonom

Predator B – robot radio-comandat

Conducerea roboților mobili poate avea mai multe metode, în funcție de modul de deplasare a robotului/platformei mobile. Controlul este diferit de la platformă cu roți, roți și axa articulată, roți omnidirecționale, până la platforme zburătoare cu sau fară elice, platforme târâtoare, cu picioare etc.

Roboții mobili cu 2 roți conducătoare (robot 2WD) sunt folosiți în general în aplicații militare, unde sunt necesare intervenții care pot pune în pericol viața omului. Aceste platforme sunt prevăzute cu 2 șenile, fiecare acționată individual de către un motor. Deplasarea acestora se bazează pe principiul tancului:

Platforma mobilă UGV Talon GEN. IV

pentru deplasarea în față, cele două motoare vor avea viteza de deplasare egală, învârtindu-se în aceași direcție (Fig. 3.4.4.);

Acționarea motoarelor pentru deplasarea în față a platformei

pentru deplasarea în spate, cele două motoare vor avea viteza de deplasare egală, învârtindu-se în aceași direție, în sens opus față de deplasarea în față (Fig. 3.4.5.);

Acționarea motoarelor pentru deplasarea în spate a platformei

pentru deplasarea la stânga, motorul stâng va avea o viteză mai mică față de motorul drept, astfel determinându-se și raza curbei (Fig. 3.4.6.);

Acționarea motoarelor pentru deplasarea la stânga a platformei

pentru întoarcerea pe loc spre stânga (contra acelor de ceasornic-counterclockwise), motorul stâng se va învârti în spate, iar motorul drept în față (Fig. 3.4.7.);

Acționarea motoarelor pentru deplasarea contra acelor de ceasornic a platformei

Pentru deplasarea la dreapta, motorul drept va avea o viteză mai mică față de motorul stâng, astfel determinându-se și raza curbei (Fig. 3.4.8.);

Acționarea motoarelor pentru deplasarea la dreapt a platformei

pentru întoarcerea pe loc spre dreapta (în direcția acelor de ceasornic–clockwise), motorul drept se va învârti în spate, iar motorul stâng în față (Fig. 3.4.9.);

Acționarea motoarelor pentru deplasarea în direcția acelor de ceasornic a platformei

Pentru deplasarea pe traiectorie curbilinie predefinită se va folosi expresia:

unde:

vr(t)- viteza motorului drept în timp

vl(t) -viteza motorului stâng în timp

Acționarea motoarelor pentru deplasarea pe o traiectorie curbilinie predefinită

Astfel, vom obține o deplasare pe o curbă predefinită, rezultată din diferența de viteză dintre cele două motoare, de unde provine și denumirea de platformă robotizată diferențală.

3.5. Programarea Și strategiile de atac pentru un robot de tip Sumo Mega

3.5.1 Programarea de bază a robotului mobil de tip Sumo Mega

Principiul de funcționare este relativ simplu: Caută adversar – Atacă adversar – Mod defensiv.

Caută adversar

Odată plasat robotul pe arena de luptă, după semnalul de start, robotul trebuie să detecteze poziția adversarului pentru a putea ataca. Cazul ideal este identificat prin detectarea plasarea robotului pe ring astfel încât să recunoască adversarul și să îl poată ataca direct, după semnalul de start. Întervin, totuși, anumiți factori care împiedică acest fapt: robotul adversar are pereții înclinați și astfel lumina de la senzori este reflectată haotic. Astfel se disting două variante:

Detectarea adversarului din poziționarea robotului la start. Din acest punct, robotul, după semnalul de pornire, va ataca robotul adversar printr-o traiectorie în linie dreaptă sau una în funcție de tactica aleasă de operator: prin dreapta, prin stânga.

Intrarea robotului în mod defensiv.

Mod defensiv

Dacă la start, robotul nu găsește adversarul, atunci acesta intră în mod defensiv și în funcție de setările prestabilite, caută adversarul conform tacticii alese.

Cele mai comune sunt:

Zig-Zag: Robotul se deplasează pe suprafața ringului aleatoriu dintr-o parte în alta a acestuia încercând să detecteze astfel poziția adversarului conform figurii 3.5.1.1. După detectarea adversarului, robotul se va centra pe acesta și va avansa spre acesta cu o viteză maximă pentru a avea în momentul impactului o energie cinetică cât mai mare.

Japan style: este una dintre cele mai răspândite și eficiente metode de căutare a adversarului și de atacare a acestuia. Robotul se deplasează spre centru pistei cu opriri între avansări. În timpul opririi senzorii caută adversarul, astfel încât la următoarea de avansare, robotul se deplasează spre adversar. Unul din avantaje este faptul că lama rămâne în mare parte lipită de ring, și fiind mișcările pe distanțe scurte, roțile nu acumulează praf, păstrând astfel aderența pe ring. Timpul de pauză între deplasări nu poate depăși 5 secunde și distanța pe care se deplasează robotul este indicat să fie cât mai mică dar destul de lungă încât să se poată găsi și ataca adversarul.

Mod defensiv Zig-Zag

Ca metodă defensivă, pentru a rămâne în interiorul ringului, roboții folosesc senzori care

detectează marginea arenei, astfel, ajunși pe linia albă, se vor retrage conform codului pseudocod:

Retragere pe negru

Delay(100)

Cât timp(senzorii văd linia){

Retragere pe negru

}

Retragere pe negru;

Delay(10);

Întoarcere prin apel senzori oponent

Acest pseudocod este recomandat roboților care au viteză foarte mare de deplasare și au riscul de a ieși afară datorită inerției. Ultima linie trebuie executată prin apel la senzorii de detectare a oponentului pentru a permite întoarcerea pe partea unde este oponentul.

Atacă adversar

După detectarea adversarului, robotul înaintează spre acesta în diferite moduri. Dacă adversarul este reperat de la startul meciului se folosesc următoarele metode:

atac direct: adversarul va fi atacat direct, frontal, robotul având viteza maximă (Fig.3.5.1.2.A);

pe dreapta: adversarul va fi atacat prin partea dreaptă, robotul traversând pe traiectoria unui arc de cerc pentru a evita un impact frontal din diferite motive precum lama adversarului fiind mult mai bine poziționată pe ring (Fig. 3.5.1.2.B);

pe stânga: metoda similară celei de dreapta, atacul fiind prin stânga (Fig. 3.5.1.3.A);

prin spate: dacă adversarul este poziționat mai în centrul ringului, robotul va străbate ringul până în capăt, iar apoi se va întoarce pentru a ataca adversarul din spate. Această metodă este folosită doar dacă robotul are viteza mai mare decât cea a adversarului. (Fig.3.5.1.3.B).

A) Atac direct, B) Atac prin dreapta

A) Atac prin stânga, B) Atac prin spate

Aceste metode se setează prin intermediul unui dipswitch format din 4 microîntrerupătoare, obținând astfel 8 posibile combinații. Codul pentru fiecare tactică în parte va fi prezentat în lucrarea de față, în mod succint, prezentându-se modalitatea generală de programare. De început, se va prezenta o variantă de cod, comună, care va ataca daca senzorul de oponent central va vedea un obiect în fața lui, și senzorii de linie sunt folosiți pentru a rămâne în ring.

#include <SabertoothSimplified.h>//se foloseste libraria SabertoothSimplified pusă la dispoziție de producător

SabertoothSimplified ST; //se crează obiectul ST

/*

Conexiunile dintre microcontroler și senzori, respectiv modulul de control al motoarelor

––––––––––––

~Senzori oponent~ |

30- centru |

29- stanga |

28- diagonala stanga |

37- dreapta |

38- diagonala dreapta |

~Senzori linie~ |

31- qtr stanga 1 |

32- qtr stanga 2 |

33- qtr stanga 3 |

|

34- qtr dreapta 1 |

35- qtr dreapta 2 |

36- qtr dreapta 3 |

~Modul start-stop~ |

17- start |

~Modul selector strategii~ |

19-23 – dip |

~Comunicare cu driverul motor~ |

1- TX |

––––––––––––

*/

//Declararea pinilor de conexiunie dintre senzori/module de comunicare cu microcontrolerul

int centru = 6;

int stanga = 2;

int stanga_diagonala = 3;

int dreapta = 4;

int dreapta_diagonala = 5;

int start_ = 12;

int qtr_stanga1 = A1;

int qtr_stanga2 = A2;

int qtr_stanga3 = A3;

int qtr_dreapta1 = A4;

int qtr_dreapta2 = A5;

int qtr_dreapta3 = A6;

boolean seen = false, parte, qtrEnable = true;// aceste variabile de tip boolean se vor folosi pentru a determina care parte a robotului se află pe lina alba(stâga/dreapta)

//parte – false= stanga, true = dreapta

void linie_alba()//funcție auxiliară pentru eveniment de tip detectare linie albă

{

int qtr_millis;

if (millis() – qtr_millis < 100)

{

ST.motor(1, -127);

ST.motor(2, -127);

}

else if (millis() – qtr_millis < 150)

{

if (parte)

{

ST.motor(1, -127);

ST.motor(2, 127);

}

else

{

ST.motor(1, 127);

ST.motor(2, -127);

}

}

}

void stanga_(int a)//funcție pentru deplasarea robotului spre stânga(a reprezintă viteza de rotație 0 – 127 -rotație într-un sens, respectiv 0 – (-127) rotație în sens opus.

{

ST.motor(1, a);// se apelează motorul de pe canalul 1, cu viteza a

ST.motor(2, -a);//se apelează motorul de pe canalul 2, cu viteza -a(pentru a se roti În sens opus celulilalt motor, astfel având rotație spre stânga

}

void dreapta_(int a)//funcție pentru depalsarea robotului spre dreapta

{

ST.motor(1, -a);//se apelează motorul de pe canalul 1, cu viteza -a(pentru a se roti în sens opus celuilalt motor, astfel având rotație spre dreapta

ST.motor(2, a);//se apelează motorul de pe canalul 2, cu viteza a

}

void fata_(int a)//funcție pentru deplasarea robotului în față

{

ST.motor(2, a);//se apelează motorul de pe canalul 1, cu viteza a

ST.motor(1, a);//se apeleaza motorul de pe canalul 2, cu viteza a

}

void stop_()//funcție pentru oprirea motoarelor(oprirea lor se face prin conectarea în scurt a bornelor motorului)

{

ST.stop();//funcție prestabilită pentru oprirea motoarelor.(frână în scurt)

}

void setup()//Se fac setările necesare pentru comunicarea cu driverul de motoare și senzori

{

SabertoothTXPinSerial.begin(38400);//se stabilește lățimea de bandă pentru comunicare Sabertooth-Tennsy 3.5

ST.motor(1, 0);//se setează 0 ca viteză la motorul de pe canalul 1

ST.motor(2, 0);//se setează 0 ca viteză la motorul de pe canalul 2

//!!!Nu se folosește frână în scurt la pornire întrucât nu este necesar, se setează motoarele pe 0 pentru a menține robotul în poziție fixă pe parcursul setărilor

//Se declară pinii de la Teensy, ca tip de intrare(INPUT) sau ieșire(OUTPUT)

pinMode(centru, INPUT);

pinMode(stanga, INPUT);

pinMode(stanga_diagonala, INPUT);

pinMode(dreapta, INPUT);

pinMode(dreapta_diagonala, INPUT);

pinMode(qtr_stanga1, INPUT);

pinMode(qtr_stanga2, INPUT);

pinMode(qtr_stanga3, INPUT);

pinMode(qtr_dreapta1, INPUT);

pinMode(qtr_dreapta2, INPUT);

pinMode(qtr_dreapta3, INPUT);

pinMode(start_, INPUT);

}

void loop() {//funcție repetitivă, aici codul începe să ruleze până la oprirea robotului

//Se citesc valorile de pe senzorii de linie

qtr_stanga1 = analogRead(A1);

qtr_stanga2 = analogRead(A2);

qtr_stanga3 = analogRead(A3);

qtr_dreapta1 = analogRead(A4);

qtr_dreapta2 = analogRead(A5);

qtr_dreapta3 = analogRead(A6);

//se așteaptă semnalul de start receptat de modulul start-stop

if (digitalRead(start_) == 1) //start module

{

//se verifică valorile de la senzori pentru a se determina dacă robotul este sau nu pe marginea ringului

if ( qtr_dreapta1 < 25 && qtr_dreapta2 < 25 && qtr_dreapta3 < 25)

{

seen = true;

parte = false;

}

if (seen == true && qtrEnable)

linie_alba();//dacă sunt indeplinite condițiile necesare, programul va apela subrutina linie_alba();, qtrEnable este folosit pentru a se activa/dezactiva citirea senzorilor de linie

//După revenirea pe ring, robotul va citi valorile de la senzorii de oponent pentru determinarea poziției adversarului

int s3 = digitalRead(stanga);

int s4 = digitalRead(stanga_diagonala);

int s1 = digitalRead(dreapta);

int s2 = digitalRead(dreapta_diagonala);

int s5 = digitalRead(centru);

//În funcție de care senzor va citi prezența adversarului, robotul se va roti în așa fel încât partea frontală să fie tot timpul centrată pe robotul adversar(senzorul central să vadă oponentul)

if (s4 == 0)

dreapta_(127);

else if (s3 == 0)

dreapta_(127);

else if (s2 == 0)

stanga_(127);

else if (s1 == 0)

stanga_(127);

if (s5 == 0)

fata_(127);//Dacă senzorul central vede oponentul, robotul va ataca frontal

else stop_();//Dacă nici unul din senzori nu vede oponentul, robotul va sta pe loc până la detectarea acestuia.

}

else

ST.stop();//când se primește semnalul de stop de la telecomanda arbitrului, motoarele sunt puse în frână în scurt

}

3.5.2. Programarea strategiilor unui robot mobil de tip sumo mega

Programarea strategiilor unui robot de sumo Mega depind în cea mai mare parte de sistemul de achiziție de date a acestuia. Din acest motiv, acestea au fost prezentate în capitolele anterioare. Cele mai importante elemente fără de care strategiile ar fi mult mai greu de programat sunt encoderele. Cu ajutorul acestora vom putea controla corecția necesară poziției robotului și viteza de deplasare.

Diagrama din figura 3.5.2.1. reprezintă o metodă generală de programare, în care după selecția strategiei de atac, fiecare din acestea trebuie să conțină și o subrutină de apărare.

Codul proiectului este împărțit în 3 secvențe:

Principiul general de programare al robotilor de Sumo Mega

Zona de declarări – în acestă zonă se declară toate variabilele globale care se vor folosi în structura codului, atât în funcții auxiliare cât și în corpul comun, precum și apelarea

librăriilor ce urmează să fie folosite;

Zona funcțiilor auxilire – conține funcțiile auxiliare care vor fi apelate în corpul programului în funcție de strategia selectată;

Zona de setup – conține setările legate de viteza de comunicare între controlerul de motoare și microcontroler, declararea tipului de pini pentru achiziționearea semnalului de la senzori (intrare/ieșire), de asemeni aici se blochează și motoarele pentru a evita o pornire neașteptată a robotului din cauza unui posibil semnal parazit de pe cabluri;

Zona codului propriu-zis – este zona în care se face apelarea strategiilor în funcție de setarea făcută din dip-swtich.

În continuare se vor prezenta primele 3 zone, ulterior find prezentată ultima parte în paralel cu fiecare strategie de luptă.

Zona de declarări

#include <SoftwareSerial.h>//se include librăria pentru comunicare serială

#include <Kangaroo.h>//se include librăria pentru controlul poziției și vitezei motoarelor

/*Conexiunile dintre microcontroler și senzori, respectiv modulul de control al motoarelor

––––––––––––

~Senzori oponent~ |

28- centru |

27- stanga |

26- diagonala stanga |

29- dreapta |

30- diagonala dreapta |

~Senzori linie~ |

32- qtr stanga fata |

38- qtr stanga spate |

5- qtr dreapta fata |

21- qtr dreapta spate |

~Modul start-stop~ |

10- start |

~Modul selector strategii~ |

33-37 – dip |

~Comunicare cu driverul motor~ |

8- TX |

7- RX (Tinându-se cont de faptul |

că PCB/ul e în faza de prototipare|

nu s-a folosit modulul Kangaroo, |

astfel conexiunea hardware se va |

face cu un cablu cositorit pe pin.|

––––––––––––

*/

//Declararea pinilor de conexiunie dintre senzori – microcontroler

#define centru 28

#define stanga 27

#define stanga_diagonala 26

#define dreapta 29

#define dreapta_diagonala 30

//Declararea pinilor de conexiunie dintre Kangaroo x2 – microcontroler

#define TX_PIN 8

#define RX_PIN 7

//Declararea pinilor de conexiunie dintre modulul start-stop – microcontroler

#define start_ 10

//Declararea pinilor de conexiunie dintre senzorii de linie – microcontroler

#define qtr_stanga_fata 32

#define qtr_stanga_spate 38

#define qtr_dreapta_fata 5

#define qtr_dreapta_spate 21

//Stocarea in variabilă de tip INT, a valoarii citite de la senzorii de linie

int sf = digitalRead(qtr_stanga_fata);

int df = digitalRead(qtr_dreapta_fata);

int ss = digitalRead(qtr_stanga_spate);

int ds = digitalRead(qtr_dreapta_spate);

//Declararea pinilor de conexiunie dintre dip-switch tactici – microcontroler

#define p1

#define p2

#define p3

#define p4

#define p5

//Declararea variabilelor pentru comunicarea și controlul driver-ului de motoare

SoftwareSerial SerialPort(RX_PIN, TX_PIN);//crearea portului de comunicare serială cu pinii corespunzători

KangarooSerial K(SerialPort);//crearea comunicării dintre Kangaroo și microcontroler

KangarooChannel Drive(K, 'D');//crearea metodei drive, pentru controlul direcției robotului

KangarooChannel Turn(K, 'T');//crearea metodei turn, pentru controlul rotației robotului

KangarooChannel K1(K, '1');//crearea metodei pentru controlul canalului 1 – motor stânga

KangarooChannel K2(K, '2');//crearea metodei pentru controlul canalului 2 – motor dreapta

//Se extrage din memoria EPPROM a controlerului, viteza minimă și maximă pe care robotul o poate atinge

long minimum = K1.getMin().value();

long maximum = K1.getMax().value();

long speed = (maximum – minimum) / 10; // 1/10th of the range per second

boolean seen = false, parte, qtrEnable = true;// aceste variabile de tip boolean se vor folosi pentru a determina care parte a robotului se află pe lina alba(stâga/dreapta)

//parte – false= stanga, true = dreapta

Zona funcțiilor auxiliare

Funcția pentru detectarea liniei albe

void linie_alba()//funcție auxiliară pentru eveniment de tip detectare linie albă

{

int sf = digitalRead(qtr_stanga_fata);//se citesc valorile de la fiecare senzor în parte pentru a determina unde este linia albă

int df = digitalRead(qtr_dreapta_fata);

int ss = digitalRead(qtr_stanga_spate);

int ds = digitalRead(qtr_dreapta_spate);

if (sf && df)//robotul este pe linia albă cu senzorii din față

{

Drive.pi(-100);//robotul se deplasează în spate 100 de unități

Turn.pi(360);//robotul se întoarce 360ș

}

else if (sf && ss)//robotul este pe linia albă cu senzorii din partea stângă față-spate

{

K1.si(speed).wait();//vitezele celor două motoare sunt diferite pentru ca robotul să se deplaseze spre interiorul ringului pe o traiectorie curbilinie

K2.si(speed – speed / 2).wait();// .wait() se folosește pentru a permite controlerului să ajungă la viteza dată

delay(200);

}

else if (df && ds) //robotul este pe linia albă cu senzorii din partea stângă față-spate

{

K2.s(speed).wait();//vitezele celor două motoare sunt diferite pentru ca robotul să se deplaseze spre interiorul ringului pe o traiectorie curbilinie

K1.s(speed – speed / 2).wait();

delay(200);

}

else if (ss && ds) //robotul este pe linia albă cu senzorii din spate

{

Drive.s(maximum);//robotul se deplasează în față cu viteză maximă

}

else if ( ss or ds)//robotul se alfă cu unul din cei doi senzori din spate pe linie

if (ss)

{

K1.s(speed).wait();

K2.s(speed – speed / 2).wait();

delay(200);

}

else

{

K2.s(speed).wait();

K1.s(speed – speed / 2).wait();

delay(200);

}

else if ( sf or df)//robotul se alfă cu unul din cei doi senzori din față pe linie

if (sf)

{

K1.s(-speed).wait();

K2.s(-(speed – speed / 2)).wait();

delay(200);

}

else

{

K2.s(-speed).wait();

K1.s(-(speed – speed / 2)).wait();

delay(200);

}

}

Funcția de căutare adversar

void cautare()//funcție care se apelează ca backup în cazul în care una din strategii nu are succes

{

int c = digitalRead(centru);//se citesc valorile de la fiecare senzor în parte pentru a determina poziția adversarului

int st = digitalRead(stanga);

int dr = digitalRead(dreapta);

int sd = digitalRead(stanga_diagonala);

int dd = digitalRead(dreapta_diagonala);

while (c == 0)

{

if (st)//dacă senzorul din stânga vede adversarul, robotul se va roti spre stânga pentru centrarea lui pe oponent

{

K1.s(-speed).wait();

K2.s(speed).wait();

delay(10);

}

if (dr) //dacî senzorul din dreapta vede adversarul, robotul se va roti spre dreapta pentru centrarea lui pe oponent

{

K2.s(-speed).wait();

K1.s(speed).wait();

delay(10);

}

if (sd)//dacă senzorul din stânga vede adversarul, robotul se va roti spre stânga pentru centrarea lui pe oponent cu viteză maximă

{

K1.s(-maximum).wait();

K2.s(maximum).wait();

delay(10);

}

if (dd) //dacă senzorul din dreapta-diagonală vede adversarul, robotul se va roti spre dreapta pentru centrarea lui pe oponent cu viteză maximă

{

K2.s(-maximum).wait();

K1.s(maximum).wait();

delay(10);

}

}

if (c == 1)

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

Funcția de căutare adversar, pe loc

int cautare_pe_loc()//această funcție se va apela cand se dorește căutarea adversarului și a trimite poziția lui într-o altă funcție auxiliară

{

int c = digitalRead(centru);//se citesc valorile de la fiecare senzor în parte pentru a determina poziția adversarului

int st = digitalRead(stanga);

int dr = digitalRead(dreapta);

int sd = digitalRead(stanga_diagonala);

int dd = digitalRead(dreapta_diagonala);

if (c)

return 1;

else if (st)

return 2;

else if (dr)

return 3;

else if (sd)

return 4;

else if (dd)

return 5;

}

Funcția pentru atac de tip Japonez

void Japan()//funcție care se aăpelează când se dorește folosirea unui atac de tip Japonez. Acesta constă în centrarea robotului pe adversar și deplasarea spre acesta cu mișcări scurte și repaus, fapt ce ajută la păstrarea lamei liptă de ring

{

for (int i = 1; i <= 4; i++)//După 4 repetiții de centrare și deplasare, robotul va ataca adversarul

{

int pozitie = cautare_pe_loc();

int start_time = millis();

if ( start_time < 500)//Având în vedere că dacă un robot nu se mișcă 5 secunde, este descalificat, vom ține cont de timp printr-un contor de timp.

while (pozitie != 1)

{

if (pozitie == 2 or pozitie == 4)

Turn.pi(5).wait();

if (pozitie == 3 or pozitie == 5)

Turn.pi(-5).wait();

}

if (millis() – start_time < 600 && pozitie == 1)

Drive.pi(50).wait();

i++;

start_time = millis();

} cautare();// dacă după cele 4 repetiții robotul nu a fost oprit, se va trece la tactica de cautare()

}

Funcția de selectare a strategiei

int select_strategie()//această funcție se folosește pentru a se citi valorile de la dip-switch și a stabili ce tactică se va folosi

{

int dip1 = digitalRead(p1);

int dip2 = digitalRead(p2);

int dip3 = digitalRead(p3);

int dip4 = digitalRead(p4);

int dip5 = digitalRead(p5);

if (dip1 && dip2 && dip3 && dip4 && dip5)

return 0; //Atac direct

if (!dip1 && dip2 && dip3 && dip4 && dip5)

return 1; //Atac progresiv

if (dip1 && !dip2 && dip3 && dip4 && dip5)

return 2; //Atac semicerc stânga-dreapta

if (dip1 && dip2 && !dip3 && dip4 && dip5)

return 3; //Atac Japonez

if (dip1 && dip2 && dip3 && !dip4 && dip5)

return 4; //Randomize

if (!dip1 && dip2 && dip3 && !dip4 && dip5)

return 5; //Back to basics

}

Zona de Setup

void setup()//Se fac setările necesare pentru comunicarea cu driverul de motoare și senzori

{

SerialPort.begin(9600);//Se setează viteza de comunicare pe portul serial

SerialPort.listen();//Se "ascultă" portul pentru semnal de la controlerul de motoare.

Drive.start();//Se pornește funcția Drive

Turn.start();//se porneste funcția Turn

K1.s(0).wait();

K1.s(0).wait();

delay(1);

//!!!Nu se folosește frână în scurt la pornire întrucât nu este necesar, se setează motoarele pe 0 pentru a menține robotul în poziție fixă pe parcursul setărilor

//Se declară pinii de la Teensy, ca tip de intrare(INPUT) sau ieșire(OUTPUT)

pinMode(centru, INPUT);

pinMode(stanga, INPUT);

pinMode(stanga_diagonala, INPUT);

pinMode(dreapta, INPUT);

pinMode(dreapta_diagonala, INPUT);

pinMode(qtr_stanga_fata, INPUT);

pinMode(qtr_stanga_spate, INPUT);

pinMode(qtr_dreapta_fata, INPUT);

pinMode(qtr_dreapta_spate, INPUT);

pinMode(p1, INPUT);

pinMode(p2, INPUT);

pinMode(p3, INPUT);

pinMode(p4, INPUT);

pinMode(p5, INPUT);

pinMode(start_, INPUT);

}

Zona codului propriu-zis

void loop() //funcție repetitivă, aici codul începe să ruleze până la oprirea robotului

{

//se așteaptă semnalul de start receptat de modulul start-stop

if (digitalRead(start_) == 1)

{

if (sf or ss or df or ds)

linie_alba();//se verifică dacă robotul nu este pe linie albă

else

{

int strategie = select_strategie();//se citeste valorile de la switch pentru a determina strategia de joc

switch (strategie)

{

Codul va activa diferite funcții/tactici de atac, în funcție de setarea din dip-switch. În continuare se vor prezenta fiecare diagramă a strategiei cu codul aferent.

Strategia 1. Atac direct

case 0://Atac direct

{

if (millis() < 200)

{

K1.s(speed).wait();

K2.s(speed).wait();

}

else

cautare();

} break;

Specificul acestei strategii constă în faptul că se urmărește un atact direct frontal asupra adversarului. De obicei este utilă această tactică când se observă că adversarul poate fi scos ușor din ring (poziționare greșită la start, se desprinde ușor de pe ring etc). După 200 milisecunde (se parcurge aproape toată suprafața ringului), robotul va intra în funcția de căutare sau strategia Back to Basics, strategie care se bazează pe reperarea adversarului și deplasarea spre acesta.

Avantaje:

Energie cinetică mare, rezultă o forță de impact mare;

Posibilitate de a termina meciul într-un timp de sub 3 secunde.

Dezavantaje:

Nu este o strategie eficientă când adversarul are o forță mare de atracție pe ring datorită magneților;

Uneori, datorită impactului, robotul poate sări în afara ringului;

Dacă adversarul are lama mai bine fixată pe ring, există posibilitatea ca robotul să se desprindă de pe ring, urcând pe oponent și astfel pierzând control asupra deplasării;

Datorită inerției, lama nu va fi perfect coplanară cu ringul.

Strategia 2. Atac progresiv

case 1://atac progresiv

{

int pozitie = cautare_pe_loc();//se citeste ce valoare returnează funcția cautare_pe_loc pentru a

if (pozitie == 1)

{

Drive.pi(100).wait();

Drive.pi(-40).wait();

delay(5);

}

else

{

Turn.pi(40).wait();

Turn.pi(-40).wait();

delay(5);

}

} break;

Această strategie are ca și specific modul de deplasare atât în atac, cât și în căutarea adversarului.

Când robotul atacă, acesta se va baza pe principiul “doi pași înainte, unul înapoi” pentru o eficiență mai mare la roboții care au o forță de prindere pe ring foarte mare.

Avantaje:

În loc de a se aplica o singură lovitură adversarului, se aplică lovituri consecutive în timp ce fiecare lovitură obligă adversarului se deplaseze cu 10 cm față de ultimul loc al impactului.

Dezavantaje:

Supraîncălzirea motoarelor și a driverului datorită deplasărilor față-spate, care crează curenți mari în interiorul motoarelor și a driverului.

Driverul de motoare poate intra în protecție și să se oprească datorită curenților mari.

Strategia 3. Atac prin arc de cerc stânga-dreapta

case 2://atac prin arc de cerc stânga/dreapta

{

int randomnumber = random(1, 2);

if (randomnumber % 2 == 0) //daca numărul este par, se va face deplasare prin stânga

{

Turn.pi(35).wait();//robotul se intoarce 35 grade spre stânga pentru a putea ulterior sa se deplaseze in arc de cerc spre adversar

int pozitie = cautare_pe_loc();

if (pozitie == 4 or pozitie == 2) //cat timp senzorii din partea stângă vad aversarul, robotul se deplaseaza în arc de cerc

{

K1.s(speed).wait();

K2.s(speed + speed / 2).wait();

delay(10);

}

if (pozitie == 1)

{

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

else

cautare();

}

else//daca numărul este par, se va face deplasare prin dreapta

{

Turn.pi(-35).wait();//robotul se întoarce 35ș spre dreapta pentru a putea ulterior să se deplaseze în arc de cerc spre adversar

int pozitie = cautare_pe_loc();

if (pozitie == 5 or pozitie == 3)

{

K2.s(speed).wait();

K1.s(speed + speed / 2).wait();

delay(10);

}

if (pozitie == 1)

{

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

else

cautare();

}

} break;

Această strategie se poate folosi atunci când adversarul are o viteză inferioară robotului nostru, astfel putând să atacăm din lateral oponentul, fapt ce duce la o rată de succes mult mai ridicată.

Avantaje:

Posibilitatea de a ridica adversarul de pe ring prin atac lateral;

Folosind funcția random, adversarul nu va ști niciodată pe care parte va fi atacul pentru a putea să il contracareze.

Dezavantaje:

Dacă adversarul este mai rapid, poate ataca în momentul deplasării în arcul de cerc.

Strategia 4. Atac japonez

case 3://atac japonez

{

Japan();

} break;

Dacă se alege startegia de atac de tip Japonez, codul va apela funcția auxiliară Japan().

void Japan()//funcție care se aăpelează când se dorește folosirea unui atac de tip Japonez. Acesta constă în centrarea robotului pe adversar și deplasarea spre acesta cu mișcări scurte și repaus, fapt ce ajută la păstrarea lamei liptă de ring

{

for (int i = 1; i <= 4; i++)//După 4 repetiții de centrare și deplasare, robotul va ataca adversarul

{

int pozitie = cautare_pe_loc();

int start_time = millis();

if ( start_time < 500)//Având în vedere că dacă un robot nu se mișcă 5 secunde, este descalificat, vom ține cont de timp printr-un contor de timp.

while (pozitie != 1)

{

if (pozitie == 2 or pozitie == 4)

Turn.pi(5).wait();

if (pozitie == 3 or pozitie == 5)

Turn.pi(-5).wait();

}

if (millis() – start_time < 600 && pozitie == 1)

Drive.pi(50).wait();

i++;

start_time = millis();

} cautare();// dacă după cele 4 repetiții robotul nu a fost oprit, se va trece la tactica de cautare()

}

Specificul acestui atac ține mai mult de tradițiile japoneze și de eleganța atacului. Robotul are deplasări cât mai scurte, cu pauze între mișcări, timp în care caută adversarul și își planifică următoarea mutare. După o perioadă de timp, care se setează după preferințele programatorului, codul de față folosind for (int i = 1; i <= 4; i++) pentru a repeta de 4 ori căutarea și centrarea pe adversar, robotul va ataca frontal adversarul, iar dacă acest atac nu are succes se apelează funcția de backup Back to Basics, funcție care caută adversarul prin simple rotații și îl atacă daca acesta este detecat de senzorul central.

Avantaje:

Datorită deplasărilor minime pe suprafața de ring, roțile rămân mai curate decât la celelalte strategii;

Există posibilitatea ca adversarul să atace frontal robotul, însă fiind în repaus, lama este fixată și astfel cresc șansele ca adversarul să se urce pe lamă și să piardă contactul cu solul.

Dezavantaje:

Singurul dezavantaj notabil, este eficientizarea tehnicii și varianta de programare. Optim ar fi programarea acesteia parametrizat, ținând cont de distanța la care se află adversarul viteza maximă a acestuia.

Strategia 5 și 6

Strategia 5 va genera un număr aleator cuprins între 1 și 5, care reprezintă primele 5 strategii selectabile din dip-switch. Acest tip de strategie este des folosit când se dorește ca meciul să fie imprevizibil, întrucât nimeni nu poate deduce exact strategia folosită și astfel va fi mult mai greu contracararea acesteia prin metode specifice. De menționat că fiecare strategie prezentată mai sus are metode de contracarare, însă acestea nu sunt subiectul acestei lucrări.

case 4://Se alege la întamplare o strategie de atac

{

int randomstrateg = random(1, 5);

switch (randomstrateg)

{

case 0://Atac direct

{

if (millis() < 200)

{

K1.s(speed).wait();

K2.s(speed).wait();

}

else

cautare();

} break;

case 1://atac progresiv

{

int pozitie = cautare_pe_loc();//se citeste ce valoare returnează funcția cautare_pe_loc pentru a

if (pozitie == 1)

{

Drive.pi(100).wait();

Drive.pi(-40).wait();

delay(5);

}

else

{

Turn.pi(40).wait();

Turn.pi(-40).wait();

delay(5);

}

} break;

case 2://atac prin semicerc stânga/dreapta

{

int randomnumber = random(1, 2);

if (randomnumber % 2 == 0) //daca numărul este par, se va face deplasare prin stânga

{

Turn.pi(35).wait();//robotul se intoarce 35 grade spre stânga pentru a putea ulterior sa se deplaseze in arc de cerc spre adversar

int pozitie = cautare_pe_loc();

if (pozitie == 4 or pozitie == 2) //cat timp senzorii din partea stângă vad aversarul, robotul se deplaseaza în arc de cerc

{

K1.s(speed).wait();

K2.s(speed + speed / 2).wait();

delay(10);

}

if (pozitie == 1)

{

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

else

cautare();

}

else//daca numărul este par, se va face deplasare prin dreapta

{

Turn.pi(-35).wait();//rpbotul se intoarce 35grade spre dreapta pentru a putea ulterior sa se deplaseze in arc de cerc spre adversar

int pozitie = cautare_pe_loc();

if (pozitie == 5 or pozitie == 3)

{

K2.s(speed).wait();

K1.s(speed + speed / 2).wait();

delay(10);

}

if (pozitie == 1)

{

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

else

cautare();

}

} break;

case 3://atac japonez

{

Japan();

} break;

}

} break;

Strategia 6 va apela funcția cautare(), funcție care este ,,primitivă”, simplă prin modul acesteia de căutare și atac. Se folosește ca și backup la celelate strategii când acestea nu au succes.

case 5://Back to Basics

{

cautare();

} break;

Apelarea duce la funcția descrisă mai jos.

void cautare()//funcție care se apelează ca backup în cazul în care una din strategii nu are succes

{

int c = digitalRead(centru);//se citesc valorile de la fiecare senzor în parte pentru a determina poziția adversarului

int st = digitalRead(stanga);

int dr = digitalRead(dreapta);

int sd = digitalRead(stanga_diagonala);

int dd = digitalRead(dreapta_diagonala);

while (c == 0)

{

if (st)//dacă senzorul din stânga vede adversarul, robotul se va roti spre stânga pentru centrarea lui pe oponent

{

K1.s(-speed).wait();

K2.s(speed).wait();

delay(10);

}

if (dr) //dacî senzorul din dreapta vede adversarul, robotul se va roti spre dreapta pentru centrarea lui pe oponent

{

K2.s(-speed).wait();

K1.s(speed).wait();

delay(10);

}

if (sd)//dacă senzorul din stânga vede adversarul, robotul se va roti spre stânga pentru centrarea lui pe oponent cu viteză maximă

{

K1.s(-maximum).wait();

K2.s(maximum).wait();

delay(10);

}

if (dd) //dacă senzorul din dreapta-diagonală vede adversarul, robotul se va roti spre dreapta pentru centrarea lui pe oponent cu viteză maximă

{

K2.s(-maximum).wait();

K1.s(maximum).wait();

delay(10);

}

}

if (c == 1)

K1.s(speed).wait();

K2.s(speed).wait();

delay(10);

}

Cap. 4 Concluzii

Lucrarea de față a tratat programarea și strategii de luptă pentru un robot de tip Sumo Mega atât din punct de vedere al programării efective, cât și din punct de vedere al elementelor necesare (componente mecanice și electronice) pentru implementarea acestor strategii. Sistemul de achiziție de date este unul din cele mai importante elemente, acesta dând posibilitatea de a crea noi soluții de atac, de detectare a oponentului, de localizare a acestuia față de robot.

Ca și îmbunătățiri la acest proiect, se poate trata într-o lucrare viitoare, posibilitatea de a adăuga senzori de distanță de tip TOF (Time Off Flight). Acest tip de senzor emite un semnal luminos și măsoară timpul în care acesta se întoarce, astfel detectând distanța exactă la care se alfă adversarul. Dacă se cunoaște distanța exactă, se pot adapta strategiile și vitezele de atac, cât și crearea unor noi strategii care au nevoie de cunoașterea locației exacte a adversarului. Se porpune dispunerea a 3 senzori de acest tip, fiecare din aceștia pe una din laturile față-stânga-dreapta. Senzorii deja utilizați, ar putea sesiza pe care latură este adversarul, iar senzorii TOF ar putea determina distanța.

O altă îmbunătățire ar fi echiparea robotului cu încă doi senzori digitali, pe partea stângă și partea dreaptă, montați perpendiculari față de fața robotului. Astfel, s-ar crește aria de acoperire a vizibilității robotului. În principiu se folosesc 5-7 senzori poziționați în puncte cheie în funcție de stilul de luptă dorit. Unii constructori de roboți de competiție au adoptat echiparea robotului cu 11 senzori, pentru a elimina orice punct mort.

Shreddinger-Echipa Flex Team București

Utilizarea steagurilor aduce un plus robotului întrucât acestea pot dezorienta adversarul, considerând steagul ca fiind robot și astfel atacă un punct gol. Dacă steagurile pot fi controlate individual, eficiența folosirii lor este net superioară, decât lăsarea lor jos la începutul meciului pe toata durata luptei.

Pentru o modularitate mult mai ridicată, magneții care țin robotul prins de ring, pot fi prinși în locașuri speciale, care ulterior să poată fi reglate pe înălțime, astfel încât variabilitatea grosimii ringului să nu afecteze robotul.

În momentul de față, PCB-ul robotului este dotat cu un conector la care se poate conecta un LCD pentru mai multe setări care să se facă direct lângă arena de joc, cum ar fi vitezele de atac, verificarea nivelului bateriei etc. Pentru o interfață mai optimă, se poate dota PCB-ul robotului cu un mini LCD touchscreen care să fie folosit, pe lângă cele menționate mai sus și la stabilirea traiectoriei de atac prin desenarea acesteia cu degetul pe ecran.

O ultimă îmbunătățire care merită menționată este dotarea robotului cu un modul accelerometru-giroscop. Astfel vom ști constant direcția și sensul deplasării, momentul de impact, forțele de impact, dacă adversarul a reușit să ne ridice de la ring etc. Toate aceste informații pot fi folosite pentru un control extrem de precis a robotului, cât și cunoașterea mai corectă a mediului de luptă, a direcției din care vine lovitura de la adversar, etc.

Următoarea versiune a acestei construcții a robotului vizează adăugarea elementelor prezentate mai sus

Bibliografie

Link-uri

[1] Enciclopedia Wikipedia, ,,Mobile Robot’’,

https://en.wikipedia.org/wiki/Mobile_robot, accesat 11.06.2020

[2] Enciclopedia Wikipedia, ,,V1 Flying Bomb’’,

https://en.wikipedia.org/wiki/V-1_flying_bomb, accesat 11.06.2020

[3] Enciclopedia Wikipedia, ,,Elmer and Elsie (roboți)’’,

https://en.wikipedia.org/wiki-/Elmer_and_Elsie_(robots), accesat 11.06.2020

[4] Enciclopedia Wikipedia, ,,Fiara de la John Hopkins’’,

https://ro.wikipedia.org/wiki/Fiara-_de_la_Johns_Hopkins, accesat 11.06.2020

[5] Enciclopedia Wikipedia, ,,Shakey the robot’’,

https://en.wikipedia.org/wiki/Shakey_the_robot, accesat 11.06.2020

[6] Enciclopedia Wikipedia, ,,HERO (robot)’’,

https://en.wikipedia.org/wiki/HERO_(robot), accesat 11.06.2020

[7] Enciclopedia Wikipedia, ,,RB5X’’,

https://en.wikipedia.org/wiki/RB5X, accesat 11.06.2020

[8] Enciclopedia Wikipedia, ,,BEAM-robotics’’,

https://en.wikipedia.org/wiki/BEAM_robotics, accesat 11.06.2020

[9] Enciclopedia Wikipedia, ,,Telerobotics’’,

https://en.wikipedia.org/wiki/Telerobotics, accesat 15.06.2020

[10] Enciclopedia Wikipedia, ,,Virtual Fixture’’,

https://en.wikipedia.org/wiki/Virtual_fixture, accesat 15.06.2020

[11] Enciclopedia Wikipedia, ,,Serial Manipulator’’,

https://en.wikipedia.org/wiki/Serial_-manipulator, accesat 15.06.2020

[12] Enciclopedia Wikipedia, ,,Robot-assisted surgery’’,

https://en.wikipedia.org/wiki/Robot-assisted_surgery, accesat 15.06.2020

[13] Enciclopedia Wikipedia, ,,Powered exoskeleton’’,

https://en.wikipedia.org/wiki/Powered_exoskeleton, accesat 15.06.2020

[14] Enciclopedia Wikipedia, ,,Rehabilitation robotics’’,

https://en.wikipedia.org/wiki/Rehabilitation_robotics, accesat 15.06.2020

[15] Enciclopedia Wikipedia, ,,Industrial robot’’,

https://en.wikipedia.org/wiki/Industrial_robot, accesat 15.06.2020

[16] Enciclopedia Wikipedia, ,,Unimation’’,

https://en.wikipedia.org/wiki/Unimation, accesat 15.06.2020

[17] Enciclopedia Wikipedia, ,,Mobile industrial robots’’,

https://en.wikipedia.org/wiki/Mobile_industrial_robots, accesat 16.06.2020

[18] Enciclopedia Wikipedia, ,,Automated guided vehicle’’,

https://en.wikipedia.org/wiki/Automated_guided_vehicle, accesat 16.06.2020

[19] Enciclopedia Wikipedia, ,,Legged robot’’,

https://en.wikipedia.org/wiki/Legged_robot, accesat 16.06.2020

[20] Enciclopedia Wikipedia, ,,Snakebot’’,

https://en.wikipedia.org/wiki/Snakebot, accesat 16.06.2020

[21] Enciclopedia Wikipedia, ,,BigDog’’,

https://en.wikipedia.org/wiki/BigDog, accesat 16.06.2020

[22] Enciclopedia Wikipedia, ,,Unmaned aerial vehicle’’,

https://en.wikipedia.org/wiki/Unmanned_aerial_vehicle, accesat 17.06.2020

[23] Enciclopedia Wikipedia, ,,USAF Hunter Killer’’,

https://en.wikipedia.org/wiki/USAF_Hunter-Killer, accesat 17.06.2020

[24] Enciclopedia Wikipedia, ,,General Atomics MQ-9 Reaper’’,

https://en.wikipedia.org/wiki/General_Atomics_MQ-9_Reaper#Specifications_(MQ-9A), accesat 17.06.2020

[25] Enciclopedia Wikipedia, ,,Drone strikes in Pakistan’’,

https://en.wikipedia.org/wiki/Drone_strikes_in_Pakistan, accesat 17.06.2020

[26] Enciclopedia Wikipedia, ,,Autonomous underwater vehicle’’,

https://en.wikipedia.org/wiki/Autonomous_underwater_vehicle, accesat 18.06.2020

[27] Enciclopedia Wikipedia, ,,Arduino’’,

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

[28] Azo Robotics, ,,ScoutWalker III BEAM robotics from Solarbotics Ltd.’’, https://www.azorobotics.com/equipment-details.aspx?EquipID=397 accesat 19.06.2020

[29] Mobile Industrial Robots, ,,MiR 200’’,

https://www.mobile-industrial-robots.com/en/solutions/robots/mir200/, accesat 19.06.2020

[30] Mobile Industrial Robots, ,,MiR 1000’’,

https://www.mobile-industrial-robots.com/en/solutions/robots/mir1000/, accesat 19.06.2020

[31] Kuka, ,,KMR QUANTEC’’,

https://www.kuka.com/ro-ro/produse-servicii/mobility/mobile-robot-systems/kmr-quantec, accesat 19.06.2020

[32] Poular Mechanics, ,,Robo-Apocalypse Instead’’,

https://www.popularmechanics.com/technology/robots/a29610393/robot-soldier-boston-dynamics/, accesat 19.06.2020

[33] Boston Dynamics, ,,Spot’’,

https://www.bostondynamics.com/spot, accesat 19.06.2020

[34] Medical Robotics, ,,Medical Snake Robot’’,

https://medrobotics.ri.cmu.edu/node/128447, accesat 16.06.2020

[35] Applied aeronautics, ,,Albatross UAV’’,

https://www.appliedaeronautics.com/albatross-uav, accesat 16.06.2020

[36] ThanksBuyer, ,,Feiyu-Y6 Scorpion…’’,

https://www.thanksbuyer.com/feiyu-y6-scorpion-tricopter-arf-multicopter-glass-fiber-aircraft-frame-kit-motor-and-esc-combo-26888, accesat 16.06.2020

[37] DJI, ,,MAVIC AIR 2’’,

https://www.dji.com/mavic-air-2, accesat 16.06.2020

[38] My Drone Lab, ,,DBPOWER X600C’’,

https://www.mydronelab.com/reviews/dbpower-x600c.html, accesat 16.06.2020

[39]DJI, ,,SPREADING WINGS S900’’,

https://www.dji.com/spreading-wings-s900, accesat 16.06.2020

[40] ProDrone, ,,ProDrone DELIX’’,

https://www.prodrone.com/release-en/2052/, accesat 16.06.2020

[41] UBROBOT, ,,Alpha1 Pro’’,

https://www.ubtrobot.com/products/alpha-1p?ls=en, accesat 16.06.2020

[42] News Atlas, ,,Hexapod robot folds for transit, walks out for missions, dances for fun’’

https://newatlas.com/robugtix-z6-portable-hexapod-robot/57722/, accesat 16.06.2020

[43] Spectrum IEEE, ,,Salto 1P’’,

https://spectrum.ieee.org/automaton/robotics/robotics-hardware/salto1p-is-the-most-amazing-jumping-robot-weve-ever-seen, accesat 16.06.2020

[44] Aerospace Honeywell, ,,TPE331 Turboprop Engine’’,

https://aerospace.honeywell.com/en/learn/products/engines/tpe331-turboprop-engine, accesat 16.06.2020

[45] Jsumo Robot Kits, ,,OMEGA Sumo Robot Full kit’’,

https://www.jsumo.com/omega-sumo-robot-full-kit-assembled, accesat 16.06.2020

[46] Enciclopedia Wikipedia, ,,PID controller’’,

https://en.wikipedia.org/wiki/PID_controller, accesat 16.06.2020

[47] Enciclopedia Wikipedia, ,,Analog-to-digital converter’’,

https://en.wikipedia.org/wiki/PID_controller, accesat 16.06.2020

[48] Senasys Photosensors, ,,Retroreflective sensors’’,

http://senasysphotosensors.com/photoelectric-sensors/retroreflective-sensors, accesat 16.06.2020

[49] Senasys Photosensors, ,,Thru beam sensors’’,

http://senasysphotosensors.com/photoelectric-sensors/thru-beam-sensors, accesat 16.06.2020

[50] Senasys Photosensors, ,,Diffuse mode sensors’’,

http://senasysphotosensors.com/photoelectric-sensors/diffuse-mode-sensors, accesat 16.06.2020

[51]PJRC, ,,Teensy USB Development Board’’,

https://www.pjrc.com/store/teensy35.html, accesat 16.06.2020

[52] Maxon Group, ,,Maxon RE40’’,

https://www.maxongroup.com/maxon/view/product/motor/dcmotor/re/re40/148867, accesat 16.06.2020

[53] Dimension Engineering, ,,Sabertooth 2×60’’,

https://www.dimensionengineering.com/products/sabertooth2x60, accesat 16.06.2020

[54] US DIGITAL, ,,E4T MINIATURE OPTICAL KIT ENCODER’’,

https://www.usdigital.com/products/encoders/incremental/kit/E4T, accesat 16.06.2020

[55] Dimension Engineering, ,, Kangaroo x2 motion controller”,

https://www.dimensionengineering.com/products/kangaroo, accesat 16.06.2020

Catalog

[56] Mouser Electronics, ,,APS2241S’’,

https://ro.mouser.com/ProductDetail/Panasonic/APS2241S?qs=EU6FO9ffTweftwM%252BklQfEQ%3D%3D, accesat 16.06.2020

[57] NC7SZ08 TinyLogic UHS Two-Input AND Gate, ON Semiconductor, https://www.onsemi.com/pub/Collateral/NC7SZ08-D.PDF

[58] TLV350, Texas Instruments,

https://www.ti.com/lit/ds/symlink/tlv3501.pdf?ts=1592771296911&ref_url=https%253A%252F%252Fwww.google.com%252F

[59] GP2S60, Sharp,

https://www.ti.com/lit/ds/symlink/tlv3501.pdf?ts=1592771296911&ref_url=https%253A%252F%252Fwww.google.com%252F

[60] E3Z D81, Omron, Cat No. E308-E3-3,

https://www.mouser.com/datasheet/2/307/D04E3Z1204-27342.pdf

Documente

[61] Țarcă Radu, curs Bazele Roboticii anul 3, semstrul 1, ROBOTICA, Universitatea din Oradea

Similar Posts