Teleoperando Robôs Pioneer Utilizando Android Eduardo Gouveia Pinheiro 1 , Túlio Casagrande Alberto 1 1 Departamento de Computação – Universidade Federal de São Carlos (UFSCar) Sorocaba – SP – Brasil {edu.g.pinheiro, tuliocasagrande}@gmail.com Abstract. This paper presents an application with ROS, Aria and RosAria to control a ModelSim simulated Pioneer 3-DX robot. The navigation applies a simple autonomous algorithm and a teleoperation control using an Android de- vice sending the gyroscope generated information. Resumo. Este trabalho apresenta uma aplicação utilizando ROS, Aria e Ro- sAria para o controle de um rôbo Pioneer 3-DX simulado em ModelSim. A navegação é feita utilizando um algoritmo de autonomia simples e pelo con- trole teleoperado de um dispositivo Android, que envia as informações geradas pelo giroscópio. Palavras-chave: Pioneer, Android, teleoperação, navegação, robôs autônomos 1. Introdução O uso de robôs móveis autônomos é um assunto imensamente abordado na literatura de Inteligência Artificial. Segundo [Ghallab et al. 2004], o planejamento automatizado ne- cessita de ferramentas de processamento para que a navegação possa ser feita de maneira acessível e eficiente. Muitas vezes, essa navegação ocorre em cenários complexos e em constantes mudanças. Mesmo quando o planejamento é feito de forma extensa e minuci- osa, em momentos críticos é necessário que haja intervenção humana. Este trabalho propõe o uso de dispositivos portáteis com o sistema operacional Android para teleoperar robôs móveis autônomos Pioneer . Em situações sem intervação humana, o robô tomaria as ações para qual está programado, como ajustar sua trajetória e evitar obstáculos. Em momentos críticos, o operador poderia controlar o robô à distância. O artigo está estruturado da seguinte forma: na Seção 2 são brevemente descritos os trabalhos correlatos disponíveis na literatura. Na Seção 3 está a descrição básica da proposta e na Seção 4 são apresentados os algoritmos e implementações avaliados neste trabalho. Por fim, conclusões e direções para trabalhos futuros são descritos na Seção 5. 2. Trabalhos correlatos Os campos de estudo de robôs autônomos e de navegação teleoperada são assuntos muito abordados pela literatura de Robótica. Entende-se por robô autônomo, todo robô que aceita instruções superficiais sobre suas tarefas e as executam sem a necessidade de mai- ores intervenções humanas [Ottoni and Lages 2000]. [Nadvornik and Smutny 2014] utilizaram um robô Lego Mindstorms teleoperado por meio de um aplicativo Android . A comunicação é feita por um protocolo sem fio arXiv:1501.02475v1 [cs.RO] 11 Jan 2015 bluetooth e baseia-se na interação por voz e por toque, sendo que a navegação ocorre com a ajuda de um sonar na parte dianteira do protótipo construído. [M.Selvam 2014] aplicou uma interface multimídia Android para o reconheci- mento de áreas inimigas em zonas de guerra. Utilizando uma aplicação para smartphones fácil e intuitiva, o autor propôs controlar o robô através da interface de toque ( touchs- creen ). [Ko et al. 2014] utilizaram a programação de um robô autônomo para a manu- tenção de estufas fazendo a pulverização de inseticidas. Este trabalho é um exemplo de como a robótica está sendo inserida em diversas áreas, tendo em vista a atual tendência da agricultura em adotar alternativas tecnológicas para diminuir o custo e o tempo de trabalho. [Chung et al. 2004] utilizaram o algoritmo Wall Follower e propuseram um con- trolador que utiliza um feedback não-linear para ajustar a navegação do robô a uma velo- cidade constante e a uma distância segura de uma parede desconhecida e suave. 3. Proposta A arquitetura do sistema robótico proposto utiliza os seguintes elementos: framework ROS ( Robotics Operating System ) 1 , as bibliotecas ARIA 2 e RosAria 3 , o simulador Mobi- leSim 4 , o aplicativo ROS Android Sensor Driver 5 e aplicações em C++. Figura 1. Robô Pioneer 3-DX 1 ROS.org | Powering the world’s robots. Disponível em: http://www.ros.org . 2 ARIA - MobileRobots Research and Academic Customer Support. Disponível em: http:// robots.mobilerobots.com/wiki/ARIA . 3 RosAria - ROS Wiki. Disponível em: http://wiki.ros.org/ROSARIA . 4 MobileSim - MobileRobots Research and Academic Customer Support. Disponível em: http:// robots.mobilerobots.com/wiki/MobileSim . 5 ROS Android Sensors Driver. Disponível em: https://play.google.com/store/apps/ details?id=org.ros.android.sensors_driver . 2 Para este trabalho foi utilizado o modelo Pioneer 3-DX da MobileRobots 6 , mos- trado na Figura 1. O Pioneer 3-DX é um robô compacto com duas rodas conectadas em dois motores diferenciais. O modelo básico possui ainda odômetro e dois conjuntos de sonares (frontais e traseiros), conforme a Figura 1. O modelo também possui diversos acessórios opcionais, tais como: telêmetro (sensores laser), bumpers (sensores de colisão), câmera, manipuladores de 2 até 7 graus de liberdade e entre outros. A Figura 2 ilustra um robô Pioneer 3-DX com os seguintes acessórios: Figura 2. Robô Pioneer 3-DX com acessórios [1] câmera; [2] SICK LMS-500 (telêmetro); [3] sensores ultrassônicos frontais; [4] Pioneer Gripper (manipulador com 2 DOF); [5] bumpers traseiros; e [6] sensores ultrassônicos traseiros. Segundo informações do fabricante, o Pioneer 3-DX é o robô móvel mais utilizado atualmente em ambientes acadêmicos e de pesquisa, com preços que iniciam em US$ 3.995 para o modelo básico. 4. Algoritmo e Implementação A aplicação foi desenvolvida em C++ e o código-fonte com instruções de execução estão disponíveis no GitHub 7 . Basicamente, o programa apresenta as seguintes funcionalida- des: 6 Adept MobileRobots Pioneer 3-DX (P3DX) differential drive robot for research and education. Dispo- nível em: http://www.mobilerobots.com/ResearchRobots/PioneerP3DX.aspx . 7 Repositório tuliocasagrande/rosaria. Disponível em: https://github.com/ tuliocasagrande/rosaria . 3 1. Teleoperação do robô por meio da captação dos movimentos do giroscópio de um celular Android ; 2. Autonomia simples, cuja navegação se baseia na detecção e emparelhamento do robô com as paredes do ambiente, também conhecido como Wall Fol- lower [Turennout et al. 1992], sendo considerado um dos mais simples algoritmos de resolução de labirintos. A aplicação também apresenta um dispositivo visual de segurança para o usuário navegar com o controle Android . A Figura 3 mostra em sua parte esquerda a saída do programa em execução e à direita a correspondência na simulação do robô. Figura 3. Sonares indicando proximidade das paredes 5. Conclusões A utilização da framework ROS, com as bibliotecas Aria e RosAria permitem o desenvol- vimento de uma interface única de comunicação, que facilita a interoperabilidade entre diversos modelos de robôs da fabricante MobileRobots . O código proposto funciona para a maioria dos modelos da família Pioneer , tais como: P3-DX , P3-AT ou AmigoBot , com nenhuma ou poucas modificações. Além disso, mesmo se utilizados modelos de outros fabricantes, o código sofreria poucas alterações, visto que a interface proposta pelo ROS é padronizada. As contribuições futuras consistem em refinar o algoritmo de navegação autô- noma, de forma a incluir a construção de representações internas, tais como mapas e cálculos de trajetória. Além disso, a comunicação com o Android poderia ser expandida, de forma a enviar informações multimodais para o robô, como voz ou toque. Por fim, a utilização de um robô real poderia trazer novas experiências, tais como perdas de pacotes, leituras erradas dos sensores, filtragem de ruídos e detecção de falhas. 4 Referências [Chung et al. 2004] Chung, T. L., Bui, T., Kim, S., Oh, M., and T.T., N. (2004). Wall- following control of a two-wheeled mobile robot. KSME International Journal, Vol. 18, No. 8 . [Ghallab et al. 2004] Ghallab, M., Nau, D., and Traverso, P. (2004). Automated Planning: Theory and Practice . Morgan Kaufmann Publishers Inc., San Francisco, CA, USA. [Ko et al. 2014] Ko, M., Ryuh, B., Kim, K., Suprem, A., and Mahalik, N. (2014). Autono- mous greenhouse mobile robot driving strategies from system integration perspective: Review and application. Mechatronics, IEEE/ASME Transactions on , pages 01–12. [M.Selvam 2014] M.Selvam (2014). Smart phone based robotic control for surveillance applications. International Journal of Research in Engineering and Technology (IJ- RET’14) . [Nadvornik and Smutny 2014] Nadvornik, J. and Smutny, P. (2014). Remote control robot using android mobile device. In Control Conference (ICCC), 2014 15th International Carpathian , pages 373–378. [Ottoni and Lages 2000] Ottoni, G. L. and Lages, W. F. (2000). Planejamento de trajetó- rias para robôs móveis em ambientes desconhecidos. In XIII Congresso Brasileiro de Automática , Florianópolis, SC. [Turennout et al. 1992] Turennout, P. v., Honderd, G., and Schelven, L. J. v. (1992). Wall- following control of a mobile robot. Internacional Conference on Robotics and Auto- mation . 5