4
Mostra Nacional de Robótica (MNR) 1 DESENVOLVIMENTO DE ROBÔ INTELIGENTE PARA A OLIMPÍADA BRASILEIRA DE ROBÓTICA Ana Kellem de Castro, Anderson Vítor Bento, João Maurício Silvestre Santos Rodrigues, Lucas Augusto Niess Soares Fonseca - Alunos do Ensino Médio Alisson Marques da Silva, Tiago Alves de Oliveira, Adriano Nogueira Drumond Lopes, Jean Carlos Pereira – Professores orientadores Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MG – Campus Divinópolis Rua Álvares de Azevedo, 400, Bela Vista, 35503-822 – Divinópolis – MG Resumo: Este projeto tem como objetivo a exposição do desenvolvimento de um robô seguidor de linha para a Olimpíada Brasileira de Robótica de 2016. O objeto de trabalho foi construído com peças plásticas do LEGO® Mindstorms NXT 2.0. Além disso, foi usado um controlador digital fabricado pela mesma empresa, para execução dos programas criados e funcionamento do robô. A tecnologia de programação utilizada foi a linguagem Java®, sob framework da biblioteca LeJOS, criada especificamente para robôs da LEGO®. Para que o robô seguisse linhas pretas aleatoriamente dispostas, formando curvas e retas em vários ângulos, um seguidor de linha controlado por erros proporcionais aritméticos foi implementado. Outra técnica adotada foi a utilização sistemática de um mecanismo exclusivamente arquitetado para este projeto, denominado Way-to-Go. O mecanismo é ativado nas encruzilhadas sinalizadas com bloco verde, as quais indicam tendência de curva. Ao integrar o Way-to-Go ao seguidor de linha, os resultados obtidos foram consideravelmente eficazes, atendendo com sucesso a 80% dos casos de teste específicos. Palavras-chave: Robótica, Robô Inteligente, Seguidor de Linha, Way-to-Go, LEGO® Mindstorms, Educação Profissional. Abstract: The objective of this project is to show the development of a line follower robot for Brazilian Robotics Olympiad in 2016. The job object was built with plastic parts of LEGO® Mindstorms NXT 2.0. Additionally, a digital controller was used, manufactured by the same company, for the execution of the programs created and for the operation of the robot. The programming technology used was the Java® language, in the framework LeJOS library, created specifically for LEGO® robots. In order for the robot to follow randomly arranged black lines, forming curves and straight lines at various angles, a line follower controlled by proportional arithmetical errors was implemented. Another technique used was the systematic use of a uniquely architected mechanism for this project, called Way- to-Go. The mechanism is activated at the crossroads marked with green block, which indicate a curve trend. By integrating the Way-to-Go to the line follower, the results were pretty effective, successfully satisfying 80% of the specific test cases. Keywords: Robotics, Intelligent Robot, Line Follower, Way-to- Go, LEGO® Mindstorms, Professional Education. 1. INTRODUÇÃO A robótica é definida como a ligação inteligente entre percepção e ação, sendo necessário certo grau de inteligência para realização de uma determinada tarefa, que envolve uma interação física entre o sistema e o meio onde a tarefa está sendo realizada [Pio, Castro e Castro 2006]. Espera-se de um robô inteligente que ele seja capaz de realizar determinadas atividades sem a supervisão ou assistência humana. Assim sendo, o robô desenvolvido para este trabalho (Figura 1) foi planejado para seguir linhas, desviar de obstáculos com distância mínima de 30 cm, passar por redutores de velocidade, subir rampas com inclinação máxima de 30° e fazer curvas acentuadas com sucesso através do sistema Way-to-Go, sistema esse determinado de acordo com as especificações de pista da Olimpíada Brasileira de Robótica no ano de 2016 [OBR 2016]. Figura 1 – Visão geral do robô

DESENVOLVIMENTO DE ROBÔ INTELIGENTE PARA A …sistemaolimpo.org/midias/uploads/2acc9b95e9603164e57820dfe4a77618.pdf · Go, LEGO® Mindstorms, Professional Education. 1. INTRODUÇÃO

Embed Size (px)

Citation preview

Mostra Nacional de Robótica (MNR) 1

DESENVOLVIMENTO DE ROBÔ INTELIGENTE PARA A OLIMPÍADA BRASILEIRA DE ROBÓTICA

Ana Kellem de Castro, Anderson Vítor Bento, João Maurício Silvestre Santos Rodrigues, Lucas Augusto Niess Soares Fonseca - Alunos do Ensino Médio

Alisson Marques da Silva, Tiago Alves de Oliveira, Adriano Nogueira Drumond Lopes, Jean Carlos Pereira – Professores orientadores

Centro Federal de Educação Tecnológica de Minas Gerais – CEFET-MG – Campus Divinópolis Rua Álvares de Azevedo, 400, Bela Vista, 35503-822 – Divinópolis – MG

Resumo: Este projeto tem como objetivo a exposição do desenvolvimento de um robô seguidor de linha para a Olimpíada Brasileira de Robótica de 2016. O objeto de trabalho foi construído com peças plásticas do LEGO® Mindstorms NXT 2.0. Além disso, foi usado um controlador digital fabricado pela mesma empresa, para execução dos programas criados e funcionamento do robô. A tecnologia de programação utilizada foi a linguagem Java®, sob framework da biblioteca LeJOS, criada especificamente para robôs da LEGO®. Para que o robô seguisse linhas pretas aleatoriamente dispostas, formando curvas e retas em vários ângulos, um seguidor de linha controlado por erros proporcionais aritméticos foi implementado. Outra técnica adotada foi a utilização sistemática de um mecanismo exclusivamente arquitetado para este projeto, denominado Way-to-Go. O mecanismo é ativado nas encruzilhadas sinalizadas com bloco verde, as quais indicam tendência de curva. Ao integrar o Way-to-Go ao seguidor de linha, os resultados obtidos foram consideravelmente eficazes, atendendo com sucesso a 80% dos casos de teste específicos.

Palavras-chave: Robótica, Robô Inteligente, Seguidor de Linha, Way-to-Go, LEGO® Mindstorms, Educação Profissional.

Abstract: The objective of this project is to show the development of a line follower robot for Brazilian Robotics Olympiad in 2016. The job object was built with plastic parts of LEGO® Mindstorms NXT 2.0. Additionally, a digital controller was used, manufactured by the same company, for the execution of the programs created and for the operation of the robot. The programming technology used was the Java® language, in the framework LeJOS library, created specifically for LEGO® robots. In order for the robot to follow randomly arranged black lines, forming curves and straight lines at various angles, a line follower controlled by proportional arithmetical errors was implemented. Another technique used was the systematic use of a uniquely architected mechanism for this project, called Way-to-Go. The mechanism is activated at the crossroads marked with green block, which indicate a curve trend. By integrating

the Way-to-Go to the line follower, the results were pretty effective, successfully satisfying 80% of the specific test cases.

Keywords: Robotics, Intelligent Robot, Line Follower, Way-to-Go, LEGO® Mindstorms, Professional Education.

1. INTRODUÇÃO A robótica é definida como a ligação inteligente entre

percepção e ação, sendo necessário certo grau de inteligência para realização de uma determinada tarefa, que envolve uma interação física entre o sistema e o meio onde a tarefa está sendo realizada [Pio, Castro e Castro 2006].

Espera-se de um robô inteligente que ele seja capaz de realizar determinadas atividades sem a supervisão ou assistência humana. Assim sendo, o robô desenvolvido para este trabalho (Figura 1) foi planejado para seguir linhas, desviar de obstáculos com distância mínima de 30 cm, passar por redutores de velocidade, subir rampas com inclinação máxima de 30° e fazer curvas acentuadas com sucesso através do sistema Way-to-Go, sistema esse determinado de acordo com as especificações de pista da Olimpíada Brasileira de Robótica no ano de 2016 [OBR 2016].

Figura 1 – Visão geral do robô

Mostra Nacional de Robótica (MNR)

Um sistema muito utilizado atualmente no tocante ao seguimento de linhas por um robô é o controlador PID (Proporcional-Integral-Derivativo). A popularidade de controladores PID pode ser atribuída em parte ao seu desempenho robusto em uma ampla gama de condições de funcionamento e em parte à sua simplicidade funcional, que permite aos engenheiros operá-los de uma forma simples e direta [Instruments, 2011]. Esses controladores trabalham através do cálculo de um erro, ou seja, de uma diferença entre a grandeza medida na saída do sistema e o valor desejado no processo, o set point. A partir desse cálculo, o controlador tenta diminuir o erro que foi gerado pela saída, ajustando suas entradas.

Na aplicação do controlador PID no seguidor de linha do robô desenvolvido neste trabalho, as entradas consistem nos valores medidos pelo sensor de luz. O erro é obtido entre tal grandeza e o set point. O set point foi pré-determinado como sendo um valor de refletividade intermediário entre o valor emitido pelo branco da pista e o preto da linha. Ou seja, o robô seguiria a linha com seus sensores posicionados de modo que cada um estaria metade sobre o branco e a outra metade o preto. Sendo assim, quando um dos mesmos gera valores de refletividade menores que o determinado no set point, ou seja, quando um sensor está em contato apenas com a linha e o outro apenas com a pista, gera-se o um erro. A partir disso, o controlador emite um sinal de controle para aumentar a velocidade no motor da roda oposta ao sensor que estivesse medindo preto. Dessa forma, os sensores voltam para a posição ideal e assim as entradas são ajustadas.

Neste artigo, serão tratados: o sistema Way-to-Go na Seção 2, o robô proposto na Seção 3, os materiais e métodos na Seção 4, os resultados do projeto na Seção 5 e as considerações finais e propostas de continuidade na Seção 6.

2. METODOLOGIA O método de desenvolvimento foi majoritariamente

empírico. Após vários testes, pôde-se verificar e desenvolver o robô com correções baseadas em casos reais de falhas do autômato.

Apesar de eficiente na maioria dos casos (Figura 2), o controlador PID apresentou falhas ao interagir com curvas mais acentuadas. Para que o robô progredisse com maior rapidez nessas curvas, ao detectar o quadrado verde, indicador do sentido de curvas acentuadas na Olimpíada Brasileira de Robótica de 2016 [OBR 2016], o sistema Way-to-Go foi ativado. Com isso, a autonomia do robô melhorou consideravelmente nos casos de curva testados (Figuras 3 e 6).

Figura 2 – Robô percorrendo curva suave

Figura 3 – Robô percorrendo curva de 90°

3. WAY-TO-GO O sistema foi criado especialmente para este projeto.

Ativado por demarcações de curva verdes, o sistema interage no código-fonte Java® com os casos em que os sensores de luz detectam duas reflexões com intensidade menor que a do branco calibrado anteriormente (isso porque a pista possui linhas em preto, demarcações de tendência de curva em verde e todo o restante em branco), porém com uma margem de diferença entre si (geralmente algo entre 40 e 50 u.m. para o verde, e 30 e 40 u.m. para o preto, numa escala de 0 a 100 u.m.). Após detectar a demarcação verde, o robô deve fazer uma curva acentuada, orientado pelo sentido da demarcação daquela cor (Figura 6). Durante a execução da curva em seguidor simples, o robô apresentou erros notáveis quando girava diretamente sob um ângulo de 90º a partir de sua posição. Esses erros, na maioria das vezes, se deram por escorregamentos, devido à alta velocidade de rotação dos motores em conjunto. Assim sendo, deduziu-se que, sob uma angulação menor, o robô poderia, após girar um ângulo agudo (40°), encontrar, através de uma estrutura de repetição com acelerações (1,75 rad/s2) e pequenas rotações (15º) sucessivas, o caminho de volta até a linha preta demarcadora de percurso (Figuras 3 e 6). Em suma, esse sistema constitui o mecanismo principal do robô nas curvas orientadas, permitindo que, após detecção do lado em que a fita verde está, ele gire numa pequena angulação nesse sentido e continue acelerando e girando até encontrar a linha preta novamente. Esse mecanismo minimiza os possíveis erros provenientes de derrapamentos, e inconstências de pista e incidência de luz. O robô aumentou seu rendimento dessa maneira, descrevendo um gráfico de movimento uniformemente variado durante a execução do trecho de código que continha o Way-to-Go (Figura 4).

Figura 4 – Gráfico do Movimento Uniformemente Variado

Mostra Nacional de Robótica (MNR) 3

4. O TRABALHO PROPOSTO Trabalhou-se com a hipótese de que um robô com um bom

seguidor de linha linear e bom sistema de curvas pudesse ter um bom desempenho nos desafios ser bem colocado na Olimpíada Brasileira de Robótica. O robô deve possuir, ao menos, um seguidor de linha robusto, com facilidade em lidar com curvas acentuadas.

A tecnologia de programação utilizada foi a linguagem Java®, sob framework da biblioteca LeJOS, criada especificamente para robôs da LEGO®. Para que o robô seguisse linhas pretas aleatoriamente dispostas, formando curvas e retas em vários ângulos, um seguidor de linha controlado por erros proporcionais aritméticos foi implementado, baseado na técnica do seguidor PID (Proporcional-Integral-Derivativo). Outra técnica adotada foi a utilização sistemática de um mecanismo exclusivamente arquitetado para este projeto, denominado “Way-to-Go”, o diferencial do robô. O mecanismo é ativado nas encruzilhadas sinalizadas com bloco verde, as quais indicam tendência de curva.

5. MATERIAIS E MÉTODOS O robô de que se trata este trabalho consta de dois motores,

duas rodas comuns e uma roda de menor diâmetro (diferencial), um controlador digital, arquitetura linear em peças plásticas, um sensor ultrassônico e dois sensores de luz simples (Figuras 1 e 5). Os testes foram realizados em uma competição interna com outras equipes de integrantes da mesma instituição, e com projetos similares. Também foram feitos testes isolados em pista de madeira avulsa, somente com linhas retas e curvas. Ambos os testes seguiram os padrões da Olimpíada Brasileira de Robótica 2016. Além do uso das peças do robô (Tabela 1), nos testes, também foram usadas fitas de material isolante nas cores verde e preta, ambas as cores com 20 mm de largura. Foram feitos 4 testes de 2 horas cada na pista avulsa, totalizando 8 horas de testes. Para cada bateria de testes, as avaliações foram efetuadas igualmente em situações somente com o seguidor proporcional e em situações com o Way-to-Go implementado. O percurso consistia de 5 retas (Figura 6), 5 curvas (Figuras 2 e 3), sendo 3 acentuadas (Figuras 3 e 6), e 3 interrupções de linha, gap (Figura 7). O robô foi posto mais de 10 vezes em cada teste para repetir as mesmas curvas, a fim de se testar diferentes entradas e posições dos sensores em cada curva. A eficiência do Way-to-Go foi colocada à prova nesses testes e obtiveram-se resultados relevantes.

Figura 5 – Ênfase na estrutura das rodas

Nome Dimensão (mm)

Controlador Digital NXT 111 x 72 x 48

Motor 1 105 x 40 x 45

Motor 2 105 x 40 x 45

Sensor de Luz 1 44 x 22 x 30

Sensor de Luz 2 44 x 22 x 30

Tabela 1 – Dimensões do robô

Figura 6 – Robô percorrendo linha reta

Figura 7 – Robô completando interrupção de linha (“gap”)

6. RESULTADOS E DISCUSSÃO Os resultados foram favoráveis à implementação do

mecanismo Way-to-Go no robô desenvolvido. Em comparação direta com os resultados obtidos somente com um seguidor de linha baseado em erros proporcionais, o Way-to-Go obteve 30% mais eficiência no pior caso e eficácia média geral de 91,6%, contra 82% do seguidor sozinho. Nos testes, o mesmo tempo dedicado ao Way-to-Go foi dedicado ao seguidor de linha simples, ou seja, 4 horas para cada um deles, garantindo maior segurança na aferição de dados comparados precisos (Tabela 2).

7. CONCLUSÕES Com este projeto, percebe-se a importância do aprendizado

de robótica no ambiente educacional, a fim de desenvolver nos alunos sensos especiais de percepção apurada, linguagem técnica e lógica sistematizada [Vallim et al. 2009]. Outro ponto importante é quanto à utilização vantajosa de metodologias empíricas para o aperfeiçoamento e desenvolvimento de técnicas novas para a Robótica, baseadas em necessidades reais observadas durante percursos concretos. A exemplo pode-se citar o Way-to-Go, que surgiu dessa metodologia e alcançou resultados abrangentes. Contudo, não é recomendável iniciar a construção de um robô sem o planejamento teórico prévio, uma

Mostra Nacional de Robótica (MNR)

