Versión Abierta Español – Portugués de la Revista Iberoamericana de Tecnologías del/da Aprendizaje/Aprendizagem Una publicación de la Sociedad de Educación del IEEE (Capítulo Español) Uma publicação da Sociedade de Educação do IEEE (Capítulo Espanhol) MAR. 2015 VOL. 3 NÚMERO/NUMERO 1 (ISSN 2255-5706) Localização e Navegação de um Robô Móvel Omnidirecional: Caso de Estudo da Competição Robot@Factory ...................................................................................................................................... .......................................................................................................... Paulo José Costa, Nuno Moreira, Daniel Campos, José Gonçalves, José Lima y Pedro Luís Costa 1 EDICIÓN ESPECIAL: INTERACCIÓN 2014 Editores Invitados: Carina Soledad González González y César Collazos Ordóñez Editorial Especial: Sección especial en Interacción Persona Ordenador y Educación………………... ………………………………………..…. Carina Soledad González González y César Collazos Ordóñez 12 Una Propuesta de Visualización e Interacción Humano Computador en el Contexto de Información de la Pronunciación ....................................................................……………………………………… …….................................................… Sandra Cano, Gloria Álvarez, César Collazos y Jaime Muñoz 14 Sistema recomendador de usuarios en base al conocimiento, disponibilidad y reputación obtenida de interacciones en foros .............................................…………………………………………………… ...................................................... Silvana Aciar, Gabriela Aciar, César Collazos y Carina González 21 Modelo Productor-Consumidor de un Libro de Texto para la Comunidad de Interacción Humano- Computadora en Latinoamérica ...............................................................................………………..… ………………………………..…………................... Jaime Muñoz Arteaga, Héctor Cardona Reyes, Viviana Bustos Amador, César Collazos y Juan Manuel González Calleros 27 EDICIÓN ESPECIAL: TEEM 2014 Editores Invitados: Francisco J. García-Peñalvo Editorial Especial: Ecosistemas Tecnológicos ............................................…………………………... ................................................................................................................. Francisco J. García-Peñalvo 36 (Continúa en la Contraportada) VAEP-RITA (http://webs.uvigo.es/cesei/VAEP-RITA) CONSEJO/CONSELHO EDITORIAL Presidente (Editor Jefe): Miembros: José Carlos Lourenço Quadrado. Martín Llamas Nistal, Melany M. Ciampi, COPEC, Brasil Instituto Superior de Engenharia de Universidad de Vigo, España Javier Quezada Andrade, Lisboa (ISEL), Portugal ITESM, México David Camacho Fernández Vicepresidente (Coeditor): Edmundo Tovar, UPM, España Universidad Autónoma de Madrid, Manuel Castro Gil, UNED, España Manuel Caeiro Rodríguez, España Editor Asociado para lengua Universidad de Vigo, España Portuguesa: Juan M. Santos Gago, Secretaría: Carlos Vaz do Carvalho, Universidad de Vigo, España Gabriel Díaz Orueta, UNED, España INESP, Portugal COMITÉ CIENTÍFICO Alfredo Fernández Gustavo Rossi, Juan Quemada, UPM, Óscar Martínez Valmayor, Universidad Universidad Nacional España Bonastre, Universidad Complutense de Madrid, de la Plata, Argentina Juan Carlos Burguillo Miguel Hernández de España Héctor Morelos, ITESM, Rial, Universidad de Elche, España Antonio J. López Martín, México Vigo, España Paloma Díaz, Universidad Estatal de Hugo E. Hernández J. Fernando Naveda Universidad Carlos III Nuevo Méjico, USA Figueroa, Universidad Villanueva, de Madrid, España Antonio J. Méndez, de Campinas, Brasil Universidad de Paulo Días, Universidad de Coimbra, Ignacio Aedo, Minnesota, USA Universidade do Minho, Portugal Universidad Carlos III Luca Botturi, Portugal António Vieira de de Madrid, España Universidad de Lugano, Rocael Hernández, Castro, ISEP, Oporto, Inmaculada Plaza, Suiza Universidad Galileo, Portugal Universidad de Luis Anido, Universidad Guatema Arturo Molina, ITESM, Zaragoza, España de Vigo, España Rosa M. Vicari, UFGRS, México Jaime Muñoz Arteaga, Luis Jaime Neri Vitela, Brasil Baltasar Fernández, Universidad Autónoma ITESM, México Regina Motz, Universidad de Aguascalientes, Manuel Fernández Universidad de La Complutense de Madrid, México Iglesias, Universidad de República, Uruguay España Jaime Sánchez, Vigo, España Samuel Cruz-Lara, Carlos Delgado, Universidad de Chile, Manuel Lama Penín, Université Nancy 2, Universidad Carlos III Chile Universidad de Santiago Francia de Madrid, España Javier Pulido, ITESM, de Compostela, España Víctor H. Casanova, Carlos M. Tobar Toledo, México Manuel Ortega, Universidad de Brasilia, PUC-Campinas, Brasil J. Ángel Velázquez Universidad de Castilla Brasil Claudio da Rocha Brito, Iturbide, Universidad La Mancha, España Vitor Duarte Teodoro, COPEC, Brasil Rey Juan Carlos, M. Felisa Verdejo, Universidade Nova de Daniel Burgos, Madrid, España UNED, España Lisboa, Portugal ATOS Origin, España José Bravo, Universidad Maria José Patrício Vladimir Zakharov, Fernando Pescador, de Castilla La Mancha, Marcelino, Universidad Universidade Estatal UPM, España España de Coimbra, Portugal Técnica MADI, Moscú, Francisco Arcega, José Carpio, UNED, Mateo Aboy, Instituto Rusia Universidad de España de Tecnología de Xabiel García pañeda, Zaragoza, España José Palazzo M. De Oregón, USA Universidad de Oviedo, Francisco Azcondo, Oliveira, UFGRS, Brasil Miguel Angel Sicilia España Universidad de José Salvado, Instituto Urbán, Universidad de Yannis Dimitriadis, Cantabria, España Politécnico de Castelo Alcalá, España Universidad de Francisco Jurado, Branco, Portugal Miguel Rodríguez Valladolid, España Universidad de Jaen, José Valdeni de Lima, Artacho, UNED, España España UFGRS, Brasil VAEP-RITA Vol. 3, Núm. 1, Mar. 2015 1 Localizac¸a˜o e Navegac¸a˜o de um Roboˆ Mo´vel Omnidirecional: Caso de Estudo da Competic¸a˜o Robot@Factory Paulo Jose´ Costa, Nuno Moreira, Daniel Campos, Jose´ Gonc¸alves, Jose´ Lima, e Pedro Lu´ıs Costa Title - Localization and Navigation of an Omnidirectional motivo de intensa investigac¸a˜o cient´ıfico-tecnolo´gica. Este Mobile Robot: The Robot@Factory Case Study. temae´ constitu´ıdoportreˆsgrandesa´reasdeestudo:controlo, localizac¸a˜o e navegac¸a˜o. Abstract—The Robot@Factory competition, was recently in- Tendo em conta os paradigmas referidos, usou-se a cludedinRobotica,themainRoboticsPortugueseCompetition. competic¸a˜oRobot@Factorycomoplataformadetestecomo This robot competition takes place in an emulated factory objetivo de que os resultados obtidos possam mais tarde ser plant,whereAutomaticGuidedVehicles(AGVs)mustcooperate to perform tasks. To accomplish their goals the AGVs must utilizados para a resoluc¸a˜o de problemas em fa´bricas reais. deal with localization, navigation, scheduling and cooperation A competic¸a˜o Robot@Factory procura recriar um problema problems, that must be solved autonomously. The presented inspirado nos desafios que um roboˆ auto´nomo tera´ de en- robot competition can playan important role in education due frentar durante a sua utilizac¸a˜o numa fa´brica. Esta fa´brica to the inherent multi-disciplinary concepts that are involved, e´ constitu´ıda por um armaze´m de aprovisionamento, um motivating students to technological areas. It also plays an important role in research and development, because it is armaze´mdeprodutofinaleoitoma´quinasdeprocessamento. expected that the outcomes that will emerge here, will later A arena da competic¸a˜o encontra-se exemplificada na Figura be transfered to other application areas, such as service robots 1. and manufacturing. Atarefadosroboˆsconsisteemtransportaromaterialentre By presenting a scaled down factory shop floor, this com- armaze´ns e ma´quinas. Para isso, estes devera˜o apresentar petition creates a benchmark that can be used to compare different approaches to the problems that arise on this kind umm´ınimodecapacidadesqueincluemrecolher,transportar of environments. Also, the ability, in some restricted areas, to e posicionar os materiais, localizar-se e navegar no ambi- alter the environment, can promote the test and evaluation of ente fornecido, assim como evitar choques com paredes, different localization mechanisms, something that is usually, obsta´culos e outros roboˆs. A competic¸a˜o decorrera´ em treˆs more restricted in other competitions, opening this area to be mangas que apresentam desafios de dificuldade crescente. explored and benchmarked. In this paper it is discussed one of the possible approaches, that can be applied to the robot Esta pretende ser uma prova que permita a transic¸a˜o gradual competition,servingasreferencetotheactualandnewpotential ao n´ıvel de complexidade e exigeˆncia te´cnica entre as ligas participating teams. juniores e seniores. IndexTerms—Robotics,Education,Localization,Navigation, De acordo com a regulamentac¸a˜o da competic¸a˜o o simu- Prototyping lador SimTwo surge como refereˆncia para teste do software. Assim, por forma a validar todos os algoritmos, para ale´m I. INTRODUC¸A˜O da prototipagem do roboˆ, foi desenvolvido o seu modelo simulado em SimTwo, acelerando desta forma o desenvolvi- HOJE em dia a indu´stria procura criar fa´bricas cada vez mento do software para o AGV, garantindo um ambiente de mais flex´ıveis, por exemplo no transporte de mate´ria implementac¸a˜o complementar e reduzindo a fadiga causada prima entre postos de trabalho, usando AGVs, por forma a no hardware do roboˆ [7] [8]. otimizar os tempos e permitir a ra´pida reconfigurabilidade Na prototipagem do roboˆ para a competic¸a˜o, a n´ıvel da de layouts. Estes transportadores atuam num ambiente de locomoc¸a˜oexistemdiversastopologias,nomeadamentedifer- trabalhodinaˆmicoemquepodemsurgirobsta´culos,talcomo os trabalhadores a cruzar com o roboˆ, material ca´ıdo ou armazenado no percurso e mesmo outros roboˆs a circularem em trabalho [1]-[6]. A procura pelo aumento de eficieˆncia num ambiente fabril e´ uma problema´tica cada vez mais recorrente nos dias de hoje, tornando a tema´tica de roboˆs mo´veis um P. J. Costa pertence ao Departamento de Engenharia Eletrote´cnica e de Computadores,FaculdadedeEngenhariadaUniversidadedoPorto,Porto, Portugale-mail:[email protected]. N. Moreira e D. Campos pertencem ao Departamento de Engenharia Eletrote´cnicaedeComputadores,FaculdadedeEngenhariadaUniversidade doPorto,Porto,Portugal. J. Gonc¸alves e J. Lima pertencem ao Departamento de Eletrotecnia, InstitutoPolite´cnicodeBraganc¸a,Braganc¸a,Portugal. P.L.CostapertenceaoDepartamentodeEngenhariaEletrote´cnicaede Computadores,FaculdadedeEngenhariadaUniversidadedoPorto,Porto, Fig.1. Arenadacompetic¸a˜oRobot@Factory Portugal. ISSN 2255-5706 © IEEE-ES (Capítulo Español) 2 VAEP-RITA Vol. 3, Núm. 1, Mar. 2015 encial,omnidirecionaloudeAckerman.Nocasoaaplicarfoi escolhidaalocomoc¸a˜oomnidirecionaldadoqueaocontra´rio da de Ackerman na˜o necessita de sistemas mecaˆnicos auxil- iares,eale´mdissopermiteefetuarmovimentosdetranslac¸a˜o e rotac¸a˜o simultaˆneos, o que na˜o se verifica nas outras topologias, permitindo aumentar sua competitividade. Para colmatar a problema´tica da localizac¸a˜o, e´ usual o recurso a sistemas de localizac¸a˜o relativa, tais como odome- tria e sensores inerciais, bem como o recurso a sistemas de localizac¸a˜o absoluta, sistemas esses que, com recurso a uma caˆmara de v´ıdeo ou laser range finders, permitem a identificac¸a˜odeobsta´culosemarcadoresnomeioenvolvente. Fig.2. AmbientedoRobot@FactoryrepresentadoemSimTtwo As soluc¸o˜es mais comuns sa˜o baseadas em sistemas de faixas, sistemas de triangulac¸a˜o e trilaterac¸a˜o. No entanto, por forma a causar o menor impacto poss´ıvel no meio fabril O ambiente de representac¸a˜o e´ modular, como se veˆ na onde o roboˆ se encontra inserido, foi adotado um sistema de Figura 3, tendo uma secc¸a˜o para impressa˜o de valores e localizac¸a˜o absoluta baseado em dados de um laser range controlo usando uma folha de ca´lculo, outra janela para a finder, o Perfect Match. Juntamente com a odometria e criac¸a˜o do ambiente gra´fico utilizando XML - eXtensible com o recurso ao Filtro de Kalman Estendido a efetuar a Markup Language, ainda tem uma janela para fazer a fusa˜o sensorial, implementou-se um sistema de localizac¸a˜o componente de controlo dos roboˆs, programada em Pascal, eficaz e independente de auxiliares externos para o seu e por fim tem uma janela de configurac¸a˜o do simulador, funcionamento. configurando a vista a usar, as portas de comunicac¸a˜o, entre Apo´s saber a localizac¸a˜o torna-se imperativo definir os outros paraˆmetros. sistemas de navegac¸a˜o a usar, sendo que os mais frequente- Para ale´m disto e´ dada a possibilidade de comunicac¸a˜o menteadotadossa˜oosdeseguimentodelinhasbrancas,pois por diversos meios, nomeadamente protocolo Modbus, UDP apresenta uma baixa complexidade de implementac¸a˜o, ou e porta se´rie virtual. enta˜ooseguimentodetrajeto´riaspre´-definidascomorecurso aswaypointsconhecidosnomapa,podendotambe´mrecorrer- III. SISTEMAROBO´TICOPROTOTIPADO se a me´todos mais complexos de planeamento de trajeto´rias dinaˆmicas. A. Mecaˆnica do sistema Uma vez que num ambiente industrial existem diver- O roboˆ foi projetado e prototipado por forma a ser sos fatores que variam dinamicamente, que levam a ser poss´ıvel participar no Robot@Factory de forma competitiva, necessa´rioreplanearatrajeto´riaemtemporeal,semrestringir na˜o tendo restric¸o˜es ao n´ıvel da topologia de locomoc¸a˜o, os movimentos poss´ıveis, foi desenvolvido um algoritmo sendo apenas limitado no tamanho a 45x40 cm e 35 cm de dinaˆmicobaseadonaexpansa˜odomapaepesquisaemgrafo altura[15],foi,ainda,adotadaumatopologiaomnidirecional com a possibilidade de modificar o caminho com a presenc¸a comtreˆsrodas,desfasadas120oentreelas.Estaescolhadeve- de va´rios roboˆs [9]-[14]. se ao facto de na˜o apresentar restric¸o˜es de movimentos, o O artigo esta´ estruturado da seguinte forma: em primeiro que se torna bene´fico para a prova e, ao contra´rio do de lugar e´ apresentado o SimTwo, sendo o simulador oficial da quatro rodas, na˜o e´ necessa´rio um sistema mecaˆnico extra competic¸a˜o, depois e´ apresentado o proto´tipo realizado, de para realizar suspensa˜o. seguida o seu sistema de localizac¸a˜o e o planeamento de Nas Figuras 4, 5 e 6 e´ poss´ıvel ver o proto´tipo constru´ıdo trajeto´rias. Finalmente sa˜o apresentados os resultados e a pela equipa por forma a participar no Robot@Factory. conclusa˜o. B. Cinema´tica do sistema II. OSIMTWO Como se pode observar pela configurac¸a˜o do roboˆ omidi- O simulador SimTwo surge como o simulador oficial da recional de 3 rodas, Figura 7, as velocidades V , V e ω competic¸a˜o Robot@Factory [15], representando o campo e x y todos os elementos da competic¸a˜o de forma fiel e numa escala muito pro´xima da real, sendo apenas necessa´rio mod- elar o roboˆ para o pretendido, existindo inclusive diversos sensores,comoporexemplodelinhabranca,LIDAR,caˆmara e sensores infravermelhos. Tal como se pode ver na Figura 2 a representac¸a˜o do campo simulado assemelha-se ao real. OSimtwo[16]trata-sedeumsistemadesimulac¸a˜oeteste com um ambiente 3D, que permite recriar va´rios ambientes, onde se podem implementar diferentes tipos de roboˆs, como por exemplo com configurac¸o˜es omnidirecionais ou difer- enciais. Ale´m disso dispo˜e de uma aproximac¸a˜o realista, permitindo tomar considerac¸o˜es f´ısicas como a forma, a massa,osatritosdassuperf´ıcies,entreoutros,eaindadispo˜e de modelos que visam aproximar e capturar os elementos Fig.3. AmbientedoSimtwo na˜o lineares presentes nos motores que atuam nos roboˆs. ISSN 2255-5706 © IEEE-ES (Capítulo Español) COSTA et al.: LOCALIZAÇÃO E NAVEGAÇÃO DE UM ROBÔ MÓVEL OMNIDIRECIONAL: CASO DE ... 3 Fig.4. Vistadecimadoroboˆ prototipado Fig.7. Geometriadeumroboˆ omnidirecionaldetreˆsrodas no formato V, V e ω. Estas varia´veis sa˜o obtidas com n recurso a` equac¸a˜o 2. V cos(θ) sin(θ) 0 V x Fig.5. Vistadebaixodoroboˆ prototipado Vn=−sin(θ) cos(θ) 0·Vy (2) ω 0 0 1 ω Para atuar os motores calcula-se a velocidade a aplicar variam com as velocidades lineares V , V e V , segundo a a cada roda, (V ,V ,V ), atrave´s de (V,V ,ω), atrave´s da 1 2 3 1 2 3 n equac¸a˜o 1 [17]. equac¸a˜o 3 [18] , em que L e´ distaˆncia das rodas ao eixo de rotac¸a˜o. V a a a V x 11 12 13 1 Vy =a21 a22 a23V2 (1) V1 −sin(π/3) cos(π/3) L V ω a31 a32 a33 V3 V2= 0 −1 L·Vn (3) V sin(π/3) cos(π/3) L ω 3 onde √ 3∗cos(θ)+sin(θ) A velocidade linear de cada roda, durante um per´ıodo de a = 11 3 amostragem, e´ determinada a partir do nu´mero de transic¸o˜es 2∗sin(θ) geradas pelo correspondente encoder. Definindo o desloca- a =− 12 √ 3 mentoentrecadatransic¸a˜oemultiplicando-opelonu´merode 3∗cos(θ)+sin(θ) transic¸o˜escontadasentreamostragens,obte´m-seavelocidade a =− 13 √ 3 angular de cada roda (ω , ω e ω ). Cada uma das veloci- 1 2 3 3∗sin(θ)−cos(θ) a = dades lineares e´ obtida resolvendo a equac¸a˜o 4. 21 3 2∗cos(θ) a = 22 √3 V =ω ∗r , i=1, 2, 3 (4) 3∗sin(θ)−cos(θ) i i ri a =− 23 3 1 sendo rri o raio de cada uma das rodas. a =a =a =− 31 32 33 3∗L C. Hardware do sistema O projeto do controlador de seguimento de segmentos de Por forma a efetuar a localizac¸a˜o, foi utilizado um laser reta tem como paraˆmetros de sa´ıda os valores de velocidade rangefinder,provenientedoaspiradorrobo´ticoNeatoXV-11, que possui uma resoluc¸a˜o angular de aproximadamente 1o, frequeˆncia de aquisic¸a˜o de 5 Hz e um aˆngulo de leitura de 360o. Este possui tambe´m um alcance de 0.06−5 metros. Foi tambe´m utilizada, com o objetivo de identificar o estado das pec¸as a transportar/maquinar, uma caˆmara de v´ıdeo, a PlayStation Eye. An´ıveldeatuadoresforamescolhidosparaefetuaratrac¸a˜o do sistema robo´tico motores DC da Pololu de 12 V, com caixa redutora de 30:1 e velocidade ma´xima de 350 RPM. Outrodosmotivosparaaescolhadestesmotoresrelaciona-se com o facto de serem providos de enconders em quadratura, caracter´ısticaimportantepoispermiteoca´lculodaodometria Fig.6. Vistafrontaldoroboˆ prototipado e o controlo em malha fechada do motor. Para a carga e ISSN 2255-5706 © IEEE-ES (Capítulo Español) 4 VAEP-RITA Vol. 3, Núm. 1, Mar. 2015 descarga das pec¸as foi desenvolvido um sistema de duas garras controladas atrave´s de dois servomotores standard, Futaba S3003, para efetuar a rotac¸a˜o de cada uma. IV. SISTEMADELOCALIZAC¸A˜O A. Localizac¸a˜o relativa A estimac¸a˜o da localizac¸a˜o relativa do roboˆ foi feita atrave´s do ca´lculo da odometria, recorrendo a` integrac¸a˜o nume´rica das equac¸o˜es apresentadas em III-B. A estima- tiva da posic¸a˜o e orientac¸a˜o do roboˆ pode ser calculada, aplicando-se uma aproximac¸a˜o de primeira ordem, como exemplificado nas equac¸o˜es 5, 6 e 7 [19]. x(k)=x(k−1)+V T (5) x Fig. 8. Representac¸a˜o de roboˆ em referencial do mundo e de ponto lido relativoaroboˆ y(k)=y(k−1)+V T (6) y precisa˜o nos valores calculados, recorreu-se a uma ma´scara θ(k)=θ(k−1)+ωT (7) 3x3, como visto na matriz a seguir representada, que faz o onde T e´ o per´ıodo de amostragem. varrimento por todo o mapa. No final do varrimento, todos os valores da matriz sa˜o divididos por 2. B. Localizac¸a˜o absoluta O algoritmo implementado por forma a efetuar o ca´lculo 3 2 3 da localizac¸a˜o absoluta do sistema robo´tico foi o Perfect 2 0 2 (9) Match,comrecursoadadosdeumlaserrangefinder,sendo 3 2 3 um algoritmo com uma abordagem ao problema baseado no erro associado a cada medic¸a˜o, minimizando-o. E´ uma Segundo o teorema de Pita´g√oras, a distaˆncia entre um ponto em P e P sera´ 12+12 = 1.4, no entanto metodologia caracterizada por ser de elevada eficieˆncia e de l−1,c−1 l,c aplicandoametodologiapreviamentereferidaestevalorsera´ requerer baixo poder computacional [20]. igual a 1.5, tendo apenas um erro de 1 mm, considerando-se 1) Mapa: Para ser poss´ıvel a localizac¸a˜o utilizando o ser uma boa aproximac¸a˜o. O resultado da aplicac¸a˜o desta algoritmoPerfectMatche´necessa´riooroboˆ conheceromapa ma´scara ao mapa da Figura 9 encontra-se representado na do local por onde se vai movimentar. O mapa do campo Figura 10. da competic¸a˜o Robot@Factory, e´ conhecido, permitindo a Em seguida e´ necessa´rio sobrepor as duas matrizes e representac¸a˜o do mesmo. avaliar o erro de cada leitura. Considera-se como o erro da O mapa criado para interpretac¸a˜o do roboˆ e´ uma matriz leitura o valor presente na ce´lula da matriz de distaˆncias na onde se encontram representadas as paredes e ma´quinas do qual o ponto P pousar. campo, com uma resoluc¸a˜o de 1 cm. li 2) Mapeamento das leituras: Primeiramente e´ necessa´rio A func¸a˜o do erro e´ determinar o qua˜o desalinhados esta˜o enquadrar cada uma das medic¸o˜es feitas pelo range finder os dois mapas. Quanto maior o erro, menos coincidentes no mapa onde o roboˆ se encontra. Seja s ...s o vetor estes sa˜o. Segundo [20], a melhor func¸a˜o para avaliar este 1 n de medic¸o˜es, relativas ao roboˆ, proveniente da interface de tipo de erros e´ apresentada na equac¸a˜o 10. comunicac¸a˜o com o laser range finder (Figura 8), e α o aˆngulo dessa medic¸a˜o relativa a` orientac¸a˜o do roboˆ. E´ poss´ıvel enta˜o determinar a posic¸a˜o de cada ponto lido, em relac¸a˜o ao sistema robo´tico no mundo (ξ ) , segundo a xy equac¸a˜o [8]. (cid:20) (cid:21) (cid:20) (cid:21) cos(θ) sin(θ) cos(α) P =ξ + ·s (8) li xy −sin(θ) cos(θ) i sin(α) Obte´m-se desta forma as coordenadas x e y, no mundo, de cada medic¸a˜o feita pelo range finder. 3) Minimizac¸a˜odoerro: Comoja´referido,aestimac¸a˜oda posic¸a˜odoroboˆ,feitasegundooPerfectMatch,baseia-sena minimizac¸a˜odoerroentreomapadocampoeomapeamento feito.Recorrendoaummapadedistaˆncias,e´ poss´ıveldefinir o erro para cada um dos pontos lidos. Um mapa de distaˆncias e´ uma matriz que conte´m em cada ce´lula um valor nume´rico representativo da distaˆncia Fig.9. Exemplodemapa ao objeto mais pro´ximo. Por forma a obter o ma´ximo de ISSN 2255-5706 © IEEE-ES (Capítulo Español) COSTA et al.: LOCALIZAÇÃO E NAVEGAÇÃO DE UM ROBÔ MÓVEL OMNIDIRECIONAL: CASO DE ... 5 paragem previamente estipulados. O nu´mero de interac¸o˜es do algoritmo RPROP, o erro total e a variac¸a˜o do erro total foram os crite´rios adotados. Por forma a simplificar a implementac¸a˜o do algoritmo, foram efetuadas umas mudanc¸as ao mesmo. Estas alterac¸o˜es esta˜o relacionadas com a atualizac¸a˜o do peso na ce´lula a ser analisada, onde ∆w (t) passou a ser o salto que o ij pontoda´ segundoacoordenadaaseranalisada.Destaforma, se o ponto analisado se encontrar a uma elevada distaˆncia do m´ınimo local, este e´ transposto ∆w (t) ce´lulas na sua ij direc¸a˜o. V. FUSA˜OSENSORIAL Para a realizac¸a˜o da fusa˜o sensorial foi utilizado o Filtro Fig.10. Exemplodemapadedistaˆncias de Kalman Estendido. Este algoritmo e´ constitu´ıdo por dois passos, a previsa˜o e a correc¸a˜o, sendo que a sua equac¸a˜o de estado e´ representada por: c2 dX(t) erro=1− (10) =f(X(t), u(t), t) (12) c2+e2 dt Esta func¸a˜o de erro tem como vantagem em relac¸a˜o a` do onde u(t) sa˜o os paraˆmetros de entrada que, neste caso erro quadra´tico me´dio o facto de ser mais robusta aquando particular, e´ composto pelas velocidades lineares do ponto da ocorreˆncia de medidas discrepantes. Desta forma, se um de contacto com a superf´ıcie de cada roda [23]. determinado erro de medic¸a˜o for muito elevado, na˜o vai afetar de forma significativa a correc¸a˜o efetuada. A. Previsa˜o Por forma a minimizar o erro calculado, como sugerido 1) Estimac¸a˜o de estado: A estimac¸a˜o do estado no in- por [20],recorreu-seaoalgoritmoresilientbackpropagation stante t requer o conhecimento do estado em t e e´ feita (RPROP) [21] [22]. Este algoritmo tem em conta apenas k k−1 porintegrac¸a˜onume´rica,comodemonstradonasequac¸o˜es5, o sinal da derivada parcial sobre todos os pontos, e atua de 6 e 7. forma independente sobre o erro de cada ponto. 2) Propagac¸a˜o da covariaˆncia: Por forma a calcular Dado que a estimac¸a˜o da posic¸a˜o do roboˆ e´ feita tanto a propagac¸a˜o da covariaˆncia, e´ necessa´rio ter definida as para x, y e θ, e´ necessa´rio calcular o gradiente para cada equac¸o˜es que definem a transic¸a˜o do estado. Este sistema uma destas varia´veis. O sinal do gradiente calculado tem de equac¸o˜es, definido na equac¸a˜o 1, deve ser linearizado em como func¸a˜o indicar a direc¸a˜o da atualizac¸a˜o do erro. torno de X(t) = X(t ), u(t) = u(t ) e t = t , resultando Primeiramente e´ necessa´rio definir um valor de k k k em: atualizac¸a˜o, ∆ , que define o valor do deslocamento ij que o erro vai ter, consoante o sinal do somato´rio dos 0 0 b gradientessegundodeterminadadirec¸a˜o,ovalordacorrec¸a˜o 13 segundo essa mesma direc¸a˜o vai variar segundo 11. A∗(tk)=0 0 b23 (13) 0 0 0 Onde: −∆ , se somato´rio de gradiente>0 √ ij b = 3∗cos(θ)+sin(θ)V − 2∗sin(θ)V − ∆w = ∆ , se somato´rio de gradiente<0 (11) √ 13 3 1 3 2 ij 0,ij se outros valores 3∗cos(θ3)−sin(θ)V3 √ Posteriormente atualiza-se ∆ , consoante o sinal do gra- b = 3∗cos(θ)+sin(θ)V + 2∗cos(θ)V − ij √ 23 3 1 3 2 diente se mantenha constante ou mude. A mudanc¸a do sinal 3∗sin(θ)+cos(θ)V 3 3 do gradiente indica que a u´ltima correc¸a˜o foi demasiado grande, levando o algoritmo a passar pelo objeto. Caso isto A matriz transic¸a˜o de estado (φ) e´ enta˜o a apresentada na se verifique, o valor de atualizac¸a˜o e´ multiplicado por uma equac¸a˜o 14: constante de valor inferior a 1, η−, de forma a diminuir o avanc¸o e se conseguir aproximar do m´ınimo local. Contrari- 1 0 b ·T amente, se o valor do gradiente mantiver o seu sinal, ∆ e´ 13 multiplicadoporumaconstantesuperiora1,η+,deformijaa φ∗(tk)=0 1 b23·T (14) 0 0 1 ocorrer uma convergeˆncia mais ra´pida. No caso de mudanc¸a de sinal do gradiente, [21] [22] sugerem que na˜o haja A propagac¸a˜o da covariaˆncia, P(t−), e´ calculada atrave´s k atualizac¸a˜o de ∆w . Isto e´ conseguido igualando o valor da equac¸a˜o 15, ij do gradiente anterior a zero. Os valores de ∆w sa˜o somados e divididos pelo nu´mero P(t−)=φ∗(t )P(t )φ∗(t )T +Q(t ) (15) total de pontos avaliados, obtendo desta forma a me´dia do k k k−1 k k deslocamento que o roboˆ tera´ que efetuar segundo x, y e onde Q(t ) define a covariaˆncia do erro. Esta matriz k θ. Este processo e´ repetido ate´ se verificarem crite´rios de estipula o rigor das medic¸o˜es feitas pela odometria. ISSN 2255-5706 © IEEE-ES (Capítulo Español) 6 VAEP-RITA Vol. 3, Núm. 1, Mar. 2015 B. Correc¸a˜o do centro a` extremidade, e de seguida considerar todas as 1) Ganho do Filtro de Kalman: O ganho do Filtro de posic¸o˜es (X e Y) que se encontrem a uma distaˆncia inferior Kalman tem como objetivo pesar quais os valores mais a R como locais com o valor ocupado, desta forma ao efetuar a expansa˜o garante-se que nunca havera´ contacto confia´veis, entre as diversas fontes de medidas. Este e´ independentemente da orientac¸a˜o que o agente tome. calculado pela equac¸a˜o que se segue: Este me´todo consiste em treˆs fases, primeiro converter o Bitmap em matriz, de seguida calcular a matriz de distaˆncia, K(tk)=P(t−k)H(tk)T[H(tk)P(t−k)H(tk)T +R(tk)]−1 por forma a obter a distaˆncia do roboˆ aos obsta´culos, e (16) finalmenteatribuirumestadoa`sposic¸o˜esnomapaconsoante as distaˆncias. OndeR(t )representaacovariaˆnciadoerrodasmedic¸o˜es. k Esta matriz, a` semelhanc¸a de Q(t ), define o rigor das Inicialmente percorre-se o mapa construido em Bitmap e k medic¸o˜es feitas, neste caso das do laser range finder. e´ criada uma matriz na qual os obsta´culos sa˜o representados Como as medidas efetuadas pelo laser range finder sa˜o como 1 e o espac¸o livre como 0. processadas fora do filtro de Kalman estendido, isto e´, as Para determinar a distaˆncia aos obsta´culos e´ aplicada medic¸o˜es que entram nos paraˆmetros do filtro sa˜o coinci- a transformada introduzida por Borgefors em 1984 [27], dentes com o referencial do mundo, outro aspeto a salientar que consiste em realizar dois varrimentos, representados na e´ o facto da matriz H(t ) ser a identidade. Desta forma, a Figura 11, um da esquerda para a direita e de cima para k equac¸a˜o que define o ganho do filtro e´ reduzida a` equac¸a˜o baixo e outro da direita para a esquerda e de baixo para 17. cima nos quais se aplica uma transformada de distaˆncias, relativamente a pontos com o valor de obsta´culo (1), sendo quenoprimeirovarrimentotudooquena˜oforobsta´culotera´ K(tk)=P(t−k)[P(t−k)+R(tk)]−1 (17) um peso infinito. Por fim apo´s obter a matriz de distaˆncia, o algoritmo 2) Atualizac¸a˜o da estimac¸a˜o de estado: A atualizac¸a˜o do percorre a matriz e, consoante o valor encontrado, define estado e´ feita recorrendo a equac¸a˜o 18. o estado nessa posic¸a˜o, ou seja se a distaˆncia for inferior ao raio do roboˆ e´ tida como ocupada, caso esteja no inter- X(tk)=X(t−k)+K(tk)∗[z(tk)−X(t−k)] (18) valo de ]Raio + n ∗ Tamanho ce´lula,Raio + (n + 1) ∗ Tamanho ce´lula], com n = 0,1,2, insere uma camada Onde z(t ) representa o estado calculado obtido atrave´s k protetora que provoca um custo acrescido no planeamento das medic¸o˜es do laser range finder. do A∗, para garantir que a trajeto´ria e´ segura e que so´ entra 3) Atualizac¸a˜odacovariaˆncia: Ou´ltimopassodoca´lculo nessa a´rea caso seja proveitoso. Estes valores sa˜o alterados doFiltrodeKalmanEstendidoe´aatualizac¸a˜odacovariaˆncia, na matriz que representa o mapa para depois poderem ser necessa´rio para as iterac¸o˜es seguintes do algoritmo. usados como custos adicionais (K ) para a pesquisa. e 1) Alterac¸a˜o para mu´ltiplos roboˆs: As alterac¸o˜es pas- P(t )=[I−K(t )H(t )]P(t ) (19) sam primeiramente por iniciar uma comunicac¸a˜o onde se k k k k−1 transmitem as posic¸o˜es dos outros roboˆs, para saber onde Como ja´ verificado, a matriz H(t ) e´ a matriz identidade, k o inserir no mapa, de seguida calcula-se a distaˆncia entre simplificando 19 a 20. eles, caso esta seja inferior a um threshold predefinido considera-se obsta´culo, caso contra´rio na˜o e´ tido em conta, P(t )=[I−K(t )]P(t ) (20) ja´ que se encontra demasiado afastado. O passo seguinte k k k−1 e´ de inserir um c´ırculo com o raio do segundo roboˆ no VI. PLANEAMENTODETRAJETO´RIAS Bitmap semelhante ao obtido apo´s a construc¸a˜o do mapa e, por fim proceder a` expansa˜o, usando o me´todo descrito Apo´s se efetuar a localizac¸a˜o podem-se planear as tra- anteriormente. jeto´riasaefetuarpeloroboˆ parasedeslocarentredoispontos. Paraoplaneamentoexisteumaelevadapano´pliademe´todos pass´ıveisdeutilizac¸a˜o,comoseguimentodelinha[24][25]e B. Algoritmo de pesquisa A∗ deslocamentoentrewaypoints,ate´ me´todosdecomplexidade O algoritmo A∗ e´ designado como o melhor primeiro, mais elevada que permitam o ca´lculo de percursos que na˜o [28], e consiste na pesquisa num grafo do caminho mais sejamrestritivosplaneandotrajeto´rias,comoalgoritmosbug, curto que une os no´s inicial e final, obtendo o percurso deroadmapededecomposic¸a˜oemce´lulasqueseencontram o´timo. Uma vez que este se trata de um me´todo informado expostos em [26]. A. Expansa˜o do mapa Antes de expandir o mapa e´ necessa´rio fazer a representac¸a˜o do ambiente. Assim para o mapeamento do espac¸o recorre-se a` utilizac¸a˜o de ferramentas de gerac¸a˜o de Bitmap, atribuindo diferentes co´digos de cor consoante a ocupac¸a˜o das a´reas, verde equivale a livre, vermelho a ocupado e amarelo a pro´ximo de obsta´culo. Assim,omapaapo´sconstruidoe´ expandido,considerando o roboˆ como um c´ırculo de raio (R) igual a` maior distaˆncia Fig.11. Transformadasdosvarrimentos ISSN 2255-5706 © IEEE-ES (Capítulo Español) COSTA et al.: LOCALIZAÇÃO E NAVEGAÇÃO DE UM ROBÔ MÓVEL OMNIDIRECIONAL: CASO DE ... 7 utiliza uma func¸a˜o heur´ıstica, f(n), para estimar o caminho e em diagonal. Esta heur´ıstica, h(n), e´ calculada atrave´s da com o menor custo estimado desde o no´ n ate´ ao final e e´ equac¸a˜o 23, em que K e´ um ganho, utilizado por Costa em obtido atrave´s da soma de duas func¸o˜es g(n) e h(n), isto 2011 [26] , que tem como objetivo dar maior peso aos no´s e´ f(n) = g(n)+h(n). A func¸a˜o g(n) representa o custo queesta˜omaispro´ximosdameta.D podeserdefinidocomo desde o no´ inicial ate´ ao no´ atual (n), podendo ou na˜o ser ocustom´ınimodeirdeumpontoate´ aoadjacente,podendo heur´ıstica,eah(n)e´ aestimativa,atrave´sdeumaheur´ıstica, sertambe´mdefinidocomo1.Ja´ n en sa˜o,respetivamente, x y do custo do percurso desde n ate´ ao no´ final, devendo esta as coordenadas em XX e YY do no´ atual e d e d sa˜o, x y ser subestimada, podendo-se ver a representac¸a˜o na Figura respetivamente, as coordenadas em XX e YY do no´ final. 12. O algoritmo utilizado consistiu numa implementac¸a˜o (cid:113) h(n)=K∗D∗ (n −d )2+(n −d )2 (23) semelhante a` definida por Costa et al. [29], onde apo´s a x x y y representac¸a˜o dos no´s, sofreu modificac¸o˜es para analisar os no´s vizinhos, na estrutura usada para a definic¸a˜o da lista C. Sistema de Navegac¸a˜o aberta e na heur´ıstica usada. Outra das alterac¸o˜es a realizar Para efetuar as trajeto´rias e´ necessa´rio definir um sistema e´ retirar a condic¸a˜o de revisitar no´s da lista fechada para de navegac¸a˜o que efetue o controlo de movimentos e, de verificarsesofremalterac¸o˜es,poisreduzonu´merodevisitas seguida, um me´todo para o controlo de ac¸o˜es que alterne aos no´s sem afetar a admissibilidade, pois, utilizando uma entre modos de funcionamento normal com o planeamento heur´ıstica consistente, a estimativa sera´ sempre menor que a criado e com funcionamento especial. estimativa do no´ adjacente mais o custo de se movimentar 1) Controlo de movimento: Para executar as trajeto´rias o de um no´ para o seguinte. roboˆ necessita de ter um controlador que indique as veloci- 1) Construc¸a˜o dos no´s vizinhos: Para a construc¸a˜o dos dades (V,V ,ω) que sa˜o necessa´rias para o seu movimento n no´s vizinhos foi realizada uma pesquisa com conetividade 8 seguir o pedido pelo planeamento efetuado. Uma vez que os em torno do nmelhor, no´ com menor f(n). Ao visitar cada movimentos realizados va˜o ser de dimenso˜es reduzidas, as no´ atualizam-se os valores da posic¸a˜o, (X,Y), o custo de ir manobras podem ser aproximadas por linhas retas mantendo do nmelhor para la´, c(nmelhor,n), o apontador do no´ pai e na mesma uma certa suavidade nos movimentos, que se seesta´ livreouna˜o.Paraosqueseencontramnumaposic¸a˜o aproximam de curvas. vertical ou horizontal o c(nmelhor,n) sera´ obtido atrave´s da Para o controlador de seguimento de linhas foi imple- equac¸a˜o 21 e para os da diagonal o custo sera´ dado por 22, mentado um me´todo baseado no apresentado por Conceic¸a˜o em que Sizec e´ o tamanho definido para as ce´lulas e Ke e´ et al. em 2006 [30] . Este me´todo define os vetores de ocustoextraquedependedovalorqueseencontranomapa velocidade atrave´s da posic¸a˜o do roboˆ e de um segmento de para definir as camadas de protec¸a˜o ou se esta´ totalmente retaqueuneopontoinicialaofinal.Efetuandoumamudanc¸a livre, dependente do co´digo de cores usado no mapa. de referencial para facilitar a implementac¸a˜o, passando o segmento a estar alinhado com o eixo XX e o ponto final passar a ser o (0,0), tal como representado na Figura 13, em c(n ,n)=Sizec+K ∗Sizec (21) melhor e que X e´ a distaˆncia ao ponto final e Y e´ a distaˆncia do act act roboˆ ao segmento de reta. √ √ 2) Controlo de ac¸o˜es: Uma vez que e´ utilizado um c(n ,n)=Sizec∗ 2+K ∗Sizec∗ 2 (22) melhor e me´todo de expansa˜o do mapa que considera todo o com- 2) Estrutura utilizada para listas: O algoritmo durante a primento do roboˆ, incluindo o sistema de empilhamento de sua execuc¸a˜o despende uma parte considera´vel de tempo a pec¸as, existem situac¸o˜es em que e´ imposs´ıvel calcular as adicionar valores por ordem crescente de f(n) e a remover trajeto´rias recorrendo ao me´todo de planeamento sugerido omelhorno´ daslistasabertaefechada,porissoe´ necessa´rio devidoaqueaposic¸a˜odopostodetrabalhoseencontranuma escolherumaestruturadedadoscomumacomplexidadetem- zona ocupada. Assim foi implementada uma infraestrutura poralbaixa,istoe´ quesejara´pidadeexecutarprincipalmente constitu´ıda por ma´quinas de estado hiera´rquicas que per- paraestetipodeatuac¸o˜es.Paratalrecorre-seabinaryheaps mitem decompor os percursos para funcionar em treˆs modos que sa˜o estruturas com uma complexidade temporal para os me´todos de inserc¸a˜o e remoc¸a˜o baixa, O(log n), o que permite trabalhar facilmente com uma quantidade elevada de no´s de forma mais eficaz. 3) Heur´ıstica: Aheur´ısticaescolhidaparaoproblemafoi a da distaˆncia euclidiana, uma vez que permite mover-se em qualquersentido,ousejapermitecalcularadistaˆnciaemreta Fig.12. Func¸o˜esf(n),g(n)eh(n) Fig.13. Esquemadocontroloapo´smudanc¸adecoordenadas ISSN 2255-5706 © IEEE-ES (Capítulo Español) 8 VAEP-RITA Vol. 3, Núm. 1, Mar. 2015 entrada e sa´ıda dos postos de trabalho, planeamento com recursoaoA∗ paraospercursosinterioresecargaedescarga de pec¸as. Em que o primeiro modo realiza uma reta entre dois waypoints de uma forma pre´-definida, o segundo modo calcula o percurso a efetuar e realiza um seguimento das retas que efetuam a unia˜o entre o no´s, usando o me´todo de controlo de movimento, e o u´ltimo realiza um controlo de posic¸a˜o, estabilizando na posic¸a˜o em que as garras se encontram dentro da ma´quina, capturando ou libertando a pec¸a. 3) Controlo de ac¸o˜es com mu´ltiplos roboˆs: No caso de existirem mu´ltiplos roboˆs o primeiro passo a tomar e´ verificar se o ponto final, que e´ o ponto da ma´quina na Fig.15. Evoluc¸a˜odacoordenadaxaolongodasiterac¸o˜esN zona marcada como livre no mapa, esta´ livre ou se existe la´ algumobsta´culo,nomeadamenteoutroroboˆ.Casona˜oexista nenhuma impossibilidade o ponto definido como meta sera´ mantido, sena˜o, se porventura houver um obsta´culo nessa localizac¸a˜o, calcula-se o ponto mais pro´ximo do fina e o roboˆ desloca-se para la´ ate´ o destino estar dispon´ıvel. VII. RESULTADOS A. Localizac¸a˜o Nesta secc¸a˜o sa˜o apresentados e debatidos os resultados provenientesdostestesefetuadonoroboˆ prototipado.Oteste de validac¸a˜o sera´ segundo uma trajeto´ria que tem como objetivo o movimento do roboˆ por va´rias partes do campo, validando a localizac¸a˜o em toda a extensa˜o do campo. Fig.16. Evoluc¸a˜odacoordenaday aolongodasiterac¸o˜esN Esta trajeto´ria, de 3.2 metros, encontra-se representada na Figura 14, sendo uma sequeˆncia de retas com a seguinte ordem: A - B - C - D - E. estipulada, induzidos pelo controlo dos motores e de erros Neste teste, o roboˆ comec¸a na posic¸a˜o (−1.13,−0.5,90o) inerentesa` localizac¸a˜o.Umacomparac¸a˜oentrealocalizac¸a˜o (em coordenadas no formato (x,y,θ)) e dirige-se para a obtidaporfusa˜osensorialea` calculadapelosistemabaseado posic¸a˜o (1.13,−0.5,0o), definida como o ponto B. Ao no laser range finder e´ vis´ıvel na Figura 18. chegar perto de B, este comec¸a a dirigir-se para o ponto C, caracterizado pelas coordenadas (1.13,0.5,90o) e de B. Trajeto´rias seguida dirige-se ate´ (0,0.5,270o) (ponto D). Para terminar, segueparaopontoE,nascoordenadas(0,−0.5,180o),onde Nesta secc¸a˜o sa˜o apresentados os resultados obtidos com estabiliza. o planeamento de trajeto´rias desenvolvido e pelo sistema de Ao longo de va´rios testes, o valor para as matrizes R e Q navegac¸a˜o utilizado. que se verificou ser mais eficaz para a estimac¸a˜o do estado Desta forma, inicialmente ao expandir-se obte´m-se um foi R11 = R22 = R33 = 100 e Q11 = Q22 = 1000 e mapadocamposimilaraorepresentadonaFigura19,oqual Q33 =100000 (teste 2C). depende em parte do tamanho das ce´lulas a usar, as quais Anoto´riaondulac¸a˜oaolongodomovimentodoroboˆ deve- quanto maior forem menor sera´ a resoluc¸a˜o. sea`spequenascorrec¸o˜esdaposic¸a˜odoroboˆ paraatrajeto´ria Ja´ no caso de existir outro roboˆ no mapa, nomeadamente na posic¸a˜o (X,Y)=(0,0) e´ adicionado mais um elemento ao mapa como se pode observar na Figura 20. Fig. 14. Pontos de refereˆncia da trajeto´ria para teste e validac¸a˜o de algoritmos Fig.17. Evoluc¸a˜odacoordenadaθ aolongodasiterac¸o˜esN ISSN 2255-5706 © IEEE-ES (Capítulo Español)
Description: