Projeto Com Arduíno e Kinect
Projeto Com Arduíno e Kinect
Abstract The educational robotics has become an important física, matemática e raciocínio lógico, pode ser uma excelente
tool in the insertion of students in the research environment. ferramenta no auxílio ao aprendizado e para promoção da
This paper presents a experimental robotic platform of low interdisciplinaridade (Martins, Oliveira e Oliveira, 2012). Zilli
cost, what uses the Kinect as vision sensor. Also presents a (2004) também caracteriza a atividade robótica como
computer vision based system capable of control tasks simple interdisciplinar, pois possibilita estimular o pré-projeto, a
of the robot. The results demonstrated that the proposed robotic engenharia e habilidades em computação, e sendo, por isso,
platform is feasible and can be used in the development of new altamente relevante para o currículo escolar.
algorithms, until even more complex than those developed in
Segundo Amaral, Pin e de Oliveira (2012), para que haja a
this work.
prática da robótica educacional são utilizados kits didáticos
Keywords: Robotics, Education, Arduino, Robotics Kits, para robótica. Dentre esses kits, alguns são distribuídos
Kinect. comercialmente de uma forma fixa podendo ser mudada apenas
a lógica de controle (como, por exemplo, os produzidos pela
Resumo A robótica educacional tem se tornado uma
LEGO®). Estes kits possuem a desvantagem de permitirem
ferramenta importante na inserção de alunos no ambiente de
poucas modificações no hardware reduzindo a possibilidade de
pesquisa. Este artigo apresenta uma plataforma robótica
se adicionar novas funcionalidades, além de serem de alto
experimental de baixo custo, que utiliza o Kinect como sensor
custo, o que dificulta sua aquisição por parte das escolas.
de visão. Também apresenta um sistema baseado em visão
computacional capaz de controlar tarefas simples do robô. Os Ao escolher uma plataforma robótica, o custo não é o único
resultados demonstraram que a plataforma robótica proposta é fator a ser considerado. Uma bem-sucedida plataforma robótica
viável e pode ser utilizada no desenvolvimento de novos deve ter uma pequena curva de aprendizagem para atividades
algoritmos, até mesmo mais complexos do que os simples, mas deve se expandir para atender necessidades
desenvolvidos neste trabalho. avançadas e de pesquisa, ou seja, deve possuir uma boa
escalabilidade (Johnson, 2002).
Palavras Chaves: Robótica, Educação, Arduino, Kits
Robóticos, Kinect. Neste contexto, o objetivo deste trabalho foi comprovar o
proposto por Amaral, Pin e de Oliveira (2012), construindo
1 INTRODUÇÃO uma plataforma robótica experimental (PR), com o intuito de
desenvolver algoritmos de visão computacional, utilizando o
Robôs são amplamente utilizados em todo o mundo e em Kinect da Microsoft, capaz de controlar a PR. Outro objetivo
diversas aplicações. Por conseguinte, o campo da robótica foi verificar a interdisciplinaridade desta atividade e inserir
educacional tem recebido crescente atenção dos educadores e alunos do curso Técnico em Informática em um ambiente de
estudantes. Como exemplo, o número de estudantes no Brasil pesquisa, totalmente propício ao desenvolvimento da
que participam da Olimpíada Mundial de Robótica aumentou, e capacidade criativa dos alunos. Especificamente, neste projeto,
eles têm alcançado notável sucesso (Martins, Oliveira e foi criada uma plataforma robótica experimental (PR)
Oliveira, 2012). controlada por movimentos de um usuário detectados pelo
De acordo com Johnson (2002), o interesse em robótica Kinect. Esse controle poderia ser relevante quando um robô
aumentou espantosamente nos últimos anos. A robótica é vista autônomo encontra-se com dificuldades na realização dos
por muitos como a oferta de novos e importantes benefícios na movimentos (por exemplo, desvio de obstáculos complexos) ou
educação em todos os níveis. quando ainda não possui um ambiente mapeado.
O robô, por ser um dispositivo que exige a conexão de diversos Este artigo encontra-se organizado da seguinte forma: a seção 2
elementos de maneira planejada e coordenada e pelo fato de apresenta a forma de construção da PR. A seção 3 relata a
tais elementos exigirem conhecimentos de diversas áreas, como arquitetura física. Já a seção 4 descreve a arquitetura do
Mostra Nacional de Robótica (MNR) 1
sistema. Os resultados são apresentados na seção 5, e as desenvolvida sobre uma biblioteca que simplifica a escrita da
conclusões são apresentadas na seção 6. programação em C/C++ (Arduino, 2013).
2 PLATAFORMA ROBÓTICA
Este projeto foi desenvolvido no LARSE (Laboratório de
Robótica e Sistemas Embarcados). O LARSE é vinculado ao
NERA (Núcleo de Estudos em Robótica e Automação), e os
trabalhos desenvolvidos pelo Núcleo já demonstraram a
interdisciplinaridade da robótica e os benefícios, no processo
de aprendizagem em programação e eletrônica, desfrutados
pelos alunos envolvidos (Martins, Oliveira, e Amaral, 2012),
(Amaral, Pin e De Oliveira, 2012) e (Martins, Oliveira e
Oliveira, 2012).
Sendo assim, a plataforma robótica experimental (PR)
desenvolvida neste trabalho foi baseada no projeto feito por
Amaral, Pin e de Oliveira (2012). A PR é apoiada em duas Figura 2 - Plataforma robótica experimental.
placas de acrílico sobrepostas, contendo três rodas, sendo duas
Já o Kinect (da Microsoft) fornece imagens que vêm sendo
delas motrizes e a terceira de apoio, como em um robô de
chamadas de RGBD, fazendo referência aos três canais de
acionamento diferencial. As diferenças básicas da PR com
cores e ao canal adicional de profundidade (com a letra ‘D’
relação ao trabalho de Amaral, Pin e de Oliveira são descritas a
vindo do termo depth, profundidade em inglês). Vários
seguir.
trabalhos em robótica também têm utilizado o Kinect como
Escolheu-se uma base acrílica maior, com o propósito de sensor de profundidade e reconstrução 3D. Um sistema de
suportar mais equipamentos embarcados. Neste caso, rodas controle de rastreamento do movimento humano com Kinect a
maiores, uma placa Arduino, uma protoboard, uma bateria e bordo de um robô móvel foi desenvolvido por (Machida et al.,
dois servomotores na plataforma inferior. Um Kinect da 2012). Em (El-Laithy et al, 2012), ele é usado para aplicações
Microsoft e um notebook (controlador) na plataforma superior, de navegação indoor em veículo terrestre.
conforme Figura 1.
O princípio básico por trás do sensor de profundidade do
Kinect é a emissão de um padrão de IR (infravermelho) e a
captura de imagem simultânea da imagem IR com uma câmera
CMOS (tradicional). O processador de imagem do Kinect
utiliza as posições relativas dos pontos no padrão para calcular
o deslocamento de profundidade em cada posição de pixel na
imagem (Andersen et al, 2012). A precisão de profundidade é
de aproximadamente 10 milímetros a uma distância de 2
metros.
O Kinect é um sensor de grande valia para a área de Visão
Computacional, tendo sido explorado em projetos das mais
variadas aplicações. Além disso, possui como vantagem um
baixo custo de aquisição. Sendo assim, utilizou-se esse sensor
na detecção dos movimentos para o controle da plataforma
Figura 1 - Plataforma robótica experimental. robótica experimental.
Além disso, os servomotores escolhidos foram de maior torque,
no caso, 5.0 Kg-cm (no projeto original eram de 3.3 Kg-cm). 4 ARQUITETURA DO SISTEMA
Como dito, as rodas também foram modificadas por rodas com
maior diâmetro. Abaixo (Figura 3), pode-se ver um diagrama onde está
representada a arquitetura do sistema e como a plataforma
robótica experimental funciona de forma teórica.
3 ARQUITETURA FÍSICA
A arquitetura física define como as estruturas físicas serão
interligadas. Essa arquitetura pode ser observada na Figura 2.
A arquitetura física é composta por um controlador (notebook)
interligado, pela porta USB, a um Arduino, que por sua vez,
está ligado a dois atuadores (servos) pelas portas PWM (Pulse
Width Modulation - Modulação por Largura de Pulso) de sua
placa. Além disso, um sensor, do tipo Kinect, está ligado ao
controlador também pela porta USB.
O Arduino faz parte do conceito de hardware e software livre e
está aberto para uso e contribuição de toda sociedade. É uma
plataforma de computação física (são sistemas digitais ligados
a sensores e atuadores, que permitem construir sistemas que
percebam a realidade e respondem com ações físicas), baseada
em uma simples placa de Entrada/Saída microcontrolada e Figura 3 - Arquitetura do Sistema.
As funções básicas de movimento disponíveis no robô são: Para isso, o mapa de profundidade fornecido pelo Kinect é
“frente - forward”, “ré - backward”, “pare - stop”, “direita 90º - dividido em quadrantes, conforme Figura 5.
right” e “esquerda 90º - left”. Essas funções são as mesmas
desenvolvidas por Amaral, Pin e de Oliveira (2012) e estão
embarcadas na placa microcontrolada (Arduino).
Na Comunicação, feita pela porta USB, foi definido um
protocolo entre o Arduino e o controlador. O Arduino recebe
uma string contendo a decisão de movimento (forward,
backward, stop, right e left). Essa comunicação é feita
utilizando-se o Processing. Este ambiente de código aberto é
disponibilizado para diversos sistemas operacionais, incluindo
Windows e Linux, e já possui uma biblioteca de comunicação
com o Arduino (Processing, 2013).
6 CONCLUSÕES
Embora neste trabalho apenas tenha sido desenvolvida uma
única aplicação prática, foi possível comprovar que a
plataforma é viável, e que se comportou de forma estável.
Sendo assim, a solução proposta se mostrou um bom caminho
para a construção de veículos robóticos equipados com sensor
de visão computacional (Kinect) a serem utilizados em robótica
educacional.
O projeto desenvolvido na realização deste estudo permitiu a
utilização de ferramentas tecnológicas modernas, como a
própria robótica, a visão computacional e a eletrônica,
demonstrando a grande interdisciplinaridade da área. Além
disso, proporcionou um estímulo aos alunos do Curso Técnico
em Informática do Instituto Federal a participarem mais
ativamente de projetos de iniciação científica. Este trabalho já
Figura 7 - Robô executando um percurso, de acordo o está sendo utilizado como referência por outros trabalhos em
movimento de comando do usuário, em um ambiente andamento, como: desvio de obstáculos, mapeamento e
controlado. reconhecimento de gestos, todos utilizando o Kinect como
sensor. Ou seja, criou-se a possibilidade de se acrescentar
Para os testes, um padrão de movimento do robô foi adotado,
várias outras funcionalidades ao robô, com o intuito de
simulando um desvio de obstáculos. Ele deveria executar um
melhorar o seu funcionamento, mas o mais relevante é
percurso composto de: uma movimentação à frente, uma
possibilitar ao aluno o exercício da criatividade e o
parada, uma ré, uma rotação à direita ou à esquerda, e uma
aprimoramento dos conhecimentos em robótica.
movimentação à frente.
O Kinect se mostrou uma grande e complexa ferramenta que
Em todos os testes a PR demonstrou boa estabilidade, tanto
pode ser usada para ensinar os alunos muitas tarefas robóticas
com relação aos movimentos quanto com relação à detecção de
comuns. Como sensoriamento 3D é uma tendência atual na
movimentos de controle feita pelo Kinect (Tabela 1). O
pesquisa, estudando robótica com o Kinect como parte do
conjunto proposto neste trabalho foi capaz de desenvolver o
equipamento é um tanto desafiador e motivador.
percurso sugerido com os movimentos totalmente controlados
por um usuário. O custo total do projeto não ultrapassou R$ 800,00 (sem
considerar o controlador - notebook), atingindo o objetivo que
A integração da placa Arduino, do veículo, do controlador e
era de construir uma plataforma com valores acessíveis à
dos softwares se deu de forma não muito complexa e
realidade de muitas escolas brasileiras.
trabalhosa. As maiores dificuldades encontradas com relação à
PR foram na montagem das rodas e na manipulação dos fios. Já Trabalhos futuros podem ser executados na melhoria da
na detecção de movimentos e controle feitos pelos algoritmos plataforma. Pode-se propor uma melhor implementação da
implementados utilizando o Kinect, as dificuldades foram com comunicação entre Arduino e o controlador (protocolo),
a calibração da taxa de comunicação entre o Processing e o melhorias físicas de locomoção e nos códigos de movimento.
Arduino. Correções foram necessárias no sistema de detecção Outras melhorias no código de controle também podem ser
de movimentos do usuário, para reduzir as atualizações de feitas, dando mais inteligência e autonomia ao robô, além da
controle. Para isso, uma suavização na movimentação do ponto possibilidade de criação de mapas em tempo real do ambiente
mínimo foi implementada. navegado e implementação de técnicas de inteligência
artificial.
Tabela 1 - Erros de controle e movimento da PR.
Quantidade Erro % de % de
REFERÊNCIAS BIBLIOGRÁFICAS
de Testes Erro Acerto Amaral, E. M. A., Pin, L. B. e de Oliveira, D. (2012).
LUDEbot: Uma plataforma com Servomotores e
Detecção de 20 2 10,0 90,0 Sensoriamento utilizando a Placa Arduino e Controle
movimentos Externo, In: III Workshop on Educational Robotics,
IEEE SBR/LARS/WRE (I Brazilian Robotics
Controle de decisão 20 0 0,0 100,0 Symposium, IX Latin American Robotics Symposium),
Fortaleza, CE, 2012.
Controle básico de 20 3 15,0 85,0
movimentos Andersen, M.R., Jensen T., Lisouski P., Mortensen, A.K.,
Hansen, M.K., T. Gregersen, P. (2012). Ahrendt: Kinect
Depth Sensor Evaluation for Computer Vision
Mostra Nacional de Robótica (MNR)
Applications, Department of Engineering, Aarhus Proceedings of , vol., no., pp.2207, 2211, 20-23 Aug.
University. Denmark. 37 pp. Technical report ECE-TR- 2012.
6, 2012.
Martins, F. N., Oliveira, H. C. e Amaral, E. M. A. (2012).
Anderson, M., Thaete L. and Wiegand N. (2007). Player/Stage: NERA – A Center for Research on Educational Robotics
A Unifying Paradigm to Improve Robotics Education and Automation, In: WEROB 2012 – Workshop on
Delivery, In: RSS Workshop on Research on Robotics in Educational Robotics, 16th RoboCup International
Education 2007, Atlanta, GA. Symposium, Mexico City, 2012.
Arduino. (2013). Language Reference, Disponível em: Martins, F. N., Oliveira, H. C. e Oliveira, G. F. (2012).
http://arduino.cc/en/Reference/HomePage. Acesso em: Robótica como Meio de Promoção da
julho de 2013. Interdisciplinaridade no Ensino Profissionalizante, In:
WRE/LARS 2012 - Workshop de Robótica Educacional
Borenstein, G. (2012). Making Things See: 3D Vision with
- parte do Latin American Robotics Symposium,
Kinect, Processing, Arduino, and MakerBot, First
Fortaleza. Anais do LARS SBR 2012.
Edition, Published by O’Reilly Media, Inc., ISBN: 978-
1-449-30707-3. Processing. (2013). Language Reference, Disponível em:
http://www.processing.org/reference/. Acesso em: julho
El-Laithy, R.A., Huang, J., Yeh, M. (2012). Study on the use of
de 2013.
Microsoft Kinect for robotics applications. Position
Location and Navigation Symposium (PLANS), In: Tölgyessy, M., Hubinský, P. (2011). The Kinect Sensor in
2012 IEEE/ION, vol., no., pp.1280, 1288, 23-26 April Robotics Education, Proceedings of 2nd International
2012. doi: 10.1109/PLANS.2012.6236985. Conference on Robotics in Education (RiE 2011).
Publisher: INNOC - Austrian Society for Innovative
Johnson, J. (2002). Children, robotics, and education, 7th
Computer Sciences.
International Symposium on Artificial Life and
Robotics, Oita, Japan, January 16–18, 2002. Print ISSN Zilli, S. R. (2004). A robótica educacional no ensino
1433-5298. fundamental: perspectivas e prática, Dissertação de
Mestrado, UFSC, Florianópolis, SC, 2004.
Machida, E., Cao, M., Murao, T., Hashimoto, H. (2012).
Human motion tracking of mobile robot with Kinect 3D
sensor, In: SICE Annual Conference (SICE),