Grupo 4 - Letroy

Integrantes

  • Letícia Nogueira
  • Túlio Loures
  • Robson Edmundo
  • Yuri Pessoa

TP1 - Manipuladores

A tarefa do trabalho é montar um robô com uma base fixa em um espaço de 20cm x 20cm e um manipulador que seja capaz de segurar um marcador e percorrer um trajeto pré-determinado deixando uma marca bem visível do caminho realizado.

Para visualizar o enunciado clique aqui: http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp1

ZORRO: ZORRO, O Robô Rabiscador Ortodoxo

Projeto

ZORRO foi projetado com duas juntas em série, sendo a primeira rotacional e a segunda prismática. Dessa forma o ambiente de trabalho apresenta a forma de uma coroa circular.

A base ocupa cerca de 70% do espaço permitido. Nela está a handyboard, um dos motores e uma estrutura responsável pela rotação.

A parte superior ou braço do robô é responsável pela sua movimentação translacional. Composto por um motor, uma haste, um grupo de engrenagens e a parte que segura o marcador.

Desafios

Os problemas iniciaram na etapa de configuração. Mesmo fazendo as conexões entre placa, handyboard e computador corretamente, ao abrir o programa Interactive C, mesmo indicando a porta de conexão (USB) com o computador, aparecia uma mensagem de erro de conexão e solicitava-se o download do Firmware. Testando de forma a procurar o problema, descobrimos que apertando a tecla 'stop' da handyboard realizava-se a conexão corretamente.

Problemas durante a implementação e os testes:

  • Problemas de imprecisão ao utilizar certos tipos de peças (“sem-fim” e corrente, principalmente)
  • Dificuldade de colocar as engrenagens na distância adequada
  • Dificuldade de balanceamento do peso do robô
  • Obter a redução desejada com as engrenagens, considerando os problemas acima
  • Problemas ao utilizar a handyboard desconectada do carregador e/ou do computador
  • Defeitos nos motores que apresentavam variações na potência e ocasionavam erros de trajetória (tivemos que soldar um fio)

A estrutura de rotação foi inicialmente projetada com o uso de uma peça denominada worm (“sem fim”). A simplicidade e a grande redução de transmissão foram os principais critérios envolvidos nesta decisão. Porém durante a execução dos testes iniciais percebemos que o manipulador não iniciava o trajeto de maneira consistente. Algumas vezes ele começava imediatamente e outras ele simplesmente sofria um breve atraso o que provocava uma alteração drástica no caminho percorrido. A causa deste problema era a worm e portanto a estrutura foi modificada para uma série de engrenagens para redução.

Fotos

A ideia inicial era que o robô fosse pequeno e leve. No entanto, durante o desenvolvimento foi percebido que, para que houvesse sustentação e redução desejadas, deveria-se fazer um robô maior. Mesmo assim conseguimos utilizar apenas cerca de 70% do tamanho máximo proposto para a base. A seguir seguem fotos da seqüência de desenvolvimento do trabalho:

* Desenvolvimento e ajustes iniciais da base e parte superior do robô:

* Estrutura da Parte Superior Pronta:

* Robô inicial montado com sua estrutura completa (base + parte superior):

* Peça worm que havia sido usada na primeira idéia (não funcionou bem):

* Após fazer a configuração, primeiro programa teste:

* Primeiros teste - robô com estrutura worm:

* Uma das folhas de teste, mostrando que foram amplamente realizados:

* Robô final - sem estrutura worm, com associação de engrenagens:

* Testes finais com o robô na versão para apresentação:

Videos

TP2 - Robótica Móvel

A tarefa deste trabalho é projetar um robô móvel capaz de percorrer uma trajetória pré-estabelecida que deve ser selecionada através de um menu. Essas trajetórias são: uma reta de 30 cm (ir, fazer um giro de 180° e voltar), um triângulo retângulo isósceles com catetos de 30 cm e um quadrado de lado 30 cm.

Além disso, o robô deve realizar três tarefas simultaneamente (Multitarefa):

  • Se movimentar traçando um caminho pré-definido;
  • Emitir sons usando a função tone();
  • Acionar três LEDs de alto brilho em sequência.

