You are on page 1of 48

CURSO DE ENGENHARIA DA COMPUTAÇÃO

JOÃO PAULO DE LIMA SARAIVA JULYANA DA ROCHA MARANHÃO THIAGO LUIZ ALVES LISTO

SISTEMA DE CONTROLE DE BRAÇO MECÂNICO AUTOMATIZADO

BELÉM-PA 2008 INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA CURSO DE ENGENHARIA DA COMPUTAÇÃO

JOÃO PAULO DE LIMA SARAIVA JULYANA DA ROCHA MARANHÃO THIAGO LUIZ ALVES LISTO

SISTEMA DE CONTROLE DE BRAÇO MECÂNICO AUTOMATIZADO

Trabalho de Monografia. Apresentado as disciplinas: Automação, Microcontroladores e Microprocessadores, Banco de Dados, Engenharia de Software, Sistema de Comunicação como requisito de 2ª avaliação.

Orientador (a) Prof. Msc. Márcio Nazareno de Araújo Moscoso

BELÉM-PA 2008 INSTITUTO DE ESTUDOS SUPERIORES DA AMAZÔNIA CURSO DE ENGENHARIA DA COMPUTAÇÃO

JOÃO PAULO DE LIMA SARAIVA

JULYANA DA ROCHA MARANHÃO THIAGO LUIZ ALVES LISTO

SISTEMA DE CONTROLE DE BRAÇO MECÂNICO AUTOMATIZADO
Esta Monografia foi julgada adequada para a obtenção da aprovação na disciplina de projeto de engenharia, do 3ºano da Engenharia de Computação, e aprovada na sua forma final pelo Instituto de Estudos Superiores da Amazônia DATA: ____/____/____ CONCEITO: ______ ______________________________________, Prof. Msc. Márcio Nazareno de Araújo Moscoso Orientador – IESAM __________________________________________________ Prof. Avaliador - IESAM

BELÉM-PA

2008 AGRADECIMENTO

Agradeço à Deus por ter me iluminado e dado força para a realização e conclusão deste trabalho. Sou muito grato ao meu orientador Prof. Dr. Márcio Nazareno de Araújo Moscoso pela orientação, esforço, apoio, incentivo e principalmente paciência. Ao Prof. Dr Dionne Cavalcante Monteiro que foi o nosso primeiro orientador, que nos ajudo a consolidar todas as idéias de nosso projeto. Ao Aldo José de Oliveira Barbosa, que me deu bastante apoio nos momentos inicias deste trabalho pelas discussões e dicas sobre o trabalho. E à todas as pessoas que contribuíram direta ou indiretamente para a realização deste trabalho.

RESUMO Esta projeto consiste na construção de um braço robótico e de um Software de controle que tem como finalidade o auxilio em trabalhos perigosos. O sistema é formado por um braço robótico articulado com três graus de liberdade, de juntas rotativas, acionamento direto por motores dc com redução, uma garra com dois dedos e de um programa em Java, em que o usuário fará o controle do braço. A abordagem utilizada na concepção do software será desenvolvido a partir do conceito de movimento cinemático.

PALAVRAS - CHAVE: Braço robótico, Software, Java, Movimento cinemático.

ABSTRACT This project consists in building a robotic arm and a control software that is intended to help in hazardous work. The system consists of an articulated robotic arm with three degrees of freedom, rotary joints, drive straight by dc motors with reduction, a clamshell with two fingers and a program in Java, where the user will control the arm. The approach used in designing the software will build on the concept of kinematic motion.

WORD KEY: Robot arm, Software, Movement kinematics.

LISTAS DE FIGURAS Figura 1: esquema de notação de elos e juntas num braço mecânico ilustrativo......................12 Figura 2: Seqüência de elos numa junta de um braço robótico................................................13 Figura 3: Braço robótico...........................................................................................................13 Figura 4: Tipo de junta empregada no robô..............................................................................13 Figura 5: Representação esquemática de juntas........................................................................14 Figura 6: Duas configurações distintas com movimentação idêntica: TVR e VRR.................14 Figura 7: braço com um (à esquerda) e dois graus de liberdade (à direita)..............................15 Figura 8: movimentos de um punho com 3gl...........................................................................16 Figura 9: Configuração de um punho TRT na forma compacta...............................................17 Figura 10: Robô articulado ou revoluto....................................................................................18 Figura 11: modelo de garras de dois dedos...............................................................................19 Figura 12: Volume de trabalho teórico de um robô cilíndrico..................................................20 Figura 13: volume (área) útil do manipulador RS40B. (Fonte:staubli robotics)......................21 Figura 14: Volume de manipulador KR30HA produzido pela Kuka Robotics. ......................21 Figura 15: Diagrama de blocos do controle em malha fechada................................................22 Figura 16: Deslocamento angular de um braço com 2GL num plano......................................24 Figura 17: Exemplo de Braço Robótico....................................................................................25 Figura 18: Acrílico....................................................................................................................25 Figura 19: PVC.........................................................................................................................25 Figura 20: Rolamento Internamente(eliminar).........................................................................26 Figura 21: Rolamento................................................................................................................26 Figura 22: Diagrama esquemático do robô...............................................................................27 Figura 23: circuito da ponte h...................................................................................................27 Figura 24: Motor.......................................................................................................................28 Figura 25: Pic............................................................................................................................28 Figura 26: Pic............................................................................................................................29 Figura 27: porta DB9 e microcontrolador max232...................................................................30 Figura 28: circuito da comunicaçao serial................................................................................30 Figura 29: tela do programa em java........................................................................................31

SUMÁRIO 1 INTRODUÇÃO......................................................................................................................9 1.1 OBJETIVOS.....................................................................................................................9 1.2 JUSTIFICATIVA .............................................................................................................9 2 ROBÓTICA..........................................................................................................................11 2.1 INTRODUÇÃO..............................................................................................................11 2.2 O QUE É ROBÓTICA....................................................................................................12 2.3 ANATOMIA DOS BRAÇOS MECÂNICOS................................................................12 2.4 GRAU DE LIBERDADE...............................................................................................15 2.5.1 ÓRGÃO TERMINAL............................................................................................18 2.6 SISTEMAS DE ACIONAMENTO................................................................................19 2.6.1 Servo-motores.........................................................................................................19 2.7 VOLUME DE TRABALHO..........................................................................................19 2.8 SISTEMA DE CONTROLE...........................................................................................21 2.9 DINÂMICA DO BRAÇO ROBÓTICO.........................................................................22 2.9.1 Precisão dos movimentos.......................................................................................23 2.9.2 Precisão cartesiana em juntas robóticas..............................................................23 3 METODOLOGIA................................................................................................................25 3.1 CARACTERÍSTICAS TÉCNICAS................................................................................26 3.2 O PROJETO MECÂNICO.............................................................................................26 3.3 O ACIONAMENTO.......................................................................................................27 3.3.1 Circuito...................................................................................................................27 3.4 A COMUNICAÇÃO COM O COMPUTADOR............................................................29 3.4.1 Circuito...................................................................................................................29 3.5 O SOFTWARE DE CONTROLE...................................................................................30 3.6 RESULTADOS...............................................................................................................31 4 CONCLUSÃO.....................................................................................................................32 REFERÊNCIA........................................................................................................................33 ANEXOS..................................................................................................................................34

9

1 INTRODUÇÃO

O projeto consiste na construção de um manipulador articulado com 3 graus de liberdade e de um programa que controla seus movimentos, que possuirá no seu órgão terminal um suporte que podera garra. Através de um sistema de comunicação, o programa guarda em sua memória o detalhe do percurso que o braço seguirá. Quando o programa está rodando, o computador envia sinais ativando motores que movem o braço e o atuador no final dele.

1.1 OBJETIVOS Objetivo geral Utilizar um software de computador para controlar um manipulador robótico articulado, 3 graus de liberdade, com juntas do tipo rotacional e no seu órgão terminal será utilizado uma garra para que possa pegar pequenos objetos. Objetivos específicos • • • Construir o braço robótico utilizando peças em acrílico e alumínio. Implementar um sistema de software para o controle do posicionamento do manipulador. Testar seus movimentos.

1.2 JUSTIFICATIVA

O objetivo de se substituir o ser humano em tarefas em que ele não poderia realizar, por causa de suas próprias limitações físicas, ou por envolverem condições desagradáveis ou extremas. Devido a essa necessidade que o no projeto consiste na construção de um braço robótico controlado pelo PC usando porta serial para esse controle. A utilização do braço robótico contribui em vários fatores como:

10

Fatores técnicos: Flexibilidade na gama de produtos fabricados, incremento da precisão, força, rapidez, uniformidade e suporte a ambientes hostis, incremento dos índices de qualidade e de peças rejeitadas. Fatores econômicos: Utilização eficiente de unidades de produção intensivo aumento de produtividade (inexistência de interrupções, etc.), Redução do tempo de preparação da fabricação. Fatores sociológicos: Redução do número de acidentes, afastamento do ser humano de locais perigosos para a saúde, Redução de horários de trabalho, aumento do poder de compra.

11

2 ROBÓTICA 2.1 INTRODUÇÃO

Muitos anos atrás, os robôs faziam parte apenas da ficção científica, fruto da imaginação do homem. No início dos anos 60, os primeiros robôs começaram a ser usadas com o objetivo de substituir o homem em tarefas que ele não podia realizar por envolverem condições desagradáveis, tipicamente contendo altos níveis de: calor; ruído; gases tóxicos; esforço físico extremo; trabalhos monótonos, "chatos". Nos últimos 20 anos, as tendências que garantem a evolução dos robôs são: o constante aumento dos níveis salariais dos empregados; o extraordinário avanço tecnológico no ramo de computadores, que induz à redução dos preços do robô e uma significativa melhoria em seu desempenho. A palavra robô (“robot”) tem origem da palavra tcheca robotnik, que significa servo. O termo robô foi utilizado inicialmente por Karel Capek em 1923, nesta época a idéia de um "homem mecânico" parecia vir de alguma obra de ficção. (SALANT ,90) O grande escritor americano de ficção científica Isaac Asimov estabeleceu quatro leis muito simples para a robótica: 1ª lei: "Um robô não pode ferir um ser humano ou, permanecendo passivo, deixar um ser humano exposto ao perigo". 2ª lei: "O robô deve obedecer às ordens dadas pelos seres humanos, exceto se tais ordens estiverem em contradição com a primeira lei". 3ª lei: "Um robô deve proteger sua existência na medida em que essa proteção não estiver em contradição com a primeira e a segunda lei". 4ª lei: "Um robô não pode causar mal à humanidade nem permitir que ela própria o faça". A quarta e última lei foi escrita por Asimov em 1984. (SALANT ,90) A idéia de se construir robôs começou a tomar força no início do século XX com a necessidade de aumentar a produtividade e melhorar a qualidade dos produtos. É nesta época que o robô industrial encontrou suas primeiras aplicações. Atualmente devido aos inúmeros recursos que os sistemas de microcomputadores, os atuadores e os sensores nos oferece, a robótica atravessa uma época de contínuo crescimento que permitirá, em um curto espaço de tempo, o desenvolvimento de robôs inteligentes fazendo assim com que a ficção do homem antigo torne-se a realidade do homem atual.

12

2.2 O QUE É ROBÓTICA

Podemos definir como robótica o controle de mecanismos electro-electrônicos através de um computador, transformando-o em uma máquina capaz de interagir com o meio ambiente e executar ações decididas por um programa criado pelo programador a partir destas interações. (AMI,93) Podemos exemplificar o uso da robótica em diversas áreas de conhecimento. Na engenharia temos os robôs que mergulham a grandes profundidades para auxiliar em reparos nas plataformas de petróleo; na medicina, os robôs já auxiliam as cirurgias de alto risco. Outras aplicações podem ser menos percebidas, tal como a impressora que também é um robô. (SALANT , 1990).

2.3 ANATOMIA DOS BRAÇOS MECÂNICOS

O braço robótico (GROOVER, 1988) é composto pelo braço e pulso. O braço consiste de elementos denominados elos unidos por juntas de movimento relativo, onde são acoplados os acionadores para realizarem estes movimentos individualmente, dotados de capacidade sensorial, e instruídos por um sistema de controle. O braço é fixado à base por um lado e ao punho pelo outro. O punho consiste de várias juntas próximas entre si, que permitem a orientação do órgão terminal nas posições que correspondem à tarefa a ser realizada. Na extremidade do punho existe um órgão terminal (mão ou ferramenta) destinada a realizar a tarefa exigida pela aplicação. A Figura 1 mostra esquematicamente uma seqüência de elos e juntas de um braço robótico. Nos braços reais, a identificação dos elos e juntas nem sempre é fácil, em virtude da estrutura e de peças que cobrem as juntas para protegê-las no ambiente de trabalho.

13

Figura 1: esquema de notação de elos e juntas num braço mecânico ilustrativo.

Numa junta qualquer, o elo que estiver mais próximo da base e denominado elo de entrada. O elo de saída e aquele mais próximo do órgão terminal, como ilustrado na Figura2.

Figura2: Seqüência de elos numa junta de um braço robótico.

A Figura 3 mostra um braço robótico industrial, com todas as suas partes.

Figura 3: Braço robótico

2.4 JUNTAS As juntas utilizada em nosso trabalho é do tipo rotacional. Onde sua função é descritas a seguir, e na Figura 4 podem ser visualizadas. • A junta rotacional: Gira em torno de uma linha imaginaria estacionaria chamada de eixo de rotação. Ela gira como uma cadeira giratória e abrem e fecham como uma dobradiça;

14

Figura 4: Tipo de junta empregada no robô.

Robôs industriais utilizam em geral apenas juntas rotativas e prismáticas. As juntas rotativas podem ainda ser classificadas de acordo com as direções dos elos de entrada e de saída em relação ao eixo de rotação. Tem-se assim as seguintes juntas rotativas: • Rotativa de torção ou torcional T: Os elos de entrada e de saída tem a mesma direção do eixo de rotação da junta. • Rotativa rotacional R: Os elos de entrada e de saída são perpendiculares ao eixo de rotação da junta. • Rotativa revolvente V: O elo de entrada possui a mesma direção do eixo de rotação, mas o elo de saída e perpendicular a este. A Figura 5 mostra uma representação esquemática destas juntas, e também da junta prismática.

Figura 5: Representação esquemática de juntas

Robôs industriais adotam com freqüência soluções que tornam o reconhecimento das juntas mais complexo. De fato, dependendo da forma com que os elos são construídos numa representação esquemática, a nomenclatura do braço pode ser ambígua. A Figura 6 ilustra um mesmo manipulador representado de duas formas distintas. A movimentação e igual em ambos os esquemas. Este braço poderia ser denominado, indistintamente, de TVR ou VRR. Para tornar a identificação única deve-se buscar uma geometria onde os elos sejam formados por, no maximo, dois segmentos lineares. Neste caso, a configuração VRR seria a correta.

15

Figura 6: Duas configurações distintas com movimentação idêntica: TVR e VRR.

2.4 GRAU DE LIBERDADE

Os graus de liberdade (GL) determinam os movimentos do braço robótico no espaço bidimensional ou tridimensional. Cada junta define um ou dois graus de liberdade, e, assim, o número de graus de liberdade do robô é igual à somatória dos graus de liberdade de suas juntas. Por exemplo, quando o movimento relativo ocorre em um único eixo, a junta tem um grau de liberdade; caso o movimento se dê em mais de um eixo, a junta tem dois graus de liberdade, conforme é apresentado na Figura 7. Observa-se que quanto maior a quantidade de graus de liberdade, mais complicadas são a cinemática, a dinâmica e o controle do manipulador. O número de graus de liberdade de um manipulador está associado ao número de variáveis posicionais independentes que permitem definir a posição de todas as partes de forma unívoca.

Figura 7:.braço com um (à esquerda) e dois graus de liberdade (à direita).

Os movimentos robóticos podem ser separados em movimentos do braço e do punho. Em geral os braços são dotados de 3 acionadores e uma configuração 3GL, numa configuração que permita que o órgão terminal alcance um ponto qualquer dentro de um espaço limitado ao redor do braço. Pode-se identificar 3 movimentos independentes num braço qualquer, conforme descritas a seguir, e mostradas na Figura 8:

16

Vertical transversal (Pitch ou arfagem): movimento vertical do punho para cima ou para baixo Rotacional transversal (Yaw ou guinada): movimento do punho horizontalmente para a esquerda ou para a direita. Radial transversal (Roll ou rolamento): movimento de aproximação ou afastamento do punho

Figura 8: movimentos de um punho com 3gl.

2.5 CONFIGURAÇÃO DO ROBÔ A configuração física dos robôs (GROOVER, 1988) esta relacionada com os tipos de juntas que ele possui. Cada configuração pode ser representada por um esquema de notação de letras, como visto anteriormente. Considera-se primeiro os graus de liberdade mais próximos da base, ou seja, as juntas do corpo, do braço e posteriormente do punho. A notação de juntas rotativas, prismáticas e de torção. Como visto anteriormente, um braço mecânico e formado pela base, braço e punho. O braço e ligado a base e esta e fixada ao chão, a parede ou ao teto. E o braço que efetua os movimentos e posiciona o punho. O punho e dotado de movimentos destinados a orientar (apontar) o órgão terminal. O órgão terminal executa a ação, mas não faz parte da anatomia do braço robótico, pois depende da aplicação a ser exercida pelo braço. A movimentação do braço e a orientação do punho são realizadas por juntas, que são articulações providas de motores. Em resumo, a base sustenta o corpo, que movimenta o braço, que posiciona o punho, que orienta o órgão terminal, que executa a ação. Em geral utilizam-se 3 juntas para o braço e de 2 a 3 juntas para o punho. Os elos do braço são de grande tamanho, para permitir um longo alcance. Por outro lado, os elos do punho são pequenos, e, as vezes, de comprimento nulo, para que o órgão terminal desloque-se o mínimo possível durante a orientação do punho. Adota-se uma nomenclatura para os manipuladores com base nos tipos de juntas utilizadas na cadeia de elos, que parte da base em direção ao órgão terminal. Assim um manipulador TRR teria a primeira junta (da base) torcional, e as duas seguintes seriam rotacionais. O punho

17

segue a mesma notação, porem separa-se o corpo do punho por dois pontos “:”, por exemplo, TRR:RR. As configurações típicas para o braço e o punho de robôs industriais são apresentadas nas Tabelas 1 e 2. A Figura 9 mostra a configuração de um punho TRT. Os braços industriais mais comuns descritos nas seções seguintes. Tabela 1: Esquema de notação para designar configurações de robôs

Tabela 2: Esquema de notação para designar configurações do pulso

Figura 9: Configuração de um punho TRT na forma compacta.

Onde no projeto foi utilizado a configuração articulada ou revoluto conforme descriçãoabaixo:

2.5.1 Robô articulado ou revoluto Estes tipos de robôs (GROOVER, 1988, Adade Filho, 1992), possuem 3 juntas rotativas, conforme ilustrada a Figura 10. Eles são os mais usados nas industrias, por terem uma configuração semelhante ao do braço humano, (braço, antebraço e pulso). O pulso e unido a extremidade do antebraço, o que propicia juntas adicionais para orientação do órgão terminal. Este modelo de configuração e o mais versátil dos manipuladores, pois assegura maiores movimentos dentro de um espaço compacto. Os braços revolutos podem ser de dois tipos: cadeia aberta ou cadeia parcialmente fechada. Nos primeiros pode-se distinguir

18

facilmente a seqüência natural formada por elo-junta, da base ate o punho. Nos braços de cadeia parcialmente fechada o atuador da terceira junta efetua o movimento desta por meio de elos e articulações não motorizadas adicionais.

Figura 10: Robô articulado ou revoluto.

2.5.1 ÓRGÃO TERMINAL
Na robótica, órgão terminal (GROOVER,1988) é usado para descrever a mão ou ferramenta que esta conectada ao pulso, como por exemplo, uma pistola de solda, garras, pulverizadores de tintas, entre outros. O órgão terminal é o responsável por realizar a manipulação de objetos em diferentes tamanhos, formas e materiais, porém esta manipulação depende da aplicação ao qual se destina. É valido ressaltar que os órgãos terminais requerem cuidados ao serem projetados, pois é necessário controlar a força que está sendo aplicada num objeto. Para isso, alguns órgãos terminais são dotados de sensores que fornecem informações sobre os objetos. Existe uma grande variedade de modelos de garras que podem ser utilizadas em diversas aplicações como por exemplos: • • • Garra de dois dedos; Garra pra objetos cilíndricos; Garra articulada. Onde no projeto foi utilizado a Garra de dois dedos conforme descrição abaixo: A garra de dois dedos, como pode ser visualizada na figura 11, é um modelo simples e com movimentos paralelos ou rotacionais. Este modelo de garra proporciona pouca versatilidade na manipulação dos objetos, pois existe limitação na abertura dos dedos. Desta forma a dimensão dos objetos não pode exceder esta abertura.

19

Figura 11: modelo de garras de dois dedos

2.6 SISTEMAS DE ACIONAMENTO

Os acionadores (GROOVER, 1988) são dispositivos responsáveis pelo movimento das articulações e do desempenho dinâmico do robô. Esses dispositivos podem ser elétricos, hidráulicos ou pneumáticos, cada um com suas características. A seguir será descrito o funcionamento do dispositivo utilizado no projeto.

2.6.1 Servo-motores

Servo-motores são compostos por motores DC e um redutor de velocidades, junto com um sensor de posição e um sistema de controle re-alimentado. Em outras palavras, os servomotores podem ser considerados como sendo motores comandados em posição (angular ou linear), já que, do ponto de vista de quem os utiliza, o controle interno em malha fechada é irrelevante. Os servo-motores são pequenos, com ampla variação de torques. O mecanismo de posicionamento ajusta a posição angular por meio de um sinal codificado que lhe é enviado. Enquanto esse código estiver na entrada, o servo irá manter a sua posição angular. Em geral o sinal é do tipo PWM, ou seja, a posição angular irá depender da largura do pulso enviado.

2.7 VOLUME DE TRABALHO

O volume de trabalho (GROOVER, 1988) é o termo que se refere ao espaço que um determinado braço consegue posicionar seu pulso. Este volume, em geral, é estabelecido conforme os limites impostos pelo projeto estrutural do braço, ou seja, a configuração física

20

do braço robótico, os limites dos movimentos das juntas e o tamanho dos componentes do corpo, braço e pulso. Por exemplo, o volume de trabalho de um braço esférico (TRL) seria, teoricamente, o volume da esfera cujo raio é o comprimento do braço esticado. Braços robóticos possuem volumes que dependem, é claro, da geometria e dos limites impostos ao movimento por motivos estruturais ou de controle. Na maior parte deles, o volume é altamente dependente de detalhes construtivos e raramente aparenta ou aproxima-se do volume teórico. Por exemplo, o volume de um manipulador cilíndrico deveria ser um cilindro, como mostrado na Figura 12, mas em geral não é. Em resumo, o volume de trabalho de um manipulador depende, basicamente, da configuração do braço, dos comprimentos dos elos (braço e punho) e de limites e restrições construtivas à movimentação das juntas.

Figura 12: Volume de trabalho teórico de um robô cilíndrico.

Os volumes de trabalho são medidos em unidades volumétricas, porém isto pouco ou nada contribui na seleção de um braço para determinada aplicação. Muito mais importante do que conhecer que o volume de um braço é de 1832 litros seria saber se ele consegue ou não atingir um ponto afastado de 840 mm do seu eixo vertical, por exemplo. Em virtude deste aspecto, os fabricantes de manipuladores robóticos fornecem o volume de trabalho em termos do alcance do braço em um ou mais planos. A Figura 13 mostra a área de trabalho de um braço SCARA em vista superior, produzido pela Stäubli. O deslocamento da terceira junta é de 200 mm, neste braço. Braços articulados ou revolventes apresentam em geral um volume bastante complexo, pois as juntas têm movimentos limitados. A Figura 14 mostra o volume do braço KR30HA produzido pela Kuka Robotics.

21

Figura 13: volume (área) útil do manipulador RS40B. (Fonte:staubli robotics).

Figura 14: Volume de manipulador KR30HA produzido pela Kuka Robotics.

Os volumes, alcances ou áreas de trabalho devem ser expressos sem a presença do órgão terminal, já que este pode alterar significativamente tais valores, dependendo da aplicação.

2.8 SISTEMA DE CONTROLE

O sistema de controle de qualquer robô e realizado por meio de um sistema de “software” e “hardware”. Este sistema processa os sinais de entrada e converte estes sinais em uma ação ao qual foi programado. O software pode ser desenvolvido em um computador pessoal ou num microcontrolador. Neste aspecto, deve-se levar em consideração os pontos fortes e fracos de cada possibilidade. O microcontrolador reduz o custo do projeto, e rápido, dedica-se apenas ao controle do robô, porém possui limitações em relação ao tamanho do software. Já o computador pessoal possui alta taxa de processamento e maior espaço para a alocação do

22

software. Pode-se ainda aplicar uma solução mista, em que a parte mais leve do software fica no microcontrolador e a parte de maior processamento fica no computador pessoal. O sistema de hardware pode constituir, por exemplo, de motores de passos, cabos, dispositivo de entrada, sensores e amplificadores de potencia. Um dos fatores mais importantes e a utilização de sensores, pois podem ser dispositivos de um sistema de malha fechada, ou seja, consiste em verificar o estado atual do dispositivo a ser controlado e comparar essa medida com um valor predefinido. Esta comparação resultara num erro, ao qual o sistema de controle fará os ajustes necessários para que o erro seja reduzido a zero. Um esquema simples de malha fechada e apresentado em diagrama de blocos na Figura 15. Onde pretendemos adotar esse tipo de sistema de controle em nosso projeto futuramente, pois ira otimizar seu funcionamento.

Figura 15: Diagrama de blocos do controle em malha fechada.

2.9 DINÂMICA DO BRAÇO ROBÓTICO

O desempenho dinâmico do braço robótico (GROOVER, 1988) esta associado à velocidade de resposta, estabilidade e precisão. A velocidade de resposta refere-se à destreza do braço robótico ao mover-se de um lugar para outro num curto período de tempo. Desta forma, o torque existente em cada junta do braço e a aceleração em cada elo devem ser analisadas. Já a estabilidade pode ser estimada com base no tempo necessário para amortecer as oscilações que ocorrem durante o movimento de uma posição para a outra. Se a estabilidade for baixa pode-se aplicar elementos de amortecimento no braço, que melhoram a estabilidade, mas influem na velocidade de resposta. A precisão esta relacionada com a velocidade e estabilidade, pois e uma medida de erro na posição do órgão terminal. Os conceitos relacionados com a precisão são analisados a seguir.

23

2.9.1 Precisão dos movimentos

A precisão de movimento esta intrinsecamente correlacionada com três características, como segue: • Resolução espacial • Precisão • Repetibilidade. A resolução espacial depende diretamente do controle de sistema e das inexatidões mecânicas do braço robótico. O sistema de controle e o responsável por controlar todos os incrementos individuais das articulações. Já as inexatidões relacionam-se com a qualidade dos componentes que formam as uniões entre as articulações, como as folgas nas engrenagens, tensões nas polias, e histereses mecânicas e magnéticas, entre outros fatores. A precisão esta relacionada com a capacidade de um braço posicionar o seu pulso em um ponto marcado dentro do volume de trabalho. A precisão relaciona-se com a resolução espacial, pois a precisão depende dos incrementos que as juntas podem realizar para se movimentar e atingir um ponto determinado. Por fim, a repetibilidade esta relacionada com a capacidade do braço robótico de posicionar repetidamente seu pulso num ponto determinado. Estes movimentos podem sofrer influencias de folgas mecânicas, da flexibilidade e das limitações do sistema de controle.

2.9.2 Precisão cartesiana em juntas robóticas

Supondo-se que sejam conhecidas as precisões (ou resolução do controle) em cada uma das juntas de um braço mecânico, deseja-se saber qual será a precisão cartesiana, isto e, qual será a precisão do braço num determinado ponto de trabalho. E evidente que a precisão cartesiana depende do ponto de operação, pois os erros de juntas rotativas são mais acentuados quando o braço estiver estendido do que quando estiver recolhido. Será feita agora uma analise simples para um braço de apenas uma junta rotativa, e, a seguir, um braço composto de duas juntas rotativas movendo-se num plano. Considera-se um braço com dois graus de liberdade e duas juntas rotativas movendose num plano, como indica a figura 16. Neste braço percebe-se que as imprecisões cartesianas dependem do movimento de ambas as juntas, uma vez que tanto J1 quanto J2 movimentam a extremidade do braço (garra). O erro total será portanto composto pela soma dos erros

24

causados por cada uma das juntas. A junta J2 provoca um erro semelhante ao causado por um braço de uma única junta, visto anteriormente, de tal forma que.

Figura 16: Deslocamento angular de um braço com 2GL num plano.

Se _θ1 for também pequeno, então se pode projetar o vetor v em ambas as direções. Para se obter:

Onde r e a distancia que vai do eixo de rotação da junta J1 ate a extremidade do braço. Porem percebe-se que r senθ1 = y e que r cosθ1 = x. Alem disso, tem-se, da cinemática direta deste braço, que x = a1 cosθ1 + a2 cos(θ1 + θ2), e que y = a1 senθ1 + a2 sen(θ1 + θ2). Logo a precisão cartesiana total fica:

Onde iremos adotar esse tipo de precisão futuramente em nosso trabalha, para otimizar a precisão dos movimentos.

25

3 METODOLOGIA

Os princípios que nortearam o projeto e construção deste braço são os seguintes: • • • Robô manipulador articulado com três graus de liberdade e garra, com acionamento elétrico do tipo servo-motor, independente das juntas e controladas por computador. Programa de controle similar às interfaces de operação dos robôs industriais. Software de controle disponível para diversos sistemas operacionais. Decidiu-se iniciar a construção do protótipo a partir do modelo de um kit para construção de pequenos manipuladores robóticos, comercializado pela Lynxmotion (figura17). Este kit foi escolhido por já conter os componentes necessários à construção de um braço semelhante ao que desejávamos: material plástico, servo-motores, componentes eletrônicos para o controle dos motores e interfaceamento com computador, etc.

Figura 17: Exemplo de Braço Robótico

O projeto original do robô foi modificado para se adequar às metas definidas. A principal modificação foi a substituição dos elos em acrílico(figura18) por PVC(figura19), devido o custo ser maior em acrílico. A utilização de rolamentos de esfera(figura20,21) para que os elos de sustentação tenham maior mobilidade.

Figura 18: Acrílico

Figura 19: PVC

26

Figura 20: Rolamento Internamente(eliminar)

Figura 21: Rolamento

Um software de controle do robô foi desenvolvido com a finalidade de produzir um ambiente onde um usuário final possa interagir com o braço manipulador de forma a permitir a movimentação das juntas do robô. Esta tem o objetivo de fazer o robô executar uma tarefa ordenada pelo usuario. 3.1 CARACTERÍSTICAS TÉCNICAS

O projeto esta divido em varias partes: mecânica, acionamento, circuito, comunicação com o computador e o software de controle O protótipo devera realizar pequenas tarefas com deslocar pequenos objetos de um ponto a outro, tudo isso através de um sistema que qualquer usuário possa utilizar. A parte mecânica esta dividido em três partes a construção da garra, da base e da estrutura que consiste no braço, antebraço e pulso. 3.2 O PROJETO MECÂNICO O protótipo, construído em PVC, possui as características e dimensões indicadas na figura 22.

27

Fig. 22 Diagrama esquemático do robô

3.3 O ACIONAMENTO O robô é acionado por 3 (três) servo-motores, da pittman gm9x14. Os servo-motores são dispositivos que integram um motor CC, com uma caixa de engrenagens para redução. O sinal de referência para o servo-motor é fornecida pelo circuito em ponte H onde será feito a inversão da corrente,sendo controlado através do PIC 16F628A. 3.3.1 Circuito Ponte H

Figura 23: circuito da ponte h.

O circuito da Ponte H da figura 23 é composto por: 4 x diodos 1N4004 4 x resistores 0,5K 2 x transistores NPN BC548 2 x transistores PNP BC558 O ciruito é construído com quatro "chaves" como mostra a tabela 3 ( Q13 – Q16 ) que são acionadas. Para cada configuração das chaves o motor gira em um sentido. As chaves Q13 e Q14 assim como as chaves Q15 e Q16 estão diretamente ligadas a microcontrolador que é o responsável pelo seu acionamento consequentemente sua rotação conforme a tabela detalhada a abaixo. tabela 3 Q13/Q14 0 0 1 1 Q15/Q16 0 1 0 1 DIREÇÃO Parar Esquerda Direita Parada Brusca

28

Figura 24: Motor

Pic

Figura 25: Pic

O circuito da Ponte H é acionado pelo PIC 16F628A (figura 26) por apenas duas saídas, como o projeto é composto por vários servos motores foram utilizados 8 portas do PIC 16f628A , como mostra a figura 25 que controlara 4 ponte H como mostra a tabela 4, as portas utilizadas no programa inserido no pic foram.

Tabela 4 RA7 RA6 RB6 RB7 RB4 RB5 RB0 RB3 PIN_A7 PIN_A6 PIN_B6 PIN_B7 PIN_B4 PIN_B5 PIN_B0 PIN_B3
Ponte H_1 Ponte H_2 Ponte H_3 Ponte H_4 Figura 26: Motor

Programa No programa foi utilizado muitas Funções, que é uma técnica de programação que

29

procura otimizar o código e facilitar o entendimento do mesmo esta anexado no final da documento.. 3.4 A COMUNICAÇÃO COM O COMPUTADOR

Um computador ira controla o braço manipulador através da porta serial DB9(figura27) de comunicação. Um circuito de interfaceamento, baseado no max 232 da Microchip(figura 27), decodifica as mensagens recebidas através da porta serial e envia ao PIC, que ira gera os sinais apropriados para todos os motores. 3.4.1 Circuito MAX 232

Figura 27: porta DB9 e microcontrolador max232.

MAX232 é um circuito eletrônico que converte sinais de uma porta serial para sinais adequados para uso em circuitos microprocessados, por exemplo. O MAX232 amplifica/reduz sinais RX, TX, CTX e RTS. A discrepância de voltagem (acima de ± 12V do RS232 para 3.3V TTL) é gerada por capacitores (normalmente de 10 nF). O MAX232 é um transmissor/receptor duplo que fornece níveis de voltagem TIA/EIA-232-F de uma única fonte de tensão de 5V. Para a montagem do circuito de comunicação da figura 28 foi utilizado: 1 x MAX 232 4 x Capacitores Eletrolítico 1uF 1 x Conector DB9

30

Figura 28: circuito da comunicaçao serial

Porta Serial ----- MAX232 Transmissor da Porta serial é conectado no receptor do Max232 Receptor da Porta serial é conectado no transmissor do Max232 MAX232 ----- PIC Transmissor do MAX 232 é conectado no receptor do PIC16f628a Receptor do Max 232 é conectado no transmissor do PIC16f628a

3.5 O SOFTWARE DE CONTROLE A versão atual do software de controle permite ao usuário atuar sobre cada uma das juntas do robô. Podendo a qualquer momento realizar a listagem das portas enviar o dado correspondente ao movimento que deseja ser realizado. O programa foi desenvolvido em Java. conforme mostra figura abaixo.

31

Figura 29: tela do programa em java

O programa tem a opção de listar as portas que estão abertas e disponíveis para o uso, a tela de inserção dos comandos e o botão de enviar os dados, como mostra a figura 29, o codigo fonte serialcom.java e serialcomleitura.java esta anexado no final da documento. 3.6 RESULTADOS

O braço manipulador robótico desenvolvido satisfaz aos objetivos iniciais do projeto: possui uma estrutura compatível de movimento rápido, que permite demostrar o funcionamento de um robô manipulador industrial; é de fácil construção, possibilitando a sua reprodução em série; tem arquitetura aberta: hardware e software documentados para serem usados na pesquisa em braços manipuladores; tem software disponível para várias plataformas, que permite sua manipulação de diferentes plataformas de computação;e é de baixo custo (inferior a 300 dólares).

32

4 CONCLUSÃO

Sobre o braço robótico, podemos dizer que sua parte “estrutural” atende a proposta desejada desde o começo do trabalho, juntamente com o software ( interface ) e o sistema de controle do mesmo. Com base nisso o Projeto do braço mecânico foi concluído podendo ser trabalhado e melhorado muito mais. Dificuldades Encontradas No decorrer deste trabalho, foram encontradas algumas dificuldades: • • • H  ouve certa dificuldade em compreender o modelo cinemático principalmente pela complexidade do calculo. trabalho em acrílico, por ser caro e não dispor de recursos necessários. A  montagem do braço, devido a difícil adaptação do motor nas juntas e ao seu peso. no tempo previsto,

Sugestões para Trabalhos Futuros Após a finalização deste trabalho, é possível sugerir alguns trabalhos que podem. Complementar e melhorar o projeto:

Um novo protótipo robótico, com a utilização de servo-motor, para que tenha menor porte e seja mais fácil construir. D  esenvolver uma interface mais amigável. D  esenvolver a construção de um robô manipulador tático, construindo uma base móvel, tipo esteira, para operações de exploração, reconhecimento e desarmamento de bombas.

• •

33

REFERÊNCIA

BIANCHI, Reinaldo. Robótica. Centro Universitário da FEI. (2006). Apostila disponível em: <http://www.fei.edu.br/~rbianchi/robotica/>.Acesso 10 abr 2008. GOZZI, Giuliano. Curso Automação Industrial. Faatesp (2006). Apostila disponível em: <http://www.faatesp.edu.br/publicacoes.asp?PagePosition=1&search=cnc&mode=allwords>. Acesso 7 abr 2008. ROGERCOM, Curso C++ Porta Paralela. Pesquisa e desenvolvimento. Disponível em: <http://www.rogercom.com/Principal.htm>.Acesso 14 abr 2008. LYNXMOTION, Portal de robot kits e componentes. Disponível em: <http://www.lynxmotion.com/ViewPage.aspx? ContentCode=assembly&CategoryID=19#arms>Acesso 16 mar 2008. KERAMAS, James G. Robot Technology Fundamentals, local: delmar publiser, 1999. LUNG-WEN TSAI. Robot analysis, local: wiley, 1999. ROMANO, Vitor F. Robótica Industrial, local: edgard blucher, 2002. (GROOVER,89) GROOVER, M. P.; WEISS, M.; Nagel, R. N.; ODREY, N. G. Robótica. Tecnologia e Programação. São Paulo: McGraw-Hill,1989. (SALANT,90) SALANT, M. A. Introdução à Robótica. São Paulo: McGraw-Hill, 1990. (FU,88) Fu, K. S. Robotics: Control, Sensing, Vision and Inteligence. New York: McGrallHill, 1987.

34

ANEXOS

35

SERIALCOM.JAVA package PacoteComunicacaoSerial; import gnu.io.CommPortIdentifier; import java.util.Enumeration;

public class serialcom { protected String[] portas; protected Enumeration listadeportas; public serialcom() { listadeportas = CommPortIdentifier.getPortIdentifiers(); } public String[] obterPortas() { return portas; } protected void listarPortas() { int i= 0; portas = new String[10]; while(listadeportas.hasMoreElements()) { CommPortIdentifier ips = (CommPortIdentifier)listadeportas.nextElement(); portas[i] = ips.getName(); i++; } } public boolean PortaExiste(String comp){

36

String temp; boolean e = false; while (listadeportas.hasMoreElements()) { CommPortIdentifier ips = (CommPortIdentifier)listadeportas.nextElement(); temp = ips.getName(); if (temp.equals(comp)== true) { e = true; } } return e; } protected void ImprimePortas(){ for (int i = 0 ; i < portas.length ; i++){ if (portas[i] !=null){ System.out.print(portas[i] + " "); } } System.out.println(" "); } } SERIALCOMLEITURA.JAVA package PacoteComunicacaoSerial; import gnu.io.CommPortIdentifier; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream;

37

public class serialcomleitura implements Runnable, SerialPortEventListener { //propriedades private String Porta; public String Dadoslidos; public int nodeBytes; private int baudrate; private int timeout; private CommPortIdentifier cp; private SerialPort porta; private OutputStream saida; private InputStream entrada; private Thread threadLeitura; //indicadores private boolean IDPortaOK; //true porta EXISTE private boolean PortaOK;// true porta aberta private boolean Leitura; private boolean Escrita; //construtor default paridade : par //baudrate: 9600 bps stopbits: 2 COM 1 public serialcomleitura() { Porta = "COM1"; baudrate = 9600; timeout = 1000; }; //um Objeto ComObj é passado ao construtor //com detalhes de qual porta abrir //e informações sobre configurações public serialcomleitura( String p , int b , int t ){ this.Porta = p; this.baudrate = b; this.timeout = t; }; //habilita escrita de dados public void HabilitarEscrita(){

38

Escrita = true; Leitura = false; } //habilita leitura de dados public void HabilitarLeitura(){ Escrita = false; Leitura = true; } //Obtém o ID da PORTA public void ObterIdDaPorta(){ try { cp = CommPortIdentifier.getPortIdentifier(Porta); if ( cp == null ) { System.out.println("A " + Porta + " nao existe!" ); System.out.println("ERRO!Abortando..." ); IDPortaOK = false; System.exit(1); } IDPortaOK = true; } catch (Exception e) { System.out.println("Erro durante o procedimento. STATUS" + e ); IDPortaOK = false; System.exit(1); } } //Abre a comunicação da porta public void AbrirPorta(){ try { porta = (SerialPort)cp.open("serialcomleitura",timeout); PortaOK = true; System.out.println("Porta aberta com sucesso!"); //configurar parâmetros porta.setSerialPortParams(baudrate, SerialPort.DATABITS_8,

39

SerialPort.STOPBITS_2, SerialPort.PARITY_NONE); } catch (Exception e) { PortaOK = false; System.out.println("Erro ao abrir a porta! STATUS: " + e ); System.exit(1); } } //função que envie um bit para a porta serial public void EnviarUmaString(String msg){ if (Escrita==true) { try { saida = porta.getOutputStream(); System.out.println("FLUXO OK!"); } catch (Exception e) { System.out.println("Erro.STATUS: " + e ); } try { System.out.println("Enviando um byte para " + Porta ); System.out.println("Enviando : " + msg ); saida.write(msg.getBytes()); Thread.sleep(100); saida.flush(); } catch (Exception e) { System.out.println("Houve um erro durante o envio. "); System.out.println("STATUS: " + e ); System.exit(1); } } else { System.exit(1); } } //leitura de dados na serial public void LerDados(){

40

if (Escrita == true){ try { entrada = porta.getInputStream(); System.out.println("FLUXO OK!"); } catch (Exception e) { System.out.println("Erro.STATUS: " + e ); System.exit(1); } try { porta.addEventListener(this); System.out.println("SUCESSO. Porta aguardando..."); } catch (Exception e) { System.out.println("Erro ao criar listener: "); System.out.println("STATUS: " + e); System.exit(1); } porta.notifyOnDataAvailable(true); try { threadLeitura = new Thread(this); threadLeitura.start(); } catch (Exception e) { System.out.println("Erro ao iniciar leitura: " + e ); } } } //método RUN da thread de leitura public void run(){ try { Thread.sleep(5000); } catch (Exception e) { System.out.println("Erro. Status = " + e ); } }

41

//gerenciador de eventos de leitura na serial public void serialEvent(SerialPortEvent ev){ switch (ev.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] bufferLeitura = new byte[20]; try { while ( entrada.available() > 0 ) { nodeBytes = entrada.read(bufferLeitura); } String Dadoslidos1 = new String(bufferLeitura); if (bufferLeitura.length == 0) { System.out.println("Nada lido!"); } else if (bufferLeitura.length == 1 ){ System.out.println("Apenas um byte foi lido!"); } else { System.out.println(Dadoslidos1); } } catch (Exception e) { System.out.println("Erro durante a leitura: " + e ); } System.out.println("n.o de bytes lidos : " + nodeBytes ); break; } }

42

//função que fecha a conexão public void FecharCom(){ try { porta.close(); System.out.println("CONEXAO FECHADA>>FIM.."); } catch (Exception e) { System.out.println("ERRO AO FECHAR. STATUS: " + e ); System.exit(0); } } //Acessores public String obterPorta(){ return Porta; } public int obterBaudrate(){ return baudrate; } }

CODIGO FONTE DO PIC

43

44

45

46