Teleoperando Robôs Pioneer Utilizando Android
Eduardo Gouveia Pinheiro1, Túlio Casagrande Alberto1
1Departamento 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 ARIA2 e RosAria3, o simulador Mobi-
leSim4, o aplicativo ROS Android Sensor Driver5 e aplicações em C++.
Figura 1. Robô Pioneer 3-DX
1ROS.org | Powering the world’s robots. Disponível em: http://www.ros.org.
2ARIA - MobileRobots Research and Academic Customer Support.
Disponível em:
http://
robots.mobilerobots.com/wiki/ARIA.
3RosAria - ROS Wiki. Disponível em: http://wiki.ros.org/ROSARIA.
4MobileSim - MobileRobots Research and Academic Customer Support. Disponível em: http://
robots.mobilerobots.com/wiki/MobileSim.
5ROS 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 MobileRobots6, 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 GitHub7. Basicamente, o programa apresenta as seguintes funcionalida-
des:
6Adept MobileRobots Pioneer 3-DX (P3DX) differential drive robot for research and education. Dispo-
nível em: http://www.mobilerobots.com/ResearchRobots/PioneerP3DX.aspx.
7Repositó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
Teleoperando Robôs Pioneer Utilizando Android
Eduardo Gouveia Pinheiro1, Túlio Casagrande Alberto1
1Departamento 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 ARIA2 e RosAria3, o simulador Mobi-
leSim4, o aplicativo ROS Android Sensor Driver5 e aplicações em C++.
Figura 1. Robô Pioneer 3-DX
1ROS.org | Powering the world’s robots. Disponível em: http://www.ros.org.
2ARIA - MobileRobots Research and Academic Customer Support.
Disponível em:
http://
robots.mobilerobots.com/wiki/ARIA.
3RosAria - ROS Wiki. Disponível em: http://wiki.ros.org/ROSARIA.
4MobileSim - MobileRobots Research and Academic Customer Support. Disponível em: http://
robots.mobilerobots.com/wiki/MobileSim.
5ROS 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 MobileRobots6, 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 GitHub7. Basicamente, o programa apresenta as seguintes funcionalida-
des:
6Adept MobileRobots Pioneer 3-DX (P3DX) differential drive robot for research and education. Dispo-
nível em: http://www.mobilerobots.com/ResearchRobots/PioneerP3DX.aspx.
7Repositó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