Para acessar o enunciado completo do trabalho acesse o link a seguir: http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp2

Red Baron: Corrida Maluca

Projeto

O Red Baron foi projetado com dois motores, cada um controlando a rotação de cada uma das rodas. Para que conseguíssemos maior precisão no movimento realizamos uma redução considerável, com engrenagens em série. Optamos por usar apenas engrenagens para evitar problemas com a rosca sem fim e as correntes que foram observados no primeiro trabalho prático. Foi projetado um compartimento para acoplagem ao robô onde ficaram os leds e houve a preocupação em se fixar bem os fios para evitar que esses ficassem presos de alguma forma nas engrenagens.

Desafios

Os principais novos desafios encontrados relativos ao Hardware foram:

  • A bateria da Handyboard não está recarregando, assim todos os testes precisaram ser feitos com o robô ligado na tomada;
  • Um dos motores parou de funcionar e precisou ser restaurado;
  • Não foi encontrada uma especificação para a ligação dos LEDs, essa foi feita de forma intuitiva e por tentativa e erro;
  • Foram refeitas todas as conexões dos motores para resolver problemas constantes de mau-contato;

Os principais desafios encontrados relativos ao Software foram:

  • Inconstância da potência do motor que faz com que os valores para essa variável tenha que ser reajustado com frequência;
  • Dificuldade para encontrar referência do uso da função para possibilitar o funcionamento dos LEDs;

Os problemas que enfrentamos no primeiro trabalho prático nos ajudaram a não cometer os mesmos erros nesse TP. Tentamos desenvolver um Menu para que o usuário tivesse fácil acesso às funções selecionáveis. Nos preocupamos em fazer uma estrutura robusta, esconder os fios, manter a placa segura e o artigo “The Art of LEGO Desgin” nos ajudou a entender melhor o funcionamento e encaixe das peças de lego, o que tornou a montagem mais eficaz. Por esse motivo não realizamos grandes mudanças na estrutura do robô durante o desenvolvimento do trabalho.

Fotos

  • Início da Montagem

  • Estrutura

  • Engrenagens

  • Parte Inferior

  • Menu

  • Estrutura Final

Análise Experimental

Avaliação do erro de translação

Tarefa: Acionar os motores simultaneamento e por um tempo constante, ao final medir a distância percorrida. Devem ser utilizados os seguintes valores de potência: P = 20%, 40%, 60%, 80% e 100%.

Distância
Potência Teste 01 Teste 02 Teste 03 Teste 04 Teste 05 Média Erro+ Erro-
20 6,20 6,00 6,10 5,70 5,90 5,98 0,22 0,28
40 16,00 15,50 15,00 15,20 14,60 15,26 0,74 0,86
60 26,60 25,50 24,80 24,00 24,30 25,04 1,56 1,04
80 29,20 29,30 29,50 30,60 30,20 29,76 0,84 0,56
100 36,00 36,70 35,00 34,00 34,80 35,3 1,4 1,3

Avaliação do erro de rotação

Tarefa:Acionar os motores de forma que o robô gire 90 graus e medir o erro angular obtido para P = 20%, 40%, 60%, 80% e 100%.

Ângulo
Potência Teste 01 Teste 02 Teste 03 Teste 04 Teste 05 Média Erro+ Erro-
40 87,00 88,00 87,00 86,00 89,00 87,4 1,6 0,4
60 91,00 90,00 90,00 88,00 89,00 89,6 1,4 1,6
80 94,00 86,00 92,00 90,00 87,00 89,8 4,2 3,8
100 94,00 90,00 89,00 91,00 87,00 90,2 3,8 3,2

OBS: 20% de potência não foi suficiente para realizar a rotação.

Vídeos

TP3 - Sensores

O Trabalho Prático 3 tem o intuito de implementar um robôs móvel que utiliza sensores para reconhecer o ambiente e identificar objetos de acordo com sua cor.

Especificamente, o robô implementado deve ser capaz de reconhecer uma linha que define seu trajeto, prosseguir sem desviar do caminho planejado e reconhecer cubos de quatro cores diferentes (azul, verde, vermelho e amarelo) que podem ser posicionados em sua frente.

Para acessar o enunciado completo do trabalho acesse o link a seguir: http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp3

Red Baron MK II

Sensoriamento

Nesse TP são utilizados dois sensores, um LDR e um Óptico-Reflexivo. Ambos são utilizados com o intuito de distinguir cores sendo que o LDR está sendo utilizado na identificação dos quatro blocos coloridos (amarelo, azul, vermelho e verde) e o sensor Óptico-Reflexivo está sendo usado para seguir a linha preta, ou seja, ele é capaz de distinguir entre preto e branco.

Para que o LDR seja capaz de identificar adequadamente as cores dos blocos, três LEDs (RGB)foram posicionados em sua proximidade. Além disso foi acoplado ao sensor uma envoltória preta para que a luz ficasse menos difusa, diminuindo os efeitos do ambiente.

O LEDs foram ligados aos pinos de SPI que podem ser configurados para serem saídas digitais. A foto a seguir mostra a localização desses pinos na Handyboard:

No caso ligamos o sinal de cada um dos LEDs a um resistor de 330 ohms e em seguida o ligamos a uma das portas de SPI (sinal do LED vermelho na SS, do azul na SCK e do verde na MISO). Todos os terras dos LEDs foram reunidos e ligados em GND. O LDR foi ligado à saída analógica 3 da Handyboard.

A foto a seguir mostra a montagem dos LEDs e do LDR:

O sensor Óptico-Reflexivo que utilizamos foi o TCRT5000 para arduíno, mas que funcionou bem para nossa aplicação. Esse sensor foi utilizado para seguir a linha preta e ele consegue distinguir com precisão entre cores claras e escuras.

A foto a seguir mostra o sensor utilizado:

O data sheet do sensor TCRT5000 pode ser encontrado no seguinte link: http://www.vishay.com/docs/83760/tcrt5000.pdf

Dificuldades

A montagem dos sensores pode parecer trivial, mas é essencial para que consigamos realizar corretamente as medições, ou seja, se os sensores não funcionarem corretamente não conseguiremos identificar os blocos nem a linha preta. Para isso, as montagens precisam ser feitas com cabeamento, soldagem e pinagem corretas. O problema que houve nessa parte foi que um dos sensores óptico-reflexivos foi queimado pois ao montá-lo identificamos a pinagem incorretamente (fase, neutro e sinal). Com isso, o valor lido pela saída analógica era sempre constante (243) o que indica curto. Ao montarmos o novo sensor, o problema foi reparado.

Mudanças na Arquitetura

De acordo com o feedback recebido na versão prévia do robô “Red Baron” utilizado no Trabalho Prático 2, as rodas foram substituidas por rodas menores que são mais estáveis. A frente do Red Baron foi adaptada para a adição dos leds e sensores.

Código

O código da calibração do sensor LDR realiza 20 amostras com cada LED aceso (vermelho, verde, e azul) contra uma superfície branca. Em seguida, os valores obtidos são ordenados por meio de um quicksort, e o valor do meio é considerado como resultado obtido para aquela cor. Para identificar a cor de um bloco, são realizadas novamente as 20 amostragens com cada LED aceso, e o resultado obtido é comparado com o resultado da calibração.

O código que faz o Red Baron MK II seguir a linha preta simplesmente avalia o valor obtido pelo sensor óptico-reflexivo (novamente com 20 amostragens, e considerando o valor central após uma ordenação). Caso o sensor reconheça preto, o robô anda um pouco pra frente. Caso reconheça branco, ele gira um pouco para a direita.

Testes

Tarefa:

  1. Adicione um sensor óptico-reflexivo no seu robô (ou monte o seu próprio sensor óptico ativo, i.e. uma par led/foto-diodo ou led/foto-transistor).
  2. Coloque um bloco de isopor pintado a uma distância de cerca de 3mm do sensor.
  3. Adquira dados por cerca de 5 segundos.
  4. Plote um gráfico a partir dos dados coletados, no qual devem constar o valor médio e o desvio padrão das medidas.

Com o bloco posicionado a 3mm do sensor o sinal ficou praticamente estável em 178.

