Șef Lucr. Dr. Ing. Florin Liviu Manta Iulie 2018 CRAIOVA Sisteme de vedere artificială în controlul roboților mobili autonomi Bogdan Andrei Popescu… [310575]
PROIECT DE DIPLOMĂ
Bogdan Andrei Popescu
COORDONATOR ȘTIINȚIFIC
Șef Lucr. Dr. Ing. Florin Liviu Manta
Iulie 2018
CRAIOVA
Sisteme de vedere artificială în controlul roboților mobili autonomi
Bogdan Andrei Popescu
COORDONATOR ȘTIINȚIFIC
Șef Lucr. Dr. Ing. [anonimizat]: [anonimizat], Calculatoare și Electronică a [anonimizat], [anonimizat]:
[anonimizat], Șef Lucr. Dr. Ing. Florin Liviu Manta
prezentată în sesiunea Iulie 2018.
[anonimizat]:
reproducerea exactă a [anonimizat]-o [anonimizat]-o [anonimizat],
[anonimizat], [anonimizat] a unor aplicații realizate de alți autori fără menționarea corectă a [anonimizat] a [anonimizat].
Pentru evitarea acestor situații neplăcute se recomandă:
plasarea între ghilimele a citatelor directe și indicarea referinței într-o [anonimizat] a [anonimizat] a sursei originale de la care s-a [anonimizat] s-[anonimizat], figuri, imagini, statistici, [anonimizat], a căror paternitate este unanim cunoscută și acceptată.
Data, Semnătura candidat: [anonimizat],
PROIECTUL DE DIPLOMĂ
REFERATUL CONDUCĂTORULUI ȘTIINȚIFIC
În urma analizei lucrării candidat: [anonimizat]:
[anonimizat]:
Data, [anonimizat]
.
Termenii cheie: [autorul va enumera aici cuvintele cheie ale lucrării].
PROLOG
CUPRINSUL
LISTA FIGURILOR
Figura 1. Selectarea prin click dreapta a opțiunii „Update field” 6
Figura 2. Actualizarea întregului tabel 7
LISTA TABELELOR
Tabelul 1. Nume de utilizatori și valorile rezumat ale parolelor acestora 5
[anonimizat] o zonă desemnată. Arhitectura robotului mobil se bazează pe o structură cu 2 [anonimizat]-motor și 1 roată cu bilă în partea din față. [anonimizat] (SBC) – placa de dezvoltare Raspberry Pi 3 model B, cu o cameră Raspberry Pi V2 capabilă să detecteze codurile QR. [anonimizat] o rutină pentru a decoda codul QR plasat pe pistă și pentru a returna informațiile codificate. [anonimizat]. Pentru a rula algoritmii de mișcare a motoarelor vom folosi placa de dezvoltare Arduino Uno, dar și pentru a înregistra datele primite de la senzorii de reflexie analogici.
Motivația
Motivul principal alegerii acestei teme se datorează interesului meu privind roboții mobili autonomi. Încă de mic copil am fost fascinat de domeniul auto, iar de când sunt student al Facultății de Automatică, Calculatoare și Electronică am descoperit foarte multe lucruri legate de domeniul vehiculelor autonome după ce mai multe companii mari din țara noastră au prezentat ultimele tehnologii din acest domeniu la noi în facultate, ceea ce m-a atras și mai mult în studierea lor, iar cu ajutorul cunoștințelor dobândite în cei patru ani de facultate, dar și pe cont propriu, am reușit să pun în aplicare acest proiect.
Un alt motiv pentru care am ales această temă de licență este și apariția unei oportunități de a participa la concursul Continental Technical Competition 2018-Sibiu Urban Quest, care a constat în dezvoltarea unui robot mobil autonom care să fie capabil să identifice coduri QR, să urmeze linia unui traseu și să semnalizeze parcurgerea unor check point-uri.
Lucrarea de licență pe care eu am să o abordez poate avea, de asemnea, aplicații utile și în industria companiilor care necesită transportul unor materiale dintr-un punct în altul fără intervenția unui om, astfel se realizează o reducere considerabilă de fonduri pe termen lung, deoarece nu va mai fi nevoie de angajarea a mai multor șoferi care să conducă aceste vehicule speciale pentru transporatea acelor materiale, ci va fi nevoie de angajarea a doar unei singure persoane îndatorată cu mentenanța acestor vehicule autonome.
Așadar, lucrarea mea de licență, chiar dacă nu este o idee nouă, tratează o problemă de actualitate, adică tehnologia vehiculelor autonome, care este în plină dezvoltare, dar se află totuși într-o fază incipientă.
Stadiul curent în domeniul roboților mobili
În această secțiune se vor regăsi informații generale despre roboții mobili, dar și stadiul tehnic actual al roboților mobili autonomi.
Clasificarea roboților mobili
Roboții mobili sunt capabili să se deplaseze în mediul lor și nu sunt fixați într-o singură locație fizică. Aceștia sunt de două tipuri, și anume RMA – roboți mobili autonomi, ceea ce înseamnă că aceștia sunt capabili să navigheze într-un mediu necontrolat fără a fi nevoie de dispozitive de orientare fizică sau electro-mecanică, și VAG – vehicule autonome ghidate, care se pot baza pe dispozitive de orientare care le permit să se deplaseze pe un traseu predefinit într-un spațiu relativ controlat.
Roboții mobili pot fi clasificați după:
Mediul în care se deplasează:
Roboți tereștri, care sunt sunt denumiți de obicei vehicule terestre fără pilot;
Roboți aerieni, care sunt denumiți în general vehicule aeriene fără pilot;
Roboți acvatici care sunt denumiți în mod uzual vehicule autonome subacvatice;
Sistemul care le permite deplasarea:
Roboți cu picioare: bipezi, patrupezi, hexapozi, miriapozi;
Roboți pe roți;
Roboți pe șenile;
Roboți sub formă sferică;
Roboți târâtori;
Roboți săritori.
Dimensiune:
Nano roboți;
Micro roboți;
Macro roboți.
Robotul mobil proiectat și prezentat în această temă se regăsește în categoria micro roboților tereștri pe roți.
Metode de navigare a roboților mobili
Teleoperare manuală
Un robot teleoperat manual este controlat total de un operator cu un joystick sau un alt dispozitiv de comandă. Dispozitivul poate fi conectat direct la robot, poate fi un joystick wireless sau poate fi un accesoriu la un computer wireless, sau la alt controller. Un robot teleoperat este folosit în mod obișnuit pentru a ține pe operator departe de pericol. Exemple de roboți teleoperați manual de la distanță sunt Robot Design ANATROLLER ARI-100 și ARI-50, Talon Foster-Miller, iRobot's PackBot și KumoTek MK-705 Roosterbot.
Teleoperare supravegheată
Un robot cu teleoperare supravegheată are capacitatea de a simți și de a evita obstacolele, dar în caz contrar va naviga așa cum este condus, ca un robot sub teleoperare manuală. Foarte puțini roboți mobili oferă teleoperare supravegheată.
Operare autonomă
Un robot autonom cunoaște cel puțin câteva informații despre locul unde este plasat și despre cum să atingă diferite obiective și puncte de parcurs de-a lungul traseului. Localizarea sau cunoașterea locației sale curente se calculează prin unul sau mai multe mijloace, folosind senzori precum encodere, stereopsis, lasere și sisteme globale de poziționare. Sistemele de poziționare folosesc adesea triangulația, poziția relativă și/sau localizarea Monte-Carlo/Markov pentru a determina poziția și orientarea platformei, de unde poate planifica o cale către următorul punct sau obiectiv. Poate colecta datele citite de către senzori care sunt marcate în funcție de timp și de locație. Astfel de roboți fac adesea parte din rețeaua de întreprinderi wireless, interfațând cu alte sisteme de detectare și control din clădire. De exemplu, robotul de securitate PatrolBot răspunde la alarme, acționează elevatoarele și notifică centrul de comandă atunci când apare un incident. Alți roboți autonomi includ roboții de transport SpecialMinder și TUG pentru spital. În 2013, roboții autonomi capabili să găsească lumina soarelui și apă pentru plantele în ghiveci au fost creați de către artistul Elizabeth Demaray în colaborare cu inginerul dr. Qingze Zou, biologul Dr. Simeon Kotchomi și cercetătorul în domeniul informaticii Dr. Ahmed Elgammal.
Exemplu de operare autonomă:
Robot Line-follower
Figura 1. Robot Line-Follower
Unele dintre cele mai vechi vehicule autonome ghidate (VAG-uri) au fost roboții mobili line follower. Ei pot urma o linie vizuală proiectată sau încorporată în podea sau tavan, sau pot urma un fir electric în podea. Majoritatea acestor roboți au ca operare un algoritm simplu care se bazează pe păstrarea liniei pe centrul senzorului. Nu pot să evite obstacole; ei doar se opresc și așteapta când ceva le-a blocat calea. Multe exemple de astfel de vehicule sunt încă vândute de către Transbotics, FMC, Egemin, HK Systems și multe alte companii. Aceste tipuri de roboți sunt încă foarte populari în societățile robotice bine cunoscute, ca un prim pas spre învățarea ascunzișurilor roboticii.
Aplicații ale roboților mobili
Aplicațiile și potențialele aplicații ale roboților mobili sunt nenumărate. În domeniul industriei, ei pot fi utilizați aproape pentru orice, de la mutarea containerelor în porturi (o aplicație demonstrată în 1994) până la curățarea zăpezii de pe pistele de aeroport.
În domeniul studiului științific, roboții mobili oferă un mijloc de a efectua cercetări în medii care sunt inaccesibile în prezent sau pentru totdeauna oamenilor. De exemplu în anul 1997 NASA a utilizat un vehicul robotic pentru colectarea datelor în timpul expediției Mars Pathfinder, vehicul care a câștigat o atenție larg răspândită în întreaga lume la acea vreme. Mici roboți submarini, cunoscuți sub denumirea de vehicule autonome subacvatice, au luat în unele cazuri locul tehnologiei acustice de teledetecție pentru a cartografia topografia fundului mării și oceanelor. Ei au fost folosiți, de asemenea, și în zone impenetrabile metodelor tradiționale – de exemplu, pentru cartografierea orificiilor hidrotermale sub Oceanul Arctic.
Aplicații pentru tehnologia robotică în domeniul securității și a funcțiilor conexe apar tot mai rapid de la an la an. La cel mai simplu nivel, un vehicul robotic ar putea fi folosit pentru a patrula un garaj de parcare prin furnizarea de date video în timp real la un centru de securitate. Marina americană din anii 1980 a început să utilizeze vehicule subacvatice autonome pentru a desfășura operațiuni miniere în Golful Persic. În 1996, oamenii de știință de la Laboratorul Național Lawrence Livermore au creat un prototip pentru un vehicul robotizat, care ar putea fi echipat pentru o varietate de sarcini, incluzând nu numai detectarea și dezafectarea minei, ci și colectarea de informații.
În anul 2000, Design News a raportat că tehnicienii de la Sandia National Laboratory au fost în curs de elaborare a unei mașini extrem de sofisticate numită MARV sau vehicul miniatural autonom robotic. Foarte mic – un cub de 16,4 mm în mărime – MARV este proiectat pentru scopuri cum ar fi supravegherea unei zone contaminate, curățarea și dezactivarea minelor sau localizarea armelor biologice. Inginerii de la Sandia au abordat problema corectării cursului robotului MARV prin intermediul software-ului bazat pe algoritmi genetici, o inovație fascinantă destinată să imite funcțiile unui creier uman.
Exemple de roboți mobili autonomi
Robotul autonom Summit XL 4WD
Figura 2. Robotul autonom Summit XL 4WD
Robotul autonom Summit XL 4WD este dezvoltat de compania Robotnik Automation S.L.L. cu sediul în Valencia, Spania și este un robot mobil de dimensiune medie, 693 mm lungime x 626 mm lățime x 417 mm înălțime, cu o greutate de aproximativ 30 de kilograme, însă cu o mobilitate ridicată la toate tipurile de teren, poate urca pante cu o înclinație de până la 45°, și cu performanțe extreme atingând viteze de până la 3 metri pe secundă. Este ideal pentru cercetare și ca robot de testare pentru dezvoltarea aplicațiilor, atât pentru aplicații interioare cât și exterioare. Robotul are o autonomie de 180 de minute fiind alimentat de 8 acumulatori LiFePO4 de 3.3V.
Sistemul de deplasare dispune de o direcție cu funcție anti-derapare bazată pe patru servomotoare de mare putere, unul pentru fiecare roată în parte. Fiecare roată integrează un servomotor fără perii (brushless) de 250W, cu cutie de viteze și encoder (opțional). Robotul se poate deplasa în diferite zone cu temperaturi între 0 și 50 de grade Celsius, fără probleme.
Odometria se calculează cu ajutorul celor patru encodere (opțional) și un senzor unghiular de înaltă precizie montat în interiorul șasiului. Structura mecanică puternică permite efectuarea unor sarcini mult mai grele, robotul poate să care greutăți de până la 20 de kilograme. Există mai multe posibilități de alegere a suspensiei, ele pot fi de asemenea montate în mai multe poziții pentru a câștiga spațiu.
Baza robotului poate naviga autonom sau teleoperat cu ajutorul unei camere PTZ opționale, care transmite în timp real imagini video. Opțiunile comune ale senzorilor includ un scaner laser Hokuyo și o gamă de echipamente RTK-DGPS. Dispozitivul are și conectori interni (USB, RS232, GPIO și RJ45) și externi (USB, 12 și 24VDC) pentru a adăuga cu ușurință componente personalizate.
Arhitectura de control este deschisă și modulară, bazată pe ROS (Robot Operating System) care oferă biblioteci și instrumente pentru a ajuta dezvoltatorii de software să creeze aplicații robot. Acesta oferă abstracție hardware, drivere de dispozitiv, biblioteci, vizualizatori, transmiterea mesajelor, gestionarea pachetelor și multe altele.
ROS-ul definește o arhitectură software bine organizată a robotului și include sute de pachete contribuite de utilizator și seturi de pachete numite "ținte", care implementează funcționalități ca localizare și cartografiere, planificare, manipulare, percepție etc. Această caracteristică simplifică ciclul de dezvoltare a software-ului și permite integrarea ușoară și reutilizarea componentelor software indiferent dacă acestea sunt drivere de dispozitive sau algoritmi de ultimă generație în viziune, SLAM, procesarea cloud-point-urilor, apucare, planificare, rotire etc.
Figura 3. Sistemul de operare al robotului
Robotul autonom Summit XL 4WD are aplicații în cercetare, supraveghere, militar, monitorizare de la distanță, accesul în zonele periculoase.
Robotul autonom TeleRetail
TeleRetail dezvoltă un serviciu de livrare automată cu roboți de curierat pentru logistică urbană și suburbană. Vehiculele autonome sunt comandate de către utilizatori la cerere, pentru a livra produse, piese de schimb, etc. la nivel local în aceeași zi. Capacitatea lor de a livra în mod autonom bunuri pe un teritoriu desemnat le permite să îndeplinească nevoia de creștere rapidă a logisticii urbane și suburbane din punct de vedere al eficienței costurilor, conservării energiei și a spațiului.
Figura 4. Robotul autonom pentru livrări TeleRetail
TeleRetail nu este prima companie care experimentează tehnologii noi pentru a automatiza propriile servicii de livrare, alte companii precum Amazon (USA), Google (USA), și DHL (Germania), vor să-și automatizeze serviciile de livrare folosind drone, însă TeleRetail se concentrează pe vehiculele terestre autonome, care sunt mult mai puțin dependente de vreme și pot transporta colete mai grele.
TeleRetail oferă o platformă de automatizare logistică cu robotul său de curierat. Un utilizator trebuie doar să precizeze punctele de preluare și livrare și să facă clic pe un buton pentru a solicita o livrare – sistemul are grijă de următorii pași și se asigură că livrarea este finalizată conform cerințelor.
Platforma de automatizare logistică folosită de acest robot mobil gestionează livrările solicitate în mod automat, fără a fi necesară implicarea sau supravegherea umană. Platforma conține diverse aplicații pentru utilizatori și permite automatizarea tuturor etapelor livrării în mod eficient. Un modul de inteligență artificială asigură faptul că sistemul poate învăța și funcționa mai bine pe baza datelor colectate.
Datorită platformei senzor-fuziune, roboții de curierat pot conduce complet autonom. Platforma senzor-fuziune colectează datele de la diferiți senzori de pe robot, cum ar fi receptorul GNSS, Lidar, Camera etc., și filtrează datele pentru a verifica poziția actuală a robotului și pentru a naviga robotul către țintă. Toate datele sunt procesate direct de robot, permițând reacția rapidă a robotului în cazul unor obstacole neașteptate.
Tehnologia Lidar folosită de robotul autonom de livrare TeleRetail este un acronim pentru "Light Detection and Ranging" și declanșează impulsuri de lumină în mai multe direcții. Prin măsurarea perioadei de timp necesară fasciculelor de lumină pentru a ajunge pe o suprafață din jurul robotului și înapoi la senzor, acesta poate detecta cât de departe este robotul mobil de obiectele din jurul acestuia. Deoarece senzorii lidar emit lumină proprie, pot funcționa independent de iluminatul ambiental, iar mulți cred că este cel mai precis instrument de localizare disponibil. Cu toate acestea, lidar are o serie de limitări. Vremea rea, în special ceața și ploaia, pot interfera cu impulsurile luminoase și pot determina senzorii să detecteze obstacole care nu există. În plus, lidar nu poate identifica obiecte, ceea ce înseamnă că nu ajută un robot mobil să determine cum să navigheze în jurul unui anumit obiect sau obstacol sau cum să interacționeze cu el.
Alte tehnologii folosite de acest robot mobil:
Navigație prin satelit – Utilizarea DGNSS permite o acuratețe de navigare fantastică la nivel de câțiva centimetrii. Astfel de niveluri de precizie pot fi obținute numai cu DGNSS. GNSS diferențial (DGNSS) este un tip de sistem de augmentare GNSS bazat pe o îmbunătățire a GNSS prin utilizarea unei rețele de stații de referință la sol care permit transmiterea informațiilor diferențiale către utilizator – numită și rover – pentru a îmbunătăți acuratețea poziției sale – integritatea nu este asigurată.
Comunicare prin satelit – Utilizarea urmăririi prin satelit permite supravegherea globală, ceea ce nu poate fi realizat prin urmărirea de pe pământ. Acest lucru permite o acoperire globală și permite urmărirea perfectă pentru a maximiza securitatea și pentru a evita furtul.
Observarea pământului – Utilizarea imaginilor prin satelit oferă cea mai rentabilă metodă de a crea hărți de înaltă definiție aproape în timp real, iar aceste hărți pot fi folosite ca sursă de informație pentru navigare.
În prezent robotul autonom de livrare TeleRetail este în faza de prototip și este folosit doar de către poșta națională elvețiană pentru a aduna date care să ajute la dezvoltarea robotului pe viitor și aducerea lui la un stadiu optim pentru utilizarea lui în viața de zi cu zi, proiectul are și susținerea poștei naționale a SUA.
Robot de patrulare și transport
Figura 5. Robot de patrulare și transport
O protecție sigură în ziua de astăzi pentru majoritatea terenurilor private implică un ofițer de securitate cu obiectivul de a conduce etape de patrulare, la diferite intervaluri de timp, în spațiile securizate. Patrularea trebuie să se facă în mod regulat și cu cât ofițerul supraveghează sediul mai mult timp, cu atât mai greu este ca un intrus să comită acte ilegale. Cu toate acestea, patrula este adesea un serviciu costisitor care se bazează pe profesionalismul și angajamentul personalului implicat; prin urmare, aceasta implică o investiție mai costisitoare pe termen lung a salariilor, a beneficiilor și a eforturilor de gestionare. Odată cu apariția unor roboți mobili autonomi concepuți pentru a face față provocărilor legate de patrulare și protecție, este acum posibilă reducerea costurilor și îmbunătățirea calității serviciilor de patrulare în zonă.
Roboții de patrulare și securitate sunt capabili să se deplaseze de-a lungul zonei de patrulare în mod autonom. Datorită unui sistem integrat de ghidare automată, robotul mobil are capacitatea de a lua în mod independent decizii privind ocolul obstacolelor și alegerea traseului optim de urmat. Sistemul de supraveghere instalat pe robot transmite imagini ale împrejurimilor fie către punctul de pază, fie direct către smartphone-ul, tableta, PC-ul ofițerului de sercuritate.
Robotul de patrulare este aproape silențios atunci când se mișcă, deoarece folosește motoare electrice și baterii moderne de înaltă capacitate cu greutate redusă care oferă suficientă putere pentru patrulare timp de opt ore. Robotul este întotdeauna prezent pe traseul său de patrulare; spre deosebire de ființele umane, nu are nevoie să se odihnească și nu are nevoie să fie supravegheată de sisteme de urmărire a agenților de pază. Orice timp de inactivitate poate fi redus semnificativ prin instalarea posturilor de încărcare automate în acele locuri unde robotul face opriri îndelungate pentru supravegherea video staționară.
Un robot poate fi mai vizibil prin activarea luminilor intermitente încorporate. Robotul de patrulare își poate modifica traseul în cazul în care se declanșează senzorii staționari de alarmă. Această caracteristică este utilă în special în timp ce robotul patrulează o zonă îndepărtată a terenului.
Un robot de securitate și patrulare este echipat cu un sistem de supraveghere video de 360 de grade. Sistemul de supraveghere este alcătuit din șase camere pentru observare panoramică și o cameră PTZ pentru urmărirea obiectelor la distanțe mai mari. În modul automat, sistemul de supraveghere video direcționează camera PTZ la orice sursă de mișcare care poate fi detectată de camerele panoramice. În modul manual, un operator uman poate controla camera PTZ.
O unitate integrată WiFi de mare putere este utilizată pentru vizualizarea imaginilor, controlul camerei PTZ și controlul mișcării robotului de-a lungul rutei. Comunicarea wireless în cadrul sistemelor robotului permite ca statutul și poziția acestuia să fie afișate pe o hartă a terenului pe computerele desktop dintr-o centrală de monitorizare sau pe tableta, smartphone-ul agentului de pază. Zonele de-a lungul rutei de patrulare care au o rețea WiFi instabilă pot cauza o restricționare a funcționalității online de supraveghere video. Pentru a asigura continuitatea documentației de supraveghere video, imaginile de la toate camerele sunt înregistrate pe un DVR încorporat.
Robotul mobil ALPR
Figura 6. Robotul mobil ALPR
Robotul mobil ALPR este un robot mobil autonom care are un sitem de recunoaștere a plăcuțelor de înmatriculare a autovehiculelor.
Identificarea vehiculelor prin intermediul recunoașterii automate a plăcuței de înmatriculare este utilizată pe scară largă pentru a preveni și înregistra încălcări ale codului de trafic rutier. În unele cazuri, procesul de recunoaștere a plăcuței de înmatriculare poate fi automatizat prin instalarea unui modul de recunoaștere automată a plăcuței de înmatriculare (ALPR) pe un robot mobil. Această soluție permite unei entități să reducă semnificativ costurile operaționale și să extindă aplicarea sistemelor.
Robotul mobil ALPR este ideal pentru patrularea locurilor de parcare și a altor zone de parcare. Robotul se deplasează de-a lungul rutei și înregistrează automat plăcuțele de înmatriculare și locațiile tuturor autoturismelor parcate în zonă. Viteza de deplasare a unui robot este comparabilă cu viteza de mers pe jos a pietonilor. Robotul mobil ALPR evită automat obstacolele pe care le întâmpină.
Robotul mobil poate fi echipat cu două camere pentru citirea plăcuțelor de înmatriculare. Acest lucru permite robotului să recunoască simultan plăcuțele de înmatriculare ale autovehiculelor pe ambele părți, în timp ce se deplasează printre ele. Robotul este echipat cu șase camere, care oferă o vedere panoramică și conduc, de asemenea, supravegherea mobilă pentru a asigura securitatea.
Securitatea unei zone de parcare subterane reprezintă baza funcționării sale robuste. Cu robotul ALPR, este posibil să se atingă un nou nivel de securitate. Patrolând parcarea noaptea, robotul mobil ajută la prevenirea vandalismului și a altor daune auto sau de proprietate. Robotul este echipat cu un sistem panoramic de supraveghere video, potrivit pentru funcționare în condiții de iluminare slabă. Șase camere situate într-un cerc formează o vedere panoramică de 360 de grade. Imaginea este transmisă prin intermediul unui modul WiFi încorporat. În combinație cu camerele standard fixe, sistemul de supraveghere video mobilă asigură un control total asupra întregii zone de parcare. Sistemul de recunoaștere automată a plăcuței de înmatriculare permite personalului autorizat să verifice plăcuțele de înmatriculare ale autoturismelor din parcare și să le detecteze pe cele cu cazier judiciar.
Aeroporturile și parcările mall-urilor sunt concepute pentru un număr mare de autoturisme și adesea necesită mult timp pentru proprietari să-și găsească vehiculul atunci când este timpul de plecare. Mai mulți roboți autonomi care se mișcă liber în jurul parcării sunt capabili să compileze și să actualizeze o bază de date live a locațiilor autovehiculelor.
Robotul autonom OTTO 1500
Figura 7. Robotul autonom OTTO 1500
OTTO 1500 este un robot mobil autonom capabil să se deplaseze cu 2 m/sec. în timp ce transportă până la 1500 kg. OTTO 15OO navighează spațiile la fel ca o persoană. Menține o hartă a spațiului în memoria sa și utilizează puncte de referință vizuale pentru a cunoaște întotdeauna poziția sa.
În plus față de sarcina enormă pe care o poate deplasa, lucrul cel mai important de știut despre OTTO este că nu necesită nicio infrastructură de ajutor pentru a se deplasa. OTTO nu are nevoie de coduri de bare pe podea (ca și Kiva Systems, sau roboții de depozitare Amazon Robotics), lumini pe tavan, balize în holuri, etichete IDFR pe pereți, joystick-uri sau orice altă formă de dispozitive de navigație. Are lasere cu o rază de 20 de metri în față și în spate (există și opțiune pentru o rază de 50 de metri) și poate localiza o hartă de bază existentă cu o precizie de aproximativ un centimetru. OTTO nu are nici o problemă în ceea ce privește schimbarea ambianței și poate manevra în jurul obstacolelor incomode, inclusiv în jurul persoanelor, chiar și a celor în mișcare, asta datorită senzorilor LIDAR din fața și spatele robotului. Atunci când întâmpină un obstacol, OTTO emite o serie de bipuri, compania Clearpath Robotics, care a proiectat robotul, se referă la aceste sunete ca și cum OTTO ar "comunica politicos" intențiile sale. Dacă obstacolul nu se mișcă, OTTO va calcula o altă rută până la destinație. Vehiculul dispune, de asemenea, de patru butoane de oprire de urgență.
OTTO poate fi echipat cu mai multe dispozitive, inclusiv cărucioare, manipulatoare, ascensoare și transportoare. Între sarcini, vehiculul se va conduce la o stație de încărcare cu auto-andocare.
Robotul autonom OTTO 1500 are o autonomie de 8 ore, iar robotul poate funcționa continuu 24/7 cu un timp de funcționare individuală de 85% prin vizite automate și scurte la încărcătorul OTTO la momente potrivite, fără intervenție umană. Nivelurile de încărcare a bateriilor sunt gestionate în mod inteligent de managerul de OTTO Fleet, raportul dintre încarcare și timpul de funcționare fiind de 1:6.
Luând în considerare modelele de roboți prezentați anterior noi ne-am propus să construim un robot care să fie capabil să conducă independent pe o zonă desemnată. Arhitectura robotului mobil se bazează pe o structură cu 2 roți pe partea din spate, fiecare roată acționată de un micro-motor și 2 roți cu bile în partea din față. Pe această structură, instalăm un single board computer (SBC) – placa de dezvoltare Raspberry pi 3 model B, cu o cameră Raspberry Pi capabilă să detecteze codurile QR. SBC va rula un cod, care va include o rutină pentru a decoda codul QR plasat pe pistă și pentru a returna informațiile codificate. Între codurile QR, robotul mobil va urma traseul cu ajutorul unor senzori de reflexie analogici. Pentru a rula algoritmii de mișcare a motoarelor vom folosi placa de dezvoltare Arduino Uno, dar și pentru a înregistra datele primite de la senzorii de reflexie analogici, asta pentru că Raspberry Pi nu are pini analogici.
Achiziția imaginilor
O imagine poate fi definită ca o funcție 2-D f (x, y) unde (x, y) este coordonată în spațiul bidimensional și f este intensitatea acestei coordonate. Fiecare poziție de coordonate este numită pixel. Pixelul este cea mai mică unitate a imaginii, numită și element de imagine sau pel. Astfel, imaginile digitale sunt compuse din pixeli, fiecare pixel reprezentând culoarea (nivelul de gri pentru imaginile alb-negru) într-un un singur punct al imaginii. Pixelul este ca un punct mic de culoare particulară. O imagine digitală este o matrice rectangulară de pixeli numită și Bitmap. Din punct de vedere al fotografiei, imaginile digitale sunt de două tipuri: imagini alb-negru și imagini color.
Tipuri de imagini
Imagini alb-negru
Imaginile alb-negru sunt făcute din nuanțe diferite de gri. Aceste nuanțe diferite se află între 0 și 255, unde 0 se referă la negru, iar 255 se referă la valori albe și intermediare și se referă la diferite nuanțe de alb și negru. Grayscale se referă la gama de valori de tonuri neutre (nuanțe) de la negru la alb.
Imagini color
Achiziția de imagini digitale este crearea unei reprezentări digitale codificate a caracteristicilor vizuale ale unui obiect, cum ar fi o scenă fizică sau structura interioară a unui obiect. Termenul se presupune adesea că sunt alcătuite din pixeli colorați. Culoarea poate capta o gamă mult mai largă de valori decât cea a tonurilor de gri. "Spectrul – banda de culori produsă atunci când lumina soarelui trece printr-o prismă – include miliarde de culori, dintre care ochiul uman poate percepe șapte până la zece milioane". Captarea și afișarea electronică a culorilor sunt complicate. RGB (roșu, verde și albastru) este cel mai frecvent adoptat include procesarea, comprimarea, stocarea, imprimarea și afișarea unor astfel de imagini. Un avantaj cheie al unei imagini digitale, în comparație cu o imagine analogică, cum ar fi o fotografie de film, este capacitatea de a face copii și copii ale copiilor digital pe o perioadă nedeterminată, fără a pierde calitatea imaginii.
Obiectivul general al achiziției imaginilor este transformarea unei imagini optice într-o serie de date numerice care ar putea fi ulterior manipulate pe un calculator, înainte ca orice procesare video sau de imagine să poată începe, o imagine trebuie captată de aparatul de fotografiat și transformată în o entitate administrabilă. Procesul de achiziție de imagini constă în trei etape:
Sistemul optic care concentrează energia
Energia reflectată de obiectul de interes
Un senzor care măsoară cantitatea de energie
Achiziția de imagini este realizată de o cameră adecvată. Folosim camere diferite pentru aplicații diferite. Dacă avem nevoie de o imagine x-ray, folosim o cameră (film) sensibilă la raze X. Dacă vrem imaginea în infraroșu, folosim camere care sunt sensibile la radiațiile infraroșii. Pentru imaginile normale (imagini de familie etc.) folosim camere care sunt sensibile la spectrul vizual. Achiziția de imagini este primul pas în orice sistem de procesare a imaginilor.
Conceptul de achiziție al imaginii
Pentru a capta o imagine, o cameră necesită un fel de energie măsurabilă. Energia de interes în acest context este lumina sau mai general unde electromagnetice. O undă EM pot fi descrisă ca o entitate mai mică de masă, un foton, al cărui câmp electric și magnetic variază sinusoidal, de unde numele de undă. Un foton poate fi descris în trei moduri diferite :
Un foton poate fi descris de energia lui E (măsurată în eV)
Un foton poate fi descris prin frecvența sa f (H2)
Un foton poate fi descris prin lungimea lui de undă λ (m)
Detectorul cuantic este cel mai important mecanism de detectare și achiziție a imaginii, acesta se bazează pe energia fotonului absorbit fiind folosit pentru a avansa electronii din starea lor stabilă într-o stare mai ridicată deasupra pragului de energie. Ori de câte ori se întâmplă acest lucru, proprietățile acelui material se modifică într-un mod comensurabil.
Planck și Einstein au venit cu o relație între lungimea de undă λ a fotonului incident și a energiei E care îl poartă: E = (hc)/ λ
La coliziune, fotonul transferă toate sau nici unul din aceste energii cuantice către electron.
Model de achiziție a imaginilor
Imaginile sunt generate prin combinarea unei surse de iluminare și prin reflexia sau absorbția energiei de către elementele scenei care este înregistrată. Iluminarea poate proveni din radar, sursa de energie infraroșie, tiparul de energie generat de computer, sursa de energie cu ultrasunete, sursa de energie cu raze X etc.
Pentru a sesiza imaginea, folosim senzorul în funcție de natura iluminării. Procesul sensului imaginii se numește achiziție de imagini
Prin senzor, energia principală de iluminare este transformată în imagine digitală. Ideea este că energia de iluminare primită este transformată în tensiune prin combinarea energiei electrice de intrare și a materialului senzor care este receptiv la energia specifică care este detectată. Forma de undă de ieșire este răspunsul senzorului și acest răspuns este digitalizat pentru a obține o imagine digitală
Imaginea este reprezentată de funcția 2-D f (x, y). Practic, o imagine trebuie să fie non-zero și cantitate finită:
0< f(x, y) < ∞
Este, de asemenea, de discutat faptul că, pentru o imagine f (x, y), avem doi factori:
Cantitatea de sursă de incident de iluminare pe scena care este înregistrată. Să o reprezentăm: i(x, y);
Cantitatea de iluminare reflectată sau absorbită de obiect în scenă. Să o reprezentăm: r(x, y)
Din cele două relații prezentate mai sus, putem reprezenta f(x,y) după cum urmează:
f(x, y) = i(x, y).r(x, y)
Asta înseamnă că iluminarea va fi o cantitate non-zero și finită, iar cantitatea acesteia depinde de sursa de iluminare.
Tehnici pentru efectuarea achiziției de imagini
Procesul de achiziție a imaginilor depinde în totalitate de sistemul hardware care poate avea un senzor care este din nou un dispozitiv hardware. Un senzor convertește lumina în sarcini electrice. Senzorul din interiorul unei camere măsoară energia reflectată de scena care este înfățișată. Senzorul de imagine folosit de majoritatea camerelor digitale este un dispozitiv cu senzori fotoelectrici CCD (Charged Coupled Device). Unele camere folosesc tehnologia CMOS (Complementary Metal Oxide Semiconductor).
Atât senzorii de imagine CCD cât și CMOS convertesc lumina în electroni. O modalitate simplificată de a vă imagina acești senzori este să vă gândiți la o serie 2-D de mii sau milioane de celule solare mici. Odată ce senzorul convertește lumina în electroni, ea citește valoarea (sarcina acumulată) a fiecărei celule din imagine. Un CCD transportă sarcina peste chip și o citește la un colț al matricei. Un convertor analog-digital (CAD) transformă apoi valoarea fiecărui pixel într-o valoare digitală prin măsurarea cantității de sarcină de la fiecare senzor foto și convertește acea măsură în formă binară. Dispozitivele CMOS utilizează mai multe tranzistoare la fiecare pixel pentru a amplifica și a muta sarcina utilizând fire mai tradiționale. Senzorii CCD creează imagini de înaltă calitate, cu zgomot redus. Senzorii CMOS sunt, în general, mai sensibili la zgomot.
Senzorii CMOS consumă în mod tradițional puțină putere. CCD-urile, pe de altă parte, utilizează un proces care consumă o mulțime de putere. CCD-urile consumă de 100 ori mai multă putere decât un senzor CMOS echivalent. Senzorii CCD au fost produși în masă pentru o perioadă mai lungă de timp, ei tind să aibă pixeli de calitate superioară.
Procesarea imaginilor
Procesarea imaginilor este o metodă de efectuare a unor operații pe o imagine, pentru a obține o imagine îmbunătățită sau pentru a extrage câteva informații utile din aceasta. Este un tip de procesare a semnalului în care intrarea este o imagine și ieșirea poate fi imaginea sau trăsăturile/caracteristicile asociate cu acea imagine. În zilele noastre, procesarea imaginilor se numără printre tehnologiile cu creștere rapidă. Formează o arie centrală de cercetare în domeniul disciplinelor de inginerie și informatică.
Procesarea imaginilor include în principal următorii trei pași:
Importarea imaginii prin intermediul instrumentelor de achiziție de imagini;
Analizarea și manipularea imaginii;
Ieșirea în care rezultatul poate fi o imagine modificată sau raportul bazat pe analiza imaginii.
Există două tipuri de metode utilizate pentru procesarea imaginilor, și anume, prelucrarea imaginilor analogice și digitale. Procesarea imaginilor analogice poate fi utilizată pentru copii tipărite precum imprimate și fotografii. Analiștii de imagini folosesc diverse metode de interpretare în timp ce folosesc aceste tehnici vizuale. Tehnicile digitale de procesare a imaginii ajută la manipularea imaginilor digitale prin utilizarea calculatoarelor. Cele trei faze generale pe care toate tipurile de date trebuie să le suporte în timp ce utilizează tehnica digitală sunt pre-procesarea, îmbunătățirea și afișarea, extragerea informațiilor.
Una dintre primele aplicații ale imaginilor digitale a fost în industria ziarelor, când fotografiile au fost trimise pentru prima dată prin cablu submarin între Londra și New York. Introducerea sistemului Bartlane de transmisie a imaginilor prin cablu, la începutul anilor 1920, a redus timpul necesar pentru a transporta o imagine de-a lungul Atlanticului de la mai mult de o săptămână la mai puțin de trei ore. Echipamente de imprimare specializate au codat imagini pentru transmisia prin cablu și apoi le-au reconstruit la capătul de recepție. Figura 8 a fost transmisă în acest fel și reprodusă pe o imprimantă telegrafică, dotată cu semne de simetrie care simulează un model de semiton.
Figura 8. Prima fotografie digitală
Unele dintre problemele inițiale în îmbunătățirea calității vizuale a acestor fotografii digitale timpurii au fost legate de selectarea procedurilor de tipărire și de distribuția nivelelor de intensitate. Metoda de imprimare utilizată pentru a obține Figura 8 a fost abandonată spre sfârșitul anului 1921 în favoarea unei tehnici bazate pe reproducerea fotografică realizată din benzi perforate la terminalul de recepție a telegrafului. Figura 9 prezintă o imagine obținută utilizând această metodă. Îmbunătățirile față de Figura 8 sunt evidente, atât în calitate tonală, cât și în rezoluție.
Figura 9. Imagine obținută folosind reproducerea fotografică realizată din benzi
Primele sisteme Bartlane au fost capabile să codifice imagini în cinci nivele distincte de gri. Această capacitate a fost mărită la 15 nivele în 1929. Figura 10 este tipică pentru tipul de imagini care ar putea fi obținute utilizând echipamentul cu 15 tonuri. În această perioadă, introducerea unui sistem pentru dezvoltarea unei plăci de film prin fascicule de lumină care au fost modulate de banda de imagini codată a îmbunătățit considerabil procesul de reproducere.
Figura 10. Imagine digitală cu 15 nivele de gri din anul 1929
Exemple de domenii care utilizează procesarea digitală a imaginii
Astăzi, aproape că nu există nici o zonă de efort tehnic care să nu fie afectată în vreun fel de procesarea digitală a imaginilor. Putem acoperi doar câteva dintre aceste aplicații în contextul și în spațiul discuțiilor actuale.
Imaginile bazate pe radiații din spectrul electromagnetic sunt cele mai cunoscute, în special imaginile din radiografie și benzile vizuale ale spectrului. Dacă benzile spectrale sunt grupate în funcție de energia pe foton, obținem spectrul prezentat în Figura 11, variind de la razele gamma (cea mai mare energie) la un capăt, la undele radio (cea mai mică energie) la cealălalt capăt.
Figura 11. Spectrul electromagnetic
Imagistica cu raze Gamma
Utilizările majore ale imaginilor bazate pe raze gama includ medicina nucleară și observațiile astronomice. În medicina nucleară, abordarea este de a injecta un pacient cu un izotop radioactiv care emite raze gama în timp ce se descompune. Figura 12 prezintă o imagine a unei scanări complete osoase obținută prin utilizarea imaginilor cu raze gamma.
Figura 12. Imagine realizată cu raze gamma
Imagistica cu raze X
Razele X sunt printre cele mai vechi surse de radiații electromagnetice folosite pentru imagistică. Cea mai cunoscută utilizare a razelor X este diagnosticarea medicală, dar acestea sunt, de asemenea, utilizate pe scară largă în industrie și în alte domenii, cum ar fi astronomia. Razele X pentru imagistica medicală și industrială sunt generate utilizând un tub cu raze X, care este un tub cu vid, cu catod și anod.
Figura 13. Imagine realizată cu raze X
Imagistica în bandă ultravioletă
Aplicațiile "luminii" ultraviolete sunt variate. Acestea includ litografia, inspecția industrială, microscopia, laserele, imagistica biologică și observațiile astronomice.
Figura 14. Imagine în banda ultravioletă
Imagistica în benzile vizibile și în infraroșu
Considerând că banda vizuală a spectrului electromagnetic este cea mai cunoscută în toate activitățile noastre, nu este surprinzător faptul că imagistica din această bandă depășește cu mult pe toate celelalte în ceea ce privește amploarea aplicației.
Banda infraroșie este adesea folosită împreună cu imagistica vizuală, așa că am grupat benzile vizibile și infraroșii în această secțiune pentru ilustrare. Aceste benzi sunt folosite în aplicații precum microscopie, astronomie, teledetecție, industrie și aplicare a legii.
Figura 15 prezintă o imagine obținută cu ajutorul unui microscop cu lumină în spectru infraroșu.
Figura 15. Imagine în spectru infraroșu
Vehiculul prezentat în Figura 16 este un exemplu de citire automată a plăcuței de înmatriculare. Dreptunghiul luminos indică zona în care sistemul de imagini a detectat placa. Dreptunghiul negru arată rezultatul citirii automate a conținutului plăcii de către sistem. Acesta este un exemplu al folosirii spectrului vizual.
Figura 16. Imagine în spectrul vizual
Imagistica în banda cu microunde
Aplicarea dominantă a imaginisticii în banda cu microunde este radarul. Caracteristica unică a radarului imaginistic este capacitatea sa de a colecta date din aproape orice regiune în orice moment, indiferent de condițiile meteorologice sau ambientale.
Unele unde radar pot penetra norii, în anumite condiții, pot penetra și prin vegetație, gheață și nisip uscat.
Figura 17 prezintă o imagine radar care acoperă o zonă montană accidentată din Tibetul de sud-est.
Figura 17. Imagine realizată în banda cu microunde
Imaginistica în banda radio
Ca și în cazul imaginisticii de la celălalt capăt al spectrului (razele gamma), aplicațiile majore ale imaginisticii în banda radio sunt în medicină și astronomie. În medicină, undele radio sunt utilizate în imagistica prin rezonanță magnetică (IRM).
Soluții alternative pentru achiziția imaginii
Pe roboții mobili se pot monta mai multe tipuri de cameră pentru achiziția imaginii precum camera de telefon mobil, camera de acțiune, camera de tip PTZ, camera web, modul cameră OV7670, modul cameră Raspberry Pi, etc.
Camera de telefon mobil și prelucrarea imaginii pe telefon
Camera telefonului mobil este un senzor foarte util pentru scanarea mediului, deoarece algoritmii de vizualizare de astăzi sunt adesea folosiți pentru a detecta obstacolele sau pentru a găsi direcția de deplasare a robotului mobil. Dezavantajul lor este că au cerințe ridicate pentru complexitatea computațională și consumă mult timp. De asemenea nu ne putem aștepta la o prelucrare a imaginii în timp real, dar ar putea exista câteva aplicații de bază pe care telefonul mobil le poate gestiona într-un timp relativ scurt.
Una dintre aceste aplicații de bază poate fi detectarea marginilor. Dacă lucrați cu camera dispozitivului mobil în modul de rezoluție inferioară, timpul de detectare a marginilor din imaginea de intrare este de câteva secunde. În Figura 18 este prezentată o aplicație care poate detecta marginile imaginii de intrare.
Figura 18. Imagine prelucrată pe telefonul mobil pentru detectarea marginilor
Detectarea marginilor nu este un algoritm final pentru detectarea obstacolelor, dar poate fi urmat și de alți algoritmi de vedere artificială care pot aduce un rezultat bun – cum ar fi găsirea de linii utilizând transformarea Hough sau detectarea unor zone de aceeași culoare folosind filtrul de culoare. Acești algoritmi de vedere artificială pot fi combinați cu un sonar pentru a detecta obstacolele și pentru a aduna informații despre ele.
Nu am ales să folosesc această soluție pentru că telefonul mobil are o dimensiune mult prea mare și o greutate însemnată.
Camera de acțiune
O altă soluție gasită în perioada de cercetare a fost folosirea camerei Eken H9 în combinație cu placa de achiziție Arduino UNO pentru că este o cameră rezistentă la șocuri și vibrații.
Figura 19. Camera de acțiune Eken H9
Camera Eken H9 avea avantajul unei rezoluții foarte bune la un preț foarte scăzut, filmând la o rezoluție 4K Ultra HD la 25 de frame-uri pe secundă. De asemenea avea avantajul unei alimentări proprii, camera alimentându-se de la un acumulator de 1050 mAh care asigură camerei un timp de funcționare de cel puțin 90 de minute. Un alt avantaj al acestei camere este faptul că are un unghi larg de 170°, dar și faptul că are WiFi încorporat ceea ce ne scutea de câteva fire în plus.
La fel ca și la camera telefonului mobil, Camera Eken H9 are o dimensiune și o greutate mult prea mare pentru robotul nostru, de aceea am fost nevoit să renunț la această soluție.
Camera de tip PTZ
Camerele de tip PTZ (Pan Tilt Zoom) sunt proiectate pentru a acoperi suprafețe foarte mari. Avantajul principal al acestui tip de cameră este că se poate roti la 360° în timpul funcționării. Toate camerele PTZ sunt dotate cu sistem de urmărire încorporat, care poate fi setat pentru a detecta mișcarea și a urmări persoana sau obiectul.
Figura 20. Cameră de tip PTZ
Camerele de tip PTZ dezvoltate în ultimii ani au capacitatea de a capta imagini în întuneric total. Acest lucru se realizează prin utilizarea unor LED-uri mici care emit lumină infraroșie și un filtru IR special pentru obiectivul camerei, care permite camerei PTZ să capteze imagini video excelente chiar și în condiții foarte întunecate. Majoritatea camerelor PTZ au, de asemenea, un LED IR cu reglare automată, care focalizează rapid imaginea atunci când deplasați camera în zone de întuneric complet.
Ca și celelalte două opțiuni de până acum, camera PTZ are o dimensiune și o greutate mult prea mare și nu este o soluție pentru robotul mobil proiectat de mine, de asemenea costul de achiziție a unei astfel de camere este destul de ridicat.
Camera Web
Camera Web este o cameră video care captează și tr+ansmite imagini sau filmulețe în timp real către un dispozitiv. În principal, camerele WEB se folosesc pentru computere, dar au aplicații și în robotica mobilă.
Figura 21. Cameră Web
Camerele Web includ în mod obișnuit un obiectiv, un senzor de imagine, suport electronic și pot include, de asemenea, un microfon pentru sunet. Sunt disponibile diverse obiective, cele mai frecvente în camerele de calitate pentru consumatori fiind un obiectiv din plastic care poate fi înșurubat și în afară pentru a focaliza camera. Lentile cu focalizare fixă, care nu dispun de ajustare, sunt, de asemenea, disponibile. Deoarece profunzimea unui sistem de cameră este mai mare pentru formatele de imagine mici și este mai mare pentru lentilele cu un număr mare de focalizare, sistemele utilizate în camere web au o profunzime suficient de mare încât utilizarea unui obiectiv cu focalizare fixă nu afectează în mare măsură claritatea imaginii.
Senzorii de imagine pot fi CMOS sau CCD, ultimul fiind dominant pentru camerele cu costuri reduse, dar camerele CCD nu depășesc neapărat performanțele camerelor CMOS în gama de prețuri reduse. Cele mai multe camere web pentru consumatori sunt capabile să furnizeze video de rezoluție VGA la o rată a cadrelor de 30 de cadre pe secundă. Multe dispozitive mai noi pot produce video în rezoluții multi-megapixeli, iar câteva pot rula la rate mari de cadre, cum ar fi PlayStation Eye, care poate produce video de 320×240 la 120 de cadre pe secundă.
Principalul dezavantaj al acestui tip de cameră este faptul că are ca și conexiune o mufă USB și asta ne limitează alegerile privind placa de achiziție a robotului. De asemenea, față de celelalte camere prezentate, acest tip de cameră are calitatea cea mai scăzută a imaginilor captate și are și cea mai mică rată de trimitere a imaginilor datorită conexiunii USB, astfel nici această cameră nu a fost o soluție viabilă pentru robotul mobil.
Modul cameră OV7670 pentru Arduino
OV7670 CAMERA este un senzor de imagine CMOS de joasă tensiune care oferă o funcționalitate completă a unei camere VGA cu un singur chip și a unui procesor de imagine într-un pachet de amprentă redusă. OV7670 oferă imagini de 8 biți cu cadru întreg, sub-eșantionat sau fereastră, într-o gamă largă de formate controlată prin interfața SCCB (Serial Camera Control Bus).
Figura 22. Modul cameră OV7670
Acest produs are o matrice de imagine capabilă să funcționeze cu până la 30 de cadre pe secundă (fps) în VGA, cu un control complet al utilizatorului asupra calității imaginii, formatării și transferului de date de ieșire. Toate funcțiile de procesare a imaginii, inclusiv controlul expunerii, gamma, balansul de alb, saturația culorii, controlul nuanței și multe altele, sunt, de asemenea, programabile prin interfața SCCB.
Câteva caracteristici ale acestui modul de cameră sunt:
Sensibilitate ridicată pentru funcționarea la lumină scăzută
Tensiune scăzută de operare pentru aplicațiile portabile încorporate
Suportă rezoluții VGA, CIF și rezoluții mai mici decât CIF pentru formatele RGB (GRB 4: 2: 2, RGB565 / 555), YUV (4: 2: 2) și YCbCr (4: 2: 2)
Funcții automate de control a imaginii, cum ar fi: Automatic Exposure Control (AEC), Automatic Gain Control (AGC), Automatic White Balance (AWB), Automatic Band Filter (ABF), and Automatic Black-Level Calibration (ABLC)
Controale de calitate a imaginii incluzând saturația culorilor, nuanța, gamma, claritatea (îmbunătățire margine) și anti-blooming
ISP include reducerea zgomotului și corecția imperfecțiunilor
Suportă LED și modul flash strobe
Reglarea automată a nivelului de saturație (ajustarea UV)
Reglarea automată a nivelului de zgomot
Reglarea automată a nivelul de îmbunătățire a marginilor
Nu am ales această soluție deoarece Arduino nu are o putere mare de calcul și, de asemenea, microprocesoul Atmega328 al plăcii de achiziție Arduino UNO are o memorie flash mult prea mică de doar 32 KB și astfel nu putem stoca imagini în timp real decât pentru o perioadă scurtă de timp.
Modul cameră Raspberry Pi V2
Modulul de Cameră Raspberry Pi V2 este un senzor de imagine Sony IMX219 de înaltă calitate, de 8 megapixeli, proiectat personalizat pentru plăcile Raspberry Pi, dotat cu un obiectiv cu focalizare fixă. Este capabil să facă poze statice cu o rezoluție de 3280 x 2464 pixeli și oferă, de asemenea, o rezoluție video de 1080p30, 720p60 și 640x480p60.
Figura 23. Modul cameră Raspberry Pi V2
Se atașează la Raspberry Pi printr-unul dintre socket-urile mici de pe suprafața superioară a plăcii și utilizează interfața dedicată CSi, concepută special pentru interfațarea cu camerele. Camera în sine este mică, de aproximativ 25mm x 23mm x 9mm. De asemenea, cântărește puțin peste 3g, ceea ce o face perfectă pentru aplicații mobile sau alte aplicații, unde dimensiunea și greutatea sunt importante.
Aceasta este soluția aleasă pentru realizarea robotului mobil propus deoarece are o dimensiune și o greutate mică, de asemenea are o rezoluție mai mult decât satisfăcătoare, iar placa de achiziție suportă instalarea unui card SD de 16 GB ceea ce ne oferă posibilitatea de a capta imagini în timp real pentru o perioadă îndelungată de timp.
Conectarea și configurarea modului de cameră Raspberry Pi V2
În primul rând, cu placa de achiziție Raspberry Pi oprită, va trebui să conectăm modulul camerei la portul corespunzător al lui Raspberry Pi, apoi să pornim placa de achiziție.
Figura 24. Conectarea modului de cameră la placa Raspberry Pi
Apoi, pentru a utiliza modulul de cameră Raspberry Pi, trebuie să activăm software-ul camerei pe placa de achiziție Raspberry Pi. Pentru a face asta avem două modalități.
În mediul Desktop, mergem la fereastra de configurație Pi din Raspberry sub meniul Preferințe.
Figura 25. Meniul Preferințe
După care deschidem fila Interfețe și activăm camera ca în figura de mai jos.
Figura 26. Meniul de configurare Raspberry Pi
Sau, în fereastra Terminal, tastăm următoarea comandă:
pi@raspberry:~ $ sudo raspi-config
După tastarea comenzii ar trebui să apară instrumentul de configurare a software-ului Raspberry Pi. După care selectăm Interfacing Options:
Figura 27. Instrumentul de configurare a software-ului Raspberry Pi
În final activăm camera și repornim Raspberry Pi.
Figura 28. Activare cameră Raspberry Pi
Cea mai ușoară modalitate de a controla camera Raspberry Pi este de a folosi pachetul PiCamera din mediul de dezvoltare integrat Python, care se găsește în meniul Programming ca în figura de mai jos.
Figura 29. Meniul Programming
Astfel nu trebuie decât să creăm un nou fișier Python 3 sau Python 2 și să introducem următorul cod:
from time import sleep
from picamera import PiCamera
camera = PiCamera()
camera.resolution = (1024, 768)
camera.start_preview()
sleep(2)
camera.capture('test_photo.jpg')
Pentru a rula script-ul mergem în terminal și apelăm:
pi@raspberrypi:~ $ python3 take_photo.py
Astfel poza va fi salvată în mod implicit pe desktop cu numele “test_photo” și extensia jpg.
Figura 30. Poză captată cu modulul de cameră Raspberry Pi V2
Pentru a înregistra un filmuleț cu camera Raspberry Pi se parcurg aproape aceeași pași. Se va folosi tot mediul de dezvoltare Python, iar codul va arăta astfel:
import picamera
camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.start_recording('test_video.h264')
camera.wait_recording(5)
camera.stop_recording()
print('Finished recording')
Script-ul se rulează din nou din terminal folosind comanda:
pi@raspberrypi:~ $ python3 record_video.py
Așadar, după rularea script-ului vom avea un filmuleț de 5 secunde, salvat în mod implicit pe desktop cu numele test_video și extensia h264. Putem modifica scriptul pentru a seta rezoluția camerei și pentru a prelungi durata înregistrării video.
Pentru a viziona filmulețul va fi necesară instalarea un software ca și omxplayer, iar comanda în terminal va arăta în felul următor:
pi@raspberrypi:~ $ omxplayer test_video.h264
Mai jos avem un screenshot al filmulețului:
Figura 31. Screenshot al filmulețului realizat cu camera Raspberry Pi
Soluția hardware aleasă
Pe partea de hardware am ales ca și placă de dezvoltare Raspberry Pi 3 Model B pentru că acest model de placă are un sockey dedicat pentru cameră și multe aplicații legat de achiziția de imagini, însă pentru că această placă de dezvoltare nu are pini analogici am fost nevoiți să folosim încă o placă de dezvoltare, și anume Arduino UNO, în acest capitol vom prezenta în detaliu cele două plăci folosite, dar și alte soluții alternative.
Placa de dezvoltare Raspberry Pi 3 Model B
Figura 32. Placa de dezvoltare Raspberry Pi 3 Model B
Principalul motiv pentru care am ales placa de achiziție Raspberry Pi model B este acela că are socket dedicat pentru cameră, dar și pentru că suportă un card SD de până la 64 GB, ceea ce ne permite să înregistrăm imagini în timp real pentru o perioadă îndelungată de timp.
Raspberry Pi funcționează exact ca un PC, așadar are nevoie de instalarea unui sistem de operare, cel recomandat de producător este Raspbian, dar există și alte sisteme de operare compaitible cu Raspberry Pi 3 precum Ubuntu MATE, Windows 10 IoT Core, RISC OS și multe altele.
Această placă de dezvoltare dispune de un procesor de tipul SoC (System-on-a-Chip) Broadcom BCM2837 cu 4 nucleee ARM cortex A53 care funcționează la o frecvență de 1200 Mhz. De asemenea Raspberry Pi 3 dispune și de un procesor grafic Broadcom VideoCore IV cu frecvența de 400 Mhz integrat oferind OpenGL ES 1.1, OpenGL ES 2.0, OpenVG 1.1, Open EGL, OpenMAX și decodare de profil înalt H.264 la o rezoluție de 1080p.
Placa Raspberry Pi 3 modelul B dispune de o memorie SDRAM generoasă de 1 GB. De asemenea, oferă și de mai multe porturi precum 4 porturi USB 2.0 cu o rată de transfer de 480 Mbps, 1 port HDMI, 1 port micro USB folosit pentru alimentarea la 5V, 1 port de rețea cu o viteză de până la 100Mbps și 1 port audio. Placa are și mai multe tipuri de conectivități atât WiFi cât și Bluetooth.
În plus față de porturile USB, Ethernet și HDMI cunoscute, Raspberry Pi oferă posibilitatea de a conecta direct o varietate de dispozitive electronice prin cele 40 de pin-uri și anume 8 pin-uri Ground, 2 pin-uri de alimentare la 3.3V, 2 pin-uri de alimentare la 5V, 1 pin ID_SD, 1 pin ID_SC și 16 pin-uri GPIO. GPIO vine de la General Purpose Input Output și înseamnă că acești pini pot fi fie intrări, fie ieșiri în funcție de modul în care software-ul îi configurează.
Figura 33. Pinout Raspberry Pi 3 Model B
Soluții alternative
a. Placa de dezvoltare Beagleboard
BeagleBoard este o placă de dezvoltare open-source cu consum redus de energie produs de Texas Instruments, în asociere cu Digi-Key și Newark element14. BeagleBoard a fost conceput, de asemenea, în spiritul dezvoltării software-ului open source și ca o modalitate de a demonstra system-on-a-chip OMAP3530 de la Texas Instrument.
Figura 34. Placa de dezvoltare Beagleboard
BeagleBoard măsoară aproximativ 75 mm x 75 mm și dispune de toate funcționalitățile unui computer de bază. OMAP3530 include un procesor ARM Cortex-A8 care poate rula Linux, Minix, FreeBSD, OpenBSD, RISC OS sau Symbian, un TMS320C64x + DSP pentru decodarea video și audio accelerată și un procesor video Imagination Technologies PowerVR SGX530 pentru a oferi o redare accelerată 2D și 3D care să suporte OpenGL ES 2.0. Ieșirea video este furnizată prin conexiuni separate S-Video și HDMI. Un singur slot pentru card SD / MMC care acceptă SDIO, un port USB On-The-Go, o conexiune serial RS-232, o conexiune JTAG și două mufe stereo de 3,5 mm pentru intrare/ieșire audio.
Placa de dezvoltare BeagleBoard dispune de o multitudine de pinuri în număr de 92 și anume 8 pinuri Ground, 2 pinuri pentru alimentare la 3.3V, 4 pinuri pentru alimentare la 5V, 1 pin alimentare convertor analog-digital, 1 pin Ground convertor analog-digital, 7 pinuri de intrări analogice și 59 de pinuri GPIO.
Figura 35. Pinout Beagleboard
b. Placa de dezvoltare ASUS Tinker
Tinker Board este un Single Board Computer (SBC), la fel ca Raspberry Pi și BeagleBoard, de dimensiune mică care oferă performanțe de vârf în timp cu o compatibilitate mecanică remarcabilă.
Figura 36. Plaza de dezvoltare ASUS Tinker
Cu procesorul său puternic și modern quad-core ARM, Rockchip RK3288 cu o frecvență de 1800 Mhz, ASUS Tinker oferă performanțe îmbunătățite semnificativ față de alte placi populare SBC. Pentru a oferi flexibilitatea necesară diferitelor construcții și proiecte, Tinker Board oferă 2 GB de memorie LPDDR3 cu două canale. Tinker Board este, de asemenea, echipat cu o interfață SD 3.0 care oferă viteze de citire și scriere semnificativ mai mari la cardurile microSD expandabile utilizate pentru OS, aplicații și stocare de fișiere.
Componente
Figura 37. Componentele plăcii de dezvoltare ASUS Tinker
Port Micro USB pentru alimentare la 5V/2~2.5A
Port HDMI
Port CSI
Mufă Jack audio 3.5mm
Port Ethernet
Pin PWM
Pin S/PDIF
Port DSI
Antenă i-PEX
Procesor WLAN 802.11b/g/n și Bluetooth 4.0
Pinuri GPIO, Ground, Alimentare la 3.3V și 5V, UART, I2S, I2C
14 porturi USB
Am ales placa de dezvoltare Raspberry Pi 3 Model B și nu placa ASUS Tinker pentru că prețul de achiziție al plăcii ASUS Tinker este considerabil mai mare față de Raspberry Pi, deși se aseamănă foarte mult ca și componente și proiectare.
Placa de dezvoltare Arduino Uno și soluții alternative
Deoarece placa de dezvoltare Raspberry Pi 3 Model B nu are pini analogici, a trebuit să folosim încă o placă de dezvoltare pentru citirea senzorilor QTR 8A.
Placa de dezvoltare Arduino Uno a fost proiectată de o companie italiană open-source. "Uno" înseamnă unu în limba italiană și a fost ales pentru a marca lansarea mediului de dezvoltare integrat Arduino 1.0. Ca și microcontroler, Arduino Uno beneficiază de un Atmega328P care are o memorie de tipul Flash de 32 KB, cu un interval de tensiune de funcționare între 1.8V și 5.5V. Până acum au fost lansate 3 versiuni de Arduino Uno și anume R1, R2 și R3.
Placa Arduino Uno dispune de 14 pini digitali de intrare/ieșire, 6 dintre aceștia sunt pini PWM, de asemenea, placa mai dispune de 1 oscilator cu cuarț cu o frecvență de 16 Mhz, un port USB, 6 intrări analogice, buton pentru reset și o mufă pentru alimentare.
Componente:
Figura 38. Componente Arduino UNO
Fiecare placă Arduino are nevoie de o modalitate de conectare la o sursă de alimentare. Arduino UNO poate fi alimentat de la un cablu USB care vine de la computer sau de la o sursă de alimentare care are o mufă de tipul jack. În imaginea de mai sus, conexiunea USB este etichetată (1), iar mufa jack este etichetată (2). Cu ajutorul conexiunii USB putem încărca și programul în placa de dezvoltare Arduino. Atunci când se alimentează placa, trebuie ținut cont de faptul că Arduino nu suportă o sursă de alimentare mai mare de 20V, iar tensiunea recomandată de producător pentru acest model de placă este între 6V și 12V.
Arduino are mai multe tipuri de pini precum Ground (3) care are prescurtarea GND, pini pentru alimentare la 5V (4) și 3.3V (5), 6 pini analogici (6) numerotați de la A0 până la A5 care pot citi un semnal de la un senzor analogic și îl pot converti într-o valoare digitală, 14 pini digitali numerotați de la 0 la 13 (7) care pot fi utilizați atât pentru intrări digitale cât și pentru ieșiri digitale, 6 pini PWM (8) numerotați cu 3,5,6,9,10 și 11 și un pin AREF (9) sau Analog Reference.
Etichetat cu (10) avem butonul pentru resetare, foarte util în cazul în care avem un cod care nu se repetă, dar dorim să îl testăm de mai multe ori.
Led-ul etichetat cu (11) trebuie să se aprindă ori de câte ori placa de dezvoltare este conectată la o sursă de alimentare. Led-urile etichetate cu (12) sunt led-urile TX (transmit) și RX (receive), care la rândul lor sunt responsabili cu comunicația serială.
Numerotat cu (13) avem microcontrolerul ATmega328P care este creierul plăcii de dezvoltare, iar cu (14) avem etichetat un regulator de tensiune care are rolul de a controla cantitatea de tensiune care intră în placă.
Figura 39. Pinout microcontroler ATmega328P
Soluții alternative
Pe lângă placa de dezvoltare Arduino Uno am avut și alte soluții alternative, printre care A-Star 32U4 Prime LV și PIC32-PINGUINO.
A-Star 32U4 Prime LV
A-Star 32U4 Prime LV este o placă de dezvoltare programabilă bazată pe microcontrolerul AVR ATmega32U4 dezvoltată de compania Pololu. A-Star 32U4 oferă multe caracteristici suplimentare și îmbunătățiri față de produsele concurente, inclusiv o gestionare superioară a puterii, care permite o funcționare eficientă de la 2,7 V până la 11,8 V. A-Star 32U4 Prime LV este disponibil în mai multe configurații.
Figura 40. Placa de dezvoltare A-Star 32U4 Prime LV
Caracteristici
Microcontroler programabil ATmega32U4 MCU cu o momerie flash de 32 KB, SRAM de 2,5 KB și EEPROM de 1 KB
Preîncărcat cu bootloader compatibil cu Arduino (nu este necesar un programator extern)
26 de pini de intrare/ieșire, 7 dintre aceștia pot fi utilizați ca ieșiri PWM, iar 12 dintre aceștia pot fi utilizați ca intrări analogice
Opțiune buzzer pentru sunete simple și muzică
suport microSD
3 LED-uri controlabile de utilizator
Buton de resetare
Poate fi alimentat de la USB sau de la o sursă externă cu o tensiune între 2.7V și 11.8V
Protecție împotriva tensiunii inverse la intrările de alimentare externe
Circuitul de selectare a puterii permite o comutare fără întreruperi între sursele de alimentare, oferind în același timp protecție și feedback privind sursa de alimentare selectată
ISP cu 6 pini pentru utilizare cu un programator extern
PIC32-PINGUINO
Figura 41. Placa de dezvoltare PIC32-Pinguino
PIC32-Pinguino este o placă de dezvoltare programabilă bazată pe microcontrolerul PIC32MX440F256H care are o frecvență de 80 Mhz, o memorie flash de 256KB și o memorie RAM de 32KB.
Caracteristici
Microcontroler PIC32MX440F256H cu o frecvență de 80 Mhz, memorie Flash de 256KB și RAM de 32KB
Sursa de alimentare permite o tensiune de alimentare de la 9V până la 30V
Toate componentele funcționează fiabil în intervalul de temperatură de -25°C +85°C
Regulatoare de tensiune ULTRA LOW POWER
Conector UEXT care permite conectarea multor module existente, cum ar fi RF, ZIGBEE, GSM, GPS
RTC – Real Time Clock
Buton de resetare
Port Mini-USB pentru programare
30 de pini de intrare/ieșire, dintre care 14 pini digitali și 8 pini analogici.
Am ales plaza de dezvoltare Arduino Uno și nu una din cele două plăci de dezvoltare prezentate mai sus deoarece am lucrat o perioadă destul de îndelungată cu această placă și pentru că, din punctul meu de vedere, se programează mult mai ușor. De asemenea, un alt motiv pentru care am ales opțiunea Arduino este și pentru că am avut un buget redus și aveam deja placa achiziționată.
Schema bloc
Figura 42. Schema bloc
Codul QR
Codul QR, abreviat de la Quick Response sau Răspuns Rapid, este o matrice de coduri de bare bidimensională și a fost conceput pentru prima dată în 1994 pentru industria auto din Japonia. Un cod de bare este o etichetă optică care poate fi citită de un dispozitiv și care conține informații despre elementul la care este atașat. Un cod QR utilizează patru moduri de codare standardizate (numerice, alfanumerice, byte / binary și kanji) pentru stocarea eficientă a datelor; pot fi utilizate și extensii.
Acesta poate reține maxim 7.089 de caractere numerice și 4.296 de caractere alfanumerice, de asemenea există și două tipuri majore de coduri QR și anume Micro QR, care este o formă mai mică de cod și este utilizat pentru codificarea unor informații mai scurte și Design QR care permite, pe lângă informația textuală necesară și inserarea în cod a imaginilor, logourilor sau a caracterelor speciale pentru a face codul mai ușor de recunoscut, dar fără a pierde informații.
Figura 43. Exemplu cod QR
Codul QR a devenit popular în afara industriei auto datorită lizibilității sale rapide și a capacității de stocare mai mari față de codurile de bare standard UPC. Aplicațiile includ urmărirea produselor, identificarea elementelor, urmărirea timpului, gestionarea documentelor și marketingul general.
Un cod QR constă în mai multe pătrate negre aranjate într-o rețea, de asemenea, pătrată pe un fundal alb, care poate fi citită de un dispozitiv de imagine, cum ar fi o cameră foto, și procesată folosind corecția de eroare Reed-Solomon până când imaginea poate fi interpretată în mod corespunzător. Datele necesare sunt extrase apoi din tiparele care sunt prezente atât în componentele orizontale, cât și în cele verticale ale imaginii. Acesta este acum utilizat pe scară largă în întreaga lume pentru a ajunge la site-uri mai rapid, și poate fi, de asemenea, utilizat pentru reclame.
Structura unui cod QR
Modelele de pixeli de tip negru și alb apar la prima vedere ca fiind un mic puzzle încrucișat și par a fi compuse la întâmplare. Dar dacă vă uitați atent, anumite structuri pot fi identificate. Pentru ca scanerul să recunoască un cod QR ca atare, codul trebuie să fie întotdeauna pătrat. Un număr de elemente suplimentare asigură citirea corectă a informațiilor.
Figura 44. Structura unui cod QR
Informații despre versiune – În momentul de față există nu mai puțin de 40 de versiuni de coduri QR, acest lucru trebuie luat în considerare în momentul în care este aleasă dimensiunea codului QR, deoarece fiecare versiune are o configurație proprie.
Informații despre format – Modelele de format conțin informații despre toleranța la erori și modelul de mască de date și facilitează scanarea codului.
Cheile de corectare a datelor și erorilor – Aceste modele păstrează datele reale.
Poziție – Acestea indică direcția în care este tipărit codul.
Aliniere – Dacă codul QR este mare, acest element suplimentar ajută la orientare.
Sincronizare – Folosind aceste linii, scanerul determină cât de mare este matricea de date.
Zona liberă – Această zonă este importantă pentru programul de scanare pentru a deosebi codul QR de împrejurimile acestuia.
Codurile QR au și un sistem de corecție încorporat astfel că aceste coduri sunt protejate și pot reda informații chiar și în cazul unor deteriorări de până la 30%.
Codurile QR folosite de noi în intersecții sunt următoarele:
Figura 45. Instrucțiune obligatoriu stânga
Codul QR din Figura 44 îi transmite robotului ca la această intersecție să facă obligatoriu la stânga.
Figura 46. Instrucțiune obligatoriu dreapta
Figura 44 prezintă codul QR care îi transmite ca instrucțiune robotului ca în intersecția actuală să facă obligatoriu la dreapta.
Figura 47. Instrucțiune stop 10 secunde
Figura 45 prezintă codul QR care îi transmite ca instrucțiune robotului ca în intersecția actuală să se oprească pentru 10 secunde.
Figura 48. Instrucțiune stop 5 secunde
Codul QR din Figura 46 îi transmite robotului ca în această intersecție să se oprească timp de 5 secunde.
Figura 49. Instrucțiune stop 3 secunde
Figura 46 prezintă codul QR care îi transmite ca instrucțiune robotului ca în intersecția actuală să se oprească pentru 3 secunde.
Soluții alternative la codul QR
Codul de bare
Codul de bare a fost inventat de Norman Joseph Woodland și Bernard Silver și patentat în SUA în 1952. Un cod de bare este o reprezentare optică de date, care poate fi citită de către anumite dispozitive, datele de obicei descriu ceva despre obiectul care poartă codul de bare. Codurile de bare tradiționale reprezintă în mod sistematic date prin variația lățimilor și distanțelor liniilor paralele și pot fi denumite liniare sau unidimensionale.
Figura 50. Exemplu cod de bare
Ulterior s-au dezvoltat variante bidimensionale (2D), folosind dreptunghiuri, puncte, hexagoane și alte modele geometrice, numite coduri de matrice sau coduri de bare 2D, deși nu folosesc barele ca atare. Inițial, codurile de bare au fost scanate numai cu scanere optice speciale numite cititoare de coduri de bare. Mai târziu, software-ul aplicației a devenit disponibil pentru dispozitivele care puteau citi imagini, cum ar fi telefoanele inteligente cu cameră.
Figura 51. Exemplu de cod de bare 2D
O primă utilizare a unui tip de cod de bare într-un context industrial a fost sponsorizată de Asociația Căilor Ferate Americane la sfârșitul anilor '60. Dezvoltată de General Telephony and Electronics (GTE) și numit KarTrak ACI (Automatic Car Identification), această schemă implică plasarea dungilor colorate în diferite combinații pe plăci de oțel care au fost fixate pe laturile materialului rulant feroviar. Două plăci au fost utilizate per mașină, câte unul pe fiecare parte, cu dispunerea dungilor colorate care codificau informații cum ar fi proprietatea, tipul echipamentului și numărul de identificare.
Am ales să folosim coduri QR și nu coduri de bare, pentru că acestea din urmă au mai multe dezavantaje, cum ar fi faptul că aceste coduri de bare sunt limitate la doar 20 de caractere alfanumerice. Un alt avantaj de care dispun codurile QR în comparație cu codurile de bare este faptul că aceste coduri de bare funcționează pe o singură dimensiune, în timp ce codurile QR funcționează pe două dimensiuni, atât pe orizontală cât și pe verticală, reușind astfel să rețină mult mai multă informație față de codurile de bare.
MaxiCode
MaxiCode este un sistem de simboluri care poate fi citit automat, creat inițial și utilizat de United Parcel Service. Potrivit pentru urmărirea și gestionarea transportului de colete, acesta seamănă cu un cod de bare, dar utilizează puncte dispuse într-o grilă hexagonală în loc de bare. MaxiCode a fost standardizat în conformitate cu ISO / IEC 16023.
Figura 52. Exemplu de MaxiCode
Un simbol MaxiCode apare ca un pătrat de 1 inch, cu un bullseye în mijloc, înconjurat de un model de puncte hexagonale. Poate stoca aproximativ 93 de caractere de informații și până la 8 simboluri MaxiCode pot fi înlănțuite împreună pentru a transmite mai multe date. Bullseye-ul centrat simetric este util în localizarea automată a simbolurilor indiferent de orientare și permite scanarea simbolurilor MaxiCode chiar și pe un pachet care se mișcă rapid.
Structura unui MaxiCode
Figura 53. Structura unui MaxiCode
Bibliografie
Bibliografia va fi ordonată alfabetic dupa eticheta fiecărei element (de ex. DOOM05 în lista de mai jos este o etichetă). Etichetele materialelor consultate vor fi formatate folosind:
primele litere ale primului autor urmate de cele două cifre semnificative ale anului apariției materialului, sau
dintr-un acronim popular al lucrării respective, urmat din nou de cele două cifre semnificative ale anului apariției.
[DOOM05] – Dicționarul ortografic, ortoepic și morfologic al limbii române, Editura Univers Enciclopedic, București, 2005
Referințe web
Recomandăm și aici respectarea regulilor enunțate pentru secțiunea .
[Alm08] – Pedro de Almeida, Patrik Fuhrer, Documentation Guidelines for Diploma and Master Thesis, Universitatea din Fribourg, Elveția, 2008, disponibil on-line la adresa http://diuf.unifr.ch/drupal/softeng/teaching/guidelines
[Olt07] – Th. Olteanu, C. Albu, Ghid pentru redactarea lucrării de diplomă sau a disertației de masterat, Universitatea Română de Arte și Științe „Gheorghe Cristea”, 2007, disponibil via web la adresa http://www.ugc.ro/tpl/GHID REDACTARE DIPLOMA LICENTA.pdf
Codul sursă
În această anexă se adaugă codul sursă al aplicației…
CD / DVD
Autorul atașează în această anexă obligatorie, versiunea electronică a aplicației, a acestei lucrări, precum și prezentarea finală a tezei.
Index
B
Bibliografie 9
C
CUPRINSUL xi
D
Dimensiuni 3
F
Figuri 4
Formulele matematice 4
I
Ilustrațiile 4
L
Legenda 6
LISTA FIGURILOR xii
LISTA TABELELOR xiii
R
Referințe web 10
S
Structura documentului 2
T
Tabele 5
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Șef Lucr. Dr. Ing. Florin Liviu Manta Iulie 2018 CRAIOVA Sisteme de vedere artificială în controlul roboților mobili autonomi Bogdan Andrei Popescu… [310575] (ID: 310575)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
