Tabela de conteúdos
Robô Manipulador
Introdução
O objetivo do trabalho consiste na criação de um manipulador capaz de, com uma caneta, desenhar um percurso predefinido dentro de no máximo quatro minutos. Na tarefa, podem ser utilizados dois motores, além do kit de peças LEGO e da HandyBoard, que foram disponibilizados e não é permitido utilizar sensores.
Construção
Como o percurso a ser realizado estava em um plano 2D, e devido a limitação imposta de se utilizar apenas dois motores no projeto, o primeiro passo foi escolher qual a configuração seria utilizada para o robô manipulador. Foi escolhido um robô manipulador RP, por sua implementação e controle serem aparentemente mais simples.
Versão 1
Começamos montando uma caixa de redução com o objetivo de reduzir a velocidade e aumentar o torque do primeiro motor, responsável pelo movimento de rotação do manipulador. Toda a transmissão foi realizada utilizando-se engrenagens. Primeira tentativa da caixa de redução:
Em seguida foi construída uma estrutura responsável por sustentar o braço do manipulador. Como o braço do manipulador tem um comprimento maior que o da base, e carrega uma caneta como atuador, durante o percurso o centro de gravidade do robô acaba se alterando diversas vezes. Essa estrutra, além de sustentar o braço verticalmente, também tem o objetivo de não permitir que o robô tombe.
Por último foi construído o braço do robô manipulador. Para o braço foi utilizado uma junta prismática que, com o auxílio de trilhos, realiza o movimento de translação do manipulador. Versão 1 finalizada:
No entanto, durante a implementação do código, a versão 1 se mostrou ineficaz. A estrutura, quando equipada com a caneta, estava bamba. Além disso, a redução realizada na caixa de engrenagem da junta de rotação era muito pequena, tornando impossível controlar o robô. Também não havia redução na junta prismática, o que causava instabilidade. Por isso, tomamos a decisão de desmontar o robô e remontá-lo com algumas mudanças.
Versão 2
Na construção da versão 2, a caixa de engrenagens da junta de rotação foi melhorada, tendo sido adicionadas mais engrenagens. A parte estrutural também foi melhorada, adicionando uma superfície de contato maior entre o braço e a base, ajudando a evitar instabilidades.
Caixa de engrenagem da junta de rotação - Angulo 1
Caixa de engrenagem da junta de rotação - Angulo 2
O novo braço na versão 2 foi construído com uma estrutura mais robusta, utilizando dois trilhos. Além disso foi construída uma caixa de engrenagem para ele, fazendo com que a junta prismática funcionasse com mais precisão.
Execução do Trajeto
Com a montagem pronta, começamos os testes para realizar o percurso desejado. Decidimos dividir o código em fases. Cada fase seria o trajeto de um ponto para o próximo. Primeiro, era realizado a medição do tempo necessário para a junta de rotação sair do ponto inicial e atingir o próximo ponto, e depois era adicionado o movimento na junta prismática para que o traço ficasse dentro do caminho delimitado. Depois de muitos testes e papéis rabiscados, conseguimos fazer com que o manipulador seguisse o caminho desejado:
Desafios e dificuldades
Como já foi explorado nos itens anteriores, foi necessário refazer o robô por completo devido à erros cometidos durante a construção. Mesmo com a versão 2, na parte de montagem, tivemos várias dificuldades para obter estabilidade, tanto na rotação quanto na translação. No movimento de translação, o peso maior no lado em que estava a caneta e algumas peças empenadas faziam com que partes se soltassem ou as engrenagens ficassem fora do alcance. A caneta muitas vezes agarrava no papel, fazendo com que o movimento fosse inesperado.
No começo da construção, decidimos usar um motor que possui a saída de engrenagem na horizontal para realizar a rotação. Enquanto isso parece uma boa ideia, pois não seria necessário realizar trocas de eixo para realizar a rotação, isso também implica numa maior dificuldade para construir caixas de redução, já que, no lego, elas são muito mais simples e compactas na vertical.
Na implementação, algumas vezes o código se corrompia quando era baixado para a HandyBoard, mesmo sem problemas com o interactive C ou o cabo, então obtínhamos resultados diferentes a partir de testes aparentemente iguais, o que fez com que achar os valores corretos para movimentar o manipulador pelo percurso ficasse mais difícil.
Conclusão
Apesar das dificuldades e imprevisibilidades, conseguimos realizar o percurso esperado. Como a robótica trata de interações com o mundo real, foi interessante perceber como nem tudo funciona como o esperado. Esse é um grande contraste com a situação comum para os alunos de Computação e Sistemas de Informação, que estão acostumados a ver seu código funcionar exatamente como o esperado.