-Média: 178
-Desvio Padrão: 0

OBS:Todos os dados foram coletados através da porta serial e de um terminal conectado a ela e fazendo uso das funções contidas em serxmit.c, datacoll.c e serialio.c.

Tarefa:

  1. Repita os itens anteriores, mas agora com ambos os motores acionados. Descreva e explique o resultado (i.e. os motores influenciaram as medidas? Caso positivo, de que maneira?).

Com os motores ligados ocorreram vários “saltos” no sinal o que tornou sua coleta mais difícil. O sinal ficou inconsistente provavelmente devido a variação de tensão provocado pelo uso mais intenso da bateria.
- Média: 177.7
- Desvio Padrão: 1.10

Vídeos

Primeiro teste com o Robô tentando seguir a linha preta:

https://www.youtube.com/watch?v=YxlnJGrEPG8&feature=youtu.be

Teste para seguir a Linha:

https://www.youtube.com/watch?v=8Dqvf2rs7qA&feature=youtu.be

Identificação dos Blocos:

https://www.youtube.com/watch?v=a_JssgLIEVo&feature=youtu.be

Fotos:

O Robô:

Parte Inferior:

Parte da Frente (Sensores):

Rodas:

Tabela para Identificação das Cores dos Blocos:

Tabela para definir a calibração:

TP4 - Controle

Com o desenvolvimento desse trabalho foi possível conhecer melhor as técnicas de controle estudadas nas aulas teóricas da disciplina, proporcionando a familiarização com as mesmas. Além dos sensores que já haviam sido utilizados nos trabalhos anteriores, acrescentamos dois break-beams que implementam a função de odometria básica (shaft-encoding) e dois LDRs diferenciais polarizados para identificação do posicionamento de luzes. As principais tarefas que o robô deveria realizar são:

  1. Menu: todos os itens devem ser facilmente acessados pelo Menu principal.
  2. Localização: utilizando os sensores LDRs diferenciais polarizados, o robô deve ser capaz de alinhas com as luzes presentes no campo;
  3. Algoritmo para seguir a parede: o robô deve implementar um algoritmo de Wall Following tanto na versão normal quanto na versão Gentle Turn (3 estados) utilizando Simple Feedback Control;
  4. Shaft-Encoders: utilizando sensores break-beams deve-se construir dois shaft-encoders com controlador PD de velocidade implementado para que o robô seja capaz de percorrer um determinado trajeto que é selecionado pelo Menu. Esse trajeto pode ser uma reta, um quadrado ou um triângulo e o tamanho é variável e também deve ser selecionado pelo Menu;
  5. Tomada de Decisão: o robô deve locomover-se em linha reta e caso encontre um bloco de alguma cor em sua frente ele deve:
    • Virar à direita 90º e andar pra frente se o bloco for AZUL;
    • Virar à esquerda 90º e andar pra frente se o bloco for AMARELO;
    • Girar 180º e andar pra frente se o bloco for VERMELHO;
    • Fazer um sinal sonoro se o bloco for VERDE.

O link abaixo mostra a proposta completa do TP4:

http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp4

Red Baron MK III

As modificações estruturais que precisaram ser realizadas nesse trabalho foram relativas à inserção dos novos sensores no robô. A cabeça (frente) sofreu modificações e na parte lateral esquerda foi inserido um novo sensor Óptico-Reflexivo que possibilita seguir a parede. Além disso foi adicionado à engrenagem das rodas uma roldana para o encaixe dos break-beams. A foto a seguir mostra a nova configuração do Red Baron:

Projeto

Começamos o desenvolvimento desse trabalho pela montagem dos novos sensores necessários.

O break-beam utilizado foi o MOC70T3, cuja foto é mostrada abaixo:

O LDR diferencial montado ficou no topo da “cabeça” do robô já que é necessário que ele consiga enxergar as lâmpadas. A estrutura desse sensor é mostrada na imagem a seguir em amarelo:

Na imagem acima os LDRs estão sem os polarizadores. Na próxima imagem eles podem ser vistos com os polarizadores:

Desafios

Os principais desafios desse trabalho foram a montagem dos novos sensores e o desenvolvimento de códigos que implementassem corretamente os algoritmos de controle. Além disso a variação da iluminação da sala (incidência de luz solar) fazia com que certos resultados fossem variáveis. Como o teste do software depende diretamente do hardware (sensor) o desenvolvimento em paralelo ficou dificultado.

A ligação simultânea de vários sensores analógicos faz com que a placa aqueça muito e até desligue. Para solucionarmos esse problema optamos por testar uma tarefa por vez, utilizando menos sensores e aquecendo menos a placa. Somente no dia da apresentação nós ligamos todos os sensores juntos.

O acesso à entrada dos LEDs na HandyBoard é muito difícil pois fica debaixo do visor. A pinagem teve que ser refeita várias vezes até que se encontrasse o encaixe ótimo. Mesmo assim a montagem não está perfeita uma vez que o uso de termo-retrátil fica quase que inviável pela falta de espaço. Ainda assim, tentaremos modificar essa estrutura para a competição, evitando mau-contato.

Fotos
  • Início das Montagens:

  • Visor/Menu:

  • Organização dos Sensores de Motores:

  • Estrutura Final - robô pronto para a apresentação:

  • Estrutura Final - Vista Lateral:

  • Com outro robô:

Vídeos
  • Segue Parede: vídeo que mostra o robô executando a tarefa de seguir a parede:

https://www.youtube.com/watch?v=1HgPyxsZWbc&feature=youtu.be

  • Alinha com a Luz: vídeo que mostra a tarefa de alinhar com a luz:

https://www.youtube.com/watch?v=_yEkxo0TnBU&feature=youtu.be

  • Reta: faz o trajeto de uma reta de um tamanho selecionado no knob:

https://www.youtube.com/watch?v=K8bZfF8sIwk&feature=youtu.be

  • Quadrado: faz um quadrado com o tamanho dos lados selecionado no knob:

https://www.youtube.com/watch?v=Cda2EegSiQM&feature=youtu.be

  • Triângulo: faz um triângulo com o tamanho dos lados selecionados no knob:

https://www.youtube.com/watch?v=YfF5Q2EIqr4&feature=youtu.be

  • Menu: vídeo que mostra os itens do Menu principal:

https://www.youtube.com/watch?v=Yv14XiQn_hU&feature=youtu.be

  • Calibração das Cores: calibra o LDR que identifica cores na parede (branco):

https://www.youtube.com/watch?v=N5sUFVrYLtw&feature=youtu.be

  • Identificação das Cores: identifica de qual cor é o bloco:

https://www.youtube.com/watch?v=lmGu1n-85ME&feature=youtu.be

Competição

A competição desse semestre consistia na simulação do resgate de pistas e sobreviventes da queda do avião da Malaysia Airlines. Dois robôs (equipes distintas) seriam colocados no campo e teriam um minuto para calibragem e mais um minuto para executar sua estratégia e capturar o maior número de blocos possíveis. Haveria apenas um sobrevivente (representado pelo bloco azul, situado em cima da rampa), pistas não-identificadas (representadas pelos blocos verdes), destroços (representados pelos blocos vermelhos) e pistas falsas (representadas pelos blocos pretos). Cada um dos blocos de cores diferentes tinham pontuações diferentes dependendo de onde se encontrassem no final da partida. A figura a seguir mostra o esquema de distribuição dos blocos na pista no início de cada partida.

A tabela a seguir mostra os valores de cada um dos blocos nos locais finais das partidas.

Foram realizadas duas etapas, cada uma com 10 partidas entre os competidores. Houve um intervalo de 20 minutos entre as etapas para que a bateria da handyboard pudesse ser carregada e se houvesse necessidade, poderiam ser feitas alterações. O 1º e 2º lugar em pontuação dessas duas etapas iriam para a final, que consistia de 3 partidas. Ganharia o robô que ficasse com a melhor pontuação na etapa final.

O link completo para a competição pode ser acessado aqui: http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/competicao

O Galactus

Nosso robô se chama Galactus - Devorador de Mundos. Ele foi assim chamado devido ao fato de ser robusto e com dimensões consideráveis, iniciando as partidas com dimensões de 30 cm por 30 cm, podendo expandir os braços e chegar a 45 cm. Dessa forma o Galactus é capaz de “engolir” todos os blocos da mesa e ainda desviar dos adversários em seu caminho. A figura a seguir mostra o Galactus com a estrutura em que começa todas as partidas.

Partes do Robô

O Galactus tem uma parte traseira para apoio da handyboard, dois braços que são expansíveis, dois motores para locomoção e quatro sensores para auxiliar na locomoção e localização. Cada uma dessas partes são mostradas a seguir.

  • Braços: peças de LEGO foram encaixadas de forma que propiciassem o deslizamento do braço, por meio de trilhos. Para que o braço se sustentasse na altura inicial e não houvesse dificuldades nos giros, foram usadas rodas do tipo castor.

Rodas castores facilitam a movimentação pois conseguem girar 360º, sustentando o braço durante a rotação. Ainda foi utilizada uma roda simples na extremidade do braço para que, quando colidisse com a parede lateralmente, esta fizesse com que o robô se alinhasse e continuasse o movimento em linha reta. As rodas utilizadas no braço são mostradas com mais detalhes na próxima figura.

  • Motores: são motores de 6V, cuja potência ajustamos de acordo com a necessidade. Engrenagens podem ser usadas para diminuir a velocidade de rotação e aumentar o torque. Tentamos utilizar motores também na locomoção dos braços, mas os motores adquiridos (5.9V e 9V) não foram capazes de vencer o atrito dos trilhos, o que fez com que abandonássemos a estratégia de abrir e fechar os braços por comandos mecânicos. Os motores utilizados são mostrados abaixo.

  • Sensores: foram utilizados dois sensores de toque na extremidade de cada um dos braços do Galactus. Ainda foi utilizado um sensor LDR para detecção da luz de localização e um sensor Óptico-Reflexivo para detecção do início das partidas. Esses sensores são mostrados a seguir.

Sensor de Toque:

Sensor LDR:

Sensor Óptico-Reflexivo:

Todos esses dispositivos que são utilizados para locomoção e sensoriamento devem ser adequadamente cabeados até a handyboard. Nos preocupamos com a organização e fixação dos mesmos à placa uma vez que outros robôs com garras poderiam arrebentá-los. Eles foram amarrados com braçadeiras, como pode ser visto a seguir.

O Galactus na Competição

Houve uma série de percalços durante a competição. O Galactus não conseguiu sair da base em uma partida, colidiu com outros robôs e não conseguiu se desvencilhar algumas vezes, sofreu uma queda da rampa drástica, épica e dramática (cômica para os inimigos). O Galactus conseguir mover praticamente todos os blocos, no entanto, devido a certos obstáculos, nunca conseguia retornar à base. Ele conseguiu, algumas vezes, levar blocos à base inimiga, inclusive blocos negativos, ganhando partidas. Terminou em terceiro lugar.

O vídeo abaixo mostra a reportagem da TV Globo Minas na UFMG sobre a competição de Robótica de 2014.

http://g1.globo.com/videos/minas-gerais/t/bom-dia-minas/v/alunos-da-ufmg-criam-maquinas-com-inteligencia-artificial/3390267/

Agradecimentos

Agradecemos ao professor Gustavo pelos ensinamento, aos colegas pelo companheirismos (especialmente nas madrugadas comendo McDonalds), à UFMG pelo acesso gratuito e irrestrito (exceto para o Robson que foi parado várias vezes na portaria quando estava com o kit) às instalações e materiais utilizados, à TV Globo Minas pela acurácia na reportagem feita, à TV UFMG pela divulgação e à LEGO por facilitar a montagem de nossos queridos “robozinhos”.

Texto escrito pela Estudante.

ATENÇÃO

O ministério da saúde adverte: inalar fumaça de solda faz mal à saúde. Utilize o equipamento adequado para tal, como demonstrado conscientemente pelo nosso amigo e voluntário Yuri na foto a seguir.

cursos/introrobotica/2014-1/grupo04/index.txt · Última modificação: 2014/06/04 13:25 por grupo4-141