voltar

Trabalho Prático 3

Link para o relatório do trabalho 3 (sem imagens) : tprob_3.pdf

Link para o código do trabalho: codigo_tp3_redcyclone.tar.gz

Fluxograma do menu implementado na handyboard: menu_tp3.pdf

Objetivo

O objetivo do trabalho é a utilização de sensores ópticos (opto-reflexivo e chave óptica) para a aquisição de dados, que uma vez tratados serão utilizados no controle do robô conforme o que está proposto na atividade.

Montagem dos Sensores

O primeiro passo pára realização do tp3 foi construção dos sensores ópticos e sua montagem na estrutura do robô. Sensores opto-reflixivos são vendidos no comercio com vários nomes diferentes,assim foi fundamental levar uma ilustração dos componentes para facilitar sua aquisição

Problemas:

  • determinar se os sensores estavam funcionando, uma vez que operam numa faixa de infra-vermelho e não pode ser visualizado.

Solução:

  • Montar uma circuito que acendesse um led toda vez que o emissor estiver montado da maneira correta( Leds emissores de infra-vermelho funcionam de forma semelhante a leds comuns).
  • Utilizar uma câmera digital( celular ou maquina fotográfica digital), esse aparelhos possuem sensibilidade que cobre essa faixa do espectro da luz. No display aparece um ponto luminoso que corresponde a luz emitida.

Construção do robô

Nome do ROBO: GEBRABELEX-T3

.

Para obter maior precisão quanto ao numero de giro das rodas os shaft-encoders foram montados nos eixos tracionadores do robô(.

Problemas:

  • Determinar a melhor forma de obter os pulsos que seriam gerados.

Solução:

  • Testar diferentes polias visando encontra aquela que atendesse os requesitos de espaço e numero de pulso. Para isso foram testas roldanas de mouse( apresentavam orifícios muito pequenos o que dificultava a obtenção de dados, engrenagem de brinquedos mas ocorreu dificuldade de centralização, ao final escolhido a engrenagem de 14 dentes do kit.

Os sensores foram montados muito afastados do local de encaixe e alem disso eram muitos os fios dessa forma foram confeccionados chicotes ,que melhoraam a organização dos fios.Figura_4 –fotos dos chicotes.

A principio pensou em utilizar rodas montadas na parte frontal do robô para facilitar as curvas nas quinas de paredes, mas esta solução não se apresentou muito eficiente na prática, e esta ideia foi abandonada, e ao invés foi utilizada a estratégia de um sensor frontal para detectar a colisão com a parede, então o robô recua e faz uma curva para a direita.

Tarefas

Testes de Respostas do Opto-Reflexivo.

Video da Execução do WallFollow Hard: http://www.youtube.com/watch?v=qRPkUkX6J2w

Video da Execução do WallFollow Gentle: http://www.youtube.com/watch?v=-mk5qiYVV6g

Video da Execução do Three State: http://www.youtube.com/watch?v=LrO8wIKXgRQ Simple feedback control.

Uso de gráficos para comparar e discutir as funções hard, gentle e tri-state

Hard

Gentle

Three-State

Controle Proporcional Derivativo. A partir das funções encoder?_counts( conta o numero de pulsos) e encoder?_velocity (retorna a velocidade) foi elaborado o controle proporcional derivativo do robô. O controle visava igualar as posições das rodas a cada unidade de tempo. A roda esquerda foi tomada com Referência.

ErroProrcional = PosiçãoDir - PosiçãoEsq
Erro derivativo = velocidadeD - velocidadeEsq
Potencia =  potencia_Atual  - ganhoP*(ErroProporcional) - ganhoDx∗Erroderivativo)

Problemas:

  • As operações que o computador realiza são muito rápidas, por esse motivo num primeiro instante o tentar realizar o controle da roda direita os valores para potencia eram extremos, ora acima do máximo (potencia>100) , ora valores negativos (Potencia <0). Isso ocorria, pois toda vez que era identificado um erro(roda mais lenta ou mais rápida) o controle tentava corrigi-lo , mas como não esperava um tempo suficiente para atuação dos motores ocorria então, um efeito avalanche.

Solução:

  • Determinar um processo para amostragem de dados separadamente. Assim, havia tempo suficiente para que os motores agissem.

Problema2:

  • Os motores partiam em tempos diferentes.Dessa forma havia um grande erro inicial e ao tentar corrigi-lo o robô o fazia de forma brusca o que causava um desvio na partida fazendo com que o robôs perdesse o alinhamento.

Solução:

  • Os motores passaram a ser acionados em tempos diferentes ,não é melhor forma de fazer o ajuste( a melhor seria parti-lo em rampa), mas como havia a necessidade de medir a distancia foi adotado esse método.

Para o Controle PD foi elaborado um menu de permite ajustar os ganhos Proporcional, Derivativos e o tempo para amostragem dos sensores.

Controle Deliberativo: Algoritmo Wave Front

Esse algoritmo permite que o robô parta de um ponto de coordenadas A(x,y) e chegue ao ponto B(x¹,y¹), sendo capaz de desviar de obstáculos no seu caminho.

 Plano do Wave Front

Problema1:

  • Adpatação do código disponível no site.

Solução:

  • Percorrer as linhas do código substituindo as funções de seguir em frente, virar_esquerda e virar_direita , pelas funções elaboradas pelo grupo. Além disso, foram feitos alguns tratamentos de erro para deixar o código mais robusto.

Problema2:

  • Devido as limitações físicas (potenciômetro e os botões de start e stop) da handyboard , a configuração dos dados: posição inicial, posição final , numero de objetos, e suas relativas posições, são muito trabalhosa.

Solução:

  • Criar uma função que converte posições nos gride e números assim facilitaria parte do código.Essa função implementada .

Problema3:

  • Superposição – quando uma posição já está ocupada( obstáculo, ponto de partida ou ponto de chegada) e tenta-se utiliza-la.

Solução:

  • Imprimir mensagem de aviso indicando o uso dessa posição.

A identificação das células do grid foi parametrizadas. Assim, o valor entrado é uma identificação que é convertida nas coordenadas (x,y).

Execução do Algoritmo Wave Front:

Após algumas tentativas frustradas, conseguimos achar os valores de calibração ideal para as curvas para a esquerda e para a direita. E enfim o trajecto de teste foi executado correctamente duas vezes.

Video da Execução do Wave Front: http://www.youtube.com/watch?v=LE9egb27r7c

Tira-teima: http://www.youtube.com/watch?v=vGwdo8yZUro

cursos/introrobotica/2010-2/grupo01/tp3.txt · Última modificação: 2010/10/29 17:05 por wejunior