Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2016-1:grupo08:tp1

Introdução:

Neste trabalho nos foi proposto o desafio de desenvolver um robô com uma caneta presa em um braço e que este conseguisse realizar um percurso pré­determinado As condições impostas na especificação eram de que não se era permitido o uso de sensores e o uso de mais de dois motores. Abaixo segue­se uma ilustração mostrando qual o caminho que o robô deveria percorrer:

Com a base fixada no centro do quadrado cinza e a caneta sempre sobre o papel durante o percurso, o braco do robô deveria percorrer o caminho de P1 a P6 sem sair da linha pontilhada. O tempo máximo estipulado para a realização da tarefa foi de quatro minutos.

Tomada de decisões:

A primeira decisão que tivemos que tomar foi o número de motores e os tipos de juntas que usaríamos. Optamos pelo uso de dois motores pelo fato do movimento ser em cima de um plano. O uso de apenas um motor tornaria a implementação mais complexa. Optamos também pela implementação do robô com uma junta de revolução e uma prismática.

Após essas definições iniciais, começamos a montar o corpo do robô com lego. Primeiramente montamos a base onde fica a junta de revolução e construímos uma caixa de redução de 75:1.

Após a montagem da base, construímos o braço, conectamos a caneta e começamos a fazer alguns testes. O torque fornecido pela caixa era satisfatório e o movimento de revolução estava sendo feito corretamente.

Sendo assim, partimos para a implementação da junta prismática. Foi aí que tivemos as maiores dificuldades. A princípio tentamos fazer o movimento de translação sem caixa de redução mas não obtemos torque suficiente. Construímos uma caixa de redução 1:25 e o problema foi resolvido.

A partir deste momento o robô já executava os movimentos de translação e rotação mas percebemos que o movimento de translação ainda não era executado corretamente. Isso se devia a um problema de baixa sustentação do braço. A peça que ligava a base ao braco era muito pequena. A solução encontrada foi aumentar o tamanho dessa peça e assim conseguimos resolver o problema.

Acima pode­se ver o braço final. Repare no aumento da peça de conexão embaixo do motor.

Testes:

Os nossos testes foram feitos na base de tentativa e erro. Os dois motores funcionam ao mesmo tempo. E buscamos encontrar combinações entre o tempo de funcionamento de ambos que nos desse o caminho desejado. Tivemos muitas dificuldade nesses testes pois o processo era muito sujeito a erros, como:

1) A caneta deveria começar sempre no mesmo ponto 2) A medida que testávamos muitas vezes o papel ficava sobrecarregado de tinta e o atrito da caneta com o papel mudava, alterando sua posição final 3) A folha não estar completamente colada na mesa

Dividimos os testes em trechos. Primeiro fizemos o movimento de P1 a P2. Cada trecho foi dividido entre 5 a 8 passos no programa. Depois fazemos os testes para P2 a P3. Quando acabamos, testamos o percurso P1 a P3 e assim fizemos ate chegar a P6.

A fim de simular “passos” no motor foi implementada uma função para executar passos em determinados intervalos. A função recebe como parâmetro o numero do motor, uma forca(potencia do motor variando de ­100 a 100), um tempo de pulso (tempo em que o motor irá ficar ligado) e um tempo entre o pulso (tempo que o motor ira ficar desligado, quando este tempo acabar o motor é ligado novamente ficando ligado o tempo de pulso passado como parâmetro) void executarPassoMotor(int m, int forca, float tempoPulso, float tempoEntrePulso) {

  while(emExecucao){ 
      motor(m, forca); 
      sleep(tempoPulso); 
      off(m); 
      sleep(tempoEntrePulso); 
  } 	 

}

Utilizando esta função foram criados os passos para percorrer o caminho.

O fonte completo pode ser acessado em : https://github.com/wagnerteixeira/Robotica

Após todos os testes feitos, obtivemos nossa versão do robô final que pode ser vista abaixo:

cursos/introrobotica/2016-1/grupo08/tp1.txt · Última modificação: por 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki