Ferramentas do usuário

Ferramentas do site


cursos:introrobotica:2016-1:grupo09:index

Grupo 9 - Robolo de cenoura



Trabalho prático 1: manipulador robótico

Objetivo

O objetivo deste trabalho é a construção de um manipulador robótico, que deverá percorrer a trajetória pré-definida na especificação do Trabalho Prático 1.

Decisões de projeto

O grupo decidiu por pensar rapidamente na ideia de como seria o Software do robô (não queríamos determinar o movimento do robô na “força bruta”), para então escolher o tipo de manipulador que iríamos adotar (tendo dois motores, as melhores ideias seriam RP ou RR).

Software / Algoritmo

A ideia do grupo é mapear a área que contém a trajetória a ser cumprida, através de um sistema de coordenadas cartesiano [x,y] onde x e y são inteiros e seus valores medidos em milímetros. O centro desse sistema de coordenadas seria o centro da área, ou seja, a posição 200mm por 200mm com relação ao centro apresentado na especificação do TP1.

Sendo assim, dada uma posição xy, a ser atingida, e a posição atual, o robô saberia calcular qual o deslocamento que deveria ser empregado pela junta prismática e o giro que a junta rotacional deveria realizar. Portanto, bastaria obter empiricamente a velocidade de deslocamento da junta prismática, com o seu motor na potência máxima e a velocidade da junta de revolução, na mesma situação, para saber, aproximadamente, por quanto tempo cada motor deveria operar, entre um ponto e outro. E isso sem qualquer tipo de sensoriamento, conforme especificação do TP.

É claro que, seguindo por apenas esta lógica, certamente o robô sairia da trajetória. Por exemplo: entre os pontos iniciais especificados, existem pontos que estão distantes um do outro. Isto torna possível que a distância entre a trajetória e o centro do robô, diminua e depois aumente (ou vice-versa) durante um mesmo deslocamento retilíneo entre um ponto e outro. Para solucionar este problema, programamos o robô para, dados um ponto inicial e um ponto de destino (por exemplo, P1 e P2 da especificação do TP), gerar mais 8 pontos entre eles, equidistantes, construindo uma trajetória dividida em 10 pontos. Assim, para cada deslocamento entre dois pontos não tão distantes (calculados), o Robolo de Cenoura determina por quanto tempo e em que sentido os motores das juntas rotacional e prismática devem operar.

Funcionamento: Definimos as posições dos pontos P1, P2, P3, P4, P5 e P6, definimos o ponto inicial como sendo P1. Em um loop iterativo, entre os pontos Pi e Pi+1, o robô cria 10 pontos intermediários (incluindo Pi e Pi+1), também de forma iterativa (ou seja, não são armazenados 10 pontos, mas sim determinados a cada passo) para calcular cada passo da trajetória.

Estrutura

  • Decidimos construir um robô com duas juntas: Uma junta de revolução e uma junta prismática
  • Dado que o motor a ser utilizado na junta de revolução operava a 5580rpm, em 9V, construímos uma caixa de redução que totaliza uma redução de 275:1, obtendo uma velocidade angular de 2*pi/5 rad/s.
  • Também utilizamos uma redução de 40:1 para a junta prismática, utilizando uma transmissão com parafuso sem fim e uma engrenagem de 40 dentes, que nos deu aproximadamente 40mm/s de deslocamento do lápis.

Tendo como base a ideia do software, optamos por um manipulador RP ao invés de um RR por, no início do projeto, acreditarmos que o controle do robô seria mais fácil bem como a determinação do posicionamento do robô no sistema de coordenadas adotado.

Dificuldades

  • Handyboard #9 apresentou aparente defeito no armazenamento de carga da bateria
  • Acoplamento do motor a um eixo de Lego: O motor tinha um eixo de motor de DVD. Compramos um suporte de DVD (peça que encaixa no DVD e o gira) e vimos que esta não desliza sobre o eixo. Utilizando abraçadeiras, prendemos uma peça de lego ao suporte, centralizamos e encaixamos um eixo nela.
  • Detectada “folga” na junta de revolução, no dia da apresentação, que gerava instabilidade no movimento. Esta folga foi causada, principalmente, pelo alto valor da redução: um grande movimento sobre o eixo final, corresponde a um movimento ainda mínimo no eixo inicial, eixo onde é acoplado o motor.
  • Conciliação de horários dos integrantes do grupo, implicando em poucas reuniões para elaboração do trabalho.
  • Posicionamento da HandyBoard na estrutura: destacamos este erro, pois focamos fortemente a estrutura do robô e demos pouca atenção ao tamanho da Handyboard, cujo posicionamento, por isso, foi um pouco improvisado e geraria muitos problemas caso o robô se movimentasse.

Fotos do projeto

Primeira versão da junta prismática Imagem 1: Primeira versão da junta prismática

Versão final da junta prismática Imagem 2: Versão final da junta prismática

Caixa de redução para junta de revolução Imagem 4: Caixa de redução para junta de revolução

Primeira montagem Imagem 5: Primeira montagem do robô

Montagem final Imagem 6:Versão final do robô

Robolo de cenoura Imagem 7: Versão final do robô

Robolo de cenoura, com HB Imagem 8: Montagem final com a Handy Board

Vídeo

Robolo de Cenoura em operação:




Trabalho prático 2: Robótica móvel

Objetivos

Desenvolver um robô que se desloque em três trajetórias pré-definidas. Espera-se:

  • a implementação de seu controle com o conceito de malha aberta, isto é, o dispositivo atuador irá funcionar sem uma variável monitorando sua atividade e realimentando-o;
  • a execução de tarefas em paralelo: acionamento de leds durante o deslocamento;
  • o trajeto percorrido deverá ser desenhado em uma folha de papel;
  • opções de operação disponíveis em um menu na Handyboard.

Decisões de projeto

  • a rotação do motor, em função de sua alta velocidade, diversas vezes arremessou engrenagens durante o funcionamento. Para contornar essa situação, as engrenagens ligadas diretamente ao motor foram conectadas por correias. Além disso, o motor será utilizado com a alimentação a 50% da sua capacidade total. Com essa velocidade o robô consegue ser rápido o suficiente, sem prejudicar as suas estruturas.
  • o lápis usado para desenhar a trajetória do robô foi posicionado o mais próximo possível do eixo central das rodas traseiras. Isso aumenta a exatidão de onde serão desenhadas as linhas.
  • Foram utilizadas caixas que reduzem em 75x a rotação do motor.
  • para conferir mais liberdade às trajetórias curvas do robô, foi usada uma terceira roda, esférica, oposta às outras duas, com 3DoF.

Software/Algoritmo

Inspirado na metodologia adotada para o Software do Trabalho Prático 1, o software desta versão do Robolo de Cenoura se baseia na velocidade linear e a velocidade angular do robô (calculadas utilizando a rotação do eixo da roda e o raio da roda e revisadas empiricamente). Depois de definidas estas constantes, foram determinadas duas funções: função de deslocamento (Walkouglas) e função de rotação (Turnouglas). A primeira recebe via parâmetro a distância desejada (cm) e determina o tempo que os motores devem ser ligados e realiza o deslocamento. A segunda recebe o ângulo que se deseja rotacionar (rad), e calcula por quanto tempo os motores devem ser acionados, em sentido contrário um do outro, além do sentido de giro do robô (horário ou anti-horário). Com base nisso, o seguinte código é executado:

#define RETA 30.0 //distancia a ser percorrida em linha reta
#define RAIZ_DE_2 1.41421

void Retouglas() {
    Turnouglas(PI/2.0);
    Walkouglas(RETA);
    Turnouglas(PI);
    Walkouglas(RETA);
    Turnouglas(PI/2.0);
}

void Triangulouglas() {
    Walkouglas(RETA);
    Turnouglas(PI/2.0 + PI/4.0);
    Walkouglas(RETA * RAIZ_DE_2);
    Turnouglas(PI/2.0 + PI/4.0);
    Walkouglas(RETA);
    Turnouglas(PI/2.0);
}

void Quadradouglas(){
    int i;
    for (i = 0; i < 4; i = i + 1) {
        Walkouglas(RETA);
        Turnouglas(PI/2.0);
    }
}

P.S.: Em outro arquivo, PI está definido como 3,14159.

Dificuldades

  • Conciliação de horários dos integrantes do grupo, implicando em poucas reuniões para elaboração do trabalho.
  • A restrição de peças é sempre um fator importante nas dificuldades de montagem do robô. A montagem das caixas de redução, bem como a garantia do giro simétrico dos motores foi uma dificuldade muito encontrada por nós durante a montagem do robô.

Experimentos

Foram realizados alguns testes para modelar o funcionamento do motor, tendo em vista que o controle do funcionamento dele é em malha aberta, ou seja, não envolve o uso de sensores. Para medir a velocidade linear de movimentação do robô a determinadas tensões, foram medidas as distâncias percorridas em 5 segundos para o motor funcionando a 20% da potencia máxima e a 50% da potência máxima.

Os gráficos acima representam nos pontos os valores medidos. Os traços vermelhos superior e inferior representam os máximos e mínimos medidos, e o traço azul dentro desse intervalo indica o valor médio. Para obter um valor específico para as velocidades, utilizamos o valor médio, e a incerteza da velocidade é o desvio padrão.

A conclusão que chegamos é que as velocidades lineares do motor são:

Para o motor operando a 20% da capacidade: V = 8,19 +- 0,11 cm/s

Para o motor operando a 50% da capacidade: V = 1,78 +- 0,16 cm/s

Para a velocidade angular do motor, tentamos medir a 20% também, contudo a uma potencia mais baixa o robô não girou corretamente. Como o ponto de operação foi definido para a 50% da capacidade, fizemos o teste da velocidade angular para essa potência. Foram medidos os tempos necessários para que o robô girasse 90 graus. Em posse desses valores, dividimos o ângulo pi/2 pelos tempos necessários em segundos para obter as medidas de velocidades angulares.

O gráfico acima representa nos pontos os valores medidos. Os traços vermelhos superior e inferior representam os máximos e mínimos medidos, e o traço azul dentro desse intervalo indica o valor médio. Para obter um valor específico para as velocidades, utilizamos o valor médio, e a incerteza da velocidade é o desvio padrão.

O valor da velocidade angular obtido para os motores operando a 50% da capacidade foi:

W = 0,4893 +- 0,0197 rad/s

Imagens / Vídeos do robô

Estágio intermediário de desenvolvimento do robô

Estágio intermediário de desenvolvimento do robô

Estágio intermediário de desenvolvimento do robô

Caixa de redução




Trabalho prático 3: Sensores

Objetivos

Construir um robô que atue no ambiente de acordo com a leitura de seus sensores. Espera-se que o robô:

  • percorra uma trajetória seguindo linhas pretas sobre o chão;
  • identifique blocos de isopor de múltiplas cores;

Decisões de projeto

  • Montagem de sensor óptico-reflexivo: sensor pronto não encontrado
  • Sensores usados no line following posicionados próximos ao eixo das rodas
  • Posicionamento do sensor na parte dianteira do robô, que identifica as cores dos blocos aproximando-se deles
  • sensor embutido entre peças, de modo a diminuir influência da luz ambiente no sensor

Dificuldades

  • Conciliação de horários dos integrantes do grupo, implicando em poucas reuniões para elaboração do trabalho.
  • Tratamento os valores lidos pelo sensor na memória da Handyboard, pois os valores numéricos terminavam com outros caracteres não numéricos (ex.: 199E, 28Ã).
  • Incerteza de dados do sensor LDR

Imagens / Vídeos do robô

Sensor LDR + LEDs (montagem para identificação de blocos coloridos)

Sensor LDR + LEDs (montagem para identificação de blocos coloridos)

Posicionamento do sensor óptico (montagem intermediária)

Posicionamento do sensor óptico (montagem intermediária)


Trabalho prático 4: Sensores

Objetivos

Desenvolvimento de odometria básica (shaft-encoding) e familiarização com técnicas básicás de controle.

Decisões de projeto

  • Instalação de dois sensores break-beam para implementação da odometria básica
  • Uso de um disco de seis furos em cada sensor break-beam para medição de odometria
  • Construção de sensores LDR diferenciais utilizando filtros polarizados para identificar para que lado do campo o robô está virado.
  • O sensor LDR com LEDs na parte frontal do robô, construído na etapa anterior, foi mantido

Dificuldades

  • Regular o sensor diferencial para identificar o lado do campo
  • Regular a odometria de forma correta para o robô andar em linha reta
  • Conciliação de horários dos integrantes do grupo, implicando em poucas reuniões para elaboração do trabalho.

Imagens / Vídeos do robô

Sensores LDR com filtro polarizado

Sensores LDR com filtro polarizado

Parte traseira dos sensores LDR com filtro polarizado

Parte traseira dos sensores LDR com filtro polarizado

Canaleta para organização dos fios

Canaleta para organização dos fios

Break beam para shaft encoding

Break beam para shaft encoding

Trabalho Final: Robô Caça-Aedes

Introdução

O trabalho final da disciplina “Introdução à Robótica” teve como um tema atual: O mosquito Aedes Aegypti. Esse mosquito, que é responsável pela transmissão do vírus Zika, da febre Chicungunya, da Dengue e da Febre Amarela foi tema de diversos documentários durante esse ano, e portanto, serviu como a motivação para o trabalho final da disciplina.

Objetivos e Regras

Essencialmente, o objetivo do robô é recolher material. Para identificar os materiais de maior valor, o robô deve utilizar uma identificação por cores. Para iniciar sua tarefa, o robô deve aguardar o acendimento da luz na base, e após essa etapa, ele tem 60 segundos para levar o maior numero de blocos até a base, ou afixá-los em sua estrutura.

O campo dispõe de linhas marcadoras no chão e luzes polarizadas para localização, e blocos de diferentes cores distribuidos sobre o campo. O bloco preto trata de material contaminado, isso significa que ele não deve ser levado para a base, sob pena de perda de pontos na competição.

Os robôs tem que estar contidos, no máximo, em um cubo de aresta 30cm, ser totalmente autônomo e controlado apenas pelo controlador escolhido pelos grupos.

Decisões de Projeto

A estratégia escolhida para a busca dos blocos foi seguir a linha até se encontre algum dos blocos, e depois deslocá-lo para a base. Os equipamentos utilizados para isso foram:

  • Sensor LDR + 3 leds para identificação de cores dos blocos
  • Dois sensores LDR com lentes polarizadoras (orientação do robô a partir de luzes polarizadas)
  • Uma roda esférica e duas motorizadas; em cada roda motorizada, um break beam para shaft encoders
  • Dois sensores óticos para identificação das linhas na superfície

Estrutura

Foram realizados ajustes estruturais para que o chassi ficasse mais firme.

Figura::Chassi do robô na montagem final

A torre onde se encontram os LDR's com lentes polarizadoras foi reduzida, a fim de diminuir o peso do robô, Além disso boa parte da estrutura foi reduzida para tornar o robô mais leve e, portanto, mais eficiente.

Figura:: Diminuição no tamanho da estrutura do robô

Figura:: Robô em versão final

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki