Tabela de conteúdos

Grupo 4 - MoU - Masters of Universe! Campeão!!!

Prévia da Competição

Introdução

A descrição do ambiente e o regulamento da competição atual, “Robôs de Elite”, pode ser encontado na página da mesma.

Desenvolvimento

Após divulgado o regulamento da competição, discutimos algumas estratégias e optamos por construir um robô “varredor” cuja estratégia básica, a princípio, seria percorrer a lateral da mesa da competição, coletando os blocos sobre a linha preta e trazendo-os novamente para a base. A figura abaixo descreve esta estratégia.

:cursos:introrobotica:2007-2:grupo4:estrategia1.jpg

Além disso, procuramos aproveitar a estrutura do robô do trabalho anterior para a competição.

Preparativos para a prévia

Para o dia da prévia deveríamos mostrar a capacidade do nosso robõ de poder ser calibrado em 1 minuto, responder à partida (dada pela luz no chão da mesa) e de pontuar, isto é, coletar blocos criminosos.

Para aimplementar o robõ varredor, acoplamos braços à parte da frente, para que os blocos coletados fiquem armazenados entre eles. A foto abaixo mostra uma versão 0.1 do nosso “aspira”:

:cursos:introrobotica:2007-2:grupo4:previa_1.jpg

Para a prévia, nosso robô utiliza 2 shaft encoders (um para cada roda), dois sensores óticos infra-vermelhos, dois sensores LDR com polaróide (para formar um arranjo diferencial e fazer com que o robô se oriente) e dois sensores de toque localizados nas pontas dos braços.

O robô percorre a lateral da mesa utilizando algoritmos de seguir parede, de forma similar ao que foi feito no trabalho anterior. Quando os dois sensores de toque a frente do mesmo são acionados ao mesmo tempo, o robô supõe que bateu em uma parede e faz uma manobra para virar para a esquerda.

Complementos para a competição

Para a competição, as principais modificações implementadas foram:

A primeira das tarefas mostrou-se necessária porque o tempo de 1 minuto era suficiente apenas para que o robô percorresse a lateral da mesa uma única vez. Diminuimos a redução reduzindo o tamanho da primeira engrenagem que gira com a mesma velocidade linear que o eixo do motor.

A segunda estratégia que desenvolvemos foi a seguinte: o robô vai até o meio da mesa, somente, (ele detecta que passou do meio da mesa através de um sensor ótico, que detecta a linha preta), percorre o meio da mesa na direção da linha preta presente no meio e depois volta. Quando ele volta ele passa a executar a estratégia padrão novamente. Para implementar esta estratégia retiramos um sensor ótico do lado esquerdo do robô, que não estava sendo usado, e o colocamos apontado para o chão.

Como diminuimos a redução do robô, tornou-se necessário o robô detectar que voltou à base e descarregar os blocos coletados. Isso foi feito guardando o lado da base na hora da partida - guardamos o índice do sensor que acusa alta lumnosidade quando detectamos é iniciada a partida. Quando o robô descobre que voltou à base, ele faz uma manobra para descarregar os blocos na mesma. após feito isso, como supomos que falta pouco tempo para acabar a partida, fazemos o robô andar reto até o meio da mesa e voltar, na esperança de coletar mais algum bloco.

O tratamento de situações de falha foi outra modificação importante que incorporamos ao nosso robô.Isto foi feito através de um processo separado em nosso software. Esta thread separada faz as seguintes verifiçãoes, continuamente: caso o valor do número de pulsos de qualquer um dos encoders não varie por mais de 2 segundos, ou caso qualquer um dos sensores de toque permaneça acionado por mais de 2 segundos, então este processo notifica ao processo mestre que ocorreu uma falha. A thread mestre interrompe, então , o processo que executava a estratégia do robô, sem se procupar com as falhas, e faz com que o robô efetue uma ré. Após isso, tentamos proseguir com a execução da estratégia, assim como voltamos a monitorar se ocorrem imprevistos.

No nosso software nós temos, então, 5 threads executando concorrentemente:

Abaixo temos uma foto da versão final do nosso robô, Pacato, que no dia 6 de Dezembro transformou-se em Gato Geurreiro e sagrou-se campeão da competição de robótica!

:cursos:introrobotica:2007-2:grupo4:IMG_6071-2.JPG

Código

Link para o código fonte

Apresentação mostrada antes da competição

Apresentação

Conclusão

Com estes preparativos, conseguimos construir um robô para atender aos requisitos da competição, e assim ele está pronto para participar ativamente da mesma.