Relatório - Competicao

1- Introdução

O Projeto Final (Competição) tem como objetivo proporcionar a experiência de projetar, construir e integrar um sistema robótico completo e funcional, que deve interagir adequadamente com o mundo real (dinâmico e parcialmente estruturado). Dentre as funcionalidade exigidas para esse trabalho, destacam-se:

  • Utilização de sensores;
  • Controlar velocidade, posição e orientação;
  • Navegar em um ambiente semi-estruturado;
  • Coletar blocos de interesse;
  • Definir estratégias para realizar a missão.


A competição consiste na simulação de coleta de materiais preciosos em atividades de mineração (nesse caso os materiais foram representados por blocos de isopor). Existem materiais tóxicos, que nesse caso são representados pelos blocos pretos. O robô deve evitar a coleta desse tipo de material. Dois robôs, cada um posicionado em um base diferente, em lados opostos, começam em um determinado tempo a tentativa de coleta de materiais durante 60 segundos. A cada partida, pontos são acumulados ou retirados de cada equipe de acordo com o número de artefatos coletados. Abaixo segue as pontuações:

     Artefato			       Robô	Base	Degrau
     Prata (bloco vermelho)	         1	 2	  5
     Ouro (bloco verde)                  2	 4	 10
     Platina (bloco azul)		 4	 8	 15
     Material tóxico (bloco preto)	-4	-8	-15
     

Obs: Caso o robô não saia da base ou não pare em 60 segundos ou inicia a largada antes da luz de partida ser acionada, a equipe será penalizada com a perda de 4 pontos.

A descrição completa desse trabalho, se encontra aqui

frontal.jpg
Figura 1: Robo SACII

2- Principais Decisões

Para a competição foi necessário um robô que fosse capaz de realizar as tarefas em até um sessenta segundos. Com isso foi necessária a remontagem da estrutura usada nos trabalhos anteriores, pois embora o robô Saci executava todas as tarefas perfeitamente (a partir do tp2), ele estava lento e não seria possível coletar nenhum bloco em sessenta segundos. Para a nova versão do SACI - o SACII - os dois motores foram trocados por motores mais potentes, e ao invés de separarmos suas funções (um motor para girar e um para andar, como nos trabalhos anteriores) os dois são usados tanto para as tarefas de rotação como de translação. Trocamos ainda as esteiras por duas rodas motorizadas e uma roda esferica de apoio. Dessa forma conseguimos um robô mais rápido.

lateral.jpg
Figura 2: Roda do robo

2.1- Garras

Como estratégia da competição, foi decidido coletar os blocos que não estivessem na plataforma. Embora existissem dois blocos azuis que valem mais pontos que outros blocos, o tempo para ir até a plataforma, mover algum dispositivo para pegar e identificar o bloco e levá-lo até a base, poderia dar mais trabalho e não compensar. Então a ideia era analisar cada bloco encontrado na área fora da plataforma, e caso fosse preto o robô o descartaria, e caso não fosse o robô o guardaria dentro de si. Para que isso fosse possível, foram colocados duas garras na frente do robô. As garras ficavam quase fechadas para evitar a entrada indesejada de blocos. Ao encontrar um bloco, utilizando um sensor óptico-reflexivo, as garras se retraiam para permitir a entrada de blocos diferentes dos tóxicos, e abririam com forca total lançando o bloco preto para fora caso o encontrasse. Foi adicionado um motor controlado através de um shaft-encoder para realizar essa ação das garras.

garras.jpg
Figura 3: Garras

2.2- Localização e Locomoção

Uma vez iniciada a partida, o robô se orienta no campo de acordo com as luzes polarizadas, usando dois LRDs na sua parte traseira. O caminho feito foi predefinido: ir para o lado esquerdo do campo em linha reta, girar 90º, ir para frente, encontrar blocos, girar 90º, encontrar blocos, girar 90º e voltar para a base com os blocos alocados dentro do robô (exceto os blocos pretos que ele impediria a entrada). O controle das distâncias foi feito através de dois shaft-encoders nas duas rodas.

2.3- Blocos

Para encontrar e identificar as cores dos blocos foram usados um sensor óptico-reflexivo, um LDR e um LED-RGB. O sensor óptico-reflexivo identificava um bloco no meio do caminho do robô e, utilizando o Iteractive-C, mandava informação para a Handy-Board fazendo o robô parar por um instante. Nesse momento, o LED é acionado e o LED faz a leitura da luz refletida. Se o bloco encontrado for preto, as garras do robô expelem o bloco para longe. Caso contrário, as garras se abrem e o robô anda para frente tentando guardar o bloco em seu interior.

3- Desafios

Como nos trabalhos anteriores nós usamos um motor para andar e outro para girar, não tínhamos dificuldades em controlar o robô, pois bastava apenas um shaft-encoder para fazer tal controle. Porém, na nova versão do SACI, o SACII, fazê-lo andar em linha reta pois um grande desafio. A potência de cada motor era diferente, e encontrar uma constante que garantia essa diferença não foi uma tarefa fácil, ainda mais que a medida que fazíamos testes, o motor com menor potência só ia diminuindo, e com isso a constante era alterada várias vezes. Além disso, tivemos grandes problemas causados pela leitura errônea de um dos shaft-encoders. Ora ele lia a diferença de intensidade da luz, ora não lia. Isso causou grandes problemas, inclusive na competição, fazendo assim nosso robô ficar completamente descontrolado e sem movimento definido. Para seguir as linhas pretas de forma mais rápido, era necessário usar mais portas analógicas. Porém só tínhamos cinco portas analógicas disponíveis na HandyBoard. Por esse motivo foi necessário o uso das portas digitais para seguir a linha, o que resultou pouco ou quase nenhum sucesso.

4- Resultados

Devido a problemas com a leitura dos shaft encoders e a diferença de potencia dos motores, e levando em conta que esses problemas aconteceram praticamente quatro horas antes da competição, o robô não conseguiu seguir um caminho reto, prejudicando todo o caminho pré-estipulado, parando sempre na lateral do campo. Dessa forma, infelizmente não foi possível coletar nenhum bloco e nem mostrar qualquer estratégia programada.

5- Software

Utilizando o IC, um programa foi escrito para realizar as tarefas descritas nas seções acima. Para mover o robô de um ponto a outro em uma determinada distância, como para localizar bloco, alinhar com a luz polarizada, os dois motores relativos as duas rodas são acionados pelo código. Para identificar a cor de um determinado bloco, o algoritmo descrito na seção 2.1 do “Trabalho Pratico 04 - Controle” foi utilizado . Para ligar ou desligar o LED RGB ou receber informações de sensores como LDR, óptico-reflexivo ou Break-Beam, funções do IC foram utilizadas na implementação da coleta de dados dessas tarefas. Foi utilizado a opção de multitafera do IC para realizar contagem do tempo em 60 segundos para desligar todas funcionalidades do robô. Na seção 4.1 do “Trabalho Pratico 02 - Robotica Movel” tem uma descrição mais completa de como a multitarefa no IC funciona.

5.1- Menu

Utilizando o IC e carregando o programa implementado na Handyboard, um menu foi implementado. O menu é bastante intuitivo dizendo quais botões devem ser utilizados para selecionar ou trocar alguma opção (ou usar o knob se for o caso). Todas as tarefas descritas nas seções anteriores podem ser acessadas pelo Menu.

Código: tpfinal.rar

6- Conclusão

Apesar de não obtermos sucesso na competição, o trabalho permitiu a utilização de basicamente todas as técnicas aprendidas na disciplina de Introdução a Robótica. Enfrentar as dificuldades na montagem de um robô autônomo, e como solucioná-las foi uma tarefa considerada árdua para o grupo, pois vários problemas aconteceram, principalmente com os hardwares, e não foi fácil encontrar a solução. A utilização de sensores em perfeito estado é de extrema importância para trabalhos como esse, pois dependemos deles para que o robô funcione da forma como programamos. Mudar a estrutura do robô em tão pouco tempo para a competição também não foi uma decisão interessante, dado que estávamos acostumados a controlar e conhecíamos bem o SACI antes dele sofrer as últimas modificações. Foi sem duvida uma experiência válida para o grupo, e esperamos que possamos aplicar o que aprendemos em algum outro momento das nossas vidas, seja na Universidade ou fora dela.

cursos/introrobotica/2015-1/grupo03/compt.txt · Última modificação: 2015/06/29 21:54 por introrobotica-grupo3