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 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.
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:
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.
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:
* Montagens Iniciais:
https://www.youtube.com/watch?v=bDkdlMSaXlQ&feature=youtu.be
* Testes Iniciais:
https://www.youtube.com/watch?v=9IaJCmpmo5s&feature=youtu.be
* Teste com montagem inicial - sem problema:
https://www.youtube.com/watch?v=MO8m-2ZrpJw&feature=youtu.be
* Teste com montagem inicial - com problema:
https://www.youtube.com/watch?v=3eT-HEc4AVc&feature=youtu.be
* Testes Finais - com montagem final:
https://www.youtube.com/watch?v=MmR1EoXmQeY&feature=youtu.be
Acreditamos que com os testes realizados estamos aptos a mostrar que nosso robô realiza o percurso proposto e está dentro das especificações.
-Vídeos Extras:
https://www.youtube.com/watch?v=Zu0Xh18oTw4&feature=youtu.be
https://www.youtube.com/watch?v=v4y1554AclQ&feature=youtu.be
https://www.youtube.com/watch?v=uy5h3MzoGAs&feature=youtu.be
https://www.youtube.com/watch?v=P1sMXehBqDE&feature=youtu.be
https://www.youtube.com/watch?v=t6LYsd361kI&feature=youtu.be
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):
Para acessar o enunciado completo do trabalho acesse o link a seguir: http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp2
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.
Os principais novos desafios encontrados relativos ao Hardware foram:
Os principais desafios encontrados relativos ao Software foram:
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.
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.
https://www.youtube.com/watch?v=ZVog4dNCAEM&feature=youtu.be
https://www.youtube.com/watch?v=jwCiD_aD8BQ&feature=youtu.be
https://www.youtube.com/watch?v=IEPZeOigEn0&feature=youtu.be
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
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
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.
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.
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.
Tarefa:
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:
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
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:
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:
O link abaixo mostra a proposta completa do TP4:
http://www.verlab.dcc.ufmg.br/cursos/introrobotica/2014-1/tp4
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:
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:
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.
https://www.youtube.com/watch?v=1HgPyxsZWbc&feature=youtu.be
https://www.youtube.com/watch?v=_yEkxo0TnBU&feature=youtu.be
https://www.youtube.com/watch?v=K8bZfF8sIwk&feature=youtu.be
https://www.youtube.com/watch?v=Cda2EegSiQM&feature=youtu.be
https://www.youtube.com/watch?v=YfF5Q2EIqr4&feature=youtu.be
https://www.youtube.com/watch?v=Yv14XiQn_hU&feature=youtu.be
https://www.youtube.com/watch?v=N5sUFVrYLtw&feature=youtu.be
https://www.youtube.com/watch?v=lmGu1n-85ME&feature=youtu.be
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
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.
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.
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.
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.
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.
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.