Construção de Robô Móvel Autônomo com Plataforma Lego ...

63

Transcript of Construção de Robô Móvel Autônomo com Plataforma Lego ...

Page 1: Construção de Robô Móvel Autônomo com Plataforma Lego ...

MINISTÉRIO DA DEFESA

EXÉRCITO BRASILEIRO

DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA

IME - INSTITUTO MILITAR DE ENGENHARIA

CURSO DE GRADUAÇÃO DE ENGENHARIA DE COMPUTAÇÃO

OSCAR MARTINS WANDERLEY FILHO

RENATO DIAS COSTA

WILLIAN ATSUKI KANASHIRO

CONSTRUÇÃO DE ROBÔ MÓVEL AUTÔNOMO COM PLATAFORMA

LEGO MINDSTORMS

Rio de Janeiro

2015

Page 2: Construção de Robô Móvel Autônomo com Plataforma Lego ...

INSTITUTO MILITAR DE ENGENHARIA

OSCAR MARTINS WANDERLEY FILHO

RENATO DIAS COSTA

WILLIAN ATSUKI KANASHIRO

CONSTRUÇÃO DE ROBÔ MÓVEL AUTÔNOMO COMPLATAFORMA LEGO MINDSTORMS

Projeto de Fim de Curso apresentado ao Curso de Gradu-

ação de Engenharia de Computação do Instituto Militar de

Engenharia como requisito parcial para obtenção de gradu-

ando.

Orientador: Paulo Fernando Ferreira Rosa - Professor As-

sociado

Rio de Janeiro

2015

Page 3: Construção de Robô Móvel Autônomo com Plataforma Lego ...

INSTITUTO MILITAR DE ENGENHARIA

Praça General Tibúrcio, 80 - Praia Vermelha

Rio de Janeiro-RJ CEP 22290-270

Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-

lo em base de dados, armazenar em computador, micro�lmar ou adotar qualquer forma

de arquivamento.

É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas

deste trabalho, sem modi�cação de seu texto, em qualquer meio que esteja ou venha a

ser �xado, para pesquisa acadêmica, comentários e citações, desde que sem �nalidade

comercial e que seja feita a referência bibliográ�ca completa.

Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s)

orientador(es).

Martins, Oscar W. F., Costa, Renato D. , Kanashiro, Willian A.

Construção de robô móvel autônomo com plataforma Lego Mindstorms/

Renato Dias Costa, Oscar Martins Wanderley Filho, Willian Atsuki Kanashiro:

orientados por Paulo Fernando Ferreira Rosa. - Rio de Janeiro : Instituto

Militar de Engenharia, 2015.

xp. : il.

Monogra�as(Projeto de Fim de Curso). - Instituto Militar de Engenharia:

Rio de Janeiro, 2015.

1.Curso de Engenharia de Computação - monogra�as 2.Robótica 3.Sistemas

autônomos 4.Plataforma Lego I. Rosa, Paulo Fernando Ferreira II. Construção

de robô móvel autônomo com plataforma Lego Mindstorms III. Instituto Mi-

litar de Engenharia.

2

Page 4: Construção de Robô Móvel Autônomo com Plataforma Lego ...

INSTITUTO MILITAR DE ENGENHARIA

OSCAR MARTINS WANDERLEY FILHO

RENATO DIAS COSTA

WILLIAN ATSUKI KANASHIRO

CONSTRUÇÃO DE ROBÔ MÓVEL AUTÔNOMO COM PLATAFORMA

LEGO MINDSTORMS

Projeto de Fim de Curso apresentado ao Curso de Graduação de Engenharia de Com-

putação do Instituto Militar de Engenharia como requisito parcial para obtenção de gra-

duando.

Orientador: Paulo Fernando Ferreira Rosa - Professor Associado

Aprovada em 26 de Maio de 2015 pela seguinte Banca Examinadora:

Paulo Fernando Ferreira Rosa - Professor Associado, do IME

Sandro Santos de Lima - Ms.C., do IME

Julio Cesar Duarte - D.C., do IME

Rio de Janeiro

2015

3

Page 5: Construção de Robô Móvel Autônomo com Plataforma Lego ...

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3 Justi�cativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.5 Estrutura da Monogra�a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 LEGO MINDSTORMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.1 Controlador Lego e Interface de Programação . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2 Sensores e Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 LARC - SEK 2014 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2 Regras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.2.1 Con�guração Inicial da Arena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.3 Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3.1 Restrições dos Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.4 Partida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.4.1 Sistema de Pontuação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.4.2 Penalizações por Cartão Vermelho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4.3 Classi�cação das Equipes em Grupos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.5 Requisitos para Participar da Competição . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.6 O Júri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.7 Situações Extraordinárias Durante a Competição . . . . . . . . . . . . . . . . . . . . . . 25

4 PROVA DE CONCEITO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.1 Objetivo da Prova de Conceito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.2 Materiais Utilizados e Construção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.3 Resultados Esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 COMPETIÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1 Estratégia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4

Page 6: Construção de Robô Móvel Autônomo com Plataforma Lego ...

5.2 Montagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.3 Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

5.3.1 Robô Arremessador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.3.2 Robô Coletor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

5.4 Partidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6 MELHORIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.1 LeJOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.1.1 Instalação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

6.1.2 Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.1.3 Prós e Contras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.1.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.2 Protótipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.2.1 Sistema de Captura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.2.2 Sistema de Seleção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.2.3 Sistema de Lançamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

6.2.4 Rotina e Fluxograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

6.2.5 Comparação Entre os Robôs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

7 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.1 Resultado da Prova de Conceito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.2 Resultado da Competição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

7.3 Resultado da Melhoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

9 REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . 59

5

Page 7: Construção de Robô Móvel Autônomo com Plataforma Lego ...

RESUMO

A idéia de se construir robôs começou a tomar força no início do século XX,

com a necessidade de aumentar a produtividade industrial e melhorar a qualidade dos

produtos. A robótica atravessa uma época de contínuo crescimento que permitirá, em um

curto espaço de tempo, o desenvolvimento de robôs inteligentes, fazendo assim a �cção

do homem antigo se tornar a realidade do homem atual. Nesse contexto, o MIT (Mas-

sachuchetss Institute of Technology), em parceria com o LEGO Group, criou o produto

LEGO Mindstorms. O conjunto permite criar robôs simples, passíveis de executar funções

básicas pré-programadas, com o objetivo de estimular o desenvolvimento intelectual de

crianças e jovens de modo cativante.

Este trabalho foi idealizado almejando a obtenção de maiores conhecimentos no

ramo da robótica e de sistemas autônomos, assim como a participação em competições

acadêmicas de caracter educacional. Para este �m, foram idealizadas três etapas, nas

quais este foi dividido, a saber: (a) Prova de Conceito, (b) Construção do robô para a

competição e (c) Melhorias do robô após a competição. Na primeira etapa, cumpriu-se o

objetivo proposto de testar a viabilidade de utilização dos componentes para a constru-

ção de um robô autônomo móvel que pudesse participar da competição LARC 2014. Na

segunda etapa, foi conluído o objetivo de construir os robôs para participar da competição,

adquirir conhecimento e experiência por meio da participação e, por �m, propor melhorias

para o modelo. Na terceira e última etapa, foram estudadas, implementadas e analisadas

as melhorias propostas, em novos sistemas de lançamento, coleta e seleção, ao �m da

etapa anterior, com o objetivo de otimizar a funcionalidade do robô.

Dessa forma, adquiriu-se conhecimento na área de robótica por meio de estudos

e da interação com as outras equipes que participaram da competição; assim como ex-

periência na participação em competições. A linguagem Java foi estudada para utilização

na programação da rotina dos robôs, entretanto após a prova de conceito foi mantida

a linguagem em blocos devido aos contras encontrados no uso do Java. Somado a isso,

foi elaborado um protótipo que otimiza as tarefas a serem executadas na competição.

Dessa forma, o objetivo proposto para o projeto foi atingido. E como propostas futuras

sugere-se o estudo aprofundado da linguagem Java para Lego, devido ao seu potencial e

possibilidades.

6

Page 8: Construção de Robô Móvel Autônomo com Plataforma Lego ...

ABSTRACT

The idea of building robots began to take force in the early twentieth century,

with the need to increase productivity and improve product quality. The robotics is going

through a time of continued growth which will, in a short time, allow the development of

intelligent robots, thus making the �ction of ancient man become the reality of today's

man. In this context, MIT (Massachuchetss Institute of Technology), in partnership with

the LEGO Group, created the product LEGO Mindstorms . The set allows you to create

simple robots, capable of executing pre-programmed basic functions, in order to stimulate

the intellectual development of children and youth, in a captivating way.

This study was designed aiming at obtaining more knowledge in robotics branch

and autonomous systems, as well as participation in academic competitions of educational

character. To this end, three stages were designed in which this project is divided, namely:

(a) Proof of Concept, (b) Construction of the robot for competition and (c) Improvements

of the robot after the competition. In the �rst stage, we ful�lled our objective to test the

feasibility of using the components for the construction of a mobile autonomous robot

that could participate in the competition LARC 2014. In the second stage, the goal of

building robots to participate in the competition was concluded, knowledge and experience

through participation was gained and, �nally, improvements to the model were proposed.

In the third and last step, the proposed improvements at the end of the previous step on

the launch, collection and selection systems, were studied, analyzed and implemented, in

order to optimize the functionality of the robot.

Thus, it was acquired knowledge in robotics through studies and interaction with

the other teams that participated in the competition; as well as experience in participating

in competitions. The Java language was studied for use in programming routine of robots,

however, after the proof of concept, it was kept the language in blocks due to the cons

found in the use of Java. Added to this, a prototype that optimized the tasks to be

performed in the competition was drafted. Therefore, the objective proposed for the

project has been reached. For future proposals, it is suggested the in-depth study of the

Java language for Lego, because of its potential and possibilities.

7

Page 9: Construção de Robô Móvel Autônomo com Plataforma Lego ...

1 INTRODUÇÃO

O conceito de máquinas capazes de realizar tarefas sem condução mecânica de

um ser humano tem registros desde a antiguidade clássica. Porém, apenas ao longo do

século XX, em particular em sua segunda metade, foram descobertos e desenvolvidos os

componentes eletro-eletrônicos e os dispositivos computacionais necessários para a imple-

mentação funcional de tais máquinas (robôs) dando origem à sub-área ainda recente da

engenharia, a robótica.

Desde a década de 1960 até os dias atuais, a robótica tem se desenvolvido con-

cretamente de maneira cada vez mais acelerada, tornando-se cada vez mais presente no

cotidiano, servindo a propósitos cada vez mais diversos, sejam domésticos, industriais

ou militares. Entre aplicações futuras na área há, por exemplo, a implementação de

robôs cada vez mais especializados na medicina, permitindo a realização de cirurgias

remotamente ou possibilitando o uso de peças protéticas sensíveis e funcionais.

O impacto da robótica na sociedade atual, assim como as previsões de seus

impactos futuros, desperta o interesse de acadêmicos para o aprofundamento dos conheci-

mentos teóricos e práticos da área. Discussões sobre robótica na academia têm se tornado

cada vez mais frequentes, não apenas em cursos de engenharia, mas também de medicina,

�loso�a e direito, de modo que a relevância do tema já é amplamente reconhecida.

Dentre as formas de demonstração deste interesse acadêmico, existem desa�os

competitivos, estes nas mais diversas categorias e com os mais variados temas, mas todos

com o objetivo comum de desa�ar o competidor. São propostas tarefas, na qual o aluno

poderá ter um contato mais próximo da robótica e utilizar de sua criatividade e conheci-

mento para produzir robôs capazes não só de vencer, mas também de convencer de que a

robótica é um novo ramo a ser explorado pela sociedade.

Neste mundo de competições e desa�os, a LARC (Latin America Robotics Compe-

tition) detém uma categoria especial para kits robóticos padronizados, chamado de SEK

(Standard Educational Kit), onde pode-se utilizar de plataformas como o Lego Mind-

storms EV3, NXT 2.0 ou NXT 1.0.

Nesse contexto, o presente trabalho visa a obtenção de conhecimentos nessa

área, com foco em experiências práticas, de modo a compreender princípios fundamentais

8

Page 10: Construção de Robô Móvel Autônomo com Plataforma Lego ...

e conhecer algumas das ferramentas disponíveis atualmente para o desenvolvimento de

robôs autônomos.

1.1 OBJETIVO

O objetivo da pesquisa é construir um robô móvel autônomo capaz de identi�car

bolas de uma determinada cor (dentre duas opções possíveis: laranja e azul), con�nadas

em uma arena, colhê-las e arremessá-las por sobre uma barreira para uma arena adja-

cente, em um tempo mínimo. Esta é a habilidade básica de um robô para participar de

competições de caráter educacional.[1].

1.2 MOTIVAÇÃO

O trabalho a seguir foi feito visando sempre a melhoria da robótica e a criação de

robôs capazes de auxiliar os seres humanos em cada vez mais tarefas. Apesar do problema

que será estudado não apresentar por si só uma aplicação prática no cotidiano, pretende-

se que os conceitos utilizados para resolvê-lo gerem resultados su�cientemente genéricos

de modo que sejam facilmente adaptados a outras tarefas, podendo assim ser aplicado em

situações mais reais.

1.3 JUSTIFICATIVA

O desenvolvimento deste trabalho possibilita não apenas a obtenção de conheci-

mentos práticos na área de robótica, como também uma maior visibilidade do Instituto

Militar de Engenharia em competições acadêmicas dentro e fora do país.

Através dos processos de planejamento, construção, programação e teste do robô

móvel autônomo, serão melhor compreendidos os desa�os práticos associados à imple-

mentação de projetos em robótica, comumente encontrados tanto na indústria quanto na

academia.

Além disso, a participação na Competição Brasileira de Robótica (CBR) 2014

e na Latin America Robotics Competition (LARC) permitirá aos membros do trabalho

um contato direto com equipes de estudantes brasileiros e extrangeiros, o que cria a

oportunidade para intercâmbio de conhecimentos e para a divulgação do Instituto Militar

de Engenharia no Brasil e na América Latina.

9

Page 11: Construção de Robô Móvel Autônomo com Plataforma Lego ...

1.4 METODOLOGIA

O trabalho será feito em três etapas: (a) Prova de conceito, (b) construção do

robô para a competição e (c) melhorias do robô após a competição.

A prova de conceito tem como objetivo testar e avaliar o funcionamento de

diversos motores e sensores, de forma que sejam veri�cadas as di�culdades, características

e forma de manipulação de cada componente, facilitando as etapas seguintes.

Na segunda etapa foi construído um robô para participar da Latin America

Robotics Competition (LARC), a qual foi realizada no período entre 19 e 22 de outubro

de 2014.

Na terceira e última etapa, de acordo com o desempenho e atuação do robô

construído na etapa dois, serão estudadas e implementadas medidas para otimização e

correção de eventuais erros.

1.5 ESTRUTURA DA MONOGRAFIA

Esta monogra�a é composta por nove capítulos onde, inicialmente, no capítulo

um, é realizada uma introdução. Já no capítulo dois, há uma explicação sobre o kit Lego

Mindstorms utilizado.

No capítulo três será descrito a competição da LARC na categoria SEK, com

regras, arenas e objetivos.

Em seguida, no capítulo quatro, é feita uma explicação sobre o que é uma prova

de conceito, sua utilização e a implementação realizada na parte prática do trabalho. Essa

seção é composta de construção, materiais utilizados e resultados esperados.

A preparação, estratégia adotada, montagem e as partidas da competição serão

mostrados no capítulo cinco.

No sexto capítulo, é descrita a nova prova de conceito, para utilização da lin-

guagem Java na programação da rotina dos robôs, assim como a implementação das

melhorias propostas ao �m da segunda etapa.

No capítulo sete, são apresentados os resultados das três etapas; da primeira prova

de conceito, da competição e, �nalmente, da implementação das melhorias propostas.

No oitavo capítulo situa-se a conclusão de todos os resultados obtidos durante

a execução do projeto, assim como sugestões para pesquisas futuras e possíveis aprofun-

damentos desse projeto. No último capítulo, são fornecidas as referências bibliográ�cas

10

Page 12: Construção de Robô Móvel Autônomo com Plataforma Lego ...

utilizadas na pesquisa.

Após as referências bibliográ�cas encontram-se os anexos a �m de auxiliar partes

da monogra�a.

11

Page 13: Construção de Robô Móvel Autônomo com Plataforma Lego ...

2 LEGO MINDSTORMS

A plataforma de desenvolvimento de robôs Lego Mindstorms foi criação de uma

parceria entre a marca Lego e o MIT(Massaschusetts Institute of Technology) lançada

no ano de 1998. O objetivo dessa linha da Lego é possibilitar de maneira fácil, acessível

e intuitiva atividades na área de robótica para o público, mantendo uma interface de

programação amigável, por meio de uma linguagem própria para este robô, fazendo com

que mesmo leigos em programação possam usufruir de suas funcionalidades[2].

O conjunto Lego Mindstorms conta com diversos sensores, motores e peças dos

conjuntos Lego Technics, além de um microcontrolador central para manipular, adminis-

trar e controlar os demais componentes do robô[3].

2.1 CONTROLADOR LEGO E INTERFACE DE PROGRAMAÇÃO

Para a utilização dos sensores e motores, um microcontrolador central é

necessário. O Lego Mindstorms contém um microcontrolador próprio que reconhece os

motores e sensores disponíveis em seu conjunto, de forma que a programação deste com-

ponente pode ser feita utilizando-se uma linguagem própria desenvolvida pela Lego ou

por APIs em linguagem Java ou C++.

A linguagem própria deste componente conta com uma programação através

de blocos com funcionalidades especí�cas, cuja interface grá�ca está exempli�cada na

Figura 2.1. Laços de repetição, condicionais e cálculos numéricos também podem ser

feitos utilizando estes blocos, entretanto, a quantidade de operações possíveis é limitada.

Dessa forma, é incentivada a utilização de outros tipos de programação, visando elaborar

rotinas mais complexas[4].

12

Page 14: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 2.1: Interface de Programação Lego - (1) Play(Início do Programa) (2) Controle doServoMotor Grande (3) Loop (4) Operador Lógico (5) Sensor de Distância

FIG. 2.2: Estrutura de Repetição - While

13

Page 15: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 2.3: Estrutura de Repetição - For

FIG. 2.4: Estrutura de Seleção - If Else

14

Page 16: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Para a criação de uma rotina, colocam-se os blocos em ordem de execução, de

acordo com a ação desejada. Cada bloco apresenta diversas con�gurações, as quais resul-

tam em diferentes respostas do sistema. Por exemplo: Um motor pode ser con�gurado

pra rotacionar duas voltas ou em número de graus, com força total ou 10 % da capacidade,

no sentido horário ou anti-horário.

2.2 SENSORES E MOTORES

O conjunto apresenta diversos tipos de sensores e motores sendo os mais usados

e comuns descritos a seguir:

1. Servomotor grande: Este motor contém um detector de posição que permite que o

sistema saiba exatamente em que angulação se encontra, possibilitando controlar a

movimentação em quantidade de voltas ou em número de graus.

2. Sensor RGB (detector de cor): através de um feixe de luz infravermelho e sua

posterior re�exão nos objetos próximos, este sensor capta a frequência detectada, a

compara com o banco de dados existente e determina qual a cor analisada. Pode-se,

ao invés de utilizar as cores existentes no banco de dados, escolher, numa escala de

0 a 100, o valor ou intervalo desejado.

3. Sensor de toque: Através de um botão, localizado na sua extremidade, ele detecta

contato com objetos, podendo inclusive analisar a força com que este contato é

realizado.

4. Sensor de proximidade com ultrassom: Através de um sistema utilizando ultrassom,

este sensor determina a distância até um objeto próximo por meio do cálculo do

tempo necessário para um pulso ultrassônico emitido retornar, sendo mais preciso

que o sensor de infravermelho.

5. Sensor de proximidade com infravermelho: Através de um sistema utilizando luz

infravermelha, este sensor determina a distância até um objeto próximo por meio

do cálculo de tempo necessário para um pulso eletromagnético (luz infravermelha)

emitido retornar.

6. Giroscópio: Guarda a direção de giro em relação a um estado inicial.

15

Page 17: Construção de Robô Móvel Autônomo com Plataforma Lego ...

7. Servomotor pequeno: Semelhante ao servo motor grande, entretanto consegue

fornecer maior velocidade, porém com menor força[5].

FIG. 2.5: Sensores e Motores - (1) Servomotor Grande (2) Sensor RGB (3) Sensor deToque (4) Sensor Ultrassônico (5) Sensor Infravermelho (6) Giroscópio (7) Servomotor

Pequeno

16

Page 18: Construção de Robô Móvel Autônomo com Plataforma Lego ...

3 LARC - SEK 2014

3.1 OBJETIVO

Cada equipe deve maximizar o número de pontos ao �nal de 5 minutos, onde

bolas azuis no próprio campo valem +100 pontos e bolas laranjas valem -100 pontos.

3.2 REGRAS

O campo consiste de uma arena, de 2m x 2m, de madeira MDF com espessura

de 15 mm, na cor branca, dividida em duas áreas, conforme Figura 3.1. Cada uma

dessas áreas comporta uma equipe de 2 robôs titulares. As dimensões da arena estão

apresentadas na Figura 3.2.

As paredes laterais são formadas por placas de MDF de 15mm de espessura, na

cor branca, com altura de 400mm e �xas sobre a arena. As placas que formam a zona

morta são formadas por placas de MDF de 15mm de espessura, na cor branca, com altura

de 100mm e �xas sobre a arena, Figura 3.3.

No campo, são distribuídas bolinhas de ping-pong (table-tennis) nas cores laranja

e azul. A região denominada como zona morta divide a arena em duas regiões denomi-

nadas áreas. Esta região existe para evitar a colisão entre os robôs adversários. Esta não

poderá ser invadida em hipótese alguma. A sua invasão implica na colocação do robô nas

�áreas de partida� (zonas amarelas). A equipe infratora poderá escolher a zona amarela

para a recolocação do robô e seu reinicio. A arena possui �ta isolante preta de largura

19mm, colada no entorno de todas as paredes e nas �áreas de partida�, conforme Figura

3.1. Estas �tas não estão representadas na Figura 3.2, somente as �áreas de partida� estão

representadas. Existe também, em cada lado da parede da zona morta, uma �ta auxiliar

isolante preta de largura 19mm, distanciada de 50mm da borda da �ta da parede, Figura

3.3(c). As cotas das Figuras estão em mm. A equipe que arremessar bolas na zona morta

e estas permanecerem no local será penalizada em 50 pontos.

17

Page 19: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 3.1: Esquema das Arenas (a) Vista superior; (b) Vista Tridimensional

FIG. 3.2: Dimensões da Arena

18

Page 20: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 3.3: (a) Dimensões da Zona Morta; (b) Dimensões da Zona Morta; (c) Fitaauxiliar.

3.2.1 CONFIGURAÇÃO INICIAL DA ARENA

Cada área da arena inicialmente contém 12 bolas sendo 6 (seis) azuis e as demais

laranjas. A posição de cada bola será de�nida por sorteio a cada partida a ser realizada.

As con�gurações de inicio serão iguais e simétricas para cada área de cada equipe. São

19 posições possíveis (exceto os pontos dentro as áreas amarelas), conforme Figura 3.4.

Para o posicionamento inicial das bolas na arena será marcado o centro de cada

quadrado virtual, representados na Figura 3.4. como os cruzamentos das linhas ponti-

lhadas. Para representar o centro do quadrado serão utilizados adesivos no formato de

círculos brancos com diâmetro de 13mm. Estas marcas estarão presentes no cenário e não

poderão ser removidas.

19

Page 21: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 3.4: Posicionamento inicial das bolas

3.3 ROBÔS

Qualquer robô deve ser um dispositivo móvel autônomo e ser capaz de deslocar-se

através da arena e cumprir os objetivos sem intervenção humana. Só pode ser construído

com kits educacionais do tipo LEGO R© (NXT ou RCX ou EV3), PNCA R©, MECCANO c©ou VEX Robotics R©.

Os elementos do kit educacional não podem ser modi�cados. O não cumprimento

desta cláusula será motivo de desclassi�cação.

Os robôs devem possuir rigidez su�ciente para suportar impactos oriundos dos

lançamentos das bolas do adversário, sem desprendimento de peças. Caso isto ocorra a

equipe poderá reparar o robô, fora da arena, substituindo-o por um robô reserva. Entre-

tanto, o tempo da partida não para.

As equipes não podem propositadamente projetar os robôs para dani�car o robô

adversário.

3.3.1 RESTRIÇÕES DOS ROBÔS

As restrições para os robôs são as seguintes:

20

Page 22: Construção de Robô Móvel Autônomo com Plataforma Lego ...

• As dimensões de cada robô, antes de iniciar cada participação, não deve ultrapassar

o tamanho de um cubo com aresta de 250mm. Uma vez iniciada a partida, após o

acionamento do cronômetro, esta restrição deixa de valer.

• Cada robô pode ter a quantidade máxima de 6 sensores e de 6 atuadores.

• Não deve haver qualquer tipo de comunicação com dispositivos exteriores. O des-

respeito desta condição é motivo de desclassi�cação. A única forma de comunicação

autorizada é entre os robôs na arena.

• O robôs não devem destruir o cenário. O desrespeito desta condição é motivo de

desclassi�cação.

3.4 PARTIDA

Uma partida, segundo as regras, ocorre com duas equipes, uma em cada área da

arena. Cada equipe deve competir com até 2 robôs cooperativos e autônomos dentro da

arena e possuir quantos robôs reservas quiser. Os robôs não precisam, necessariamente,

ser iguais.

Para inicio de cada partida, haverá em cada área 12 bolinhas, sendo 6 delas azuis

e as demais laranjas. Cada robô deverá sair das áreas denominadas �áreas de partida�,

representadas pelos quadrados amarelos, Figura 3.1.

Cada partida ocorre em 5 minutos corridos. Cada equipe poderá realizar ape-

nas 2 (duas) substituições durante a partida entre os dois robôs titulares e os reservas.

As substituições podem ser feitas em qualquer momento e para qualquer modi�cação

no robô (peças, formato, programação, etc), desde que mantenha as restrições descritas

anteriormente.

Os robôs podem ser projetados para bloquear o ataque do adversário. Porém,

nenhum robô, nem mesmo o robô bloqueador, poderá �car deliberadamente �xo na mesma

posição. Caso isto ocorra, este robô será eliminado da partida pela aplicação de cartão

vermelho e não poderá mais ser usado como robô reserva, devendo ser retido pelo juiz.

O tempo não para, nem mesmo para substituições. O membro da equipe que

desejar substituição e/ou manutenção deve pedir autorização ao juiz e informar o jogador

que sai e o jogador que entra. O jogador sempre entra na partida em uma das �áreas de

partida� (zonas amarelas). A escolha é realizada pela equipe. Se na retirada ou inserção

21

Page 23: Construção de Robô Móvel Autônomo com Plataforma Lego ...

do jogador (robô) pelo membro da equipe, seja por substituição, penalidade ou mesmo

por invasão da zona morta, e tiver uma ou várias bolas adversárias colididas contra o

corpo do membro da equipe ou do robô, esta será mantida dentro do cenário do time que

estiver fazendo a substituição e pontuada normalmente. Caso esta caia na zona morta

ou fora da arena, esta será informada a equipe e guardada para ser pontuada no �nal da

partida.

Caso o robô, ao ser retirado da arena por penalidade ou substituição, contenha

bolas na sua estrutura estas serão retiradas do robô e guardadas para serem pontuadas

no �nal da partida se forem laranja. Se forem azuis estas não serão pontuadas. Estas

bolas não retornam para a arena.

A partida será �nalizada ao término de 5 minutos ou caso a equipe manifeste que

deseja encerrar sua participação na rodada, con�gurando-se uma desistência.

3.4.1 SISTEMA DE PONTUAÇÃO

A competição considera o sistema de pontuação e de parafusos. Durante uma

partida, cada equipe começa com 0 pontos. A bola pode alcançar a zona adversária de

qualquer maneira e estratégia desde que obedeça as regras deste regulamento.

Ao �nal dos 5 minutos, cada equipe receberá alterações na sua pontuação inicial

conforme a regra abaixo:

• cada bolinha azul na área da equipe: + 100 pontos

• bolinha laranja na área da equipe: - 100 pontos

A equipe pode ainda sofrer penalidades:

• Será considerado -50 pontos para cada bolinha laranja, ou azul, arremessada para

fora da arena que não tenha sido direcionada para a área adversária.

• Será considerado -50 pontos para cada bolinha que permanecer na zona morta após

o arremesso.

• Será considerado -100 pontos qualquer invasão visível da área de zona morta pelo

robô (garra, roda, parafuso, �o, etc). Ao ocorrer a invasão e a equipe receber a

penalidade, o robô deverá voltar para a área de partida (zona amarela). A escolha

da zona amarela �ca a critério da equipe.

22

Page 24: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Quem conseguir manter mais pontos ao �nal de 5 minutos é declarado vencedor.

Caso as duas equipes �quem com a mesma pontuação, é decretado empate.

Cada vitória atribui 3 parafusos para a equipe vencedora e 1 parafuso para

a equipe perdedora. Se houver empate, cada equipe recebe 2 parafusos. Caso haja

desistência de alguma equipe durante a partida, ou W.O., a equipe que não desistiu

receberá 3 parafusos. A equipe que desistiu recebe 0 (zero) parafusos

Considera-se desistência da partida quando um membro da equipe declara de-

sistência.

Considera-se W.O. quando a equipe não apresenta os robôs na arena para o início

da partida.

3.4.2 PENALIZAÇÕES POR CARTÃO VERMELHO

Para garantir um jogo dinâmico, penalidades podem ser dadas as equipes. Caso

algum robô �que deliberadamente, por interpretação do juiz, �xo em uma posição, seja

de bloqueio ou no meio da arena, o robô deverá receber CARTÂO VERMELHO. O robô

que recebe cartão vermelho deve deixar a partida, ser substituído por outro robô (caso

a equipe possua numero de substituições possíveis) e contará como 1 (uma) substituição

para a equipe. Este robô não poderá mais ser usado na partida, nem como robô reserva,

devendo ser retido pelo juiz até o �nal da partida.

3.4.3 CLASSIFICAÇÃO DAS EQUIPES EM GRUPOS

Para que as equipes possam ser classi�cadas em grupos, inicialmente ocorre a

pré-classi�catória. Cada equipe entra na arena, em apenas 1 das áreas, sem adversário,

e tem o tempo de 2 minutos para enviar o máximo de bolinhas laranjas possíveis para a

outra área da arena. Serão 19 bolinhas laranjas.

Conta-se a quantidade de bolinhas lançadas em 2 minutos para a outra área

ou marca-se o tempo que a equipe concluiu o lançamento das 19 bolinhas. Com isso, é

realizado um ranking das melhores equipes pela quantidade de bolinhas enviadas para o

outro lado da arena, tendo como critério de desempate o menor tempo de envio da 1a.

Bolinha (conta-se o tempo do inicio da partida até o momento da 1a. Bolinha laranja

bater no campo adversário).

Com este ranking, deve-se criar 4 grandes conjuntos, chamados de conjunto A

23

Page 25: Construção de Robô Móvel Autônomo com Plataforma Lego ...

(os 25% melhores equipes), conjunto B, conjunto C e conjunto D (os 25% piores equipes

do ranking). Com isso, cada equipe do conjunto A se torna cabeça de chave de um grupo.

E cada grupo terá 1 equipe de cada conjunto (B, C e D) sorteados.

Critério de desempate para as fases 1 e 2 seguintes

Em caso de empate, serão realizadas partidas extras entre as equipes. Se ocor-

rer empate na partida extra, as equipes realizarão o mesmo processo da etapa pré-

classi�catória, porém com tempo menor. Quem conseguir jogar mais bolinhas laranjas

para o campo adversário em 1 minuto será declarado o vencedor do desempate. Se o

empate ainda assim prevalecer, será realizado sorteio.

1. primeira fase da competição - disputa nos grupos

Com os grupos formados, cada equipe compete com todas as equipes dentro

do seu grupo. Classi�cam-se para as próximas fases apenas 2 equipes de cada grupo

que obtiverem o maior numero de parafusos na 1a Fase. A equipe melhor classi�cada

de cada grupo avança direto para a 3a fase. A segunda equipe disputa a repescagem.

Usa-se o critério de desempate caso haja equipes empatadas.

2. segunda fase da competição - Repescagem

As equipes que �caram em segundo lugar de cada grupo disputam a 2a Fase

da competição. Nesta fase as equipes se enfrentam em eliminatórias. Quem ganhar

permanece e avança para a 3a fase, quem perder estará eliminado da competição.

Usa-se o critério de desempate caso a partida termine empatada.

3. terceira fase da competição - eliminatórias

A terceira fase ocorre com a formação de equipes vindas da 1a. Fase e da 2a.

Fase. Estas equipes devem compor um sistema de eliminatórias de oitavas ou quartas

de �nal. Também por sorteio, equipes se enfrentam visando alcançar as semi�nais

e �nais do torneio. Nas fases eliminatórias, se ocorrer empate, será realizada uma

nova partida entre as equipes. Se ocorrer empate após esta partida extra, o vencedor

será o que obteve o maior número de vitórias na 1a fase. Mantendo-se o empate,

realiza-se o mesmo processo da etapa pré-classi�catória. Quem conseguir jogar mais

bolinhas laranja para o campo adversário em 1 minuto será declarado o vencedor.

Se o empate ainda assim prevalecer, será realizado sorteio.

24

Page 26: Construção de Robô Móvel Autônomo com Plataforma Lego ...

3.5 REQUISITOS PARA PARTICIPAR DA COMPETIÇÃO

Os interessados em participar da Competição Latino Americana de Robótica

LARC categoria IEEE SEK devem constituir equipes formadas por alunos de gradua-

ção de qualquer instituição educativa de qualquer país. Estudantes de Ensino Médio

também podem participar. Para se inscrever, os times deverão submeter um documento

descrevendo o desenvolvimento e o funcionamento do robô (TDP). Este TDP será utilizado

para que os ganhadores dos primeiros lugares façam um breve relato para os demais

competidores. Veri�car as datas de envio no site do evento.

O TDP da nossa equipe encontra-se no anexo.

3.6 O JÚRI

Este será composto por um membro da equipe organizadora da competição co-

nhecedor das regras, por dois auxiliares da organização e por dois membros das equipes

que não estejam competindo naquela partida, escolhidos antes do inicio da mesma.

3.7 SITUAÇÕES EXTRAORDINÁRIAS DURANTE A COMPETIÇÃO

Caso ocorra alguma situação não prevista nas regras ou na pontuação, caberá aos

juízes e aos organizadores da competição analisarem o caso e decidirem dentro da maior

imparcialidade possível.

25

Page 27: Construção de Robô Móvel Autônomo com Plataforma Lego ...

4 PROVA DE CONCEITO

4.1 OBJETIVO DA PROVA DE CONCEITO

O objetivo desta prova de conceito é veri�car o funcionamento e viabilidade do

uso dos sensores e motores do conjunto Lego Mindstorms EV3 os quais julga-se necessários

para a construção do robô visando a competição da LARC. Os sensores e motores testados

são: Sensor RGB, sensor de toque, sensor de proximidade com infravermelho, sensor de

proximidade ultrassônico, servomotores grandes e servo motor pequeno[7].

4.2 MATERIAIS UTILIZADOS E CONSTRUÇÃO

Para a prova de conceito, foi construído um robô utilizando o microcontrolador

como base central, uma disposição de rodas em forma de triciclo, com as duas rodas

traseiras conectadas aos servomotores grandes e uma roda omnidirecional na frente. Acima

da roda omnidirecional, foram colocados os dois sensores de distância, o ultrassônico

voltado para a frente e o infravermelho voltado para baixo. Sobre o microcontrolador foi

colocado o sensor RGB e em sua lateral o servomotor pequeno, voltado para cima.

As visões lateral e frontal do robô construído na PoC podem ser vistas nas Figura

4.1 e Figura 4.2.

FIG. 4.1: Robô para a prova de conceito - visão lateral

26

Page 28: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 4.2: Robô para a prova de conceito - visão frontal

A rotina do robô foi concebida de tal forma que existisse um loop inicial com

dois switches encadeados, um onde o detector veri�casse qual a distância do objeto mais

próximo a frente e, caso fosse menor que seis centímetros, o robô voltaria meia volta

dos motores e em seguida viraria para a direita, caso contrário, andaria para frente meia

volta. O segundo switch veri�cava se a distância até o ponto mais próximo do sensor

de infravermelho era menor que vinte, numa escala de 0 a 100, e, em caso positivo, não

executaria nada. Já em caso negativo, daria meia volta para traz e viraria para a direita.

Em seguida, o robô pararia após um tempo de trinta segundos, entrando num

loop de espera o qual seria terminado com um estímulo do sensor de toque. Após a

ativação desse, o sensor RBG ligaria e determinaria a cor do objeto a sua frente, entrando

num switch onde, de acordo com a cor, o sistema emitiria um som informando o resultado

e imprimiria no visor o nome da cor.

Finalmente, após cinco execuções do sensor de RGB, o sistema entraria numa

espera de 1 segundo e giraria uma bandeira, através da ativação do servomotor pequeno,

com três voltas.

A rotina utilizada para o robô na PoC está no �uxograma da Figura 4.3.

27

Page 29: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 4.3: Fluxograma da Prova de Conceito

4.3 RESULTADOS ESPERADOS

Com esta estrutura, esperava-se que o robô se movesse durante um período de

trinta segundos de forma a não chocar-se contra a parede, testando a funcionalidade

do sensor de proximidade ultrassônico; que não caísse da mesa, testando o sensor de

proximidade infravermelho; e que, após os trinta segundos, o robô parasse e ativasse um

loop de espera, o qual seria interrompido através da ativação do sensor de toque. Logo

após, o sensor RGB seria ativado, detectando a cor de um objeto colocado a sua frente

e fornecendo o sinal para o robô emitir o som da cor detectada e escrever o seu nome no

seu visor. Esse loop de espera e detecção de cor seria repetido cinco vezes e �nalmente,

após aguardar um tempo de dois segundos, giraria uma bandeira colocada no servomotor

pequeno e a rotina seria encerrada.

28

Page 30: Construção de Robô Móvel Autônomo com Plataforma Lego ...

5 COMPETIÇÃO

Nesta etapa, foi construído um robô visando a competição da LARC-SEK 2014,

de forma que a estratégia, montagem, estrutura e lógica computacional foram baseados

nos conhecimentos da equipe, na quantidade de materiais disponíveis e no tempo até o

início da competição.

Inicialmente, apenas 2 kits do Lego MindStorms EV3 estavam disponíveis, o que

di�cultou e restringiu bastante a elaboração de uma estratégia e o início da montagem de

um robô que pudesse participar da competição.

Faltando um mês para a competição, obteve-se mais um kit de Lego NXT e

faltando uma semana, mais 2 kits de Lego EV3.

Em relação ao tempo disponível para a execução do projeto, houve cerca de 2

meses para preparação, porém, como dito acima, os materiais foram chegando aos poucos.

Ainda assim, manteve-se o plano inicial, visto que a elaboração de uma nova estratégia e

a montagem de novos robôs poderia demandar mais tempo que o disponível.

5.1 ESTRATÉGIA

Devido a limitação dos recursos referentes a material (Lego) e tempo, teve-se que

adotar uma estratégia em que fosse possível executar as tarefas principais, mantendo a

estrutura dos robôs o mais simples possível. Assim, decidiu-se construir dois robôs, um

que seria o selecionador e arremessador, e outro que seria o coletor.

A estratégia adotada seria a de manter o robô arremessador no canto da arena,

percorrendo apenas o trajeto da sua posição inicial até a barreira de 10cm e voltando até a

posição inicial, recolhendo o máximo de bolas no caminho, selecionando-as, arremessando

as laranjas no campo adversário e largando as azuis no campo aliado.

Para auxiliar o robô arremessador, o robô coletor seria projetado para ser bastante

ágil, de modo a percorrer o campo com máxima e�ciência e assim, trazer o maior número

de bolas possível para próximo do robô coletor.

29

Page 31: Construção de Robô Móvel Autônomo com Plataforma Lego ...

5.2 MONTAGEM

Iniciou-se pelo robô arremessador, montando uma estrutura retangular com base

nos dois microcontroladores disponíveis. Colocou-se uma catapulta em seu interior, de

forma que foi idealizada uma estrutura onde a seleção das bolas se daria antes destas

entrarem na catapulta.

Nas Figura 5.1 pode-se observar o primeiro protótipo para a competição.

FIG. 5.1: Primeiro Protótipo - Visão Superior

Entretanto, a estrutura deste protótipo era instável e o sistema de seleção constru-

ído não era e�ciente, pois a presença de diversas bolas travava o sistema, e era necessário

uma posição muito especí�ca de trajetória da bola, para que esta pudesse ser capturada,

selecionada e colocada na catapulta.

Devido às di�culdades encontradas no primeiro protótipo, foi construído um

segundo robô, com uma estrutura muito mais rígida e com o sistema de seleção das

30

Page 32: Construção de Robô Móvel Autônomo com Plataforma Lego ...

bolas localizado atrás da catapulta, de forma que foi criada uma lógica onde, caso a bola

fosse laranja, esta era arremessada com força para o outro lado e, caso fosse azul, apenas

levantava-se a pá da catapulta para que a bola escorregasse atrás do robô, dentro do campo

da própria equipe. As Figuras 5.2 e 5.3 mostram o segundo protótipo em construção.

FIG. 5.2: Protótipo 2 - Visão Superior

FIG. 5.3: Protótipo 2 - Visão Frontal

31

Page 33: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Para a captura das bolas, foi montado um sistema contendo 3 garras, duas para

�abraçar� as bolas e outra para empurrar alguma delas na catapulta.

Para a localização do robô foram colocados três sensores de distância, dois ultras-

sônicos na frente e um infravermelho atrás, para que o robô identi�casse obstáculos tanto

na ida para frente quanto na volta. As Figuras 5.4, 5.5 e 5.6 mostram o robô arremessador

�nalizado.

FIG. 5.4: Robô Arremessador(Final) - Visão Superior

32

Page 34: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 5.5: Robô Arremessador(Final) - Visão Frontal

FIG. 5.6: Robô Arremessador(Final) - Visão Traseira

Ao mesmo tempo, foi construído o robô coletor, que tinha como base um micro-

controlador, dispondo de dois grandes braços que se abriam com o inicio da partida. Este

robô também continha um sensor de distância para identi�car sua posição na arena. As

imagens do robô coletor �nalizado podem ser vistas nas Figuras 5.7 , 5.8, 5.9 e 5.10.

33

Page 35: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 5.7: Robô Coletor(Final) - Visão Superior - Aberto

FIG. 5.8: Robô Coletor(Final) - Visão Superior

34

Page 36: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 5.9: Robô Coletor(Final) - Visão Frontal

FIG. 5.10: Robô Coletor(Final) - Visão Frontal - Aberto

5.3 LÓGICA

A lógica dos robôs foi desenvolvida utilizando a linguagem de programação em

blocos da Lego, com o auxílio da própria interface grá�ca de programação disponível no

site da Lego.

Para calcular as distâncias, força de arremesso, ângulo de arremesso, ângulo de

abertura e fechamento das garras, foram utilizados métodos heurísticos, com o auxílio de

uma arena montada no laboratório de robótica do Instituto Militar de Engenharia.

A rotina criada para os robôs foram as seguintes:

35

Page 37: Construção de Robô Móvel Autônomo com Plataforma Lego ...

5.3.1 ROBÔ ARREMESSADOR

Partindo da posição inicial (Qualquer um dos quadrados amarelos) o robô iniciaria

um movimento para frente, até que �casse próximo (cerca de 10cm) a parede central, onde

pararia por 2 segundos, ligaria o sensor de cor e de acordo com a cor realizaria uma ação

diferente.

Caso a cor fosse azul, a catapulta apenas levantaria sua pá de arremesso até que

a bola pudesse escorregar a frente do robô e se a bola fosse laranja, a pá levantaria cerca

de 3cm e em seguida giraria 120 graus com força total para arremessar a bola no campo

adversário.

Após o arremesso, o robô voltaria e andaria até que �casse próximo (cerca de

8cm) da parade frontal, onde pararia e ativaria as garras de forma que duas se fechariam

primeiro para capturar o maior número de bolas possível e depois outra garra fecharia

para que uma das bolas capturada encaixasse na catapulta.

Após colocar a bola na catapulta, o robô fecharia as garras e andaria para a

frente novamente, reiniciando a rotina.

O programa �nal do robô arremessador pode ser visto nos anexos e um �uxograma

da rotina encontra-se na Figura 5.11.

FIG. 5.11: Fluxograma do Robô Arremessador

5.3.2 ROBÔ COLETOR

O robô coletor também teria sua lógica escrita com programação em blocos,

porém com uma rotina muito mais simples que a do robô arremessador. Teria uma se-

36

Page 38: Construção de Robô Móvel Autônomo com Plataforma Lego ...

quência de movimentos onde, partindo da posição inicial (de um dos quadrados amarelos),

moveria-se para o canto oposto, em direção ao outro quadrado amarelo, abrindo os braços

no caminho, e parando um pouco antes da trilha onde o robô arremessador pudesse passar.

Após isso, fecharia seus braços e daria meia volta, chegando até a lateral da

arena, onde daria outra meia volta e iniciaria sua rotina de novo, andando em direção ao

lado onde estava localizado o robô arremessador, abrindo os braços e parando um pouco

antes da trilha do percurso do robô arremessador.

Fotos da posição inicial do robô arremessador e de uma posição intermediária,

com o robô coletor trazendo bolas para o arremessador e o arremessador próximo a parede

central encontram-se nas Figuras 5.12 e 5.13.

FIG. 5.12: Posição Inicial do Robô Arremessador

FIG. 5.13: Posição Intermediária dos Robôs

37

Page 39: Construção de Robô Móvel Autônomo com Plataforma Lego ...

5.4 PARTIDAS

Na etapa classi�catória, o robô arremessador apresentou problemas em relação a

execução de sua rotina. Dessa forma, não conseguiu realizar nenhum lançamento, o que

ocasionou a classi�cação da equipe como 'D'. Já nas fases de grupos, no primeiro jogo, esse

robô apresentou o mesmo problema, não conseguindo novamente realizar lançamentos.

Simultaneamente, o robô coletor também apresentou problemas quanto a execução da

sua rotina, o que provocava choques com os limites da arena. Consequentemente, a

equipe foi derrotada.

Após o primeiro jogo da fase de grupos, após trocas de informações com outras

equipes, as quais sempre se mostraram prestativas e dispostas a ajudar, foi levantada

a hipótese de que os sensores ultrassônicos poderiam estar causando interferência uns

nos outros. Portanto, foi trocado um sensor ultrassônico do robô arremessador por um

infravermelho, enquanto a rotina do robô coletor foi aperfeiçoada. Com isso, a equipe

conseguiu vencer a segunda partida.

Já na terceira partida, os dois robôs realizaram suas rotinas como esperado,

realizando diversos lançamentos efetivos. Entretanto, não foi vitoriosa, visto que a equipe

adversária, que futuramente seria vice campeã, era mais e�ciente. Com isso, a equipe

�cou em terceiro lugar do grupo, sendo a décima sétima colocada, de trinta equipes.

Dessa forma, a equipe estaria eliminada da competição. Entretanto, a décima

sexta equipe, não acreditando que iria se classi�car, desmontou os seus robôs e não tinha

condições de participar da nova fase. Consequentemente, a nossa equipe foi convidada

novamente a participar. Foi jogada uma nova partida, contra a equipe campeã geral da

primeira fase, a qual resultou em derrota. Assim, foi encerrada a primeira participação

da equipe na competição, em décimo sexto lugar.

38

Page 40: Construção de Robô Móvel Autônomo com Plataforma Lego ...

6 MELHORIAS

Após a conclusão da segunda etapa(Competição), com a construção dos robôs

para a competição e a efetiva participação, além do contato com outros projetos e equipes

na competição e a análise do funcionamento e comportamento dos robôs, é possível propor

melhorias no projeto inicial.

Inicialmente propôs-se o seguinte:

1. Estudo e implementação da linguagem Java na programação dos robôs;

2. No sistema de captura, otimizar a coleta e captura de múltiplas bolas simultanea-

mente, utilizando a arena como auxílio;

3. Utilizar um sistema seletor isoladamente, de forma que este mesmo sistema atue na

exclusão de bolas azuis, sem necessitar do auxílio do sistema de lançamento

4. Utilizar um sistema de lançamento mais rápido, sem a necessidade de manipular

bolas azuis.

6.1 LEJOS

Para veri�car a viabilidade e condições da utilização do Lejos, o que, por sua vez,

possibilitará a programação em linguagem Java, uma prova de conceito será feita testando

as funcionalidades básicas do visor, som, sensor de toque, sensor de cores e servomotor

grande. Para facilitar a compreensão, a PoC será dividida em três etapas: Instalação,

Testes, Adversidades e Resultados.

6.1.1 INSTALAÇÃO

De acordo com a proposta de melhoria, inicialmente será feita uma Prova de

Conceito(PoC), da biblioteca Lejos, de programação Lego na linguagem Java.

O passo inicial da PoC é o processo de instalação, tanto da biblioteca quanto

da modi�cação do Firmware do microcontrolador Lego para que seja compatível com

programas escritos em Java.

39

Page 41: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Para a instalação do Lejos, é preciso adequar o ambiente do computa-

dor para a programação em Java, de modo que, inicialmente, precisa-se insta-

lar o Java SDK, que é obtido através do endereço http://www.oracle.com/technet

work/java/javase/downloads/jdk8-downloads-2133151.html (acessado em 01/02/15).

Em seguida precisa-se de um arquivo chamado Java SE embeded for

LegoMindstorms EV3 que pode ser encontrado em http://www.oracle.com/technet

work/java/embedded/downloads/javase/javaseemeddedev3-1982511.html (acessado em

01/02/15) que será importante para a modi�cação do Firmware do microcontrolador.

Agora pode-se instalar o Lejos, que é obtido em http://sourceforge.net

/projects/ev3.lejos.p/�les/ (acessado em 01/02/15), sendo que, no �m da instalação, é

possível criar um arquivo para instalar o Firmware do Lejos, utilizando um cartão SD e

o arquivo Java SE embeded for LegoMindstorms EV3 baixado anteriormente.

Com o Lejos instalado precisa-se da instalação do Lejos plugin no

Eclipse, através da aba ajuda > instalar novo software, adicionando como endereço

http://lejos.sourceforge.net/tools/eclipse/plugin/ev3 (acessado em 01/02/15) e insta-

lando o plugin do Lejos. Finalmente, basta inserir o cartão SD no microcontrolador EV3

e será modi�cado automaticamente o Firmaware do Lejos para possibilitar a programação

em Java.

Maiores informações sobre a instalação pode ser obtida no vídeo tutorial em

http://lejos.sourceforge.net/tools/eclipse/plugin/ev3 (acessado em 01/02/15).

É interessante comentar que nas versões mais atuais do plugin do Lejos para o

Eclipse, existe uma interface grá�ca para auxiliar alguns testes mais simples.

A interface grá�ca e a nova funcionalidade do plugin no Eclipse são ilustradas na

FIG 6.1.

40

Page 42: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.1: Interface Grá�ca Lejos no Eclipse e Nova Funcionalidade do Plugin

6.1.2 TESTES

Para a programação, utilizou-se a API da Lejos[8] como referência, lembrando

que as classes utilizadas deveriam ser as especí�cas para o controlador modelo EV3.

Para o teste de display, foi incluído uma impressão de Hello World na tela,

utilizando a classe Brick, que se refere aos componentes do controlador, sendo que no

método getGraphicsLCD() pegamos o display e imprimimos com o método drawString().

FIG. 6.2: Programa do Teste com o Display

Para o teste de som, foi utilizado a classe brick com o método getAudio() para

pegar os componentes de som do controlador e o método playNote() para criar o som de

uma nota de piano.

41

Page 43: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.3: Programa do Teste com o Som

O teste do sensor de toque consistiu em criar uma mensagem de texto no display

e encerrar o programa quando o botão fosse pressionado.

O controle e acesso aos sensores são diferenciados em relação à manipulação dos

componentes já inclusos no próprio controlador(som e display), pois para instanciar um

sensor é preciso resgatar a porta em que ele está conectado, através do método getPort()

da classe brick, depois instanciar uma classe EV3*sensor correspondente, utilizando a

porta resgatada como parâmetro do construtor.

Entretanto, a coleta de dados dos sensores é complexa, pois cada sensor tem um

método especí�co, no caso do sensor de toque o método getTouchMode(), que retorna

um SampleProvider. Este sample provider tem um método fetchSample() que tem como

entrada um �oat[] e um int, onde o �oat[] é um vetor de �oats que armazenará os dados

coletados e o int é o o�set do vetor.

Cada método exige um �oat[] de tamanho diferente de modo que é preciso recorrer

a API o�cial[8] e veri�car quais os retornos de cada método. No caso do sensor de toque,

o método getTouchMode() tem o retorno uma variável que tem valor 0 se o botão não for

pressionado e 1 se o botão for pressionado.

O código do teste do sensor de toque está ilustrado na FIG 6.4.

42

Page 44: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.4: Programa do Teste com o Sensor de Toque

O sensor de cor, assim como o sensor de toque, precisa de métodos que retornem

um sampleProvider, de forma que utilizou-se o método getColorIdMode(), que retorna

uma escala de cor, tabelada em números inteiros.

No teste, foi impresso na tela o inteiro coletado pelo sensor de cor por 6 vezes.

FIG. 6.5: Programa do Teste com o Sensor de Cor

43

Page 45: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Com o servomotor grande, o teste feito foi o de manipulação de velocidade e

manipulação de aceleração (funcionalidade que não foi encontrada na programação em

blocos, tanto na documentação o�cial, quanto em fóruns de discussão).

Para a instanciação do servomotor foi utilizada a classe

EV3LargeRegulatedMotor, que exige como parâmetro do construtor a porta onde

o motor foi conectado.

Os métodos setSpeed() e setAcceleleration() admitem como parâmetros a ve-

locidade e aceleração desejados, em graus e o método rotate() admite como parâmetro

os graus de rotação desejado, podendo ser um valor negativo para rotacionar na direção

oposta. A FIG 6.6 mostra o código usado.

FIG. 6.6: Programa do Teste com o Servomotor Grande

6.1.3 PRÓS E CONTRAS

Na prova de conceito foi possível perceber que o uso do Lejos permite customiza-

ções e controle maiores que na linguagem em blocos, como por exemplo a possibilidade

de se manipular a aceleração do servomotor.

Dentre os componentes testados, todas as funcionalidades básicas foram possíveis

de ser executadas de modo que a programação em Java é viável.

Além disso, a adição de uma linguagem poderosa como o Java permite que seja

possível utilizar diversos recursos adicionais, como por exemplo o tratamento mais elabo-

44

Page 46: Construção de Robô Móvel Autônomo com Plataforma Lego ...

rado em loops, sincronização de leitura de diversos sensores e medições por amostragem,

como calcular a distância por meio de 100 medições, as quais são somadas e o resultado

dividido por 100, obtendo-se assim a média, de forma que a precisão torna-se muito mais

con�ável, dado que um fator externo que altere o valor de uma medida não terá in�uência

signi�cativa no resultado �nal.

Entretanto, embora o uso da linguagem Java adicione maior controle, funcionali-

dades e customizações que não são possíveis na linguagem em blocos, o uso do Lejos trouxe

diversas adversidades. Entre elas, a di�culdade de se conseguir estabelecer a comunicação

entre o computador e o controlador, pois a instalação do LeJOS faz com que seja necessário

um driver especí�co para reconhecimento através da porta USB.

Outro fator complicador é o fato do Lejos ter sido inicialmente feito para a

plataforma NXT e agora estarem adicionando classes para suportar a plataforma EV3,

de modo que a documentação das classes do EV3 carece de informações vitais para o

desenvolvimento em Java.

Adicionado a isto, existe o inconveniente da necessidade do cartão SD estar

sempre no controlador para habilitar o Firmware necessário para a compatibilidade do

Lejos, sendo que se houver uma cadeia com 5 controladores, serão necessários 5 cartões

SD corretamente con�gurados.

Por �m, até o término desta pesquisa, não foi encontrada uma forma de habilitar

a comunicação por bluetooth entre os controladores, o que impossibilita a formação de

cadeias entre os mesmos.

6.1.4 RESULTADOS

A partir do balanceamento entre os prós e contras, foi decidido que a programação

do protótipo de melhoria será feita com programação em blocos devido às adversidades

encontradas no uso do Lejos, principalmente do falha na comunicação entre microcontro-

ladores, inviabilizando as construção de cadeias em série, e ao fato de ter sido encontrado

material consistente no desenvolvimento em blocos[9], além do auxílio e informações de

outras equipes que estiveram na LARC 2014.

45

Page 47: Construção de Robô Móvel Autônomo com Plataforma Lego ...

6.2 PROTÓTIPO

Visando implementar e testar as melhorias propostas ao �nal da segunda etapa

(competição), construiu-se um novo protótipo. A disposição de novos materiais, tanto em

relação a novas peças, quanto em relação quantidade de motores e sensores, assim como o

conhecimento e experiência adquiridos pela equipe nas etapas anteriores, permitiram uma

maior amplitude e �exibilidade na concepção e montagem do novo modelo. Em oposição

ao modelo anterior, em que havia dois robôs, os quais dividiam as tarefas de coletar,

capturar, selecionar e lançar entre si; no atual, há apenas um robô, o qual executa todas

as tarefas previstas, o que torna o processo mais independente.

Para a montagem foram utilizados um total de 3 kits Lego Mindstorms EV3,

com 4 servomotores grandes, 2 servomotores pequenos, 2 sensores de toque, 1 sensor de

distância por ultrassom e um sensor RGB de cor.

6.2.1 SISTEMA DE CAPTURA

Diferentemente do modelo anterior, em que o robô arremessador dependia do

robô coletor para realizar a coleta das bolas e, desse modo poder capturá-las, o novo

robô percorre o campo para coletá-las. Para a captura, substitui-se as três garras por

uma pá, semelhante àquela de escavadeiras. Esta se encontra inicialmente elevada, sendo

posteriormente abaixada até o nível do campo. Após isso, o robô se movimenta até a

parede, imprensando as bolas contra a mesma, fazendo com que estas se �xem na pá.

Este percebe que atingiu a parede no momento em que os sensores de toque, que estão

posicionados transversalmente a linha vertical da pá (paralelos ao solo), detectam que

houve contato com a mesma. Em seguida, o protótipo se afasta o su�ciente para que a pá

possa ser elevada a posição inicial, sem se chocar contra a parede. Por meio do emprego

de dois servomotores grandes, realiza-se a elevação da pá em alta velocidade, fazendo uso

do momento gerado para mantê-las na mesma posição até o instante em que chegam ao

topo do robô, quando a pá pára e as bolas passam a se situar em uma rampa, a qual as

levará para o sistema de seleção.

46

Page 48: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.7: Sistema de Captura - Visão Lateral 1

FIG. 6.8: Sistema de Captura - Visão Lateral 2

47

Page 49: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.9: Sistema de Captura - Visão Superior 1

FIG. 6.10: Sistema de Captura - Visão Superior 2

6.2.2 SISTEMA DE SELEÇÃO

No modelo anterior, como já foi dito, a seleção era feita na própria catapulta.

Nessa nova entapa, entretanto a seleção é realizada independentemente do sistema de

48

Page 50: Construção de Robô Móvel Autônomo com Plataforma Lego ...

lançamento. Após serem posicionadas pela pá no topo do robô, estas deslizam por uma

rampa até chegar ao sistema selecionador. Este é formado por uma garra quadrangular

com pontas nos vértices de modo que consiga segurar e movimentar as bolinhas. Assim

que a bola chega a ela, um sensor de cor a analisa, determinando se é azul ou laranja.

Caso seja azul, a garra gira de modo a jogar a bolinha para fora do robô e de volta no

campo. Se for laranja, a garra gira de modo a jogar a bolinha em outra rampa, dentro do

robô, a qual direciona a bola para o sistema de lançamento.

FIG. 6.11: Sistema de Seleção

49

Page 51: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.12: Sistemas de Seleção e Captura

6.2.3 SISTEMA DE LANÇAMENTO

Na etapa anterior, o lançamento era feito por uma catapulta, a qual lançava uma

bola por vez e tornava o procedimento lento, uma vez que apenas uma bola era capturada,

selecionada e lançada por vez. No novo modelo, é utilizada uma garra para lançamento

das bolas, a qual é girada em um plano vertical ao solo, impulsionando a bola por uma

rampa de lançamento. Embora lance apenas uma bola por vez, o fato de girar 360 graus

no plano vertical, aliado ao fato dos sistemas serem totalmente independentes, permite

que um número consideravelmente maior de bolas seja lançada em um menor tempo, uma

vez que a existência de rampas dentro do robô promove espaço de armazenamento prévio

para as bolas. Ou seja, as bolas laranjas que já foram selecionadas apenas esperam ser

lançadas e, enquanto o são, o robô, simultaneamente, já está coletando, capturando e

selecionando outras.

50

Page 52: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.13: Sistema de Lançamento - Visão Lateral 1

FIG. 6.14: Sistema de Lançamento - Visão Lateral 2

51

Page 53: Construção de Robô Móvel Autônomo com Plataforma Lego ...

FIG. 6.15: Sistema de Lançamento - Visão Traseira

6.2.4 ROTINA E FLUXOGRAMA

Com o robô construído, falta apenas a parte relacionada a programação que,

como dito anteriormente no resultado da Prova de Conceito com LeJOS, será feita em

linguagem de blocos.

A rotina testada consiste numa parte do que seria a rotina completa da com-

petição, porém com todos os passos e ações necessárias, captura, seleção, descarte(bolas

azuis) e arremesso(bolas laranjas), faltando apenas alguns ajustes de mudanças de direções

para se atingir a rotina completa de uma partida o�cial.

O programa consiste em inicialmente baixar a pá de captura e andar para frente,

para que o robô inicie os contatos com as bolas espalhadas pela arena, seguindo até que o

sensor de toque identi�que a parede quando pressionado. Neste momento, com o auxílio

da parede, diversas bolas(no máximo 4) são encaixadas na pá coletora. Em seguido o

robô recua um pouco e sobe a pá para que as bolas capturadas sejam armazenadas na

parte superior.

Para que a própria pá não seja um obstáculo para o �uxo das bolas dentro do

robô, faz-se com que a pá abaixe novamente. Após isso o robô recua até chegar a 5cm da

parede traseira, identi�cada através do sensor de distância ultrassônico. O robô inicia o

52

Page 54: Construção de Robô Móvel Autônomo com Plataforma Lego ...

procedimento de seleção, por 6 vezes, fazendo com que o sensor de cor identi�que a cor da

bola selecionada e caso seja azul, um sistema de descarte é feito e a bola cai para fora do

robô e se a bola tiver cor laranja, a bola é colocada numa rampa de acesso para o sistema

de lançamento.

Feita a seleção o sistema de lançamento é iniciado, lançando 6 vezes, através de um

sistema de chute com a rotação de uma peça presa ao servomotor pequeno. Finalmente,

o robô sobe a pá coletor e o programa se encerra.

A seguir tem-se um �uxograma explicativo sobre a rotina do robô.

FIG. 6.16: Fluxograma Explicativo Sobre a Rotina Implementada

6.2.5 COMPARAÇÃO ENTRE OS ROBÔS

Visando comparar os dois modelos concebidos, adotou-se como parâmetro o

tempo de lançamento das bolas, medida essa utilizada como meio para classi�cação dos

robôs em grupos, na primeira fase da competição LARC 2014. No primeiro modelo, o robô

arremessador levava, em média, 2 min para lançar 5 bolas. Já o novo protótipo lança as

mesmas 5 bolas em um intervalo de 40 segundos, em média. Dessa forma, conclui-se que o

novo robô é signi�cativamente mais e�ciente (33,33 %, aproximadamente), visto que cada

um dos seus sistemas (coleta, captura, seleção e lançamento) são executados de forma

independente, além de serem mais e�cientes que os seus respectivos antecessores. Para

53

Page 55: Construção de Robô Móvel Autônomo com Plataforma Lego ...

maior �delidade, os testes foram executados diversas vezes e sob as mesmas condições:

80cm de distância entre as paredes, com 6 bolas, sendo 5 laranjas e 1 azul, dispostas a

frente do robô.

54

Page 56: Construção de Robô Móvel Autônomo com Plataforma Lego ...

7 RESULTADOS

Com os estudos feitos, através das três etapas, foram obtidos os resultados a

seguir.

7.1 RESULTADO DA PROVA DE CONCEITO

Com o robô construído foi veri�cado que o mesmo identi�cava os objetos próxi-

mos, desviando destes de acordo com a rotina criada no programa. Veri�cou-se que, caso

o objeto à frente não tivesse uma altura maior ou igual ao da localização do sensor ul-

trassônico, poderia existir erro na detecção deste e, consequentemente a rotina de desviar

não seria executada.

Em relação ao sensor de proximidade infravermelho, conforme esperado, ao de-

tectar que o ponto mais próximo tinha uma distância maior que 20(dentro da escala de

0 a 100), o robô recuava meia volta e fazia a curva para a direita. Entretanto, como o

sensor estava localizado apenas na frente, houve casos em que o robô caiu da mesa no

movimento de recuo ou no movimento de virar para a direita.

O sensor RGB conseguiu detectar as cores azul, verde, branca, amarela, preta e

vermelha, com três testes para cada cor, errando uma vez na detecção da cor vermelha,

julgando-a como preta.

A parte �nal da rotina foi executada sem nenhum problema, visto que o servo-

motor pequeno conseguiu girar a bandeira por três vezes, sendo em seguida �nalizado o

programa.

7.2 RESULTADO DA COMPETIÇÃO

Percebeu-se que, embora diversas outras equipes utilizassem a mesma estratégia

adotada pela nossa, estas a executavam de forma mais e�ciente. O sistema do robô

arremessador responsável por capturar as bolinhas era bastante ine�ciente, além de a-

presentar alguns erros ocasionais de execução devido a presença da �ta amarela utilizada

para marcar as áreas iniciais. Essa �ta também prejudicava o movimento do robô, fazendo

este se chocar com a parede da arena.

55

Page 57: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Dessa forma, adicionou-se uma roda a lateral no robô, fazendo com que este

deslizasse pela parede, ao invés de se chocar com a mesma e �car travado, estratégia

essa adotada pela observação das outras equipes. Somado a isso, o sistema de arremesso,

embora executasse a sua função, lançava apenas uma bolinha de cada vez, mesmo com

dois motores, o que o tornava ine�ciente. O modo escolhido para coletar, com o segundo

robô, também era ine�ciente. Conclui-se que o melhor modo para realizar essa tarefa é a

construção de braços que utilizem a parede para capturar as bolinhas e sensores de toque

para a orientação dos robôs no campo.

Percebeu-se, ao longo da competição, que a compatibilidade entre os diferentes

sensores é algo extremamente importante. Deve-se analisar os efeitos que uns causam nos

outros, de modo que não gerem interferências e assim, prejudiquem a execução da rotina.

Outro fato a ser considerado é que, embora a Linguagem própria da Lego em blo-

cos permita a execução de rotinas complexas, não constitui a melhor abordagem. Outras

linguagens permitem a realização de rotinas mais e�cientes, utilizando ao máximo o poder

de processamento do microcontrolador e as leituras dos sensores. Dessa forma, na terceira

etapa do projeto, será realizada uma nova PoC visando determinar a melhor linguagem

a ser adotada.

Finalmente, concluiu-se que a participação da equipe na competição foi muito

proveitosa. Atingiu-se uma colocação razoável, considerando todos os problemas enfrenta-

dos, tanto de tempo como de falta de recursos materiais. Entretanto, o mais importante

foi o conhecimento adquirido pela experiência de participar, pela observação dos robôs e

estratégias das equipes adversárias, assim como pela troca de informações com as mes-

mas. Dessa forma, pretende-se aperfeiçoar as estratégias e os robôs, buscando um melhor

resultado numa possível nova participação.

7.3 RESULTADO DA MELHORIA

Devido as adversidades e problemas encontrados em relação a documentação

o�cial, má compatibilidade entre o computador e o controlador e ,principalmente , o não

funcionamento do bluetooth na programação com o Lejos, fez com que fosse optado pela

continuação da linguagem em blocos para a programação do protótipo de melhoria.

Porém veri�cou-se grande potencial na utilização do Lejos, pois possibilita con-

�gurações e controle em um grau mais elevado que a linguagem em blocos, além da

56

Page 58: Construção de Robô Móvel Autônomo com Plataforma Lego ...

possibilidade de se utilizar os recursos da linguagem Java para aprimorar os programas

criados.

Além disto, a nova proposta dos sistemas de captura, seleção e lançamento de

bolas, mostrou-se mais e�ciente que os do robô inicial, pois além de ser possível o trata-

mento de diversas bolas ao mesmo tempo Sendo comprovado esta e�ciência num teste,

onde o robô lançou 5 bolas em 40 segundos, resultado superior as 5 bolas em 120 segundos

feito pelo projeto anterior.

57

Page 59: Construção de Robô Móvel Autônomo com Plataforma Lego ...

8 CONCLUSÃO

No mundo atual, no qual a todo momento novas tecnologias, que antes se re-

duziam a meros lampejos de imaginação, se tornam realidades do dia-a-dia, o campo da

robótica tem ganho cada vez mais importância. Tem sido utilizada em diversas áreas,

seja reduzindo os custos e aumentando a produção por meio da inserção de robôs na linha

de produção; na aplicação de robôs como ferramentas para preservar o ser humano, robôs

bombeiros, cirurgiões, submarinos, dentre outros tipos; na substituição de membros per-

didos; ou ainda na nanotecnologia. Nesse contexto, este projeto teve como �nalidade a

obtenção de conhecimento nessa área, assim como a participação em competições educa-

cionais do ramo.

Foi realizado um estudo inicial para veri�car a viabilidade da construção do

robô, uma primeira versão foi contruída, a qual foi testada em competição e por �m foi

desenvolvida uma nova versão superior a criada inicialmente.Dessa forma, tem-se que o

objetivo do projeto foi alcancado. Durante o projeto foram adquiridos conhecimentos na

área de robótica, incluindo estudos da linguagem java na elaboração de rotinas de robôs

e de como desenvolver e construir modelos que resolvam tarefas de forma e�ciente.

Como sugestão para projetos futuros, tem-se o estudo mais aprofundado do

Lejos, pois o uso das propriedades da linguagem Java e a superioridade em termos de

controle, con�guração e uso dos sensores e motores, em relação a linguagem em blocos,

possibilita uma otimização em termos de software dos robôs, podendo otimizar ainda

mais os protótipos criados; assim como a implementação da comunicação em série, por

bluetooth, entre microcontroladores.

58

Page 60: Construção de Robô Móvel Autônomo com Plataforma Lego ...

9 REFERÊNCIAS BIBLIOGRÁFICAS

[1] �Rules of SEK 2014 Category,� IEEE Latin America Robotics, Competition for

Student, 2014.

[2] �http://www.infoescola.com/tecnologia/lego-mindstorms/,� acessado em 22 de agosto

de 2014.

[3] P. C. R. Abrantes, �Aprender com Robots,� Dissertação de Mestrado em Educação,

2009.

[4] R. Higashi and S. robin, �Introduction to Programming Lego Mindstorms

EV3, Teacher`s Guide,� Carnegie Mellon's Robotics Academy, 2014.

[5] �Lego Mindstorms EV3, O�cial User Guide,� 2013.

[6] �Roteiro para análise da amostra (prova de conceito),� Pregão Eletrônico no

93, Tribunal de Contas da União, 2013.

[7] �Como demonstrar, testar e obter sucesso em provas de conceito com tec-

nologia NComputing,� Boletim Técnico, NCompunting.

[8] �http://www.lejos.org/ev3/docs/,� acessado em 01 de fevereiro de 2015.

[9] �http://www.afrel.co.jp/en/archives/839,� acessado em 01 de março de 2015.

59

Page 61: Construção de Robô Móvel Autônomo com Plataforma Lego ...

ANEXO

Page 62: Construção de Robô Móvel Autônomo com Plataforma Lego ...

Resumo — Neste artigo serão apresentadas informações

sobre dois robôs que serão utilizados para participar da LARC/

CBR 2014 na categoria IEEE Standard Educational Kit (SEK),

com explicações das ideias centrais e ilustrações de componentes

que serão utilizados.

I. INTRODUÇÃO

Este documento refere-se a informações da equipe

RoboIME para a participação da categoria Standard

Educational Kit (SEK) na LARC / CBR 2014, competição

que tem por objetivo incentivar e desafiar alunos de

graduação a construírem robôs móveis autônomos capazes de

realizar a tarefa proposta pela competição de cada ano.

A equipe da RoboIME será composta por alunos da

graduação do Instituto Militar de Engenharia, cursando os

mais diversos cursos de engenharia disponíveis na instituição.

Para a organização do documento, serão apresentadas

quatro partes sendo elas: A competição, características gerais

dos robôs, robô coletor, robô seletor e arremessador.

II. A COMPETIÇÃO

Neste ano a tarefa a ser realizada na competição consiste num “vôlei” entre robôs, na realidade chamado de THBall, cujas principais características são descritas abaixo.

A partida é realizada em uma arena dividida em duas partes, uma para cada equipe, onde existirão bolas coloridas (azuis e laranjas) colocadas inicialmente numa posição predeterminada dentro da arena. Cada equipe pode utilizar até dois robôs simultaneamente dentro da arena, sendo que estes robôs podem coletar, selecionar e arremessar as bolas para a área adversária. Ao fim de cinco minutos contam-se as bolas nas áreas de cada equipe, pontuando +100 para bolas azuis e -100 para bolas laranja.

Analisando o panorama geral da competição, é possível separa-la em três tarefas menores: coletar as bolas, selecionar as bolas e arremessar as bolas. Pensando nisto a equipe pretende separar as tarefas entre dois robôs distintos, sendo um robô coletor e outro seletor e arremessador.

Escrito em agosto de 2014, este trabalho descreve os robôs a serem

utilizados pela RoboIME na categoria IEEE Standard Educational Kit na LARC/ CBR 2014. A equipe RoboIME é um projeto que reúne alunos dos

diversos cursos de engenharia do Instituto Militar de Engenharia, Rio de

Janeiro, Brasil.

Figura 2.1 – Arena da competição [1]

III. ROBÔS E MATERIAIS

Os robôs serão construídos utilizando peças de Lego Mindstorms EV3, Lego Mindstorms EV3 Education e Lego Mindstroms NXT.

Estes robôs terão locomoção por rodas, dispostas em triciclo com tração traseira utilizando servo motores grandes, ajuste de posição através dos sensores ultrassônicos e infravermelho, seleção através dos sensores de cor e sistema de arremesso através de servo motores pequenos.

Cada robô terá dimensões iniciais de no máximo 25 cm, sendo que se expandirão após o inicio da partida.

Para o teste dos robôs utilizaremos como suporte arenas utilizadas na OBR 2013/ etapa regional do Rio de Janeiro, que foi realizada no IME, testando apenas a lógica e comportamento dos nossos robôs em sua própria área, sem a interação gerada por um equipe adversária, pois a simulação de uma equipe adversária consiste em adicionar aleatoriamente bolas no campo ao longo dos cincos minutos.

Figura 3.1 – Robôs, sensores e motores Lego

TDP da Equipe RoboIME para a categoria IEEE Standard

Educational Kit (SEK)

André L. M. Melo , Carlos A. D. Pinto, Driele N. Ribeiro, Felipe A. M. de Alcântra, Lucas Garcia , Marina P. Mota, , Oscar

Martins W. F., Rafael J. Lima, Rebeca C. de Brito, Vinicius C. O. de Andrade, Willian A. Kanashiro, Paulo Ferreira Rosa

Instituto Militar de Engenharia(IME) – Rio de Janeiro, RJ, Brasil

email:[email protected], [email protected], [email protected]

[email protected],[email protected], [email protected],[email protected],

[email protected], [email protected]

Page 63: Construção de Robô Móvel Autônomo com Plataforma Lego ...

IV. ROBÔ COLETOR

Para a função de coleta das bolas, utilizaremos um robô com suportes frontais que se expandem ao iniciar a partida, para auxiliar na coleta, semelhante às utilizadas pela equipe DROID em 2012.

O controle do robô para a varredura da arena será utilizado o sensor de infravermelho, para evitar que este se choque nas paredes e também no outro robô.

Este robô percorrerá toda a área da arena, tentando reunir o máximo de número de bolas numa área menor, facilitando o trabalho do robô seletor, o qual não precisará se locomover muito para encontrar as bolas.

V. ROBÔ SELETOR E ARREMESSADOR

Para a função de seleção e arremesso, será utilizado um único robô, de forma que a função de seleção contará com o auxílio do sensor de cor, e irá separar as bolas em dois compartimentos acoplados ao próprio robô.

Para o arremesso, se posicionará o mais próximo possível da divisão central da arena, e arremessará todas as bolas laranja do compartimento num sistema de catapulta. No entanto, antes do arremesso, o robô abandonará na arena todas as bolas azuis.

CONCLUSÃO

O sucesso nessa competição depende não somente da estratégia utilizada, mas também da forma que as funcionalidades do robô serão implementadas. Saber dividir o objetivo em tarefas menores faz com que o projeto possa ser planejado e executado mais facilmente e com mais rapidez.

Com a definição das tarefas a serem realizadas e dotado dos meios materiais necessários, a equipe RoboIME se encontra em condições de participar pela primeira vez na categoria IEEE SEK na LARC/CBR 2014.

REFERÊNCIAS

[1] “Rules of SEK 2014 category,” in version 1.0 , 2014, pp. 2.