Micro Con Troll Ere Pentru Conduce Re A Robotilor Autonomi

download Micro Con Troll Ere Pentru Conduce Re A Robotilor Autonomi

of 147

Transcript of Micro Con Troll Ere Pentru Conduce Re A Robotilor Autonomi

Universitatea Dunrea de Jos din Galai Contribuii la elaborarea unor soluii ncorporate (embedded) de conducere n timp real a sistemelor robotice i vehiculelor autonomeTez de doctorat Conductor tiinificDoctorandProf. Dr. Ing. Adrian FilipescuIng. Ioan uneaGalai, 2009 2Rezumat Principalatezaacestecercetriestecoreeadistribuitdemicrocontrollere ncorporate poate oferi soluii fezabile pentru cele mai importante probleme legate de conducerearoboilorautonomi.Uneleelementealeacestuisistemdecontrol distribuitsuntlocalizatelanivelulvehicululuiautonom,altelesuntdispersatentr-un mediu inteligent. Aceast abordare poate conduce la reduceri semnificative de cost pentrusistemeleroboticeipoatecontribuiladezvoltareaunorasistentirobotici personali pentru ngrijirea persoanelor n vrst sau cu diverse dizabiliti. Totui, microcontrollerele uzuale au limitri severe n ce privete puterea de calcul i capacitateadestocareadatelor,iartask-urileasociatecuconducerearoboilor autonomi sunt deosebit de complexe.Din acest motiv, au fost explorate urmtoarele directii de cercetare:nprimulrnd,afostpropusostructurdecontroldistribuitmulti-procesor.n acestfel,task-uriledenavigaiesuntmpritensub-task-urimaisimple,care sunt asignate unor microcontrollere distincte.naldoilearnd,aufostpropuialgoritminoi,compatibiliculimitrile microcontrollerelor uzuale.Soluiilepropuseauunpronunatcaracterinterdisciplinar,mbinndelementede electronic, inginerie software si ingineria sistemelor. ntreagacercetareafostsubordonatideiideimplementareaunuiasistentrobotic personalpentrupersoanenvrstsaucudizabiliti,darsoluiilepropusesunt aplicabile i pentru realizarea altor tipuri de roboi de serviciu.Sunt propuse contribuii la rezolvarea urmtoarelor probleme ale conducerii roboilor autonomi:3Localizarea. Problema localizrii roboilor mobili este esenial n orice algoritm de navigaie i de aceeasepropuneonoumetoddelocalizare,bazatpebalizeactiveultrason. Aceast metod permite determinarea simultan a distanei i orientrii robotului fadebalizeireducesemnificativvolumuldecalculenecesarpentrulocalizare. Programarea roboilorSepropuneunlimbajdeprogramaresimplu,inspiratdestandardulIEC61131-3, destinatprogramriiPLC-urilor,limbajpecarel-amdenumitRDPL(RobotDecision Programming Language). naceastabordare,diverseevenimente,asociatecusenzoridistribuiinmediu sunt tratatecaintrri digitaleobinuite,iarcomenzilede micare avehicululuictre intepredefinitesunttratatecaieiridigitaledinsistem.Limbajulrezultateste suficientdesimplupentruaputeafifolositdeutilizatoricareaucunotine elementare de programare.Urmrirea unei traiectoriiSepropuneunalgoritmpentruurmrireauneitraiectoriibazatpeconceptulde feromonivirtuali.Acetiasuntstocaiinmemoriaunuiserverdeferomonicare menine o hart a mediului, n care este ncorporat informaia despre rutele posibile, nmodsimilarcumecanismulprincareuneleinsectesocialeisicoordoneazactivitile.Algoritmulpropuspermitecontrolulroboilorindividuali,daria formaiunilor de roboi. Ocolirea obstacolelorEste prezentat un algoritm reactiv de ocolire a obstacolelor n timp real, pe care l-am denumit,algoritmulricoeului.Acestafunctioneazacusenzorilow-costsipoatefi implementat pe majoritatea microcontrollerelor uzuale. 4Folosirea tehnologiei RFID pentru conducerea roboilor mobili SuntprezentateaplicaiialetehnologieiRFID(RadioFrecquencyIDentification) pentru localizarea roboilor mobili si pentru urmrirea unei traiectorii. 5Abstract Themainthesisofthisworkisthatadistributednetworkofembedded microcontrollers is able to provide feasible solutions to the most important problems ofautonomousrobotcontrol.Someelementsofthedistributedcontrolsystem proposedarelocatedonthemobilerobot,othersaredeployedinasmart environment . This can lead to significant cost reduction of the robotic systems, and couldallowthedevelopmentofaffordablepersonalroboticassistants,designedto support the elderly and disabled. However, usual microcontrollers have severe limitations in what concerns computing powerandstoragecapacity,andthetasks associatedwithrobot control areproven to be very complex. Therefore, two design strategies are explored: First,amulti-processorcontrolstructureisproposed.Thus,thecomplextaskof robotcontrolissplitintoseveralsimplersub-tasks,eachassignedtoadifferent microcontroller. Moreover,somenew,simpler,navigationalgorithms,compatiblewiththelimited computational power of the usual microcontrollers are presented. Given the multidisciplinarity of the field of robotics, some of the topics covered in this dissertation are related to Electronics, and software engineering, but the main focus remains on control engineering. TheentireresearchwassubordinatedtotheideaofimplementingaPersonal Robotic Assistant for the elderly or disabled, but the solutions proposed are equally aplicable to the implementation of other service robots. The following research fields are addressed: 6Robot localization in indoor environments. Thelocalizationproblemiscrucialforanyrobotcontrolalgorithm,andthereforea newlocalizationmethod,basedonactiveultrasonicbeaconsisproposed.This methodallowssimultaneousmeasurementofthedistanceandorientationofthe autonomous vehicle with respect to the active beacon. Robot programming. A simple programming language, inspired by the standard IEC61131-3, intended for PLCs is proposed. In this approach, various events, detected by remote sensors, are treated as regular logical inputs in the system, while predefined navigation goals are interpreted as logical outputs. Path following.Thealgorithmforpathfollowingproposedisbasedontheconceptofvirtual pheromones.Thesearestoredbyavirtualpheromoneserver,whichupdatesa mapoftheenviromnent,embeddingpheromonetrailinformation.Thecontrol algorithm proposed allows controlling individual robots, as well as robot swarms in a bio-mimetic approach. Obstacle avoidance.Asimple,reactivealgorithm,calledthebubblereboundalgorithmisproposed.It requireslow-costsensors,andcanbeimplementedonmostavailable microcontrollers. The use of the RFID technology for robot control. Several applications of the RFID technology for robot localization and path following are also presented. 7Cuprins Cap. 1. Introducere ............................................................................................17 1.1 Formularea problemei ..................................................................................17 1.2 Obiectivele cercetrii ....................................................................................20 1.3 Sumarul contribuiilor aduse de cercetarea descris n prezenta tez. .21 1.4 Structura prezentei teze .........................................................................22 Cap. 2. Delimitri conceptuale pornind de la stadiul actual al cunotinelor indomeniu ..............................................................................................................25 2.1Caracteristicile unui Asistent Robotic Personal (PRA) .................................25 2.2Abordarea propus .......................................................................................26 2.2.1Ipoteze simplificatoare ..............................................................................26 2.2.2Structura unui PRA ...................................................................................27 2.3Task-uri asociate cu navigaia roboilor autonomi ........................................29 2.4Modelul cinematic al vehiculului cu doua roti motoare si traciunediferential ..........................................................................................................30 Cap. 3. Where Am I? Problema localizrii in sistemele robotice ........................32 3.1Clasificarea sistemelor de localizare ...........................................................32 3.2Sisteme de localizare relativ ......................................................................33 3.3Sisteme de localizare absolut ....................................................................37 3.3.1Sisteme de localizare bazate pe msurarea distanelor ..........................37 3.3.2Sisteme de localizare bazate pe msurarea unghiurilor ..........................39 3.3.3Alte metode de localizare .........................................................................44 3.4Concluzii privind metodele de localizare prezentate ....................................47 83.5Contribuii la rezolvarea problemei localizrii roboilor mobili ......................48 3.5.1O metod de identificare a balizelor ultrason ...........................................48 3.5.2Metod de localizare bazat pe tehnologia RFID....................................53 3.6Concluzii privind localizarea PRA .................................................................55 Cap. 4 Where Should I Go? Selecia intelor de navigaie ...................................56 4.1Abordri cunoscute n domeniul progrmarii roboilor autonomi ...................57 4.2Contribuii la rezolvarea problemei programrii roboilor autonomi ...............59 4.2.1Formularea problemei ...............................................................................59 4.2.2Descrierea general a soluiei propuse .....................................................60 4.2.3Detalii privind implementarea RDPL .........................................................62 4.2.3.1Crearea si meninerea unei reprezentri interne asupra mediului .......62 4.2.3.2Definirea intelor de navigaie ..............................................................63 4.2.3.3Definirea aciunilor ...............................................................................64 4.2.3.4Programarea deciziilor .........................................................................64 4.3Concluzii.......................................................................................................77 Cap. 5 How Should I Get There? Problema controlului micrii roboilormobili ctre int ...................................................................................................795.1Formularea problemei ...................................................................................79 5.1.1Planificarea rutei (path planning) ..............................................................79 5.1.2Stabilizarea punct la punct ......................................................................80 5.1.3Urmrirea unei traiectorii geometrice definite ntr-o parametrizare independent de timp (path following) ................................................................80 5.1.4Urmrirea unei traiectorii geometrice definite ntr-o parametrizaredependent de timp (trajectory tracking) .............................................................81 5.2Soluii cunoscute de conducere a roboilor pentru path following .................81 95.2.1Modaliti de reprezentare a traiectoriei tint ............................................81 5.2.2Algoritmi geometrici de urmrire a traiectoriei (path following) .................83 5.2.2.1Algoritmul Follow the Carrot ..............................................................83 5.2.2.2Algoritmul Pure Pursuit ......................................................................84 5.2.3Conducerea fuzzy a roboilor mobili pentru urmrirea unei traiectorii .......88 5.2.4Conducerea roboilor mobili cu ajutorul feromonilor artificiali ....................93 5.2.4.1Conceptul de feromoni artificiali ...........................................................93 5.3Contribuii la conducerea roboilor mobili pentru urmrirea unei traiectorii...95 5.3.1Conducerea roboilor mobili cu ajutorul feromonilor virtuali .......................95 5.3.1.1Modelarea feromonilor artificiali ............................................................95 5.3.1.2Definirea traiectoriei int cu ajutorul feromonilor virtuali ......................97 5.3.1.3Calculul concentraiei de feromoni ........................................................98 5.3.1.4Abordri posibile pentru conducerea roboilor mobili folosindconceptul de feromoni virtuali ...............................................................................100 5.3.2Conducerea roboilor mobili cu ajutorul informaiei stocate ntag-uri RFID distribuite in mediu ............................................................................103 5.4Concluzii .........................................................................................................105 Cap 6. ... and not get hurt. Problema ocolirii obstacolelor .....................................107 6.1Formularea problemei .....................................................................................107 6.2Algoritmi cunoscui de ocolire a obstacolelor ..................................................108 6.2.1Algoritmii de tip bug ..................................................................................108 6.2.2Algoritmul cmpului de potential (Virtual Potential Field Algorithm) ...........109 6.2.3Algoritmul VFH (Vector Field Histogram) ....................................................110 6.2.4Metoda Bubble Band ................................................................................111 6.2.5Alte metode de ocolire a obstacolelor .........................................................112 106.3Un nou algoritm de ocolire a obstacolelor. Algoritmul bubble rebound.........112 6.3.1Detecia obstaclelor ......................................................................................112 6.3.2Descrierea algoritmului de ocolire a obstacolelor .........................................113 6.3.3Calculul unghiului de ricoseu ........................................................................115 6.4Concluzii ...........................................................................................................116 Cap. 7 Exerimente de implementare in timp real ....................................................1197.1Delimitri ...........................................................................................................120 7.2Descrierea dispozitivului experimental .............................................................120 7.3Evaluarea implementarii limbajului RDPL ........................................................123 7.4Experimente pentru studiul unui algoritm de urmrire a traiectorieibazat pe conceptul de feromoni virtuali..................................................................123 7.5Experimente pentru evaluarea algoritmului bubble reboundde ocolire a obstacolelor ..........................................................................................127 Cap. 8 Concluzii ......................................................................................................129 8.1Sumarul contribuiiilor cercetrii .......................................................................129 8.2Direcii de cercetare viitoare .............................................................................130 Sumarul rezultatelor activitatii de cercetare a autorului ...132 Referine ..................................................................................................................135 Anexe ......................................................................................................................145 11Lista figurilor Fig. 2.1 Structura general tipic de conducere a unui vehicul autonom Fig. 2.2 Schema bloc a echipamentului ncorporat in AGV Fig. 2.3 Structura unui PRA Fig.2.4Controlulnavigaieiroboilorautonomidinperspectivateorieisistemelor automate Fig.2.5Variabilelecinematicealevehicululuicudouroimotoaresioroatdirectoare Fig. 3.1Ilustrarea conceptului de elips de incertitudineFig. 3.2Traiectoria simulat in cazul unei diferene de 1% ntre diametrele roilor Fig. 3.3 Ilustrarea principiului trilateraiei Fig. 3.4 Trilateraia cu repere coliniare conduce la nedeterminare Fig. 3.4Nedeterminare in cazul trilateratiei cu repere coliniare Fig. 3.5Notaii folosite pentru formularea problemei triangulaiei Fig. 3.6 Triangulaie cu dou repere Fig. 3.7 Notaii folosite pentru ilustrarea metodei triangulaiei geometrice Fig. 3.8 Notaii pentru ilustrarea metodei de triangulaie cu calculul distanelor Fig. 3.9 Principiul de funcionare al unui canal RFID Fig. 3.10 Modelul zonei de recunoatere intr-un sistem RFID Fig. 3.11 Activarea selectiv a balizelor cu identificator radio Fig. 3.12Structura balizelor ultrason cu identificare DTMF Fig. 3.13 Structura receptorului pentru identificarea balizelorFig. 3.14 Determinarea azimutului sursei de semnal pe baza msurrii ITD Fig. 3.15 Exemplu de circuit pentru msurarea Interaural Time Difference ITD 12Fig. 3.16 Localizare n raport cu o singur balizFig. 3.17 Amplasarea tag-urilor RFID pentru localizarea roboilor mobili Fig. 4.1 Reprezentarea unui sistem automat ca sistem de decizie i actiune Fig. 4.2 Schema logica de execuie a unui program RDPL Fig. 4.3 Mecanismul de actualizare a intrrilor digitale Fig. 4.4 Structura modulului Data Acquisition incluznd comenzile vocale Fig. 4.5 Exemplu de program RDPL Fig. 5.1 Formularea problemei de conducere pentru path following Fig. 5.2 Formularea problemei de conducere pentru trajectory tracking Fig. 5.3 Diverse modalitti de reprezentare explicita a traiectoriei intFig. 5.4 Ilustrarea principiului algoritmului follow the carrot Fig. 5.5 Ilustrarea principiului algoritmului pure pursuit pentru path following Fig. 5.6 Pure pursuit la urmrirea unei traiectorii liniare Fig. 5.7 Curbura traiectoriei unui vehicul cu traciune diferenial n funcie de vitezele roilor motoare Fig. 5.8 Schema bloc a unui FLC Fig. 5.9 Cteva moduri uzuale de a defini funciile de apartenen fuzzy Fig. 5.10 Funcii de apartenen liniare simetrice Fig. 5.11 Alta modalitate de definire a subdomeniilor fuzzy pentru e(t) Fig. 5.12 Ilustrarea superpoziiei efectelor a N surse de feromoni Fig. 5.13 Definirea traiectoriei int cu ajutorul feromonilor virtuali Fig. 5.14 Ilustrarea zonei semicirculare de sensibilitate la feromoni Fig. 5.15 Modelarea neuronala a interaciunilor mediate de feromoniFig. 5.16 Definirea implicit a unei traiectorii cu ajutorul feromonilor digitali stocati n tag-uri RFID 13Fig.5.17Definireaindirectatraiectorieiintcuajutorulunorlook-aheadpoints precalculate i stocate n tag-uri RFID Fig. 6.1 O ilustrare a algoritmului bug Fig. 6.2 O ilustrare a algoritmului bug2 Fig. 6.3 O ilustrare a algoritmului cmpului de potenial Fig. 6.4 Histograma polar folosita de algoritmul VFH Fig. 6.5 Un exemplu de eroare sistematic la senzorii de tip sonar Fig. 6.6 Ilustrarea conceptului de bubble band Fig. 6.7 Definirea zonei de sensibilitate la obstacole Fig. 6.8 Reprezentarea n diagrama polar a informaiei de la sonare Fig. 6.9 Schema logic a procesului de ocolire a obstacolelor Fig. 6.10 Ilustrarea mecanismului de ocolire a obstacolelor prin ricoeu Fig. 6.11 O ilustrare a modului de calcul a unghiului de ricoseu Fig. 6.12 Un exemplu de navigaie intr-un mediu tip labirint, cuinte intermediare Fig. 7.1 Roboii folositi pentru experimente Fig. 7.2 Interfaa grafic a simulatorului MobileSim Fig. 7.3 Structura hardware a unui PRA Fig. 7.4 Structura echipamentului folosit pentru testarea RDPL Fig. 7.5 Echipamentul folosit pentru testarea algoritmilor de navigaie Fig. 7.6 Un exemplu de reprezentare a hrii mediului, ncorpornd informaii despre distribuia de feromoni Fig. 7.7 Traiectoria inregistrat corespunztor hrtii din fig. 7.6 Fig. 7.8 nregistrarea unei traiectorii care conine un viraj n unghi drept Fig. 7.9 nregistrarea comportamentului robotului pe o traiectorie curb n S Fig. 7.10 nregistrarea comportamentului robotului pe o traiectorie oarecare 14Fig. 7.11 Ilustrarea procesului de ocolire a unui obstacol Fig. 7.12 Navigaie pe un coridor cu obstacole multiple Fig. 7.13 Navigaie cu definirea unorinte intermediare 15Lista tabelelor Tabelul 3.1 Frecvene i standarde RFID Tabelul 4.1. Variabile asociate cu resursele fizice ale sistemului Tabelul 4.2. Resurse logice ale RDPL Tabelul 4.3. Caracteristicile timerelor Tabelul 4.4 Constante de timp asociate cu timerele predefinite Tabelul 4.5. Semnificaia parametrilor TYPE i EDGE n definitia funciei TIMER Tabelul nr. 4.6 Lista funciilor RDPL insotit de simbolurile grafice folosite Tabelul 5.1 Un exemplu de reprezentare tabelar a bazei de reguli a unui FLC 16Lista abrevierilor ACO - Ant Colony Optimization AGV Autonomous Guided VehicleA.M. - Amplitude ModulationASK Amplitude Shift KeyDTMF - Dual Tone Multi FrequencyFLC Fuzzy Logic ControllerICC Instantaneous Center of CurvatureITD Interaural Time Difference PLC Programmable Logic ControllerPRA Personal Robotic AssistantRDPL Robot Decision Programming LanguageRFID Radio Frequency Identification SystemVFH - Vector Field Histogram VPF - Virtual Potential Field XML Extensible Markup Language 17 1 Introducere 1.1 Formularea problemei ntr-unstudiuintitulatArobotineveryhome[1],BillGates,fondatorulMicrosoft Corporation,observsimilitudinintredinamismulevoluiilornregistratendomeniul roboticii i rapiditatea cu care a evoluat industria computerelor ncepnd din anii 70 si conchide: Becausethenewmachineswillbesospecializedandubiquitous-andlookso little like the two-legged automatons of science fiction - we probably will not even call them robots. But as these devices become affordable to consumers, they could have justaprofoundimpactonthewaywework,communicate,learnandentertain ourselves as the PC has had over the past 30 years. Avndnvedere,pedeoparte,impactulextraordinarpecarel-arputeaavea roboiipersonali,iarpedealtapartemultitudineaderealizriabsolutremarcabile deja raportate in acest domeniu (vezi, de exemplu, [2], [3], [4]) se pune ntrebarea de ce, totui, nu avem nc a robot in every home? Printre rspunsurile posibile, sugerm: Preul roboilor este nc extrem de ridicat. 18Programarea roboilor este nc greoaie, inaccesibil end-user-ilor; Existoparadigmantropomorfic([5])inabordareaproblemelorroboticii, carenedeterminsatribuimacestoraoseriedecaracteristiciumane, deocamdat dificil sau imposibil de realizat. Nu dispunem de date statistice privind evoluia preurilor sistemelor robotice, dar, urmrindistoriculrealizrilordemnedeatenienacestdomeniu,sepoateobserva cuusurincnumrulsiimportanaacestoraacrescutsemnificativncepnddin anii90,odatcurspandireamicrocontrollereloriastructurilorincorporate (embedded).Acesteaauoseriedeavantajecarelerecomandpentruaplicaiin domeniul roboticii: Cost redus; Consumredusdeenergie,ceeacepermitefuncionareandelungatn regim de alimentare de la baterii de acumulatoare; Facilitidecomunicaiecare permitrealizareacuusurint a unor structuri multiprocesor,ceeacemresteflexibilitateadeproiectaresireducerea timpului necesar pentru scrierea aplicaiilor software. Pe de alt parte, exist i cteva dezavantaje evidente ale structurilor ncorporate, cum ar fi: Putere de calcul redus fa de computerele clasice; Capacitate redus de stocare a datelor. Avndnvederecomplexitateatask-urilorasociatecupercepia,navigaiasi deciziansistemeleroboticectsilimitrileenumeratemaisus,rezult,lanivel hardware,necesitateaadoptriiunorarhitecturimultiprocesor,iarlanivelsoftware selectareasauelaborareaunoralgoritmicompatibiliculimitriledememoriesi putere de calcul specifice sistemelor ncorporate. 19Elementelesubliniatemaisusjustificformulareaprincipaleitezeaacesteitezei, dup cum urmeaz: Unsistemditribuitdestructuriincorporate(embedded)poateoferisoluiifezabile pentru principalele probleme legate de conducerea in timp real a roboilor autonomi. Aceast formulare justific titlul tezei: Contributiilaelaborareaunorsolutiibazatepesistemencorporate(embedded) pentru conducerea in timp real a sistemelor robotice i a vehiculelor autonome. Formulareademaisusrmneextremdegeneralisuntnecesareoseriede delimitri care s asigure coerena cercetrilor.Dinmultitudineadeaplicaiiposibilealeroboticii,amalesssubordonm cercetrile,ideiideimplementareaconceptuluideasistentroboticpersonal (PersonalRoboticAssistant-PRA)destinatpersoanelorinvarsta,saucudiverse dizabiliti senzorio-motorii. AceastopiuneestejustificatdedatelestatisticepublicatedeGAO(U.S. General Accounting Office) [6] si U.S. Census [7], care arat c generaia baby-boom aAmericiiesteacumlavarstapensionrii,ceeacevamriinviitorulapropiat procentulpersoanelorcuvrstepeste65deanidintotalulpopulaiei.Situaiaeste asemntoare i n celelalte state industrializate. nRomnia,conformdatelorstatisticeoficiale,publicatedeMinisterulMuncii, FamilieisiProtectieiSociale([8])sideAgeniaNaionalpentruHandicapai([9]) existaula31.12.2007unnumrde643458handicapai,reprezentnd2.99%din totalulpopulaieide21537563persoane.Totodat,la30.09.2008existauunnumr de5525957pensionari(25.6%dintotalpopulaie),dintrecare909188pentru 20invaliditate, ceea ce conduce la un total de 1552646 handicapai si invalizi (7.2% din totalpopulaie).Cifreledemaisusreflectosituaiegrav,iartendinade mbtrnireapopulaieitindesmreascnumrulpersoanelorcareaunevoiede supraveghere permanent si de ingrijire medical minimal. Cumvrstanaintatestenmodinerentasociatcureducereaacuitii senzorialeicuoseriededificultilocomotorii,fenomenuldembtrnirea populaiei,manifestat,ntrealtele,princretereanumruluidepersoanecare necesit supraveghere sau asistent medical minimal permanent, aduce presiuni importante asupra sistemului medical i asupra economiei n general([10]). nacestecondiii,dezvoltarearapidaunorsistemeroboticecapabilescompenseze parial limitrile senzorio-motorii ale persoanelor n vrst, ar putea fi o soluie a acestor probleme. 1.2Obiectivele cercetrii Obiectivul general al cercetrii descrise aici poate fi formulat in felul urmtor: Demonstrareafezabilitiiideiideaimplementaunsistemdeconducerea vehiculelorautonome,destinatesupliniriideficienelorsenzorio-motoriiale persoanelornvrst,saucudiversedizabiliti,bazatpeostructurmulti-procesor, realizat cu microcontrollere ncorporate (embedded). Rezult urmtoarele obiective specifice:1.Delimitarea conceptului de PRA n contextul vehiculelor autonome si stabilirea structurii hardware a sistemului de conducere a acestuia; 2.Elaborareauneimetodedelocalizarecuperformanesuperioaresistemelor bazate pe dead reckoning; 3.Elaborareasiimplementareaunuialgoritmdeurmrireauneitraiectorii compatibil cu microcontrollerele uzuale; 214.Elaborarea si implementarea unui algoritm de ocolire a obstacolelor compatibil cu senzorii low-cost disponibili (ultrason, infrared); 5.Elaborareauneimetodedeselectareaintelordenavigatieporninddela informaiile furnizate de senzorii din mediu si de subsistemul de navigatie. 1.3 Sumarul contribuiilor aduse de cercetarea descris n prezenta tez Pentrurealizareaobiectivelorenumeratemaisus,aufostabordateprincipalele problemeasociatecuconducereavehiculelorautonome:localizarea,decizia, urmrirea unei traiectorii i ocolirea obstacolelor. nproblemalocalizriiroboilormobili,sepropuneosoluiecarepermite determinareasimultanadistaneiiaorientriirobotuluinraportcuobalizultrason special proeictat. Pentruapermiteformalizareadescrieriiinteraciuniintrerobotimediu,afost elaboratunlimbajdeprogramare,pecarel-amdenumitRDPL(RobotDecision Programming Language), care permite, ntre altele, selectarea intelor de navigaie n funcie de starea unor senzori i actuatoare distribuite n mediu. Pentru problema urmririi unei traiectorii se propune o soluie bio-mimetic, bazatpe conceptul de feromoni virtuali, ncorporati intr-o hart a mediului, stocat de un serverdeferomoni,aflatincomunicatiecuroboiimobili.Soluiapropuspermite attconducerearoboilorindividuali,ctsiaformaiunilorderoboisiaremultiple avantaje. ncepriveteproblemaocoliriiobstacolelor,sepropuneunnoualgoritmpur reactiv,pecarel-amdenumitbubblereboundalgortihm(algoritmulricoeului), suficientdesimplupentruafiimplementatpemicrocontrolleresicompatibilcu majoritatea senzorilor uzuali pentru detectarea obstacolelor (ultrason, infrared, laser). 22Totodat,suntexplorateposibilitailedefolosireatehnologieiRFIDpentru conducerearoboilormobiliisepropunsoluiidelocalizaresiurmrireaunei traiectorii, bazate pe aceast tehnologie. 1.4 Structura prezentei teze n afara prezentei introduceri, lucrarea de fa este structurat dup cum urmeaz: Capitolul2formuleazoseriededelimitriconceptualeporninddela stadiulactualalcunotinelorindomeniulconduceriiroboilormobili.Se propuneodefiniieaasistentuluiroboticpersonalsiostructura sistemului distribuit de conducere a acestuia. Capitolul 3 trateaz problematica localizrii roboilor mobili. Se propune un sistemdelocalizarebazatpebalizeultrason,carepermiteatt identificareabalizelor,ctideterminareadistaneiiaazimutuluibalizei faderobot.Soluiapropusfaceobiectuluneicereridebrevet,cu denumireaSistemdelocalizarepentrurobotimobilisivehicule autonome,cerereinregistratalaOSIMsubnumarulA/01021,din04-12-2009. Capitolul4trateazproblemadecizieinsistemeledeconducerea roboilorautonomi.Sepropuneunnoulimbajdeprogramare,denumit RDPL(RobotDecisionProgrammingLanguage),derivatdinlimbajelede programare pentru PLC-uri, descrise de standardul IEC61131-3. Capitolul 5 trateaz problema urmririi unei traiectorii. Se propune o soluie deurmarireatraiectorieibazatapeconceptuldeferomonivirtuali.Spre deosebiredesoluiile cunoscute,careimplementeaz foeromoniiartificiali caurmedetectabilecuajutorulsenzorilor,lsatedeageniinmediu,n abordarea propus, feromonii virtuali sunt engrame create de ageni nu in 23mediu,cintr-ohartamediului,stocatnmemoriaunuiserverde feromoni. Agenii dispersai in mediu se afl n comunicaie permanent cu severuldeferomoniifoloseschartadinamicamediului,meninutde server,caomemoriecomun.Soluiapropuspermitedefinireai urmrireatraectorieiattpentruroboiindividuali,ctipentruformaiuni de roboi. Capitolul6trateazproblemaocoliriiobstacolelorsiprpouneunalgoritm reactiv nou, pe care l-am denumitalgoritmul bubble-rebound (algoritmul ricoeului). Capitolul 7 prezint rezultatele experimentelor de implementare a soluiilor propuse pe microcontrollere ncorporate low-cost/low power. Capitolul8esterezervatconcluziilorsisugereazposibiledirectiipentru cercetri viitoare. Referinele sunt listate in ordinea citrii in textul prezentrii.Deoarece nu toatepublicaiilepropriisuntcitateinmodformal,afostintrodusun paragraf special, coninnd lista complet a publicaiilor autorului. InAnexeesteprezentatunCVsumaralautorului,precumilisting-ul principaleloraplicaiisoftwarefolositepentruimplementareaalgoritmilor descrii. Structura tipic a fiecrui capitol este urmtoarea: Formularea problemei; Prezentarea soluiilor cunoscute; Contribuii proprii la rezolvarea problemei; Concluzii. 24Avnd n vedere numrul foarte mare de soluii cunoscute din literatur pentru fiecare dinproblemeleabordate,sunttrecuteinrevistdoaracelesoluiicareaudirectlegatur cu contribuiile propuse. Cercetriledescrisenprezentatezs-audesfuratinLaboratoruldeRobotical Facultii de tiina Calculatoarelor din Universitatea Dunrea de Jos, din Galai, sub ndrumarea Prof. Dr. Ing. Adrian Filipescu i sunt parial sustinute din grantul ID_641, finanat de Ministerul Educatiei i Cercetrii. Robotii mobili folosii pentru experimente sunt Pioneer3-DX si PeopleBot, produi de MobileRobots Inc. ([11]), aflai n dotarea laboratorului. 25 Delimitri conceptuale pornind de la stadiul actual al cunotinelor in domeniu 2.1Caracteristicile unui Asistent Robotic Personal (PRA) Primelereferirilaunnursingrobotdateazdin1985,cndBorensteiniKoren ([12])aupropusoplatformmobil,dotatcuunbrarobotic,conceputssuplineasc unele deficiene de mobilitate ale persoanelor cu handicap locomotor. De atunci, un mare numr de cercetri ([3], [13], [14], .... [36]) au propus diverse soluii fie pentru dezvoltarea unor scaune cu rotile inteligente, fie pentru dezvoltarea unor dispozitive denumite in mod explicit asisteni robotici. Principalele funcii/capabiliti dezirabile pentru un asistent robotic personal (PRA), destinatpersoanelorinvrstsaucudiversedizabiliti,asacumsuntreflectaten literatura tiintific, sunt urmtoarele: Capacitateadenavigaieindependent,cuocolireaobstacolelordetectate pe parcurs; Funciadeprotezarelocomotorie(walkingaid).EstededoritcaPRAspoat fi folosit ca walker, sau ca scaun cu rotile; Funciadeprotezaresenzorial.PRAtrebuiesfiedotat,sauspoata comunica cu senzori capabili s suplineasc unele deficiene senzoriale ale persoanei asistate; Funcia de protezare cognitiv (reminder); 26Funcia de ajutor la manipularea unor obiecte (manipulation assistance); Managementulteleprezeneiprincontrolulasupraechipamentuluide telecomunicaie; Monitorizarea unor parametri medicali i apel automat la urgent; Controlul aparaturii electrocasnice; Recunoaterea unor comenzi vocale. 2.2Abordarea propusa Analiznd cerinele de mai sus, se impun cteva observaii: Implementareatuturorcerinelorenumeratefolosindechipamentul amplasatlabordulrobotuluimobilestedificilicontribuielacreterea semnificativ a preului sistemului. Unelecerine,deexempluceaprivindasistenalamanipulareaunor obiecte,careimplicincludereainsistemaunuibrarobotic,auutilitate practic limitat, dar pot multiplica preul sistemului de cteva ori. Altecerine(ex.recunostereaunorcomenzivocalesifolosireaacestora pentrucontrolulaparaturiielectrocasnice,monitorizareaunoraparate medicale,sauprotezareacognitivaprinfolosireaunuiremindersoftware) au gasit soluii in urma unor cercetri independente de robotic ([37]). Au rezultat urmtoarele: 2.2.1Ipoteze simplificatoare 1.Dispozitivele denumite generic PRA opereaza de cele mai multe ori n interior, n locuine, spitale, sau centre de reabilitare. Mediul n care evolueaz este cunoscut sieste,(saupoatefi)prevzutcuechipamentdecalculsitelecomunicaii, aparatur medical, etc.272.Principala funcie a unui PRA rmne cea de suport locomotor. Acesta trebuie sfiecapabilfiestransporteefectivpersoanaasistatcatrediversepuncteint, fie s-l ghideze/sprijine n deplasarea ctre acele puncte. Cu aceste ipoteze, se poate formula urmtoarea definiie: Definiia 1 Un asistent robotic personal (PRA) este un vehicul capabil s se deplaseze autonom i s interacioneze n mod programat cu o serie de senzori si actuatoare distribuite ntr-unmediuinteligent,nscopulcompensriiunordeficienelocomotoriisau senzoriale ale persoanei asistate. 2.2.2Structura unui PRA Structura propus pentru un PRA deriv din structura general de conducere a unui robot autonom, prezentat n figura 2.1. DynamiccontrolMotorsHIGHLEVELCONTROLENVIRONMENTSENSORSKINEMATICCONTROLWheelsLocalizationAUTONOMOUSGUIDEDVEHICLEprefVref LVref REstimatedpose pFig. 2.1 Structura general tipic de conducere a unui vehicul autonom Seobservprezenaatreibucledecontrolierarhizate.Lanivelulinferiorseaflbucladecontroldinamic,implementatdeelectronicancorporatnvehiculul autonom. Schema bloc a acesteia este prezentat n figura 2.2. ncazulparticularalvehiculelorautonomefolositepeparcursulexperimentelor, (roboii mobili Pioneer3-DX i PeopleBot de la Mobile Robots [11]), controlul dinamic estenntregimerealizatdeelectronicaintern.Singurulparametrulegatde 28dinamica sistemului, care este accesibil pentru nivelele superioare de conducere este acceleratia liniara a,] , 0 [maxa a , comun pentru ambele roi motoare. MMMMMMMMCCCCCCCCUUUUUUUUMCU(dynamiccontrol)SensorsforobstacledetectionAmplifierAmplifierLeftMotorRightMotorShaftEncoderShaftEncoderPWMPWMRS232Fig. 2.2 Schema bloc a echipamentului ncorporat in AGV Buclaintermediardeconducere(conducereacinematic)arecaobiectiv generarea referinelor de vitez pentru celedou roi motoare vrefL, vrefR pornind de laopoziiaint ) , , (ref ref ref refy x p = ,saudelaotraiectorieint,specificatde nivelulsuperiordeconducere,sidelaoestimareapoziieicurente) , , ( y x p = , furnizatdesubsistemuldelocalizarealAGV.Totlanivelulacesteibuclese implementeaz i algoritmii reactivi de evitare a obstacolelor. Bucla superioar de conducere are ca obiectiv planificarea i/sau selecia intelor denavigaienfunciedeinformaiafurnizatdesenzoriidinmediuideo reprezentare intern a mediului. Pebazastructuriitipicedeconduceredescrise,rezultstructurapropuspentru PRA, prezentat n figura 2.3. Fiecare din blocurile funcionale ale sistemului din figura 2.3 este implementat cu un microcontroller distinct. La bordul vehiculului autonom sunt meninute doar echipamentele strict necesare pentru navigaie.29Interfeele cu senzorii i actuatoarele distribuite n mediu, precum i echipamentul de telecomunicaie i o parte din task-urile de prelucrare a datelor sunt asignate unor echipamente aflate la sol, cu care robotul se afl n comunicaie wireless. KINEMATICCONTROLDECISIONDATAACQUISITIONSENSORSACTUATORSCOMPUTING&COMMUNCATIONEQUIPMENTWIRELESSLINKAUTONOMOUSVEHICLE SMART ENVIRONMENTDYNAMICCONTROLFig. 2.3 Structura unui PRA, implementat conform definiiei 1 Detaliiprivindaceastaabordareaconceptuluideasistentroboticpersonalaufost publicate n [38]. 2.3Task-uri asociate cu navigaia roboilor autonomi In 1991, Leonard si Durrant-Whyte ([39]) au sintetizatproblemele legate de navigaia roboilor autonomi prin urmtoarele trei ntrebri: Where am I? Where should I go? How should I get there, and not get hurt? Figura2.4ilustreazmodulncareacestentrebrisesuprapunpesteconceptul clasic de sistem de reglare cu reacie. REFERENCE(WhereamIgoing?)CONTROLLER(HowshouldIgetthere...)VehicleSENSORS(WhereamI?)OBSTACLES(...andnotgethurt)Fig. 2.4 Controlul navigaiei roboilor autonomi din perspectiva teoriei sistemelor automate 30Incapitoleleurmtoaresevoranalizaperndtask-urileasociatecunavigaia roboilorautonomisimodalitiledeimplementareaacestoracuajutorulunor microcontrollere ncorporate. 2.4Modelulcinematicalvehicululuicudouarotimotoaresitraciune diferenialProblemamodelriicinematiceadiverselorvehiculeafostextensivtratatin literatur ([40],[41],[42],[43],[44]). Incazulparticularalroboilormobilicudouroimotoaresicutraciune difereniala, cu notatiile din figura 2.5, yxVLVRVb(x,y)ICCqRrFig. 2.5 Variabilele cinematice ale vehiculului cu dou roi motoare si o roat directoare undeICCestecentrulinstantaneudecurburatraiectorieivehiculului,Resteraza instantanee de curbur, b este distana ntre planele roilor motoare, iar este viteza unghiularavehicululuinraportcupunctulICC.Presupunndcmicarearoilor este de rostogolire pur, fr alunecare, pe o suprafa plan, sunt valabile relaiile: bt v t vb Rt vb Rt vtL R L R) ( ) (2 /) (2 /) () (==+= (2.1) +=) ( ) () ( ) (2 t v t vt v t v bRR LR L(2.2) 2) ( ) () ( ) (t v t vR t t vL R+= = (2.3) 31Iar ecuiile cinematice ale vehiculului sunt: ) () () ( sin ) () () ( cos ) () (tdtt dt t vdtt dyt t vdtt dx===(2.4) ceea ce se poate scrie compact: ++==b v vv vv vvyxdtdL RL RL R/ ) (sin ) (21cos ) (211000sincos(2.5) =LRvvb byxdtd/ 1sin21cos21/ 1sin21cos21 (2.6) Ecuatia (2.6) reprezint modelul cinematic al AGV si a fost folosit pentru simularea MATLAB a micrii vehiculului. 32 Where Am I? Problema localizrii roboilor autonomi Definiia 2 Termenullocalizaredesemneazprocesuldeestimareapoziieisiorientriiunui vehicul autonom, n raport cu o reprezentare (hart) a mediului. Conformdefinitiei2,rezultctask-urileasociateculocalizarearoboilorautonomi se pot clasifica n: Task-uri asociate cu estimarea poziiei robotului (pose estimation); Task-uriasociatecuconstruciahrtiimediului(mapacquisition,saumap building) pornind de la informaiile furnizate de senzori. Avndnvedereccercetrileprezentatenaceasttezselimiteazlastudii privind implementarea unui asistent robotic personal (PRA), conform definitiei 1, vom presupune ca harta mediului n care acesta evolueaz este a-priori cunoscuti, n consecin, nu vom aborda problemele de construcie a hrtii. 3.1Clasificarea sistemelor de localizare Dinperspectivamoduluideestimareapoziiei,sistemeledelocalizarefolositein cazul roboilor autonomi au fost clasificate n: Sistemedelocalizarerelativ.Acesteasefolosescinsituaiilencareeste disponibiloestimareapoziieiinitialeavehiculului,fadecaresecalculeazunincrementbazatpeinformaiafurnizatdesenzori.Inaceastcategoriese ncadreaz odometria i sistemele de localizare inerial. 33 Sistemeledelocalizareabsolut.naceastcategorieintrsistemelede localizare bazate pe: Balize active (active beacons), Recunoaterea unor repere geografice (landmarks) naturale, Recunoaterea unor repere geografice artificiale, Comparareainformaieidelasenzoricuunmodel(hart)geometricsau topologic al mediului (model matching localization). Oprezentarecuprinztoareasenzorilorsimetodelordelocalizarecunoscuteeste disponibil n ([45],[46]). 3.2 Sisteme de localizare relativAcestea sunt denumite sisteme de tip dead reckoning.Pentru un vehicul cu modelul cinematic descris de (2.6), dac se cunoate poziia la momentultk, Tk k k kt t y t x p )] ( ), ( ), ( [ = ,atuncipoziialaunmomentdetimpoarecare t>tk, se poate exprima: dbv vt tdv vt y t ydv vt x t xttR LkttR LkttR Lkkkk+ =++ =++ =) ( ) () ( ) () ( sin2) ( ) () ( ) () ( cos2) ( ) () ( ) ((3.1) Incazulparticularalodometriei,presupunndclafiecaredinroilemotoarese cupleazencoderecurezoluiaCe(impulsuriperrotaie) prinreductoarecu factorul de transmisie , se defineste factorul de conversie cm, care convertete numrul de impulsuri in spaiu de translaie: enmCDc= (3.2) 34unde Dn este diametrul nominal al roilor motoare. Notand LkN si k RN variaia(incrementul)numruluideimpulsuriinregistratede encodere,ntremomenteletk-1sitk,sepoatecalculadistanaparcursdefiecare roat motoare n acest interval de timp: Rk m RkLk m LkN c SN c S = = (3.3) Atunci deplasarea liniar incremental a centrului de mas al vehiculului se exprimprin relaia: 2k R k LkS SS + = (3.4) iar variaia orientrii este: bS Sk R k Lk = (3.5) Cu aceste notatii, ecuaiile (3.1) devin: k k kk k k kk k k kS y yS x x + = + = + =111sincos(3.6) Datoritasimplitiisicosturilorreduse,sistemeledelocalizarebazatepeodometrie suntprezentenaproapetoatevehiculeleautonomecunoscute.Principalul dezavantaj deriv din faptul c sunt vulnerabile la erori cumulative de msurare. Au fost descrise ([45]) erori odometrice sistematice provocate de: Diferene ntre diametrele roilor motoare; Diferene ntre diametrul nominal si diametrul real al roilor; Diferente ntre distanta nominala dintre planele roilor i distana real ntre acestea; Alinierea imperfect a roilor; Rezoluia limitat a encoderelor; 35Timpul de esantionare a encoderelor limitat ; Erorile odometrice nesistematice provin de la: Traversarea unor suprafee cu denivelri; Alunecridatoratetraversariiunorsuprafeealunecoase,interaciuniicu obstacoleexterne,unorforeinternegeneratelanivelulroilorcastor, acceleratiilor prea mari, derapajului la curbe, sau contactului nepunctiform ntre roat i sol. Erorileodometricesistematicesunt,nprincipiu,predictibileiau fostdescrii([47], [48])algoritmideestimareagraduluideincertitudineamasurtorilorodometrice. Conformacesteiabordri,poziiarealavehicululuiseafl,cuoprobabilitate specificat,intr-ovecintateapoziieiestimate,delimitatdeoelipsade incertitudine, ca in figura 3.1. 0 20 40 60 80 100 120 140 160 180 2000-2020406080100Realpath(b)Estimatedpath(a)(a)(b)Fig. 3.1Ilustrarea conceptului de elips de incertitudineInfigura3.2esteprezentatatraiectoriasimulataaunuirobotinconditiileunei diferente de doar 1% ntre diametrele nominale ale roilor motoare. Dup parcurgerea adoar10minliniedreapt,abaterealateralnregistratafostde1200mm,iar abaterea unghiular a fost de 30 grade. 360 1000 2000 3000 4000 5000 6000 7000 8000 900010000[mm]MATLABsimulationfordifferentialdriverobot-3000-2000-100001000200030004000[mm]Fig. 3.2Traiectoria simulat in cazul unei diferene de 1% ntre diametrele roilor Au fost prezentate mai multe metode de estimare si reducere a erorilor odometrice sistematice (ex. [49], [50]), dar avnd n vedere c acestea sunt ntotdeauna nsoite de erori nesistematice imprevizibile, utilitatea acestor metode este limitat. Concluzii privind sistemele de localizare de tip dead-reckoning Unrobotcaresebazeazaexclusivpedeadreckoningvaajungerapids-ipiardlocalizarea.Unadincelemairspnditesoluiiconstinfolosireaodometriein combinaiecuunsistemdelocalizareabsolut,bazatpeestimareapoziiei vehiculului autonom prin raportarea la un set cunoscut de referine externe. Periodic, robotulexecutasecvenedelocalizareabsolutprincareisiactualizeazcoordonatelecurente,iarntredouactualizrisebazeazpeodometriepentru navigaie.Avnd n vedere c algoritmii de localizare absolut necesit, de regul, un volum maimaredecalcul,problemafrecveneicucareseexecutsecvenelede actualizare este netrivial si rmne deschis problema determinrii situaiilor n care msurtorile odometrice au devenit inutilizabile i se impune o secvena de localizare absolut. 373.3 Sisteme de localizare absolutSistemeledelocalizareabsolutsebazeazpeestimareapoziieirobotuluifaade un numr de repere externe, a caror poziie este cunoscuti care pot fi identificate n mod univoc de senzorii aflai la bordul robotului. Cnd localizarea se efectuaz prin msurarea unor distane, metoda se numete trilateraie, iar n cazul cnd se msoar unghiurile, metoda se numeste triangulaie. Reperele folosite pentru localizare pot fi elemente ale mediului (de exemplu colul unei ncaperi, o ua, etc.), sau pot fi balize, special amplasate n acest scop, care emit semnale de identificare, uor de interpretat de sistemul de senzori. 3.3.1Metode de localizare bazate msurarea distanelor Figura3.3ilustreazaprincipiultrilateraiei.DacapoziiapunctelorA,BiCeste cunoscut, i sistemul de senzori ai robotului este capabil s msoare distanele d1, d2, d3, se poate calcula poziia punctului R, aflat la intersecia cercurilor cu centre n A, B i C, i cu razele d1, d2, d3. RABCd1d2d3Fig. 3.3 Ilustrarea principiului trilateraiei Daca punctele A, B, C sunt coliniare, rezult nedeterminarea ilustrat n figura 3.4, n careexistdoupuncteRiRcaresatisfaccondiiadeapartenensimultanla cele trei cercuri. 38RA B Cd1d2d3RFig. 3.4 Nedeterminare in cazul trilateratiei cu repere coliniare Aufostdescrise([45],[51],[52],[53],[54],[55])diversemetodepentrumsurarea efectiv a distanelor ntre robot i balize. ntre acestea se numr: - Msurareatimpuluidepropagareaunuisemnalspecificntrerobotulmobili balizelefolositecarepere.Aceastapresupunefiecbalizelesuntactiveicexistunmecanismdesincronizarentreemiatoriiireceptoriisemnaluluide referina(canGPS[56]), fiecsistemuldelocalizarealrobotuluiesteactiviar balizelereflectsauretransmitsemnaluldereferin(canradar[57]).ncazul cndsefolosesteunsemnaldereferinluminos(orazalaser)existlimitrila msurareadistantelormici,careconduclatimpidepropagaredeordinul picosecundelor,dificildemsurat.Dacsemnaluldereferinaestesonor, distanamaximcarepoatefimasuratestelimitatlacirca20m,iarprecizia msurtorilor este mult mai mic dect la sistemele bazate pe laser. - Msurarea diferenei de faz ntre semnalul de referin emis de sistemul activ de localizare al robotului i o fractiune a acestuia reflectat de int. i n acest caz exist limitri n ce priveste distana maxim msurabil, la circa 20m. -O abordare interesant este descris n [58] i [59] i se bazeaz pe msurarea intensitailorcmpuluielectromagneticgeneratdeoseriedepunctedeacces Wireless Ethernet. Atenuarea undelor electromagnetice generate de acestea este proporional cu distana i poate servi camijloc pentru estimarea distanei ntre 39baliza radio i receptorul mobil. Deocamdat nu exist nsa dispoziive comerciale de localizare bazate pe acest principiu. 3.3.2Metode de localizare absolut bazate pe msurarea unghiurilor Metodele de localizare derivate din triangulaie sunt prezentate extensiv n [45], [60], [61], [62], [63], [64] iar informaii despre senzorii folosibili pentru msurarea orientrii sunt disponibile n [65], [66]. Formularea problemei. FiinddatetreireperenplanA,B,C,acrorpoziie estecunoscut,iunrobotR, capabilsmsoarevalorile 3 2 1, , aleunghiurilorformatedesemidrepteleRA, RB,RCfaadeorientareacurentarobotului(vezifigura3.5)sepuneproblema determinarii poziiei robotului) , , (R R Ry x n coordonate carteziene. RABCqRa1a2a3xyxRyRFig. 3.5Notaii folosite pentru formularea problemei triangulaiei CoheniLossn[64]descriuprincipalelemetodedelocalizareprintriangulaiei compara performanele acestora. Metoda cutrii iterative a orientrii Sebazeazpeobservaiac,nsituaiancareseiaunconsideraredoardourepere,dacanusecunoasteorientarearobotului R ,poziiarobotului) , (R Ry x este nedeterminat, el putandu-se situa oriunde pe cercul determinat de punctele A, B, R (vezifigura3.6).Invers,dacorientarea R luatncalculesteceacorect, 40rezultateleobtinutepentru) , (R Ry x folosindoricaredinperechiledepuncte(A,B), (B,C) i (C,A) sunt identice.RABqRa1a2xyxRyRFig. 3.6 Triangulaie cu dou repere Aceastobservaieconducelaideeadeaparcurgeiterativtoateorientrile Riposibile,calculnddefiecaredatcoordonatele) , (Ri i Ry x pentrutoateperechilede repere(A,B),(B,C)i(C,A).Sealegecasoluie,valoarea R careconducelaun perimetruminimaltriunghiuluiformatdepunctele) , (Ri i Ry x calculatepentrutoate perechile de repere (A,B), (B,C) i (C,A). Metoda triangulaiei geometrice Cu notatiile din figura 3.7: xyxRyRO1O2O3abdfdabt180- - t bt d a +- RFig. 3.7 Notaii folosite pentru ilustrarea metodei triangulaiei geometrice Se cunosc coordonatele reperelor O1, O2, O3 (x1,y1), (x2,y2), (x3,y3) i orientrile acestora relativ la robotul R, 3 2 1, , O O O . 41Ipoteze: -Numerotarea reperelor se face n sens anti-orar; -Unghiurile 1 3360 O Oo + = si 1 2O O = trebuiesfiemaimicidect 180o.Dacaceastcondiienuesteindeplinit,serotescidentificatoarele reperelor cu o poziie n sens anti-orar, pn cnd condiia este ndeplinit. inndsemadenotaiiledinfig.3.7,ncare, esteunghiulntreaxaOxidreapta determinat de punctele O1, O2, unghiul ntre axa Ox i dreapta O1-O3, plus , i = ; Cu notaia: sinsinbap = (3.7) n [67]se demonstreaz c: sin) sin(cos cossin sinarctan+==bdpp(3.8) 111) sin() cos(Od y yd x xRRR + =+ =+ + = (3.9) Metoda de triangulaie Newton-Raphson Este o metod iterativ de aproximare a poziiei unui robot mobil, care pornete de la ipotezacestedisponibiloestimareiniialapoziieirobotului,suficientde apropiatdepoziiareal,obinut,deexemplu,prindeadreckoning.Dacaproximareainitialaestedepartedesoluie,metodaNewton-Raphsonnudrezultate.Considerm c aceast metod se ncadreaz mai degrab la metode de corectie a erorilor odometrice, dect ca metod de localizare distinct. 42Metoda de triangulaie cu calculul distantelor ntre robot i balize Cu notatiile din figura 3.8: xyxRyRO1O2O3L1L3L2L12L31L23l12l23l31Fig. 3.8 Notaii pentru ilustrarea metodei de triangulaie cu calculul distanelor Distantele ntre balize se calculeaz ([67]): = = =3 1 312 3 231 2 12 (3.10) + = + = + =31 1 3123231223 3 2322223212 2 12212122cos 2cos 2cos 2L L L L LL L L L LL L L L L(3.11) Iar coordonatele (xR, yR) se obtin rezolvand sistemul liniar: + + + + = 3212321232122212221222121 3 1 31 2 1 2) ( 2 ) ( 2) ( 2 ) ( 2y y x x L Ly y x x L Lyxy y x xy y x x(3.12) Cunoscnd xR, yR , se poate calcula R : 111) arctan( =RRRx xy y(3.13) 43Alte metode de triangulaie Metoda geometric bazata pe intersecia a dou cercuri Sebazeazpefaptulcpunctulncareseaflrobotul,mpreuncudoudin reperele folosite determin un cerc. Cu notaiile din figura 3.7,tripletele (R, O1, O2) i (R, O1, O3) determin dou cercuri care se intersecteaz n punctele R i O1. Coordonatele xR, yR se obin rezolvnd sistemul de ecuaii care rezult din condiia capunctulRsaparinambelorcercuri,iar R sepoateobinecuorelaie trigonometric similar cu (3.13). Metoda de triangulaie cu mai mult de trei repere (Position Estimator) AceastmetodafostdescrisdeBetkeiGurvitsn[60]isebazeazpe reprezentarea coordonatelor celor n repere ca numere complexe. Rezult un sistem liniar, din care se determin coordonatele robotului. Borenstein n [45] identific urmtoarele avantaje ale acestei metode: Erorilemari,proveninddelaidentificareagresitaunorrepere,saudela msurarea gresit a unor unghiuri pot fi identificate i eliminate; Durata de execuie variaza liniar cu numrul de repere folosite; Permiteobinereaunorestimricorectealepoziieirobotuluichiarnprezena zgomotului. O analiza metodelor de localizare prin triangulaie este prezentata extensiv n [64] i [67]. Printre dezavantajele metodelor prezentate se numr: -Practictoatemetodeleprezentate necesitunvolummaredecalcul,ceeacele facedificil,sauchiarimposibildeimplementatpemicrocontrollerelowcost/low power; -Inanumiteconfiguraiialereperelor,producsoluiimultiple,sauconducla nedeterminri; 443.3.3Alte metode de localizare Metode de localizare care folosesc tehnologia RFID Dezvoltatiniialcaoalternativlacoduldebarepentruidentificareaobiectelor, tehnologia RFID (Radio Frequency Idenfification, [71],[72]) s-a dezvoltat accelerat n ultimiiani,fiindpropusezecideaplicaii,delaurmrireabagajelornaeroporturi, pn la paapoarte biometrice. Inesena,untagRFIDesteomemorienevolatilcarepoatefiaccesatfrcontact,prinintermediulundelorelectromagnetice.Principalulavantajalacestora estecmajoritateasuntpasive,nsensulcnunecesitosurspropriede alimentare.Alimentareachipuluidememoriesefacedoarpeduratatransferuluide date,captndofraciunedinenergiacmpuluielectromagneticemisdeuncititor (reader).Transferuldatelorsefacecuajutorulmodulaieidesarcina(loadmodulation), (vezifigura3.9)conectndosarcinvariabillacircuitulacordatalantenei receptorului. Variaia sarcinii conduce la modularea n amplitudine (ASK Amplitude ShiftKey)asemnaluluiemisdereader.Cumntrereaderitagexistuncuplaj inductiv strns, variaia amplitudinii purttoarei este detectabil la nivelul reader-ului, care poate reconstitui datele transmise de tag. DEMOD DataCHIPDPOWERRLE.M.FIELDURREADER RFID TAGFig. 3.9 Principiul de funcionare al unui canal RFID 45Intabelul3.1suntprezentatefrecveneledeoperareuzualeistandardelecare definesc caracteristicile diverselor sisteme RFID. Tabelul 3.1 Frecvene i standarde RFID Frecvene de operare LF 125-134KHz HF 13.56MHz HF 433MHz UHF 866-930MHz UHF 2.4GHz ISO-11784ISO-14443ISO-18000-6a ISO-18000-2ISO-15693ISO-18000-6b ISO-18000-4 Standard ISO18000-2BISO-18000-3 ISO-18000-7 ISO-18000-6cISO-24730-2 In functie de distana maxima ntre cititor i tag la care se pot transmite date, tag-urile RFID se clafific n: Proximity tags (distana de operare ntre 0 i 100mm) Vicinity tags (distana de operare ntre 100 i 1000mm) Long range tags (distana de operare 1-15m). Acestea sunt, de obicei active, n sensul ca dispun de o baterie proprie pentru alimentare. Dinpunctdevederealtipuluidememorieinternfolosit,tag-urileRFIDpotfi read-only, situaie n care contin o memorie ROM cu un cod unic de identificare, sau read-write, caz n care memoria intern este EEPROM sau FRAM. Capacitatea memoriei interne variaz, pentru tag-urile uzuale, ntre cativa octei i 128 kilooctei. Timpul de lectur pentru tag-urile uzuale este de ordinul milisecundelor. MajoritateasistemelorRFIDactualefolosescunmecanismdedetectarea coliziunilorlatransferuldatelorntrecititoritag.nconsecin,nsituaiilencare maimultetag-uriseaflanzonaderecunoatereaunuireader(vezifigura3.10) acestea vor fi citite pe rand, sau nu va fi citit nici unul. 46xzyReadersantennazaTagsRecognitionareaFig. 3.10 Modelul zonei de recunoatere intr-un sistem RFID Inultimiiani(dupa2004)aufostprezentatectevaexperimentecarevizeazfolosirea tehnologiei RFID pentru localizarea robotuilor mobili. Soluiile propuse difern funcie de distana de citire a tag-urilor i de tipul de tag-uri folosite. Hahnelet.al.n[73]propununsistemdelocalizarebazatpevicinitytagsread-only, n care se folosete o abordare probabilistic pentru corecia poziiei raportatde sistemul odometric folosind informaia obtinut de la un set redus de tag-uri RFID montate pe pereii incintei. Kulyukin et. al n [74] propun un sistem asemntor, bazat pe metoda cmpului de potential,pentruimplementareaunuisistemdeghidareapersoanelorcudeficiente de vedere. i aici, se folosesc vicinity tags, read-only, montate pe perei. O abordare asemntoare este prezentat n [75]. Ulterior,Kulyukinrevinen[76]ipropuneunsistemcutag-urideproximitate read-only, montate pe podea. Park i Hashimoto propun n [77] o metod de localizare bazat exclusiv pe RFID. Tag-urile sunt montate n podea, n asa fel nct un singur tag se afla la un moment datnzonaderecunoastereacititorului.Semasoartimpuldecitirealtag-urilori aceast informaie este folosit pentru calcularea orientrii. 47n[78]i[79]sepropunsoluiibazatepeconsideraiilegatedepropagarea undelorelectromagneticepentrudeterminareaorientriirobotuluinraportcutag-urile citite. ntoateabordrilemenionate,poziiatag-urilorestea-prioricunoscut ise ncearcdeterminareapoziieirobotuluinraportcuacesterepere.n[80], configuraiainiialatag-urilorestenecunoscut,darestenvatdeunrobot echipatcusistemelaserdelocalizare.Ulteriorinformaiaachiziionatprinnvare despre poziia tag-urilor n mediu este transferat unor roboi mai simpli. n[81]i[82]sepropunsoluiicarefolosesctag-uriread-write,ncorporaten podea,ncaresememoreazcoordonatelepoziieitag-ului.Pentruestimarea poziiei unghiulare i pentru aproximarea deplasrilor ntre nodurile reelei de tag-uri se folosete sistemul odometric. nsfrit,soluiapropusn[83]vizeazmbuntirearezoluieidelocalizarea automobilelor prin GPS, distribuind tag-uri RFID pe osele. 3.4Concluzii privind metodele de localizare prezentate Borensteinn[45],nurmauneianalizeextensiveasistemelordelocalizare cunoscute, formuleaz urmtoarea concluzie: Perhapsthemostimportantresultfromsurveyingthevastbodyofliteratureon mobilerobotpositioningisthattodatethereisnotrulyelegantsoluionforthe problem. In general, se poate observa ca soluiile bazate exclusiv pe un singur tip de senzor conduc fie la algoritmi care implic volume foarte mari de calcule, fie la nedeterminri inacceptabile.Suntdepreferatsoluiilecarefuzioneazinformaiiledelamaimulte tipuri de senzori. 483.5Contribuii la rezolvarea problemei localizarii roboilor mobili 3.5.1O metod de identificare a balizelor ultrasonntoatemetodeledelocalizarebazatepetrilateraieitriangulaiedescrisen paragrafeleanterioaresepresupunecrobotulcunoatea-prioripoziiareperelor fixefolositeicdispunedeunmijlocdeaidentificareperulasupracruiasefac msurtori la un moment dat. Chiarncazulfolosiriiunorsenzorilaserdenaltperforman([84]),carepot msurdistantedepnla200mcuorezoluiede1mm,problemaidentificrii obiectului fa de care se msoar distana rmne deschis.Balizele ultrason au avantajul simplitii i al costului redus i, din acest motiv, au fostprintreprimelesoluiifolositenpractic([39]).Pentruidentificareaacestoraa fost propus un sistem de activare selectiv ([85]) n care, o staie-baz activeaz pe rnd balizele, emind simultan un semnal radio, care conine un cod de identificare albalizei.Robotulrecepioneazsemnalulradioiporneteuntimercuajutorul cruiamsoartimpuldepropagaretp aundeisonorentrebalizafixireceptorul aflatlabordulrobotului(vezifigura3.11),ceeacepermitecalculareasimpla distanei ntre baliza i receptor. ttttTransmitterReceiverRadiosignalRadiosignalUltrasonicburstUltrasonicbursttpFig. 3.11 Activarea selectiv a balizelor cu identificator radio 49Un sistem bazat pe acest principiu, realizat de I.S. Robotics, citat de Borenstein n [45], a realizat localizarea unui robot mobil (Genghis) ntr-un perimetru de 9,1x9,1m cu o precizie de 0,5 (12,7mm). Dezavantajele acestei metode: 1.Foloseteuncanalradiontrerobotiechipamentuldelasol,canalcare,n practic, este necesar pentru alte scopuri. 2.Metodaesteaplicabildoarnsistemeledelocalizarebazatepemsurarea distantelor.Metodeledelocalizarecareimplicamsurareaorientriirobotului faadeosursasonornubeneficiazadeacestmecanismdeidentificarea balizelor(deexemplu,metodelebazatepemsurareatimpuluideintarziere interaurala ITD, intr-un sistem biomimetic cu dou microfoane captoare, cum este cel descris n [68]). Soluiapropusmaijoseliminaambeledezavantajeenumerate,codificnd informaiadeidentificareabalizelorprintr-unsemnalDTMF(DualToneMulti Frequency), modulat n amplitudine peste purtatoarea de frecvena ultrasonor. SistemuldecodareDTMFafostpropusn1960([86])pentrutransmisiaunor volumeredusedeinformaiedigitalapeinfrastructuradetelefonieanalogic,foarte afectat de zgomot. Ulterior au fost descrise numeroase aplicaii posibile ([87], [88]). Un semnal DTMF este o suma de dou semnale sinusoidale: t A t A y2 1sin sin + = (3.14) iarinformaiadigitalcodatadeacestsemnalestedeterminatdeperecheade valori) , (2 1 . Frecvenelecorespunztoarepulsaiilor) , (2 1 aufoststandardizatenplaja [697Hz-1633Hz].nprezent,suntdisponibilecircuiteintegratemonolitice,care implementeaza funciile de encoder/decoder DTMF (ex. Mitel MT8870/MT8880). 50Soluiapropusdeidentificareabalizeloresteprezentataschematicnfigurile 3.12 (structura balizelor) i 3.13 (structura receptorului). RADIOMODEMMCUBASESTATIONOSC.40kHzOSC.40kHzDTMFENCODERDTMFENCODERA.M.MODULATORA.M.MODULATORBEACONBEACONFig. 3.12Structura balizelor ultrason cu identificare DTMF A.M.DEMOD.DTMFDECODERBURSTDETECTORMCUOMNIDIRECTIONALMICROPHONERADIOMODEMFig. 3.13 Structura receptorului pentru identificarea balizelorLa nivelulstaiei-baz,unmicrocontroller monitorizeaz,prinintermediulunuiradio-modem, comunicaia ntre robot i echipamentul de control de la sol. De fiecare datcndseemiteunpachetdedatecatrerobot,secomandsuccesivfiecarebaliz, pentru emisia unui burst de 40KHz, cu durata de 100ms, modulat A.M. cu semnalul DTMF corespunzator codului de identificare al balizei.La receptor, semnalul audio este captat de un microfon omnidirecional, amplificat i prelucrat de circuitele adiionale, care extrag codul DTMF al balizei i genereaz o cerere de ntrerupere la microcontroller, marcnd momentul precis al detectarii burst-51uluiultrason.Microcontrollerulmsoartimpulscursntremomentulrecepiei pachetuluidedateimomentuldetectriiburst-uluiultrasonicde40KHz.Nueste necesarmodificareaprotocoluluidecomunicatiecuechipamentuldelasolpentru cidentificatorulbalizeiesteextrasdinsemnalulDTMF.SemnaluldeSTROBE generatdedecodorulDTMFpentrutransferulcoduluideidentificarereprezintao validaresuplimentaramsurrii,carepermiterejectiaburst-urilorafectatede zgomot. Metoda de identificare a balizelor ultrason descris mai sus poate fi aplicati n sistemeledelocalizarebazatepetriangulaie.Osoluiesimpl ielegantde determinareapoziieiunghiularerelativearobotuluifadeosurssonoreste prezentatn[68].Aceastasebazeazpefolosireaadoumicrofoane omnidirectionalepentrucaptareasemnaluluisonor,nmodsimilarcuperceptia binaurallamamifere.Determinareadirectieisurseisonore(azimutul)seface msurndntrziereainterauralasemnaluluisonor(ITDInterauralTime Difference). LRd2d1qt1t2aFig. 3.14 Determinarea azimutului sursei de semnal pe baza msurrii ITD Cu notaiile din figura 3.14, unde L i R sunt doi senzori (Left si Right), cunoscnd timpul de propagare interaural t , se poate calcula azimutul sursei sonore faa de orientarea curent a robotului ([68]): 52) arcsin(at c= (3.15) unde c este viteza sunetului, iar a este distana ntre cele dou microfoane captoare. ITD se poate msura cu un circuit relativ simplu, cum este cel prezentat n figura 3.15. A.M.DEMOD.DTMFDECODEROMNIDIRECTIONALMICROPHONELEFTOMNIDIRECTIONALMICROPHONERIGHTB.P.FILTERB.P.FILTERSQUAREWAVESHAPERSQUAREWAVESHAPERPRECEDENCEDETECTORUP/DOWNCOUNTERMCUREF.CLOCKBEACONIDSTROBEFig. 3.15 Exemplu de circuit pentru msurarea Interaural Time Difference ITD Faademetodadescrisn[68],decalculaITDprincross-corelareasoftwarea semnalelorcaptatedemicrofoane,circuituldinfigura3.15areavantajulca degreveazmicrocontrolleruldeopartedincalculelenecesarelocalizriisi,n acelai timp, ofer o modalitate de identificare a balizelor. Evident,structurilehardwaredescrisenfigurile3.13i3.15potficombinaten asa fel nct s determine simultan i azimutul i distana la care se afla baliza. Dacorientarea robotului se determina cu un dispoziiv dedicat (girocompas, sau busolelectronic[45]),coordonatele(xR,yR)alerobotuluisepotdeterminaextermde simplu folosind o singura baliza ca referina. Cu notaiile din figura 3.16, cunoscnd coordonatele balizei (xA,yA) i masurand orientarea robotului , distana pn la baliza d, i azimutul balizei faa de robot , rezult coordonatele robotului: 53RqxyxRxAyRyAAfdFig. 3.16 Localizare n raport cu o singur baliz) sin() cos( = =d y yd x xA RA R(3.16) Dezambiguizareafa-spateladeterminareaazimutuluibalizeisepoateface folosind informaia furnizata de sistemul odometric. 3.5.2Metoda de localizare bazat pe tehnologia RFIDMetodadelocalizarepropus,derivadinmetodelepropusen[81]i[82],cu urmtoarele precizri: a.Tag-urilefolositesuntdeproximitate,read-write,amplasatenpodeaifiecare tag stocheaz coordonatele absolute ale punctului unde se afl amplasat. b.Tag-urile sunt amplasate intr-un grid n aa fel nct cel mult un tag sa se afle la un moment dat n zona de recunotere a cititorului (vezi figura 3.17). c.Poziia unghiulara a vehiculului autonom se msoar cu o busola electronica. d.Vehiculul autonom dispune de un sistem odometric de localizare. e.Citireatag-urilorsefacecuajutoruladoucititoaremontatelateral.Aceastopiunereduceprobabilitateasituaiilorncareniciuntagnuestevizibillaun moment dat. 54f.Defiecaredatcndsecitesteuntag,coordonateleabsolutealeacestuiai valoareapoziieiunghiularearobotului,raportatdebusolaelectronicsunt folositepentrureiniializareasistemuluiodometric.nacestmodseevita acumularea erorilor sistematice specifice odometriei. g.nintervaleledintredoucitirialetag-urilor,sefolosetesistemulodometric pentru estimarea poziiei. xzyReadersantennazaRecognitionareaFig. 3.17 Amplasarea tag-urilor RFID pentru localizarea roboilor mobili Metoda descris mai sus are cteva avantaje notabile: Degreveazcompletmicrocontrolleruldenavigatiedesarcinacomputationalasociat cu localizarea; Este o soluie ieftin i fiabil; Erorile de localizare sunt constante; Tag-urileRFIDdistribuitenmediupotstocainformaiisuplimentarepelngcoordonatelepunctelorncareseafl,deexempluinformaiicarepotfolosila definirea unor trasee, sau la coordonarea activitaii unor formaiuni de roboti (vezi Capitolul 5). 553.6Concluzii privind localizarea PRA Problema localizrii roboilor mobili se simplific drastic dac admitem ipoteza cmediul n care acetia evolueaz este manipulat n sensul amplasrii unor repere artificiale, special proiectate. Fuzionareainformaiilorfurnizatedesenzoridemaimultetipuricontribuiela reducerea volumului de calcule asociate cu problema localizrii. 56q Where Should I Go? Selecia intelor de navigaie MingXiepropunen[89]odefiniiegeneralaunuisistemautomatcafiindacel sistem,ncareinteractiuneantreunsubsistemdedecizie(decisionmaking)iun subsistem efector (action taking), se desfaoar fr intervenia unui operator uman.Din aceast perspectiv, procesul de elaborare a deciziilor ocup un loc central n funcionarea oricrui sistem automat (vezi figura 4.1). SENSORSInternalrepresentationoftheenvironmentDECISIONGOALSACTIONSFig. 4.1 Reprezentarea unui sistem automat ca sistem de decizie i actiune ncazulroboilor,stabilireaobiectivelor,reguliledeinstaniereareprezentrilor internedespremediu,precumicondiiiledeselectareaaciunilorsedefinescprin program. Primelencercridecreareaunorlimbajedeprogramarededicatepentru programarearoboilordateazdin1973,cndafostpropusWAVE([90]),n contextul apariiei manipulatoarelor robotice de uz industrial. Ulterior, productorii de roboi industriali au creat limbaje de programare specifice pentru acetia, inspirate de limbajele de programare pentru computere. De exemplu, limbajulRAPID,folositderoboiiproduideABB([91])estederivatdinlimbajul 57Pascal,iarMBA4,sauMELFABASICIV,([92]),folositderoboiiMELFAdela Mitsubishi, este o extensie a limbajului Basic. Preocuprilepentruuniformizareaprogramriiroboilorindustrialisuntreduse. Existdoarunelencercriderealizareaunortranslatoarepentrutraducerea automat a programelor dintr-un limbaj n altul ([93]).Programarearoboilorautonomicomportoseriededificulti([94])carederiv, n primul rnd, din caracterul dinamic i uneori imprevizibil al mediului n care acetia evolueaz,dinfaptulcsefoloseteomarediversitatedesenzori,ctidin complexitatea task-urilor pe care le au de executat. ncazulparticularalroboilordeserviciu,ncaresencadreaz iasistenii robotici personali, apare o cerin suplimentar dificil de realizat i anume aceea cprogramarearoboilortrebuiesfieaccesibilunorutilizatoricucunotinetehnice elementare.4.1 Abordri cunoscute n domeniul programrii roboilor autonomi Ceamairspnditaabordareaprogramariiroboilorautonomisebazeazpe creareaunorextensiialeunorlimbajedeprogramarecunoscute(Pascal,LISP, ALGOL, BASIC, C++, etc.).Inaceastcategoriesencadreaz,deexemplu,ARIAAdvancedRobot InterfaceApplication([11]),RIPL-RobotIndependentProgrammingLanguage([95]),RCL-TheRobotCommandLanguage([96]),FDTL-FuzzyDecisionTree Language ([97]), GOLOG alGOL n LOGic ([98], [99]) i TDL - A Task Description Language for Robot Control ([100]).Tot n aceasta categorie se pot ncadra soluiile de programare a roboilor bazate pe XML Extensible Markup Language ([101]), de exemplu RoboML ([102]). Soluiile bazatepeXMLsuntdeosebitdeinteresantencontextuluneiposibileinteraciuni 58om-robotmediatedeInternet,avndnvederecatoatebrowsereleactualesuportXML i numeroase alte aplicaii software sunt echipate cu plug-in-uri XML. Limbaje de programare vizuala n aceast abordare, primitivele limbajului sunt reprezentate prin pictograme grafice, n principiu usor de selectat dintr-o bibliotec. n practic ns, biblioteca de simboluri poate atinge dimensiuni foarte mari, ceea ce ngreuneaz mult definirea task-urilor.Deexemplu,Lingraphica([103])sebazeazpeobiblioteccupeste2000de pictograme.Limbajul grafic PILOT ([104]) folosete un numr redus de primitive, dar parametrizarea e mult mai complex i mai dificil pentru utilizatorii neexperimentati. Tehnici de programare a roboilor folosind limbajul natural OsoluieremarcabilestepropusadeDrewsiFrommn[105]subdenumirea FSTN Finite State Transducer Network. Aceasta se bazeaz pe un pachet software comercialderecunoastereavorbirii(DragonNaturallySpeaking[106]).Propoziiile recunoscute astfel sunt interpretate din punct de vedere semantic i sintactic i apoi convertitencomenzidirectecatrerobot.Sistemulrecunoasteunvocabularde500 decuvinteiestecapabilsaformulezeintrebriatuncicndnunelegecomenzile vocale primite. Lauria et al. n [107] i [108] propun o metod, denumita IBL Instructions Based Learning, bazat pe un set redus de primitive apelabile prin comenzivocale simple, degenulgo_to,turn_left,follow_known_route_to,etc. Robotul este capabil s nvete secvene de astfel de comenzi i sa asimileze n acest mod noi cunostinte despre mediu, de exemplu sa nvete rute noi. 594.2Contribuii la rezolvarea problemei programrii roboilor autonomi 4.2.1Formularea problemei Considernd un sistem robotic cu structura definit n figura 1.1, aflat n interaciune cuunsetdesenzoriiactuatoaredistribuiteintr-unmediuinteligent,nscopul implementariiconceptuluideasistentroboticpersonal(PRA)pentrupersoanen vrstsaucudiversedizabiliti,ipresupunandcaniveleleinferioaredecontrol (vezi figura 2.2) realizeaz conducerea cinematic i dinamic a vehiculului autonom, sepuneproblemadezvoltariiunuilimbajdeprogramarepentrumodululdedecizie, care sa permit realizarea urmtoarelor obiective: a)Creareaiactualizareauneireprezentriinterneasupramediului,prin interogarea senzorilor; b)Definirea unui set de inte (goals) de navigatie; c)Definireaunuisetdeaciuniposibile,careconstaufiencomanda actuatoarelordinmediu,fiendeplasareavehicululuictreintelede navigaie definite; d)Definirea condiiilor n care se decide execuia diverselor actiuni. AvndnvederestructuradePRApropus,bazatpestructuridemicrocontrollere ncorporate (embedded), se impun urmtoarele cerine suplimentare: Programelegeneratenacestmodtrebuieexecutatentimpreal, rmnnd compatibile cu resursele limitate de memorie i putere de calcul ale microcontrollerelor uzuale; Limbajuldeprogramaretrebuiesafiectmaisimplu,nctsapoatfi folosit de utilizatori cu cunotine elementare de programare. 604.2.2Descrierea general a soluiei propuse Ingeneral,interaciunearobotuluicu mediulpoate fidescrisaprinpropoziiidetipul urmtor: IF((condition1)&&(condition2)&&...&&(conditionN)) THEN MOVE_TO GOALksau: IF((condition1)&&(condition2)&&...&&(conditionN)) THEN Activate_outputkunde (conditionj) este o funcie logic de intrrile i ieirile sistemului. Limbajuldeprogramarepropus,pecarel-amdenumitRDPL(RobotDecision Programming Language), se nscrie n categoria limbajelor de programare a roboilor autonomi, create ca extensii ale unor limbaje de programare cunoscute, fiind derivat dinlimbajuldescrisdestandardulIEC61131-3([109]),destinatprogramriiPLC-urilor. RDPLesteunlimbajcompilat,bazatpeunsetredusdeprimitive,cusintaxa general urmtoare:FNAME dest, op1, op2, op3, op4(4.1)undeFNAMEestenumelesimbolicalfunciei,destestedestinaiarezultatului operaiei indicate de funcie, iar op1, .., op4 sunt operanzii implicai n evaluarea funciei. De exemplu, funcia: ANDO1, I1, I2, Y5, Y25are ca efect activarea ieirii O1, daca intrrile I1 i I2 sunt active, iar variabilele Y5 i Y25 au valoarea logic TRUE. Programulsursesteunfisiertext,careconineosecvenadepropoziiicu structura definit de (4.1). Prin compilare, se obine un fisier binar, care conine codul executabil,cetrebuietransferatintr-omemorienevolatilsituatlanivelul microcontrollerului de decizie. Execuia programului se face conform schemei logice prezentate n figura 4.2. 61SCANINPUTFETCHEVALUATEFUNCTIONINCREMENT PCUPDATEOUTPUTRESET PCLASTFUNCTION?NOYESPC-PROGRAMCOUNTERFig. 4.2 Schema logica de execuie a unui program RDPL Fiecarecicludeexecuieaprogramuluincepecuosecvendeactualizarea unuisetdevariabileinterneasociatecuintrrilensistemisencheiecu actualizareaieirilor.ntreacestedoumomente,seevalueazperndtoate funciile, n ordinea n care au fost definite n program. Fa de un PLC convenional, sistemul descris are urmtoarele particulritai: Intrrileiieirilesuntdistribuite,fiindasociatecusenzoriiiactuatoarele amplasate (preponderent) n mediu. Un set limitat de intrri este asociat cu un numr comenzi vocale, de genul STOP,MOVE,LEFT,RIGHT.naceastaabordare,recunoatereaunei comenzivocale,setraduceintr-otranziieaintrriidigitaleasociatecu comanda vocal respectiv. 62O categorie special de ieiri din sistem o reprezint comenzile de micare avehicululuiautonom.Acesteasegenereazautomatisetransmit subsistemuluideconducerecinematicladetectareaunuifrontselectatal unorvariabilelogice.Coordonatelepunctuluiintsunttransmise subsistemului de control cinematic odat cu comanda de micare. 4.2.3Detalii privind implementarea RDPL 4.2.3.1Crearea i meninerea unei reprezentri interne asupra mediului Acestobiectivserealizeazdefinindunsetdevariabileasociatenmodunivoccu intrrileiieiriledinsistem.Untaskdebackgroundinterogheazperiodicblocul DataAcquisition(fig.1.1)dupaunprotocolcompatibilcu moduleledeachizitiede date folosite (MODBUS n experimentele noastre) i actualizeaz aceste variabile. Pentruapermitecodificareafronturilorinivelelorsemnalelordigitale,sealocvariabile de tip byte pentru intrrile digitale. La fiecare actualizare, valoarea curent a intrrii este shiftat n bitul cel mai puin semnificativ al octetului asociat, ca n figura 4.3.Acelasimecanismdeactualizareseaplicpentrutoatevariabileledetipbinar din sistem. 0 1 2 3 4 5 6 7Iktn+1 tntn- 1Fig. 4.3 Mecanismul de actualizare a intrrilor digitale In acest mod, biii cei mai puin semnificativi (bitii b0 i b1) ai octetului asociat cu o variabilbinarindicfaptulcrespectivavariabilaavutsaunutranziiedela ultima esantionare, precum i tipul acestei tranziii front cresctor sau cztor. Comenzile vocale sunt tratate ca intrri digitale n sistem. Recunoaterea propriu-zis a comenzilor se face la nivelul unui computer, amplasat n mediu, care ruleaz o 63aplicaiecomercialderecunoatereavorbirii,deexempluDragonNaturally Speaking ([106]). Larecunoatereauneicomenzivocale,computerulemitepeunportserialun stringdeidentificare,asociatnmodunivoccucomandarespectiv.Acestaeste recepionatdeunmoduldeconversiedeprotocol,careraporteazdatelenformat adecvat catre microcontrollerul de decizie (vezi figura 4.4). RADIOMODEMInputOutputModule(s)VoicecommandsSensorsActuatorsPROTOCOLCONVERTERRS-485 BUSRS-232Fig. 4.4 Structura modulului Data Acquisition incluznd comenzile vocale Sistemuldescrisareavantajulcpermitetratareacomenzilorvocalenmod absolutsimilarcuoricareintraredigital,asigurndmaximumdeflexibilitatei simplificndconsiderabilinterpretareacomenzilorvocale.Dezavantajulestecnumrul maxim al comenzilor vocale este limitat. 4.2.3.2Definirea intelor de navigaie Coordonateleintelordenavigaiesuntfurnizatecaparametruncomandade micare. Sintaxa general a comenzilor de micare este definita de funcia MOVE: MOVETRIGGER, GOAL_X,GOAL_Y, GOAL_HEADING, EDGE undeTRIGGERestedenumireasimbolicavariabileicaregenereazcomandade micare,(GOAL_X,GOAL_Y,GOAL_HEADING)suntcoordonateleintei,iarEDGEeste 64frontul semnalului TRIGGER care declanseaz efectiv generarea comenzii de micare catrevehicululautonom.Coordonateleinteisuntdateintr-unsistemdereferincartezian i sunt exprimate n milimetri i grade. Subsistemul de navigaie este responsabil de selecia unei rute (predefinite) i de conducereavehicululuilaintaspecificat,cuocolireaeventualelorobstacole.intelespecificatetrebuiesa fieposibilde atins(reachable)isa apartina uneirute predefinite. 4.2.3.3Definirea aciunilor Pelngcomenziledemicareavehicululuiautonom,definireaaciunilorpecare robotullepoateexercitaasupramediuluisefaceprinseleciaactuatoarelori asignarea ieirilor din sistem care le comand. Din perspectiva progrmarii, execuia uneiaciuniselimiteazlaactivareaieiriicorespunztoare.Optional,terminarea uneiaciunipoate fisemnalatde unsenzortiplimitatordecursconectatla una din intrrile digitale, care este testat de program. 4.2.3.4Programarea deciziilor Resursele sistemului Din punct de vedere al programrii, intrrile i ieirile sistemului sunt interpretate ca resurse hardware. Acestea sunt asociate cu un set de variabile avnd denumirile i tipul specificate sintetic n tabelul 4.1. Pe lng aceste resurse fizice, s-au introdus o serie de resurse logice, predefinite, implementate prin software. Lista acestora este prezentat n tabelul 4.2. 65Tabelul 4.1. Variabile asociate cu resursele fizice ale sistemului NumeDescriereTipStarea initiala I0-I15 Intrri digitale boolean 0NI0-NI15 Starea complementar a intrrilor digitaleboolean 1O0-O15 Ieiri digitale boolean 0A0-A7 Intrri analogice intregi de tip octet - n intervalul 0-255nedefinitResursele logice pot fi grupate n urmtoarele categorii: Variabile asociate cu resursele fizice (intrri/ieiri) Variabile de memorie de uz general Timere Variabile auxiliare Constante predefinite Sistemulscaneazpermanentstareaintrrilorfiziceiactualizeazvalorile variabilelor asociate (I0-I15, A0-A7). Starea variabilelor logice asociate cu ieirile O0-O15 este determinat de programul executat de modulul de decizie, iar ieirile fizice sunt controlate corespunztor cu starea variabilelor asociate. Nota: Pentru comoditate, au fost definite dou seturi de variabile asociate cu intrrile digitale: I0-I15 care reflect starea real a intrrilor i NI0-NI15 care conin starea complementar a acestora. Variabile de memorie de uz general RDPLdispunedeunnumrde104variabiledememoriedeuzgeneral,denumite M0-M7iY0-Y95.Toatesunt,dinpunctdevederehardware,locaiidememorie RAM, de 8 biti. Att M0-M7, cat i Y0-Y95 pot stoca atat valorile unor variabile de tip ntreg, ct i valorile unor variabile de tip boolean. Totui, pentru ca programul sa fie mai uor de 66urmrit i de depanat, se recomand folosirea locaiilor M0-M7 pentru variabile de tip ntreg, iar Y0-Y95 pentru variabile de tip boolean.Tabelul 4.2. Resurse logice ale RDPL NumeDescriereTipStarea initiala M0-M7Variabile de memorie de uz generalntreg de 8 biti cu valori n intervalul[0-255]0Y0-Y95Variabile de memorie de uz generalboolean sau ntreg 0YTMR0-YTMR31 Timere predefinite boolean 0STATUSVariabil auxiliar de tip ntregntreg de 8 biti cu valori n intervalul [0-255]0S0-S15Variabile de stare asociate cu STATUSboolean toate au valoarea 0 cu exceptia uneia care e 10LNivel logic zero boolean. Constantpredefinit01LNivel logic unu boolean. Constantpredefinit1RISEIndic tranziie din 0 n 1 a unei variabile booleeneconstantpredefinit1FALLIndic tranziie din 1 n 0 aunei variabile booleeneconstantpredefinit2UPIndic numrator de tip up counterconstantpredefinit1DOWNIndic numrator de tip down counterconstantpredefinit0Timere RDPLdispunedeunnumrde32detimerepredefinite,caresuntvizibilepentru progam sub forma unor variabile booleene, denumite YTMR0-YTMR31. Acestea pot funciona fie ca monostabil, fie ca multivibrator astabil (oscilator).In ambele situaii, durata impulsurilor generate de timere se calculeaz cu formula: T=K*QundeQestecuantadetimpatimerului,iarKesteoconstantdefinitprin program.ConstantaKesteunnumrntregde8biti,carepoateluavalorin 67intervalul[1-255].Rezultcuntimerdatpoategeneraconstantedetimpn intervalul [Q-255*Q]. Caracteristicile timerelor sunt prezentate sinoptic n tabelele 4.3 i 4.4. Tabelul 4.3. Caracteristicile timerelor Timer#IeireaCuanta de timp QTminTmax 0-7YTMR0-YTMR7 10 ms 10 ms 2550 ms8-15YTMR8-YTMR15 100 ms 100 ms 25.5 s16-23YTMR16-YTMR23 1 s 1 s 255 s24-31YTMR24-YTMR31 1 min 1 min 255 minNota: n cazul funcionarii timerelor ca multivibrator (oscilator), att impulsul ct i pauzadintreimpulsuriaudurateegaleT=K*Q.Rezultcperioadaceasului generatdeunastfeldetimereste2*T.inndseamacdurataminimaunui impulsestede10ms,rezultcperioadaminimestede20ms,ceeace corespunde la o frecven maxim de 50Hz a ceasului generat. Variabile auxiliare, predefinite Pentru uurarea implementrii prin program a unor automate finite, s-a definit un set de variabile auxiliare, special destinate acestui scop. Variabila STATUS estedetipntregde8biti,similarcuM0-M7. Particularitatea acestei variabile este aceea ca semioctetul sau inferior este automat decodificat i se seteaz variabilele S0-S15, corespunztor valorii STATUS.Deexemplu,dacSTATUS=0,atunciS0=1iarrestulvariabilelorS1-S15=0. Similar,dacSTATUS=7,atunciS7=1,iarrestulvaribilelorS,S0-S6iS8-S15au valoarea 0, etc. Constante predefinite Pentrufacilitareascrieriifreroriiadepanriiprogramelor,s-audefinit urmtoarele constante: 680L ZERO LOGIC. Indicarea acestei constante ca operand al unei funcii logice are un efect similar conectarii intrrii unui circuit logic la nivel logic zero (GND). 1LUNULOGIC.Indicareaacesteiconstantecaoperandaluneifunciilogice are un efect similar cu conectarea intrrii unui circuit logic la unu logic (VCC). RISE indic o tranziie din 0 n 1 a unei variabile booleene (front cresctor). FALL indic o tranziie din 1 n 0 a unei variabile booleene (front cztor). Descrierea principalelor funcii Funcia AND (I LOGIC ntre operanzi) Sintaxa general: ANDDEST,OP1,OP2,OP3,OP4 Destinaia i cei 4 operanzi ai funciei, OP1-OP4, pot fi orice variabile de tip boolean definite n sistem, fie ca e vorba de intrrile digitale ale modulului I0-I7, sau de ieirile altor funcii, notate Y0-Y94, sau ieirile timerelor, YMTR0-YTMR31. Ordineancaresespecificoperanziinuarenicioimportan.Deexemplu, urmtoarele expresii sunt perfect echivalente: ANDY1,I0,Y12,1L,1L ANDY1,Y12,1L,I0,1L Funcia NAND (I NEGAT LOGIC ntre operanzi) Sintaxa:NAND DEST,OP1,OP2,OP3,OP4 Destinatia i operanzii funciei NAND se supun condiiilor enumerate n cazul funciei AND. Funcia OR (SAU LOGIC ntre operanzi) Sintaxa:ORDEST,OP1,OP2,OP3,OP4DEST Destinaia rezultatului operaiei indicate de funcie. 69OP1OP4 sunt cei patru operanzi asupra crora se execut operaia logic definitde funcie. Nota: n cazul funciei OR, dac exista intrri nefolosite, acestea trebuie conectate la 0L. Funcia NOR (SAU NEGAT LOGIC ntre operanzi) Sintaxa:NORDEST,OP1,OP2,OP3,OP4 DEST Destinaia rezultatului operaiei indicate de funcie. OP1OP4 sunt cei patru operanzi asupra crora se execut operaia logic definitde funcie. Funcia XOR. (SAU EXCLUSIV LOGIC ntre operanzi) Sintaxa:XORDEST,OP1,OP2,OP3,OP4 DEST Destinaia rezultatului operaiei indicate de funcie. OP1-OP4suntceipatruoperanziasupracroraseexecutoperaialogicadefinita de funcie. Funcia FF (SET-RESET Flip Flop) Sintaxa: FFDEST,S,R,PRIORITY Intrrile SET i RESET sunt active n 1 logic. DEST, S,R pot fi oricare din resursele sistemului. PRIORITYesteoconstant,carepoateluavalorile0sau1pentruaindica prioritatea relativ a intrrilor de SET i RESET. PRIORITY=0 Intrarea RESET este prioritarPRIORITY=1 Intrarea SET este prioritarExemple: FFY12,I0,I1,0 FFY12,I1,I0,1 70Evident, n acest caz, ordinea n care se specifica intrrile de SET i RESET este importantpentruinterpretareafunciei.Celedoufunciidescrisenexemplulde mai sus NU sunt echivalente. Funcia DCOMP (COMPARATOR DIGITAL) Sintaxa:DCOMPDEST, OP1, OP2, MSpredeosebiredefunciileprezentateanterior,careaveaudreptoperanzivariabile booleene, funcia DCOMP compar bit cu bit doi operanzi de tip ntreg de 8 biti. Ieirea funciei DCOMP este activ (are valoarea 1 logic) dac OP1*M=OP2*M. M este o constant de 8 biti, denumit masc, iar operaia indicata de simbolul * este bitwise AND. n acest mod, sunt supui comparaiei i afecteaz ieirea funciei DCOMP doar acei bii ai operanzilor OP i K situai n poziiile n care M are un bit 1. Funcia ACOMP (COMPARATOR ANALOGIC) Sintaxa:ACOMPDEST,OP1,OP2DEST Destinaia rezultatului operaiei indicate de funcie OP1, OP2 pot fi orice variabile de tip ntreg. Destinaia este de tip boolean. ACOMP emuleaz funcionarea unui comparator analogic, n care OP1 este asociat cu intrarea neinversoare iar OP2 este asociat cu intrarea inversoare. Funcia ACOMPa fostintrodus pentrua facilitaoperareacuintrrileanalogice ale modulului, dar aplicaiile acestei funcii nu se limiteaz la aceasta. Funcia STC (Store on Condition) Funcia STC Store on Condition (memorare conditionata) a fost introdus pentru a putea asigna unei variabile o valoare stocat de o alta, la momente de timp definitie de un operand specificat. Sintaxa: STCDEST,SRC,COND,EDGEDEST -destinaia transferului 71SRC sursa transferului (valoarea transferat) CONDesteovariabilboolean,caredesemneaz,atuncicndeste1logic, condiia n care are loc transferul. EDGE frontul semnalului de intrare care determin operaia Exemplu: STCSTATUS,M0,Y0,RISE Expresia de mai sus descrie o operaie prin care variabila auxiliar STATUS capatvaloarea stocat de M0 n momentele cnd Y0 inregistreaz o tranziie din 0 n 1. Funcia STIC (Store Immediate value on Condition) Funcia STIC este similar cu STC, cu diferena c operandul surs este o constant, adresat imediat. Sintaxa: STIC DEST,K,COND,EDGE Funcia COUNTER. Definirea numratoarelor Sistemulpermitedefinireaunornumratoarede8biti,reversibile(carepotnumra attnsenscrescator,ctidescrescator),sensibilelafrontulcresctorsau descresctor al intrrii de numrare. Sintaxa:COUNTERDEST,DIR,CLOCK,EDGE DEST este destinaia funciei indic o variabil de memorie de tip ntreg de 8 biti, care poate lua valori n intervalul [0-255]. DIRindicdireciadenumrare.Poatefi oricevariabildetipbooleandefinitn sistem, sau una din constantele predefinite UP sau DOWN. Cnd DIR=0, sensul de numrare este invers (down counter) Cnd DIR=1, sensul de numrare este direct (up counter) CLOCK este o variabil de tip boolean, care poate fi oricare din resursele booleene ale sistemului. 72EDGEesteoconstantcareindicfrontulactivalceasului,pecareseface numrarea. EDGE=1 numrare pe front cresctor al CLOCK EDGE=2 numrare pe front cztor al CLOCK Pentru usurina citirii programelor, s-au definit dou constante RISE i FALL, care pot fi folosite pentru indicarea frontului cresctor, respectiv descresctor de numrare n definiia numratoarelor. Exemple: COUNTERM0,UP,I0,RISE FunciadescrisamaisusnumracresctoristocheaznvariabilaM0fronturile crescatoare nregistrate la intrarea I0. COUNTERM0,I0,I1,FALL Numratorul definit de expresia de mai sus numr direct atunci cnd intrarea I0=1, iinverscndI0=0,fronturilecztoarealeintrriiI1istocheazrezultatuln variabila M0. Observaie. Numratoareleastfeldefinitenu-sipotdepicapacitateanicilanumrare directa, nici la numrare invers (nu exist overflow) In momentul n care se atinge limita de numrare (valoarea $FF la numrare directa, sau$00lanumrareinversa),numratorulipstreazvaloareaiarurmtoarele fronturi ale intrrii CLOCK sunt ignorate. Funcia TIMER. Definirea timerelorSintaxa: TIMERTMRNO,TYPE,INPUT,EDGE,K73TMRNO Timer Number este numrul de identificare al timerului reprezentat printr-un ntreg n intervalul [0-31]. Numrul de ordine al timerului este asociat n mod unic cu cuanta de timp n modul descris n tabelul nr. 4.4. TYPE descrie tipul de timer. Este o constant care poate lua valorile urmtoare: TYPE=MONO TIMER-ul e configurat ca monostabil TYPE=OSC TIMER-ul funcioneaz ca multivibrator astabil Tabelul 4.4 Constante de timp asociate cu timerele predefinite TMRNODestinaia funcieiCuanta de timp Q 0-7YTMR0-YTMR710 ms8-15YTMR8-YTMR15100 ms16-23YTMR16-YTMR231 s24-31YTMR24-YTMR311 minINPUTpoatefioricevariabilbooleandefinitnsistem.Tranziiilesaustarea acesteivariabiledeterminfuncionareatimeruluiintr-unmoddefinitdeconstanta EDGE. EDGEindicfrontulactivalsemnaluluiINPUTcaredeclanseaztimerul.Esteo constant cu valori posibile n intervalul [0-3]. Interpretarea valorii EDGE e diferit n funcie de modul de operare definit de TYPE. Semnificaia valorilor constantei EDGE n funcie de modul de funcionare a timerului ca monostabil sau astabil este prezentat n tabelul 4.5. ConstantaK,mpreuncucuantadetimppredefinitaafiecaruitimer,Qdeterminconstanta de timp a timerului Ty=K*Q. 74Tabelul 4.5. Semnificaia parametrilor TYPE i EDGE n definitia funciei TIMER TYPEEDGEFuncionare ca 0 Monostabil redeclansabil pe palier 0 1 Monostabil declansat pe front cresctor2 Monostabil declansat pe front urcatorTYPE=0 Monostabil 3 Monostabil redeclansabil pe palier 10 Oscilator validat cnd INPUT=01 combinaie invalid2 combinaie invalidTYPE=1 Multivibrator astabil 3 Oscilator validat cnd INPUT=1ncazulfuncionariicamonostabil,TyesteduratactieireaYTMRxstnstarea HIGH dupa detectarea unei tranziii active a variabilei INPUT. n cazul funcionrii ca astabil,Tydefinetedurataimpulsuriloriapauzeintreimpulsuri,astfelnct perioada ceasului generat de astabil este Tosc=2*Ty. Funcia MOVE (Comanda de micare) Sintaxa:MOVE TRIGGER,GOAL_X,GOAL_Y,GOAL_HEADING,EDGEDefineteointdenavigaieprincoordonateleeiGOAL_X,GOAL_Y,i GOAL_HEADING.ParametrulTRIGGERpoatefioricaredinresurselesistemuluiiindicsemnalul caredeclaneaztransmisiacomenziidemicarecatrerobot.EDGEestefrontul activ al semnalului TRIGGER. Tabelul 4.6 conine lista tuturor funciilor admise de limbajul RDPL. 75Tabelul nr. 4.6 Lista funciilor insotit de simbolurile grafice folosite Simbol graficSintaxa YiANDOP1OP2OP3OP4ANDDEST,OP1,OP2,OP3,OP4 YiNANDOP1OP2OP3OP4NANDDEST,OP1,OP2,OP3,OP4 YiOROP1OP2OP3OP4ORDEST,OP1,OP2,OP3,OP4 YiNOROP1OP2OP3OP4NORDEST,OP1,OP2,OP3,OP4 YiXOROP1OP2OP3OP4XORDEST,OP1,OP2,OP3,OP4 SRYiSETRESETFF DEST,SET,RESET,PRIORITY PRIORITY=0 RESET PRIORITAR PRIORITY=1 SET PRIORITAR 76Tabelul nr. 4.6 Continuare Simbol graficSintaxa +-OP1OP2YiACOMPDEST,OP1,OP2 MOP1DCOMPYiOP2DCOMPDEST,OP1,OP2,MASK MASK este o constant adresat imediat DIRClockDESTCOUNTER DEST,DIR,CLOCK,EDGE EDGE este o constant adresat imediat Valori predefinite RISE, FALL Valori predef