vez que sua estrutura pode ficar enfraquecida, principalmente por causa da massa considerável da unidade de controle digital (“brick”). Além disso, dá-se por conclusão final a recomendação do mecanismo Way-to-Go em robôs de pequeno porte semelhantes ao idealizado aqui. Isso porque o rendimento final com tal sistema foi superior ao de um seguidor de erros proporcional, proveniente do PID (Proporcional-Integral-Derivativo) sozinho. Esse aumento foi de praticamente 10 pontos percentuais, o que representa significativa chance de obter uma boa colocação na Olimpíada Brasileira de Robótica.

Nome do Teste Aproveitamento

do Seguidor Proporcional

Aproveitamento do Mecanismo

Way-to-Go

Linhas retas 100% 100%

Passagem de GAP 100% 98%

Curvas suaves 100% 100%

Curvas de 90°/acentuadas isoladas

60% 80%

Curvas de 90°/acentuadas sequenciais

50% 80%

Tabela 2 – Exposição dos casos de teste

Desde o início do projeto, o objetivo principal tem sido o aperfeiçoamento de conhecimentos ligados à robótica, busca-se desenvolver um robô vitorioso em futuras competições. Para isso, vários desafios foram enfrentados e a busca por eles deve ser cada vez mais constante. No topo das prioridades da equipe está o aprimoramento do robô. Ainda existem várias dificuldades que devem ser sanadas para o êxito final. Todas elas estão relacionadas tanto à programação, quanto à mecânica do robô.

A programação perfeita de um robô é algo difícil de ser realizado. Vários métodos foram desenvolvidos, em especial o Way-to-Go, que desempenham bem suas funções quando trabalham individualmente. Porém existe a necessidade de se desempenhar todas as funções em um mesmo programa, a fim de que o robô consiga lidar com várias situações distintas de percurso e obstáculos. A partir daí é que começam as dificuldades. Um exemplo seria o desempenho do seguidor de linha proporcional após a junção com o Way-to-Go. Ambos se tornam prejudicados em relação ao aproveitamento individual. Já no tocante à mecânica do robô, os problemas também são muitos. O principal deles seria o de encontrar uma forma de capturar a vítima na fase de resgate da competição. Existem

limitações quanto ao número de sensores e motores que o robô pode utilizar e, por isso, a posição e a forma de uma garra capaz de fazer esse resgate é algo difícil de ser idealizado. Todos os problemas citados, tanto acerca da programação quanto sobre a mecânica vão ser trabalhados até a data da competição da OBR 2016. Portanto, o principal objetivo do grupo no momento é aperfeiçoar o robô. Há de se continuar reunindo até a competição, coletando ideias e aplicando-as até que todos os problemas estejam sanados.

AGRADECIMENTOS Os autores agradecem ao CNPq (Processo 466522/2014-2) pelo apoio.

REFERÊNCIAS BIBLIOGRÁFICAS

Pio, J. L., Castro, T., e Castro, A. (2006). A robótica móvel como instrumento de apoio a aprendizagem de computação. XVII Simpósio Brasileiro de Informática na Educação.

Vallim, M. B. R., Herden, A., Gallo, R., Cardoso, L. R., & Bitencourt, L. C. (2009). Incentivando carreiras na área tecnológica através da robótica educacional. In CONGRESSO BRASILEIRO DE ENSINO DE ENGENHARIA (Vol. 37, pp. 1-10).

Instruments, N. (2011). Explicando a Teoria PID. National

Instruments. Disponível em: <http://www.ni.com/white-paper/3782/pt/> Acesso em: 19 Jun. 2016.

BRITO, Robison C.; MADALOSSO, Emanoeli; GUIBES,

Geovane AO (2006). Seguidor de linha para LEGO® Mindstorms utilizando controle PID. Anais do Computer on the Beach, p. 310-319.

TORRENS, MARIA GABRIELA. ROBOTOY:

FERRAMENTA PARA USO DE ROBÓTICA NO ENSINO DE PROGRAMAÇÃO PARA CRIANÇAS.

OBR (2016). Regras das Provas Práticas Regionais em 2016.

Disponível em: <http://www.obr.org.br/wp-content/uploads/2016/05/Regras_pratica_regionais_v1_3_2016.pdf> Acesso em: 19 Jun. 2016