89
3 Curso: Mecatrônica Módulo: II Carga Horária: Docente: Turno: Turma: Material Instrucional especialmente elaborado pelo Prof. Paulo para uso exclusivo do CETEB- CA.

robotica_mt

Embed Size (px)

DESCRIPTION

robótica

Citation preview

Page 1: robotica_mt

3

Curso: Mecatrônica Módulo: II Carga Horária: Docente: Turno: Turma:

Material Instrucional especialmente elaborado pelo Prof. Paulo para uso exclusivo do CETEB-CA.

Page 2: robotica_mt

4

SUMÁRIO CONCEITOS BÁSICOS 6 INTRODUÇÃO 6 O QUE É ROBÓTICA ? 7 OPERAÇÃO 8 ARQUITETURA DE UM MANIPULADOR ROBÓTICO 9 O MANIPULADOR 10 RESOLUÇÃO, REPETIBILIDADE, PRECISÃO 16 DESCRIÇÃO DE POSIÇÃO E ORIENTAÇÃO 16 CINEMÁTICA 17 VELOCIDADES, FORÇAS ESTÁTICAS, SINGULARIDADES 18 ESTÁTICA 19 DINÂMICA 19 GERAÇÃO DE TRAJETÓRIA 19 SEGURANÇA 22 APLICAÇÕES INDUSTRIAIS DE ROBÔS 23 SOLDAGEM 23 APLICAÇÃO DE FLUIDOS 24 MONTAGEM 25 PROGRAMAÇÃO E SIMULAÇÃO DE ROBÔS 25 PROGRAMAÇÃO POR APRENDIZAGEM 27 PROGRAMAÇÃO OFF-LINE 29 ROBÔ 30 MODELO E SISTEMA DE PROGRAMAÇÃO 30 LINGUAGENS DE PROGRAMAÇÃO DE ROBÔS INDUSTRIAIS 30 SIMULAÇÃO DE ROBÔS 32 SIMULADORES COMERCIAIS 33 SOFTWARES EDUCACIONAIS 33 EXEMPLOS 34 REFERÊNCIAS BIBLIOGRÁFICAS 34 ANEXO I 35 O ROBÔ DIDÁTICO - SCORBOT - ER III 35 SEGURANÇA COM O ROBÔ DIDÁTICO 36 COMPONENTES DO ROBÔ DIDÁTICO SCORBOT - ER III 37 O BRAÇO MECÂNICO 37 CÁLCULO DA TAXA DE TRANSMISSÃO 38 TRANSMISSÕES DO SCORBOT-ER III 40 O CONTROLADOR 43 INTRODUÇÃO AOS TIPOS DE CONTROLE 44 ENCODERS ÓTICOS 46 ENTRADAS E SAÍDAS 49 A COMUNICAÇÃO ENTRE O ROBÔ E SEU AMBIENTE. 49 PONTO DE INICIALIZAÇÃO DO ROBÔ (ROBOT HOME) 52 UTILIZANDO SCORBASE PARA OPERAR O ROBÔ 53 PRINCÍPIOS DE OPERAÇÃO 53 MOVENDO AS ARTICULAÇÕES DO ROBÔ 55 RUN PROGRAM MENU 59 USO DA LINGUAGEM SCORBASE NÍVEL 1 59 MENU DE MANIPULAÇÃO DE PROGRAMAS (SALVAR, CARREGAR E DELETAR) 62 EXECUTANDO PROGRAMAS VIA RUN PROGRAM MENU 62 USOS DO SCORBASE NÍVEL 2 62

Page 3: robotica_mt

5

ESCRITA DE PROGRAMAS VIA MENU EDITOR DE PROGRAMA (OFF-LINE) 63 USOS DO SCORBASE NÍVEL 3 64 "HARD HOME" 65 ESCREVENDO UM PROGRAMA PARA LOCALIZAÇÃO 65 ANEXO II 70 ELEMENTOS DE HARDWARE 70 MOTOR DE PASSO 70 SENSORES 75 O QUE É SENSOR CA? 82 O QUE É SENSOR CA / CC? 82 SENSORES CA MODELOS WA E WF: 82 SENSORES CA MODELOS W3A E W3F: 82 SENSORES CA / CC MODELOS UA E UF: 82 SENSORES CA / CC MODELOS UZA E UZF: 83 EXERCÍCIOS 87

Page 4: robotica_mt

6

Conceitos Básicos

Introdução Robôs são uma idéia antiga. Por volta de 3500 A.C. entidades da mitologia grega como Efestus e Pigmalion, incorporam a idéia de robos inteligentes. Em 270 A.C. Ctesibius da Grécia construiu relógios d’água com figuras móveis. Entre 1452-1419 Leonardo Da Vinci imaginou robôs humanóides para proteger castelos (figura 1), mas que por falta de tecnologia apropriada não chegaram a ser construídos. A palavra robô vem da palavra tcheca "Robota", que significa trabalho escravo. Ela foi utilizada pela primeira vez em uma peça teatral de Karel Capek (vide figura 2). A peça de 1921 era chamada "Robôs Universais de Russum"e tratava sobre a hoje clássica estória de robôs que rebelam-se contra a humanidade. Nos anos 40 Isaac Asimov cunhou a palavra robótica, para designar o campo científico que aborda os robôs. Desde então, muitos filmes e programas de televisão (figura 3) tem feito as pessoas imaginarem robôs como sendo máquinas humanóides dotadas de elevada inteligência sempre prontas para rebelar-se contra a humanidade.

Fig 1 – Robo Humanóide e desenhos de DaVinci

Figura 2- Cartaz e o robo da peça de Karel Capek.

Existem várias definições históricas sobre os robôs. Por robôs entendemos ser uma máquina flexível programável com a qual um objeto pode ser movido para um local definido no espaço, ou com o qual pode ser realizados uma trajetória com este objeto para realizar uma determinada tarefa.

Definição

Page 5: robotica_mt

7

Porém, robôs reais são bem diferentes dos robôs da ficção científica. O que é Robótica ? Robótica é um campo vasto que necessita de conhecimentos de Eletrônica, Mecânica, Computação, Controle, Psicologia, etc. Usualmente os robôs são tidos como causadores de desemprego. No entanto, o que ocorre na maioria dos casos é que os robôs modificam a posição dos postos de trabalho na linha de produção. Com os robôs, toda a linha de produção torna-se mais rápida, demandando mais pessoas para embalagem dos produtos, venda da produção maior, compra de mais matéria prima, programação e alimentação dos robôs e outras tarefas que não podem ser automatizadas. Classificação Os robôs podem ser classificados quanto à sua estrutura mecânica, quanto á sua geração tecnológica e quanto à participação do operador humano em seu funcionamento. Quanto à estrutura mecânica Segundo a Federação Internacional de Robótica (IFR), as principais configurações são as seguintes: 1. Robôs de coordenadas cartesianas (pórticos) 2. Robôs de coordenadas cilíndricas 3. Robôs de coordenadas esféricas 4. Robô SCARA 5. Robôs de articulados ou antropomórficos 6. Robôs paralelos Os robôs relacionados nos itens 1 a 6 serão melhor descritos mais a adiante. Os robôs paralelos apresentam uma configuração tipo plataforma e mecanismos em forma de cadeia cinemática fechada. O volume de trabalho resultante é aproximadamente esférico. Quanto à geração tecnológica Segundo RIVIN (1988) e ROSEN (1985), podemos classificar os robôs segundo a sua geração tecnológica. 1ª GERAÇÃO – robôs denominados de “seqüência fixa”, os quais, uma vez programados, repetem sempre a seqüência de operações. Para realizar uma operação diferente tem que ser reprogramados. São incapazes de obter qualquer informação sobre o ambiente de interação do robô na fabrica. Este ambiente deverá estar completamente estruturado (parametrizado), pois as operações exigem um posicionamento preciso dos objetos a serem trabalhados. A maioria dos robôs industriais pertence a esta geração. 2ª GERAÇÃO – possuem recursos computacionais e sensores que permitem ao robô agir em um ambiente parcialmente estruturado, calculando em tempo real os parâmetros de controle para a realização dos movimentos. Atividades como pegar uma peça deslocada de sua posição ideal ou reconhecer uma peça a ser manipulada, dentre um conjunto de peças variadas. 3ª GERAÇÃO – Apresentam inteligência suficiente para se conectar com outros robôs e maquinas armazenar programas e se comunicar com outros sistemas computacionais. É capaz, por exemplo, de tomar decisões em operações de montagem, tais como montar uma adequada combinação de peças, rejeitar peças defeituosas e selecionar uma combinação correta de tolerâncias. No entanto, o emprego desse tipo de robô ainda em processos industriais ainda é incipiente.

(a) Os Jetson’s (69)

(b) Star Wars

(c) Robots

(d) Lost in Space

(e) Short Circuit

(f) Android Jonnhy Walker

2005

(g) I Robot

Fig 3

Page 6: robotica_mt

8

Quanto à participação de operador humano O grau de envolvimento com o operador humano no processo de controle de um sistema robótico é determinado pela complexidade que o meio de interação apresenta e pelos recursos disponiveis para o processamento dos dados necessários à execução das tarefas. Caso o ambiente seja estruturado, onde os parametros necessários à operacionalidade do sistema possam ser identificados e quantificados, é possivel estabelecer um sistema de controle capaz de gerenciar e monitorar tarefas com a mínima paarticipação do operador, é o chamado Sistema Robótico. A maioria das atividades industriais automatizadas, como soldagens por ponto ou contínua, fixação de circuitos integrados em placas, pintura de superfícies, movimentação de objetso e montagens de peças, operam em ambientes estruturados. Com o ambiente não-estruturado, surge a dificuldade de quantificar determinados parametros do processo ou por possuirem elevado custo para obtê-los, dentro de certas especificações, a utilização do poder decisório do operador no gerenciamento do sistema de controle torna-se fundamental para a realização das tarefas determinadas. Neste caso o sistema é classificado como Tele operado Sistema tele operados, são normalmente utilizados em mineradoras, recuperação de satélites, manipulação de material radioativo ou tóxico, exploração de petróleo e gás em plataformas maritimas. Podemos ter ainda: Robôs industriais: são os utilizados em linha de produção para movimentação de peças, pintura, soldagem, etc. Normalmente são constituídos por um braço articulado, uma unidade de controle, um "teaching-pad" (teach-pendant), uma unidade de potência e muitas interfaces para conexão do robô com periféricos segundo a tarefa. Robôs móveis: são os que podem se movimentar autonomamente no chão ou no espaço. Obviamente, um robô estacionário pode ser tornado móvel se montado em uma plataforma móvel, mas freqüentemente o termo robô móvel é utilizado para referir-se apenas a plataforma móvel. Robôs de serviço: são os desenvolvidos para realizar tarefas específicas, como aspiração de pó, auxílio a pessoas idosas ou deficientes, limpeza de navios e aviões, corte de grama, tosquia de ovelhas, etc. Operação A operação de robô industrial engloba uma série de tarefas de menor ou maior grau de complexidade. O termo operação pode se referir a operação simples de carregar um programa para que o robô realize uma tarefa específica; ajustar parâmetros do programa para o robô execute um trabalho um certo número de vezes ou com um tipo especifico de ferramenta, mas também pode se referir à tarefas complexas como calibração ou estabelecimento do posto de trabalho do robô. Uma das principais preocupações da industria é com as tarefas mais simples que, via de regra, podem ser desempenhadas por pessoal com pouca qualificação profissional e que são executadas com muita freqüência. Para maximizar o lucro o industrial geralmente procura-se empregar na operação de robôs operadores de máquina sem capacitação profissional. Isso traz a necessidade de uma melhoria (simplificação) da interface homem-máquina com o objetivo de facilitar o uso desta interface sobre tudo nas operações cotidianas: colocar o robô em execução de uma rotina repetitiva; contornar situações de erro (por exemplo: parada ocasionada por colisão); ligar o desligar o robô. Tarefas mais sofisticadas como: instalação, manutenção e calibração; requerem o emprego de mão-de-obra especializada e, por isso, implicam em um gasto maior. Há um segmento de mercado significativo para prestação deste serviço já que, no geral, não vale a pena para o industrial que aplica robôs em sua planta manter uma equipe de especialistas.

Page 7: robotica_mt

9

Arquitetura de um Manipulador Robótico

Figura 4 - Arquitetura típica de um manipulador robótico.

Estação de Trabalho: Computador que implementa a interface amigável com o operador. Permite a programação das tarefas a serem executadas pelo braço. Através dela o programa é carregado no Controlador de Robô. Pode ser compartilhada por outras máquinas que componham a célula de trabalho. Teach Pendant (Apêndice de Ensino): interface homem-máquina (conhecido simplesmente como IHM) ligada por um cabo ao controlador do robô e equipada com teclas de funções que permitem que as juntas do robô sejam acionadas independentemente. A seqüência de movimentos pode ser gravada e utilizada pelo controlador para repetir a tarefa “ensinada”. Controlador do Robô: Computador dedicado que interpreta o programa, executando as tarefas programadas através de algoritmos de controle das juntas do robô. Estes algoritmos comparam a posição real das juntas fornecida pelos sensores com a posição que estas deveriam ter para realizar as tarefas programadas, determinando o esforço que deve ser aplicado pelos atuadores de modo a corrigir eventuais desvios na execução das tarefas. Acionamento: circuitos de potência comandados pelo Controlador de modo a aplicar nos atuadores a energia necessária para realizar os movimentos programados. Aquisição de dados: Circuitos de condicionamento e conversão analógico/digital dos sinais fornecidos pelos sensores. Transformam a informação provinda nos sensores num código numérico manipulávél pelo Controlador do Robô. Sensores: Detectam posição e velocidade do robô ou a força exercida pela ferramenta. Sensores de posição: detectam a posição das juntas do manipulador. • Potenciômetros: tensão é proporcional ao ângulo da junta. • Resolvers: tensão é proporcional ao ângulo da junta. • Encoders: ângulo da junta codificado digitalmente. o Incrementais: contam pulsos correspondentes a incrementos angulares. o Absolutos: fornecem diretamente o código binário correspondente ao ângulo. Sensores de velocidade: detectam a velocidade das juntas do manipulador. • Tacômetros: tensão é proporcional à velocidade da junta. Sensores de torque e força: detectam o torque e a força aplicados pela garra. • Células de carga: tensão proporcional ao esforço na sua superfície.

Page 8: robotica_mt

10

Atuadores: Realizam a conversão da energia disponível em energia mecânica para movimentar o braço. Podem ser elétricos, pneumáticos ou hidráulicos. • Elétricos: motores elétricos (de passo, servos CC ou CA) o Usados em robôs de médio porte. o Maior precisão. o Permite controle preciso e eficiente o Envolve estruturas simples e de fácil manutenção o Não requer fonte de energia cara o Custo relativamente baixo o É sujeito a danos devido a cargas pesados o bastante para parar o motor o É incapaz de manter um momento constante em velocidades variáveis de revolução o Tem uma baixa razão de potência de saída em relação ao peso do motor • Pneumáticos: utilizam um gás a pressão para movimentar o braço ou músculos artificiais (ligas de Nitinol). o Usados em robôs de pequeno porte. o Baixa precisão. Limitados a operações do tipo pega-e-coloca. o Permite operação em altas velocidades. o Precisão pouco apurada. o Pode manter um momento constante (menor do que o acionamento hidráulico). o Está sujeito a vibrações momentâneas no braço. o Fácil manutenção o Custo relativamente baixo • Hidráulicos: utilizam um fluido a pressão para movimentar o braço. o Usados em robôs grandes. o Grande potência e velocidade, mas baixa precisão. o Mantém um momento alto e constante sob uma larga faixa de velocidades o Requer uma fonte de energia cara o Permite precisão de operação, algo menos que acionamento elétrico, mas mais que o pneumático. o Requer cara e extensiva manutenção. o Pode manter alto momento sobre longo período de tempo. o As válvulas devem ser precisas e são caras. o Está sujeito a vazamentos de óleo do sistema. O Manipulador

Figura 5 – O Braço manipulador e o equivalente esquemático

Page 9: robotica_mt

11

Manipulador é o conjunto de corpos rígidos, (chamados elos), interligados em uma cadeia cinemática aberta através de juntas, as quais são acionadas por atuadores de modo a posicionar a extremidade livre da cadeia (órgão terminal, efetuador, garra ou ferramenta) em relação à outra extremidade, que é fixa (base do manipulador). Juntas Junta é a interligação entre dois elos que permitem o movimento relativo entre os mesmos numa única dimensão ou Grau de Liberdade. • Juntas rotacionais : Permite a mudança da orientação relativa entre dois elos. • Juntas prismáticas: Permite a mudança da orientação relativa entre dois elos. • Juntas esféricas: Tentam agregar as funcionalidades dos tipos acima, mas são dificeis de implementar. Características das juntas Prismáticas: As juntas prismáticas construtivamente são mais complexas que as rotacionais, mas devido a sua tecnologia ser a mesma aplicada na construção de máquinas-ferramenta apresentam maior rigidez e precisão. O movimento relativo entre dois elementos de uma junta aplicada em robótica é obtido através da interposição de dois elementos deslizantes de modo a minimizar a resistência ao movimento devido ao atrito. Esta escolha é imposta por dois motivos fundamentais: Os movimentos do robô se caracterizam por uma seqüência de partidas e paradas onde somente a presença de rolamentos pode gerar um baixo atrito; Operacionalmente se requer no robô uma capacidade de realizar movimentos rápidos com pequenas forças motrizes.

Rotacionais: A construção de juntas rotacionais é realizada com componentes padronizados dos fabricantes de rolamentos. Construtivamente as juntas prismáticas são realizadas com guias de roletes ou de bússolas esféricas. As juntas rotacionais são sempre mais compactas. Juntas principais e secundárias Essa divisão em dois grupos com funções distintas, principais e secundárias, remete a uma especialização na estrutura das juntas. Braço – a estrutura do braço pode utilizar juntas “P” e “R”. Os elementos componentes possuem determinado comprimento.

(a) Rotacional. (b) Prismática.

(c) Esférica 3GL. (d) Esférica. Figura 4: Tipos de juntas.

Graus de liberdade é número de movimentos distintos que o braço pode realizar.

Normalmente o número de graus de liberdade iguala-se ao número de juntas.

Definição

Page 10: robotica_mt

12

Pulso - no pulso somente juntas “R”; elementos sem dimensão; os eixos de rotação das três juntas se encontram em um ponto. Considerando um robô com seis graus de liberdade temos como: • Graus de liberdade principais (braço do robô): Conjunto dos três primeiros elos do manipulador e suas juntas correspondentes. Determina predominantemente a posição da ferramenta. Requer atuadores mais potentes. • Graus de liberdade secundários (pulso do robô): Conjunto dos três últimos elos do manipulador e suas juntas correspondentes. Determina predominantemente a orientação da ferramenta. Ferramentas Parte do manipulador usada para interagir com objetos presentes no espaço de trabalho. Garras : Ferramentas específicas para pegar objetos. Podem ser: • Garras Mecânicas: pegam pressionando o objeto entre dedos (que podem ser intercambiáveis). o Por movimento pivotante. o Por movimento linear. o Mãos antropomórficas. • Garras de Sucção: pegam através da criação de um vácuo entre a garra e a peça. o Requerem superfícies limpas e sem furos. • Garras Magnéticas: pegam através da atração magnética entre a garra e a peça. o São rápidas, independem da forma e dos orifícios da peça. o Funcionam apenas com materiais ferromagnéticos, podem pegar peças indesejadas e podem deixar magnetismo residual nas mesmas. o Aquelas a imã permanente requerem dispositivo para soltar a peça. • Garras Adesivas: pegam pelo contato com substância adesiva (que deve ser renovada de tempos em tempos). • Garras Balões: pegam objetos côncavos através da pressão ao serem inflados.

(a) com dois dedos. (b) com três dedos. (c) para objetos delicados.

(d) para objetos circulares. (e) articulada. (f) com ventosas.

Figura 6: Modelos de Garras.

Page 11: robotica_mt

13

Ferramentas Especiais: possuem finalidades diversas. • Pinças para soldagem a ponto. • Tocha Arco, Maçaricos e Pistolas de pintura. • Mandris e Perfuração. • Polimento e Retífica. • Aplicadores de cola ou resina. • Ferramentas de corte por jato de água. • Carregamento e Movimentação A avaliação dos tipos de articulações e seu arranjo permitem ao projetista estimar a área de atuação do robô, rigidez mecânica a facilidade de controle do braço, possibilitando qual tarefa serão mais apropriadas para cada tipo de robô. O movimento das articulações capacita o robô a mover seu atuador para qualquer ponto na sua área de atuação, mas não habilita o controle da orientação do atuador no espaço; cuja importância não se restringe somente ao alcance à peça. Essa tarefa pode ser realizada adicionando-se articulações para o pulso do braço, dando um maior grau de liberdade. A partir disso, o robô fica habilitado a realizar os seguintes movimentos: • Pitch – movimento para cima e para baixo; • Roll – movimento de rotação no sentido horário e anti-horário; • Yaw – movimento para a esquerda e direita. Configurações Cinemáticas

Configuração Articulada (RRR) - Articulada vertical

Figura 8

Figura 7: Três juntas rotacionais substituindo a junta de esfera e encaixe

Espaço de Trabalho: Ou volume de trabalho, é a fronteira exterior de todos os pontos que um robô pode alcançar com seu efetuador.

Envelope de Trabalho: é a superfície desse espaço de trabalho, ou seja, os pontos de alcance máximo do robô.

Definição

Page 12: robotica_mt

14

Configuração Esférica (RRP)

Figura 9

Configuração SCARA (RRP) - Articulada horizontal SCARA significa Selective Compliance Assemlby Robotic Arm (Braço Robótico de Montagem de conformidade seletiva). Tem este nome porque o robô apresenta uma flexibilidade estrutural maior no plano horizontal do que no plano vertical, facilitando operações de montagem com inserções verticais de pinos.

Figura 10

Configuração Cilíndrica (RPP)

Figura 11

Page 13: robotica_mt

15

Configuração Cartesiana (PPP)

Figura 12

Aplicações Práticas dos Graus de Liberdade Os seis graus de liberdade não são necessários em muitas aplicações práticas. O número de graus de liberdade, portanto deve ser apenas o suficiente para atender as especificações de trabalho. Robôs a quatro graus de liberdade São utilizados em operações de montagem onde a união das partes pode ser obtida com uma seqüência de inserções verticais. Neste caso três graus de liberdade, translação ao longo dos eixos x e y e rotação em torno do eixo vertical permitem posicionar e orientar um objeto no plano, enquanto uma translação em torno do eixo vertical permite uma operação de encaixe (inserção). Robôs a três graus de liberdade Um robô a três graus de liberdade pode sempre substituir um de quatro graus quando as peças a serem montadas forem cilíndricas (eixos). Neste caso a possibilidade de rotação em torno do eixo vertical torna-se dispensável. Robôs a cinco graus de liberdade Um robô a cinco graus de liberdade poderá sempre substituir um de seis graus quando as peças tiverem simetria axial, como objetos cilíndricos. Casos em que se torna supérfluo o movimento de rotação em torno de seus eixos de simetria.

Figura 13

Figura 14

Page 14: robotica_mt

16

Resolução, Repetibilidade, Precisão Resolução: É o menor movimento incremental de uma junta, normalmente detectável pelo dispositivo de medição. Exemplo, se o codificador tiver 180 incrementos então sua resolução será de 180 incrementos por volta ou seja 360º/180 = 2º. Esta é a resolução angular, que pode ser convertida em resolução espacial, em função do comprimento da junta: Res_Espacial = L*sen(Res_Angular) Repetibilidade: Traduz a diferença de posição (linear em geral) com que o robô volta a recolocar-se num ponto especifico. Precisão: Traduz a diferença entre uma posição realmente atingida e a posição desejada pela programação. Está relacionada com a resolução e por certo não poderá ser melhor que o valor daquela (ou +/- metade) – afetado pela carga transportada e variável conforme a zona de espaço de trabalho. Um outro fator que influencia grandemente a precisão e a repetibilidade é a resolução do controlador. Entende-se por resolução do controlador o menor incremento de movimento que o controlador pode "sentir". Matematicamente, é dada pela expressão:

Distância total percorrida pela junta Res_controle =

2n Onde n é o número de bits do encoder (sensor de posição existente na junta). Obviamente, se a junta for prismática, o numerador da equação é um deslocamento linear, enquanto que se a junta for rotativa, será um deslocamento angular. Nesse contexto, juntas prismáticas proporcionam maior resolução que juntas rotativas, pois a distância linear entre dois pontos é menor do que o arco de circunferência que passa pelos mesmos dois pontos. Descrição de posição e orientação No estudo de robótica nós estamos constantemente preocupados com a localização de objetos no espaço tridimensional. Estes objetos são os segmentos do manipulador, as peças e ferramentas com que ele trabalha, e outros objetos no ambiente do manipulador. De uma forma bem simples, mas não menos importante, estes objetos são descritos através de apenas dois atributos: sua posição e orientação, em termos de pontos. Para que se possa localizar este ponto no espaço é necessário considerar a existência de um sistema de coordenadas, daí, de que maneira nós podemos representar estas quantidades. É importante observar que neste curso não iremos manipulá-las matematicamente.

Boa Precisão

Boa repetibilidade Má Precisão

Boa repetibilidade

Boa Precisão

Má repetibilidade Má Precisão

Má repetibilidade Figura 15

Page 15: robotica_mt

17

Para descrever a posição e orientação de um corpo no espaço nós atrelaremos sempre um sistema de coordenada, ou frame, rigidamente ao objeto. Então, nós descrevemos a posição e orientação deste frame com relação a algum sistema de coordenada de referência (Figura 16). Desde que qualquer frame pode servir como um sistema de referência em relação as qual nós expressamos a posição e orientação de um corpo, nós freqüentemente teremos que transformar ou mudar a descrição destes atributos de um corpo de um frame para outro. Cinemática Cinemática é a ciência do movimento que trata o movimento sem levar em conta as forças que o causam. Dentro da ciência da cinemática estudamos a posição, velocidade, aceleração. Conseqüentemente, o estudo da cinemática de manipuladores se refere a todas as propriedades geométricas e baseadas no tempo do movimento. Manipuladores são constituídos de segmentos quase rígidos que são conectados por articulações ou juntas que permitem movimento relativo de segmentos vizinhos. Estas juntas normalmente são instrumentadas com sensores de posição que permitem medir a posição relativa de segmentos vizinhos. O valor medido é chamado de variável de junta e mede o deslocamento de um segmento em relação ao outro. No caso de juntas rotativas ou de revolução, estes deslocamentos são chamados ângulos de junta. Alguns manipuladores contêm juntas prismáticas ou deslizantes nas quais o deslocamento relativo entre segmentos é uma translação, às vezes chamado de offset de junta. O número de graus de liberdade (DOF – degrees of freedom) que um manipulador possui é o número de variáveis de posição independentes que teriam que ser especificadas para localizar todas as partes do mecanismo. Este é um termo geral usado para qualquer mecanismo. Por exemplo, um encadeamento de quatro-barras tem só um grau de liberdade (embora haja três membros que se movem). No caso de robôs industriais típicos, porque um manipulador normalmente é que um cadeia cinemática aberta e porque cada posição é definida normalmente com uma única variável, o número de juntas é igual ao número de graus de liberdade. No extremo livre da cadeia de segmentos que compõem o manipulador está o efetuador (end-effector). Dependendo da aplicação planejada para o robô, o efetuador pode ser uma garra (gripper), uma tocha de soldagem (weld torch), um eletroímã ou outro dispositivo. Nós geralmente descrevemos a posição do manipulador dando uma descrição do frame da ferramenta (tool frame) que é atrelado ao efetuador, relativo ao frame da base (base frame) que é atrelado à base de imóvel do manipulador (Figura 17). Cinemática Direta Um problema básico no estudo de manipulação mecânica é o da cinemática direta, que pode ser dividida em dois problemas: 1. O problema estático e geométrico de calculo da posição e orientação do efetuador em relação ao sistema de coordenadas fixas, dadas as posições de todas as articulações ou seja, trata-se de computar a posição e orientação do frame da ferramenta relativo ao frame da base. 2. O problema do robô manipulador em movimento, onde se deseja calcular a velocidade linear e angular do efetuador, dadas as posições e velocidades de todas as articulações.

Figura 16 – Sistemas de Coordenadas ou frames são atrelados ao manipulador e outros objetos no ambiente

Figura 17 – Equações cinemáticas descrevem o frame da ferramenta em relação ao frame da base como uma função das variáveis de junta

Page 16: robotica_mt

18

Cinemática Inversa O problema cinemática inversa é proposto como segue: dado a posição e orientação do efetuador do manipulador, calcule todos os possíveis vetores de ângulos de junta que poderiam ser usados para atingir esta determinada posição e orientação. Este é um problema fundamental para o uso prático de manipuladores. O problema da cinemática inversa não é tão simples quanto o da cinemática direta. Porque as equações cinemática não são lineares, a solução delas sempre é mais difícil ou até mesmo impossível em uma forma fechada. Também surgem questões quanto à existência de uma solução e de soluções múltiplas. A existência ou não existência de uma solução para a cinemática definem o espaço de trabalho (workspace) de um determinado manipulador. A falta de ao menos uma solução, ou seja a inexistência de qualquer solução, significa que o manipulador não pode atingir a posição e orientação desejadas porque caem fora do workspace do manipulador. Velocidades, Forças estáticas, Singularidades Além de lidar com problemas de posicionamento estáticos, nós podemos desejar analisar os manipuladores em movimento. Freqüentemente, executando a análise de velocidade de um mecanismo é conveniente definir uma quantidade matricial chamada de Jacobiano, ou matriz Jacobiana do manipulador. O Jacobiano especifica um mapeamento de velocidades no espaço de junta para velocidades no espaço Cartesiano (Figura 18). a natureza deste mapeamento muda com variação na configuração do manipulador. Em certos pontos, chamados de singularidades, este mapeamento não é inversível. Uma compreensão detalhada do fenômeno é importante para os projetistas e usuários de manipuladores. Manipuladores nem sempre se movem pelo espaço livre; às vezes eles também devem fazer contato com uma peça ou superfície de trabalho e aplicar uma força estática. Neste caso surge um problema:

“Dada uma força de contato e momento desejados, o que determina quais torques de junta são exigidos para gerá-los?” Mais uma vez, a matriz de Jacobiana do manipulador surge muito naturalmente na solução deste problema. Na prática sempre fazemos uso de pontos de aproximação para garantir que os parametros não sejam ultrapassados.

Figura 18 – Relação geométrica entre a taxa de variação da variável de junta e a velocidade de efetuador pode ser descrita por uma matriz chamada de Jacobiano

Por espaço Cartesiano nós queremos dizer o espaço no qual a posição de um ponto é determinada com três números, e na qual a orientação de um corpo é determinada com três números. Às vezes é chamado espaço de tarefa ou espaço operacional.

Definição

Page 17: robotica_mt

19

Estática Os robôs manipuladores nem sempre estão em movimento, algumas vezes eles são utilizados para pegar objetos ou trabalhar em contato com uma superfície e assim aplicar um esforço estático; nesta situação surge um problema: dada uma força e um momento que o robô deve aplicar no ambiente, quais devem ser as forças e torques nos atuadores das articulações para gerar as forças e momentos de interação com o ambiente; a matriz Jacobiano do robô é utilizada também na solução deste problema (Figura 19). Dinâmica Dinâmica é um campo de estudo enorme dedicado a estudar as forças exigidas para causar movimento. Para acelerar um manipulador do repouso, mover o efetuador com uma velocidade constante, e finalmente desacelerar e parar, um conjunto complexo de funções de torque deve ser aplicado pelos atuadores das juntas (note o box abaixo). A forma exata das funções de torque de atuador exigidas depende dos atributos de espaço e temporais da trajetória percorrida pelo efetuador como também das propriedades de massa dos segmentos e carga, atrito nas juntas, etc. Um método para controlar um manipulador afim de seguir uma trajetória desejada envolve calcular estas funções de torque de atuador usando as equações dinâmicas de movimento do manipulador. Um segundo uso para as equações dinâmicas de movimento está na simulação (Figura 31). Reformulando as equações dinâmicas de forma a calcular a aceleração como uma função de torque de atuador, é possível simular como um manipulador se moveria sob a aplicação de um conjunto de torque de atuador (Figura 20). Geração de trajetória Um modo comum de causar um movimento em um manipulador de um lugar para outro de forma suave e controlada é fazer com que cada junta se mova como especificado por uma função suave de tempo.

Normalmente, cada junta começa e termina seu movimento ao mesmo tempo, de forma que o movimento de manipulador parece ser coordenado. Exatamente como computar estas funções de movimento é o problema de geração de trajetória (Figura 21). Freqüentemente um caminho é descrito não apenas pelo destino desejado mas também por algumas localizações intermédias, ou por pontos pelos quais o manipulador tem que passar no seu cominho para o destino. Neste caso, o termo spline é usado para se referir a uma função suave, ou um algoritmo que gera uma função suave, que passa por um conjunto de pontos.

Figura 19 – A relação entre os esforços aplicados nas articulações e os esforços aplicados pelo efetuador no ambiente é determinada pelo Jacobiano

Figura 20 – Relação entre o torque aplicado pelos atuadores nas juntas e o movimento resultante do manipulador pode ser descrita com as equações dinâmicas

Figura 21 – Para mover o efetuador de um ponto PA para um ponto PB no espaço deve-se calcular uma trajetória para cada uma das juntas, e elas devem ser seguidas pelas juntas.

Nós empregamos a expressão “atuador de junta” para descrever um dispositivo genérico destinado a mover a junta fornecendo energia mecânica à ela, por exemplo: motor elétrico, cilindro hidráulico e pneumático, etc.

Definição

Page 18: robotica_mt

20

Para forçar o efetuador a seguir uma linha reta (ou outra forma geométrica) através do espaço, o movimento desejado deve ser convertido a um conjunto equivalente de movimentos de junta. Controle de trajetória Cada tarefa executada por um robô pode ser considerada como uma série de operações, através das quais o atuador é movido pelo braço do robô entre dados pontos e operando como programado nesses pontos. O controle de trajetória pode ser dividido em dois métodos: • Ponto-a- ponto; • Controle contínuo. Antes de descrever cada método, devemos definir alguns termos: • Ponto: localização no espaço em direção ou através do qual o atuador é movido por uma operação do braço do robô. • Passo: uma parte do programa operacional do robô. A cada passo, o robô executa uma atividade. • Série: uma coleção de passos que combinados formam o programa operacional do robô. Controle da trajetória ponto-a-ponto Neste tipo de controle, primeiramente definimos uma coleção de pontos para o robô, então construímos a série e guardamos na memória do controlador. Quando rodamos a série, o braço do robô vai se mover pelos vários pontos, de acordo com a ordem dos passos na série, em cada passo o robô sabe para onde ir, mas não conhece a trajetória que traçara para chegar a um certo ponto. Robôs com controle ponto-a-ponto são geralmente usados em séries onde o atuador não precisa realizar alguma função no decorrer do movimento, uma aplicação típica é solda em ponto, a maioria dos robôs do mundo opera em controle ponto-a-ponto. Controle da trajetória contínua Esse método é mais complexo e caro do que o ponto-a-ponto, pois o braço deve se mover por uma trajetória exatamente definida. Os movimentos dos acionadores são coordenados pelo controlador do braço a cada instante, de tal forma que a trajetória irá se assemelhar o Maximo possível com a programada. A trajetória do robô pode ser definida por dois métodos, como veremos: • Método A: nesta técnica, o braço do robô é movido manualmente pela trajetória desejada, enquanto o controlador grava em sua memória as posições das articulações a cada instante, através das informações fornecidas pelos encoder’s, quando a série é rodada mais tarde, o controlador comanda os acionadores de acordo com a informação em sua memória, o braço então repete a trajetória precisamente. • Método B: nesta técnica, a trajetória é definida por um determinado trajeto de movimento, tal como uma linha reta ou um arco passando por dados pontos, o controlador calcula e coordena o movimento a cada instante, o computador controlador deve ser mais rápido e ter mais memória do que o computador de controle ponto – a – ponto, robôs com controle de trajetória continua são usados em serie onde o atuador deve realizar algum trabalho enquanto o braço se move, uma aplicação típica é pintura com spray. Controle de coordenada com o ambiente O movimento de um braço de robô é baseado em movimento coordenado de todos seus acionadores, as condições em que esses acionadores trabalham são diferentes, diferem na carga, no momento de inércia e na velocidade, por exemplo; portanto, essas condições variáveis podem exigir um diferente planejamento de controle para cada malha de controle.

Page 19: robotica_mt

21

• Em robôs modernos, cada malha de controle do acionador é controlada por um microcomputador; se quisermos que o atuador se mova até determinado ponto, podemos ditar as coordenadas daquele ponto para o computador controlador que irá coordenar os movimentos das várias articulações; o operador não precisa se preocupar com o controle de cada eixo separadamente nem coordenar o movimento dos vários eixos, isso é função do computador controlador. Projeto de manipuladores e sensor Embora os manipuladores sejam teoricamente dispositivos universais aplicáveis em muitas situações, geralmente a economia manda que a tarefa a ser executada pelo manipulador tenha influência dominante no projeto mecânico do manipulador. Junto com assuntos como tamanho, aceleração e capacidade de carga, o projetista também tem que considerar o número de juntas e o arranjo geométrico delas. Estas considerações têm um impacto no tamanho e qualidade do espaço de trabalho do manipulador, rigidez da estrutura de manipulador, e outros atributos. Faz parte do projeto do manipulador assuntos que envolvem a escolha e localização de atuadores, sistemas de transmissão e sensores de posição (e às vezes de força) (Figura 22). Controle linear de posição Alguns manipuladores são equipados com motores de passo ou outros atuadores que podem executar uma trajetória desejada diretamente. Porém, a grande maioria dos manipuladores é movida por atuadores que fornecem uma força ou um torque para causar movimento dos segmentos. Neste caso, um algoritmo é necessário para computar o torque que causará o movimento desejado. O problema de dinâmica é central ao projeto de tais algoritmos, mas não são por si só uma solução. Uma preocupação primária de um sistema de controle de posição é compensar automaticamente os erros quanto ao conhecimento dos parâmetros de um sistema e suprimir distúrbios que tendem a perturbar o sistema afastando-o da trajetória desejada. Para realizar isto, os sensores de posição e velocidade são monitorados pelo algoritmo de controle que computa comandos de torque para os atuadores (Figura 21). Controle não linear de posição Embora sistemas de controle baseados em modelos lineares aproximados sejam populares em robôs industriais atuais, é importante considerar a dinâmica completa e não linear dos manipuladores quando sintetizamos algoritmos de controle. Atualmente, alguns robôs industriais que fazem uso de algoritmos de controle não linear nos seus controladores estão sendo introduzidos. Estas técnicas de controle não linear prometem um desempenho melhor do manipulador em relação os esquemas lineares mais simples. Controle de força A habilidade de um manipulador para controlar forças de contato quando toca peças, ferramentas, ou trabalha uma superfície é de grande importância em aplicações de manipuladores para muitas tarefas do mundo real. Controle de força é complementar ao controle posicional no sentido de que nós normalmente pensamos que um ou outro como aplicável em uma certa situação. Quando um manipulador está se movendo para espaço livre, controle de posição sozinho faz sentido, desde que não haja nenhuma superfície para reagir contra. Porém, quando um manipulador está tocando uma superfície rígida, esquemas de controle de posição podem causar forças excessivas de contato ou podem causar perda de contato com a superfície quando o a manutenção do contato é desejada para alguma aplicação.

Figura 22 – O projeto mecânico do manipulador deve se preocupar com assuntos como a escolha dos atuadores, a localização deles, o sistema de transmissão, a resistência/flexibilidade da estrutura, a localização dos sensores e muito mais

Figura 23 – Para que um manipulador deslize sobre uma superfície ao mesmo tempo que aplica uma força é necessário um controle híbrido de força e posição

Page 20: robotica_mt

22

Considerando que os manipuladores raramente são restringidos pela superfícies de reação em todas as direções simultaneamente é necessário usar um controle misto ou híbrido no qual algumas direções são controladas por uma lei de controle de posição e as direções restantes são controladas por uma lei de controle de força (Figura 23). Segurança Um ponto que deve ser analisado com cuidado se refere à segurança dos operários que podem trabalhar próximos aos robôs. Pode parecer antagônico, mas os robôs que em certos casos são utilizados para diminuir os riscos às vidas humanas, podendo se tornar fonte de perigo. Devemos encarar aqui o robô como uma outra máquina qualquer e, portanto deve este ser tratado como um agente perigoso se operado impropriamente. Um fato agravante na utilização de robôs é que seu volume de trabalho não se limita ao volume realmente ocupado por ele, criando assim uma zona de perigo que às vezes pode não ser percebida pelo operador. Há uma série de normas que regem a instalação de robôs no chão e fábrica. Os pontos mais importantes destas normas são: •O volume de trabalho do robô deve estar constantemente isolado da fábrica, impedindo que qualquer pessoa tenha acesso a ele durante a operação do robô. •A abertura da proteção do volume de trabalho do robô deve interromper o seu funcionamento. •Deve haver uma indicação luminosa para mostrar que o robô está em operação. •Botões de emergência devem estar dispostos em locais de fácil acesso. •Deve-se tomar especial cuidado durante a manutenção onde o contato com o robô é inevitável. Essas são apenas algumas das instruções para instalação do robô no chão de fábrica. Elas devem ser seguidas rigorosamente para que a integração do robô na fábrica traga aumento da segurança aos operários e não o contrário. Os cuidados de segurança são imprescindíveis durante o manuseio de robôs, principalmente os de porte industrial. As velocidades de operação envolvidas aliado à falta de "inteligência" do equipamento, que meramente reproduz os movimentos pré-programados, os tornam verdadeiras armas mortíferas quando as devidas precauções não são tomadas. Colisões com robôs em movimento podem trazer graves danos tanto ao pessoal envolvido quanto aos equipamentos no entorno. Algumas precauções devem então ser tomadas: 1. Área de trabalho - Não entrar na área de trabalho do robô durante a operação no modo automático. 2. Travas de segurança - Uma vez ocorrida uma parada no sistema provocada por uma trava, o programa reinicia de onde parou. Se a trava faz parte do circuito de emergência, precisa reiniciar. Algumas das travas possíveis são: • Cerca com porta, munida de sensor. • Cortina de luz 3. Fim de curso - Limitação da área de trabalho • Via software (todos os eixos. O próprio controlador impede movimentos além dos valores determinados). • Via hardware (stops mecânicos nos eixos 1,2 e 3). É aconselhável o uso de limitação por 'software em valores inferiores aos bloqueios por hardware pelo esforço e conseqüente desgaste mecânico provocado por estes últimos. 4. Modo de operação – Usualmente costuma-se operar o robô de três formas distintas: • Automático – Usado quando se roda programas prontos, em produção. Não é possível movimentar o robô através do teach-pendant neste modo. • Modo Aprendizado - É utilizado quando se trabalha dentro da área de trabalho do robô e durante a fase de programação e debug. Normalmente deve-se usar velocidades reduzidas. • Manual Pleno - É utilizado para testar o robô à velocidade de programação plena. Nos modos manuais, (modos de aprendizagem e manual pleno) a energização dos motores se dá através de um dispositivo de habilitação (botão) localizado no teach pendant.

Page 21: robotica_mt

23

5. Emergency Stop -botão de parada brusca • Terminal de programação • Painel de controle Obs.: Deve ser usado apenas em caso de real emergência pelo esforço aplicado nas engrenagens, causando desgaste mecânicos. 6. Bom Senso - A execução de qualquer programa deve ser primeiramente realizada com velocidade reduzida. Só após todos os testes, efetuar em velocidade normal. Aplicações Industriais de Robôs A principal vantagem da utilização de robôs na industria se refere a sua capacidade de executa tarefas repetitivas e com grande precisão (e repetibilidade) Com isso pode-se conseguir um aumento na produtividade e na qualidade dos produtos. Além disso, há casos onde há risco para os operários e a utilização dos robôs se faz por questão de segurança. Apresentamos a seguir algumas aplicações de robôs na industria. Soldagem Soldagem a Ponto Este tipo de soldagem se caracteriza pela união das peças apenas em determinados pontos' sem que haja inclusão de material novo. O calor necessário à soldagem provém da corrente elétrica que passa por dois eletrodos permanentes. Os principais parâmetros que influenciam a qualidade da solda são: corrente elétrica, pressão entre os eletrodos, tempo de duração da corrente e espessura do material. As operações do processo de solda a ponto, integrando o robô, são: •Movimento rápido do braço do robô, com a pistola de solda fixa, para se aproximar do ponto a ser soldado; •Aproximação dos eletrodos da pistola de solda a ambos os lados da parte a ser soldada e posicionamento destes exatamente em frente a ponto de solda; •Fixação dos eletrodos no ponto a ser soldado; •Envio de corrente elétrica através dos eletrodos e do material a ser soldado; •Espera; •Abertura dos eletrodos; •Movimentação do braço do robô para se aproximar do novo ponto de solda. Podemos concluir que este tipo de trabalho é ideal para a utilização de robôs, afinal estes podem repetir com grande precisão os valores dos três primeiros parâmetros, durante todo o trabalho. Nestas aplicações o robô usa como ferramenta a pistola de solda que geralmente é pesada (10 a 80 Kg), por isso, são geralmente usados robôs com fonte de potência hidráulica. A precisão de posição não é um ponto crítico. Sem dúvida a utilização de robôs na área de soldagem se mostra muito maior na linha de montagem de automóveis. Os primeiros robôs do setor foram instalados pela General Motors em 1969. Neste tipo de aplicação ocorrem muitos pontos de solda (300) em cada estrutura e, além disso, os pontos são próximos uns dos outros o que cria uma grande vantagem na utilização de robôs. Podemos citar ainda outras aplicações deste tipo de robôs na indústria como: estruturas metálicas e produção de eletrodomésticos.

Figura 24

Figura 25

Figura 26

Page 22: robotica_mt

24

Soldagem a Arco Este método de soldagem é utilizado para unir metais ao longo de uma trajetória contínua. O princípio de operação é igual à soldagem de ponto, porém neste caso há introdução de material de solda, geralmente de mesma composição das peças a serem soldadas. Outra diferença está no fato de que neste caso um eletrodo não entra em contato com a peça e a corrente é transmitida por um arco. Nos sistemas robotizados geralmente se utiliza o processo de escudo por gás inerte (IGS) onde a oxidação da solda que é muito intensa àquela temperatura, é inibida pela introdução de gás inerte na região entre o eletrodo e a peça. A· ferramenta neste caso não é tão pesada e robôs com servo motores podem ser utilizados. A velocidade de soldagem varia de 0,25 a 3 m/min. O ciclo de soldagem é controlado pelo equipamento de solda que na verdade controla o fluxo do gás inerte, a tarefa do robô é de conduzira ferramenta na trajetória correta, com a velocidade desejada e com distância constante em relação à base: As operações realizadas pelo robô são: •Rápido movimento para a área de contato a ser soldada; •Transmissão de sinais para causar a dispersão do gás e aplicação de tensão ao eletrodo; •Movimento preciso ao longo do caminho de solda enquanto, · mantém um constante vão de ar; •Preservar constante a orientação do eletrodo em relação à superfície a ser soldada; •Manter a pistola de solda se movendo a uma velocidade constante; •Habilidade para realizar movimentos de "tecelagem", para se atingir uma boa junção entre os dois corpos de metal e garantir a qualidade da solda. Este tipo de aplicação geralmente requer robôs com quatro ou cinco eixos de movimentação e se constitui numa das mais difíceis tarefas a ser realizadas por robôs na indústria. Porém a maior vantagem da utilização de robôs é a otimização do tempo de trabalho. Quando analisamos o trabalho realizado por um homem verificamos que o tempo gasto efetivamente com a soldagem é aproximadamente 30% do tempo total, sendo que os 70% restantes são despendidos com ajuste do equipamento de proteção ou das peças. Este tempo pode ser eliminado se o operador for um robô. A principal aplicação da soldagem de arco na indústria se encontra na fabricação de cascos de navios e barcos. Além da melhoria no tempo de produção a soldagem de partes internas se toma muito perigosa para um ser humano devido aos gases tóxicos liberados. Aplicação de Fluidos Os setores de aplicação de fluidos tais como tinta, cola e resina de uma indústria, são ambientes não adequados para o ser humano em função da toxidez dos produtos utilizados e do ruído provocado pelo fluxo de ar. Assim, esses processos se tomam candidatos potenciais ao uso de robôs em substituição a mão-de-obra humana. Neste tipo de aplicação as características desejadas dos robôs são bastante específicas: •Grande "habilidade" para aplicação do fluido em.áreas pouco acessíveis; •Elevado volume de trabalho; •Devem ocupar pequeno espaço no solo, pois as áreas são geralmente pequenas; •Ferramenta leve e com baixa precisão.

Figura 27

Page 23: robotica_mt

25

Neste tipo de aplicação ocorre também um grande predomínio de robôs no setor de produção de automóveis onde os robôs devem dispor das características citadas acima para alcançar partes internas do veículo. Apresentamos a seguir um exemplo que ilustra a aplicação de robôs no setor de pintura. Os principais problemas da integração de robôs aos processos de aplicação de fluidos são: •Proteção dos robôs de fumaça e sujeira do ambiente externo; •Isolação de fontes de faíscas elétricas durante a operação, durante a manipulação de fluidos inflamáveis; •Necessidade de coordenação entre os movimentos do robô e a localização das partes a serem pintadas; •Necessidade de alcance de áreas difíceis. Montagem Esta operação é uma das áreas mais desafiadoras e com maior potencial de crescimento na aplicação de robôs. Ela requer precisão, repetibilidade, grande variedade de movimentos e alto grau de sofisticação das garras. Geralmente o fator mais importante na decisão de substituir uma tinha. de montagem com mão-de-obra humana por uma automatizada seja a produtividade e os custos. Neste setor o ambiente normalmente não apresenta grandes riscos aos humanos, portanto para ser viável a aplicação de robôs, estes devem ser mais rápidos ou mais precisos que os humanos. A aplicação mais comum de robôs na montagem industrial é encontrada em produtos com dimensões reduzidas, onde a precisão é fator importante, como elementos eletrônicos ou pequenos motores elétricos. Este sistema permite uma solução extremamente econômica para este tipo de montagem. Há uma peculiaridade neste tipo de aplicação. Devido às dimensões serem bastante reduzidas, as trajetórias das ferramentas são, geralmente, muito curtas. Para atingir velocidades consideráveis e diminuir o tempo de montagem, o robô precisa ter acelerações muito altas. A principal desvantagem da utilização de robôs neste tipo de operação está no fato de que as peças a serem montadas precisam estar dispostas de forma correta para o robô funcionar. Isto faz com que em certas aplicações o sistema de alimentação do robô custe mais caro que ele próprio. Carregamento / Movimentação Este processo é historicamente um dos mais perigosos da indústria, devido às grandes cargas e pressões que normalmente envolvem. A aplicação de robôs neste tipo de operação, normalmente pouco ergonômica, trás vantagens principalmente para a segurança e saúde dos operários. PROGRAMAÇÃO E SIMULAÇÃO DE ROBÔS Com o crescente desenvolvimento dos processos de manufatura, surgiu a necessidade de linhas de produção que permitissem maior flexibilidade na quantidade e na variedade de produtos a serem fabricados, A indústria, com a globalização dos processos, sentiu a necessidade de romper com paradigmas, como, por exemplo, de que toda a empresa deveria obter alta taxa de produtividade com uma pequena variedade de produtos, característica da visão taylorista, e adequar-se às necessidades do mercado, mais especificamente do cliente. Nesse processo de mudança, surgiu o conceito de automação flexível, em que, basicamente, se otimiza o arranjo físico existente no chão-de-fábrica para torná-lo o mais flexível possivel, frente à variação de produtos a que a linha de produção está sujeita. Em outras palavras, com um arranjo fisico mais racional, pode-se obter uma alta taxa de produtividade com uma-alta variedade de produtos. Desde o início da automatização dos processos ficou clara a necessidade de uma sistemática que possibilitasse a otimização das linhas de produção.

Figura 28

Figura 29

Page 24: robotica_mt

26

Ao analisar a estrutura de uma linha de produção, verificamos que algumas tarefas são repetitivas e que perdemos um tempo considerável para programá-las (ou reprogramá-las); a busca da automatização (ou semi-automatização) de determinadas tarefas passa pela definição de como replicar uma determinada tarefa em outra máquina. A questão que surge aqui é: como replicar as tarefas executadas num robô, num parque industrial com uma centena deles? A resposta a essa pergunta nos leva a sir Charles Devol que desenvolveu uma forma de registrar uma seqüência de movimentos, dando início à primeira geração de robôs. A partir de Devol começou-se a ter a consciência do conceito de reprogramabilidade, que é atualmente a base do desenvolvimento dos robôs comerciais existentes no mercado. Quando se deseja programar um robô para executar determinada tarefa, um dos pontos importantes é o fato de ser ou não possível executar uma seqüência específica de comandos. Programar um robô significa descrever os procedimentos a serem tomados pelo manipulador sob a ação do controlador. Devido ao grande número de controladores de robôs existentes e à crescente evolução dos sistemas de programação de alto nível orientados ao usuário, faz-se necessária uma interface entre eles. Conforme a norma ISO TR 10562 (Manipulating lndustrial Robots - lntermediate Code for Robots (ICR)), um código intermediário deve ser usado como uma interface entre programas de robô orientados ao usuário e controladores de robôs industriais. O problema básico da programação Para um dado problema de programação há diversas formas de se implementar um algoritmo para solucioná-lo; escolheremos uma em função do índice de desempenho adotado, de forma a minimizá-lo, ou que seja a mais próxima do ideal. Eis ai a motivação da programação e, consequentemente, da programação de robôs. Da busca constante para otimização das soluções, surgiram ao longo dos anos ferramentas computacionais mais avançadas, que propiciam ao projetista uma maior flexibilidade no que tange à tarefa a ser executada. Inicialmente as linguagens existentes se baseavam em comandos intuitivos do tipo move to, open tool, etc., que descreviam literalmente o tipo de ação a ser executada. Concomitantemente com tais desenvolvimentos, os computadores, unidade básica no processamento dessas informações, experimentaram uma constante evolução em termos de quantidade de informação, velocidade de processamento e disponibilidade de periféricos. A conjunção de fatores como evolução tecnológica dos microcomputadores, desenvolvimento de linguagens e ferramentas de análise e programação possibilitounos atingir o estágio atual da automatização robotizada. Nosso problema, no entanto, se reduz a apresentar de forma clara e objetiva o estado atual da programação de robôs, propiciando ao leitor uma visão dos procedimentos adotados ao resolver um problema de programação. Métodos de programação A pesquisa na indústria durante os últimos 20 anos tem sido direcionada para a criação de técnicas de automação que aplicadas em lotes de produção de pequeno e médio porte, produzam resultados adequados do ponto de vista custo-benefício. Isso culminou com o desenvolvimento das máquinas CNC, sistemas flexíveis de manufatura, robôs móveis e braços manipuladores. O desenvolvimento desse último grupo tem particular importância, pela complexidade intrínseca envolvida na habilidade de emular o comportamento da cadeia de ligamentos do braço manipulador, de forma a replicar os movimentos do braço humano. Os robôs industriais de hoje são mecanismos automatizados, projetados para movimentar peças ou ferramentas sobre uma trajetória previamente estabelecida. Como mencionado anteriormente, um robô deverá ser capaz de executar um conjunto de operações ou movimentos diferenciados se sua célula de trabalho for alterada. O programa de controle do robô deverá ser capaz de adaptar-se às variações das tarefas e ser flexível o suficiente para permitir uma seqüência dinâmica de operações. Pode-se avaliar a flexibilidade de um robô pela extensão dos tipos de operação e de movimento que podem ser programados no seu controlado r e pela facilidade de entrada ou alteração de um programa. A programação pode ser feita de duas maneiras: on-line e qff-line. Na programação off-line utilizam-se linguagens de programação criadas especialmente para robôs, tais como VAL, Wave, AML, MCL, e Sigla.

Page 25: robotica_mt

27

Esses programas são em geral depurados com o uso de simuladores. A Programação on-line, por outro, lado faz uso geralmente de métodos de programação por ensino ou condução. Os métodos atuais de programação de robôs industriais têm sido satisfatórios onde a proporção entre o tempo de programação e de produção é pequeno e também quando a complexidade da aplicação não é tão exigida. A programação off-line pode ser definida nesse contexto como o processo pelo qual a programação dos robôs é desenvolvida, parcial ou completamente, sem a necessidade do uso do robô. Programação on-line Podemos definir programação on-line como a utilização de métodos de programação "por ensino" para aplicar um programa de controle no controlador do robô. O programador conduz o robô por uma seqüência de posições desejadas (via teachpendant ou dispositivo mestre-escravo). Nesse processo de "ensino", envolvemos as tarefas de identificação dos pontos, edição e repetição do trajeto ensinado. Programas de edição adicionam informações relevantes ao programa de controle, bem como aos equipamentos de produção associados. O uso de programas de edição nos permite um meio de avaliar e corrigir programas de controle existente ou ajustar pontos quando uma tarefa é codificada. Durante esse processo, o programador necessita de funcionalidades que podem incluir repetição do programa para frente e para trás, operações passo a passo, seleção de velocidade de execução entre outras, que facilitam a depuração do programa. Necessariamente, essa abordagem utiliza o robô para a programação e, de alguma forma, é dependente do algo ritmo de controle usado para movimentação entre os pontos da trajetória. Três algoritmos básicos de controle são usualmente utilizados: movimento ponto a ponto, contínuo e o controle de trajetória. • Ponto a ponto: Robôs com esse tipo de controle movem-se de uma posição inicial a outra final, sem que posições intermediárias sejam inseridas na programação da trajetória. Geralmente cada eixo se move até atingir a posição desejada. • Movimento contfnuo: Esses robôs se movimentam através de pontos com pequenos incrementos entre si, armazenados ao longo de uma trajetória previamente percorrida. As posições de cada eixo são gravadas pela unidade de controle a intervalos de tempo constantes recolhendo dados dos sensores de posição durante a movimentação do robô. • Controle de trajetória: Envolve o controle coordenado de todas as juntas, para percorrer uma trajetória desejada ao longo de dois pontos. Nesse método. os eixos se movem suave e proporcionalmente para gerar o trajeto de controle especificado. Em programação on-line, duas abordagens básicas são tomadas para passar ao robô uma trajetória desejada: métodos de programação por aprendizagem e por linguagens textuais. Programação por aprendizagem Métodos de programação por aprendizagem exigem que o programador conduza o manipulador, movendo-o fisicamente de modo a realizar as manobras que ele deve apreender. Esse método é mais utilizado em tarefas que necessitam dé uma trajetória contínua, como pintura por pulverização, corte a jato de água, aplicação de selante ou solda a arco. A programação por aprendizagem envolve o uso de um joystick, um teclado comum ou um teclado portátil chamado de teach-box para guiar o robô ao longo de uma trajetória planejada. Se o programa (ou teach-box) especificar uma trajetória, contínua ou ponto a ponto, da extremidade de robô usando as coordenadas de posição e orientação referenciadas a um sistema cartesiano de coordenadas inercial, essas informações são enviadas ao controlador, que as converte em coordenadas de junta, produzindo desta forma os movimentos desejados.

Page 26: robotica_mt

28

Programação por condução O aprendizado por condução também é utilizado no modo ponto a ponto, em que o robô grava apenas certos pontos da trajetória, deslocando-se posteriormente através deles em linha reta (ou por trajetos circulares, se assim for solicitado). Nesse tipo de programação, o operador move fisicamente o efetuador final pelo trajeto desejado. Para trajetórias contínuas, os sensores do braço enviam continuamente informação sobre a posição de cada junta para o controlado r do robô à medida que o braço vai se movimentando. Para trajetórias ponto a ponto, a informação de posição da junta é enviada apenas nos pontos da trajetória onde o operador especificamente a posiciona. Nesses casos, uma vez gravados na memória do computador, os pontos podem ser chamados a qualquer tempo para reprodução. • Ambos os métodos de programação descritos envolvem a tarefa de integração entre três fatores básicos: • as coordenadas dos pontos devem ser identificadas e armazenadas na unidade de controle; os pontos podem ser armazenados como coordenadas individuais das juntas ou pelas coordenadas geométricas da extremidade do robô; • as funções a serem executadas nos pontos especificas devem ser identificadas e gravadas; por exemplo, para cada trajetória, podemos identificar a velocidade de avanço, fluxo de selante a ser aplicado, etc; • os pontos e dados funcionais são organizados em seqüências lógicas; isto inclui quando uma dada trajetória deve ser estabelecida ou quando várias condições devem ser checadas. Esse três fatores são integrados no processo de aprendizagem e não existem em separado, como passos de programação. Programação via teach-pendant A programação on-line necessariamente faz uso de um teclado portátil chamado teach-pendant, para guiar o robô ao longo de uma trajetória. Podemos tomar como exemplo a Fig. 6.1. Neste exemplo, o robô deverá executar a tarefa de pegar a peça na esteira de entrada e colocá-la no centro de usinagem; depois do processamento, deve retirar a peça e colocá-Ia na esteira de saída. Nessa tarefa, faz-se necessária a integração do robô com as esteiras, e o operador deverá executar uma seqüência pré-determinada de operações, enumerados a seguir. 1. Mover o braço do robô até que a garra esteja exatamente acima da peça, na esteira de chegada; abrir então a garra. 2. Alinhar o eixo da garra com o da peça a ser transportada. 3. Armazenar o programa apertando a tecla correspondente a "gravar" no teach-pendant. 4. Baixar a garra até que ela esteja centrada com o objeto a ser pinçado. Armazenar esse ponto. 5. Fechar a garra para que a peça seja levantada. Armazenar esse ponto. 6. Levantar o braço, de forma a liberar o espaço de trabalho, e alinhá-Io ao nível do centro de usinagem. Armazenar esse ponto. 7. Aproximar a garra do centro de usínagem e posicioná-la alinhada com o dispositivo de fixação do centro de usínagem. Armazenar esse ponto. 8. Abrir a garra e liberar a peça. 9. Elevar o braço até liberar o espaço de trabalho, de forma a retirar o braço do robô. 10. Retraír o braço do robô até uma posíção intermedíária. Armazenar esse ponto. 11. Aguardar o sinal do centro de usinagem e retirar a peça. 12. Rotacionar o braço até a esteira de saída e posicioná-Io sobre a superfície da esteira. Armazenar esse ponto. 13. Baixar o braço até a superfície da esteira. Armazenar esse ponto.

Figura 6.1 – Célula genérica a ser programada.

Page 27: robotica_mt

29

14. Abrir a garra e liberar a peça. Armazenar esse ponto. 15. Levantar o braço até liberar o espaço de trabalho do robô. Armazenar esse ponto. 16. Voltar à posição de equilíbrio e reiniciar o ciclo. Os passos listados podem variar de acordo com o arranjo fisico da célula e servem para prover o controlado r com as coordenadas dos pontos utilizados no programa. Cabe ao operador entrar, via teach-pendant, com os parâmetros necessários para a correta sinalização entre o robô e os periféricos (nesse caso esteiras e centro de usinagem).

Fig 6.4 Fig 6.3 Fig 6.2

O teclado e o display da unidade de controle são freqüentemente usados em conjunto com um teach-pendant padrão. Em geral existem três tipos: genérico (Fig. 6.2), com botões pictográficos (Fig. 6.3) e com display (Fig. 6.4) Programação off-line Os desenvolvimentos na tecnologia de robôs, tanto em sqftware quanto em hardware, estão viabilizando cada vez mais a programação W-tine. Esses desenvolvimentos incluem o uso de controladores mais sofisticados, maior precisão no posicionamento e a sensores mais avançados. A programação on-tine de um robô, de um modo geral, pode consumir muito tempo, evoluindo de modo desproporcional ao aumento da complexidade das tarefas; conseqüentemente, quando o robô fica fora da linha de produção, o tempo gasto na programação pode prejudicar substancialmente a sua utilidade. Em muitas aplicações que envolvem processos de produção em massa, como soldagem a ponto em linhas de produção automobilísticas, os requisitos temporaís de reprogramação devem ser minimizados ao máximo. Podemos concluir que, para posibilitar a aplicação de robôs em lotes de produção pequenos e médios. onde os tempos envolvidos podem ser cruciais. a programação q[ftine é altamente recomendada. O incremento na complexidade das aplicações em robótica torna as vantagens da programação w-tine mais atrativas. Essas vantagens podem ser classificadas como segue. • Redução do tempo ocioso: O robô pode ser mantido na linha de produção enquanto a próxima tarefa está sendo programada. Isto acrescenta maior flexibilidade aos robôs. • Ambientes potencialmente perigosos: Redução no tempo de permanência do operador próximo ao robô. o que diminui o risco de acidentes por comportamento anormal do equipamento. • Sistema simplificado de programação: Pode-se usar a forma off-line para programar uma grande variedade de robôs, sem a necessidade de se conhecerem as peculiaridades de cada controlador. Reduz-se assim o índice de reciclagem dos programadores. • Integração com sistemas CAD/CAM: Habilita a interface com o banco de dados de peças, centralizando a programação de robôs com esses sistemas; possibilita o acesso a outras funcionalidades. como, por exemplo. planejamento e controle. • Depuração de programas: Sistemas de programação off-line com CAD/CAM integrados podem produzir um modelo da planta (robô + célula de trabalho) que pode ser usado para detectar colisões dentro do espaço de trabalho. possibilitando determinados movimentos e evitando assim danos ao equipamento. Limitações da programação off-line A programação off-line, como já foi dito aqui. necessita obrigatoriamente da existência de um modelo teórico do robô e do ambiente; o objetivo é usar esse modelo para simular o comportamento real do robô. A implementação da programação off-line encontra principalmente três problemas:

Page 28: robotica_mt

30

• dificuldade em desenvolver um sistema de programação generalizado que seja independente do robô e de suas aplicações; • para reduzir a incompatibilidade entre robôs e sistemas de programação. Faz-se necessário definir padrões para as interfaces; • programas gerados off-line devem levar em conta os erros e imprecisões entre o modelo idealizado e o mundo real. Devido às imprecisões do modelo teórico idealizado e a variáveis inerentes ao processo no mundo real, seqüências simuladas geralmente não atingem o objetivo de controlar o robô sem erros. Na prática, o robô não atinge o local calculado pelo modelo ou a ferramenta não é posicionada precisamente como definido no modelo. Essas discrepância podem ser atribuídas aos seguintes fatores destacados a seguir ROBÔ • Falta de precisão na tolerância da montagem dos seus componentes, provocando o aumento na variação do off-set das juntas. Pequenos erros na estrutura são amplificados e produzem grandes erros de posicionamento no efetuador. • Falta de rigidez na estrutura do robô. Pode causar grandes erros, quando este está sujeito a condições severas de carga. • Incompatibilidade entre robôs do mesmo modelo. Devido a diferenças no inicialização do sistema de controle de cada robô, a mesma programação off-line pode apresentar pequenos erros. CONTROLADOR • Resolução insuficiente do controlador. A resolução especifica o menor incremento de movimento atingível pelo controlador. • Precisão numérica do controlador: É afetado pelo número de parâmetros envolvidos e tamanho das palavras de comando usadas no controlador; além da eficiência do algoritmo usado para os propósitos de controle. AMBIENTE • Dificuldade na determinação precisa dos objetos (robôs, máquinas, peças) com relação ao sistema de coordenadas generalizadas. • Alteraçôes no ambiente, como a temperatura, podem causar efeitos adversos no desempenho do robô MODELO E SISTEMA DE PROGRAMAÇÃO • A precisão numérica do processador do computador. • A qualidade dos dados do modelo real. Isso determina a precisão final do programa gerado em off-line. A composição desses erros através de todo o sistema de programação off-line pode levar a discrepâncias de magnitude significante. Para que a programação off-line se torne uma ferramenta prática, essa magnitude deve ser reduzida a nível em que ajustes do posicionamento final possam ser executados automaticamente. Na programação off-line, um programa pode estar contido em um disque te ou ser transmitido eletronicamente (via rede); pode ser parte de uma biblioteca completa de programas desenvolvidos para aquele modelo de robô, embora não tenha sido desenvolvido especificamente naquele robô. Linguagens de programação de robôs industriais Atualmente, após a padronização pela ISO, as linguagens de programação para comunicação homem-máquina já são bem conhecidas; além disso, temos também a padronização da interface máquina-máquina. Uma condição importante para as linguagens de programação da inteface-homem-máquina é que elas devem, necessariamente, ser interativas. Hoje existem duas correntes de pensamento na estruturação da interface homem-máquina. Uma defende que a linguagem seja simples, para ser usada pelos próprios operadores sem um treinamento computacional específico.

Page 29: robotica_mt

31

A outra defende que a linguagem deve prover requisitos corr.putacionais poderosos e que somente técnicos especialmente treinados devem desenvolver a programação. Um exemplo dássico da primeira filosofia é a linguagem Arla, da ABB; outro exemplo, da segunda corrente, é a linguagem Karel da Fanuc. Existem hoje centenas de linguagens de robôs disponíveis comercialmente. Muitas delas baseadas em linguagens clássicas como pascal, C, Modula-2, Basic, e Assembler. As linguagens de programacão podem ser classificadas de acordo com o sistema de referência do modelo, a estrutura de controle utilizada, o tipo de especificação de movimento, a interface com os dispositivos externos e os periféricos a serem utilizados. Segundo GONG (1998), as linguagens de programação podem ser classificados em: • linguagens de movimento ponto-a-ponto; • linguagens de movimentação básica, linguagem de baixo nível (Assembly); linguagem de programação não-estruturada de alto nível; • linguagem de programação estruturada de alto nível; • linguagens do tipo NC (Numeric Command). Conforme a norma ISO TR 10562, a linguagem ICR é um pseudocódigo de baixo nível com elementos básicos suficientes para permitir que qualquer linguagem de alto nível seja traduzida para ela. Para que isso seja possivel, devem ser desenvolvidos compiladores adequados. Cada tradutor irá fazer uso das capacidades da ICR do modo que lhe for mais conveniente, a fim de satisfazer ao usuário final. Apenas a título de exemplo, são descritas algumas técnicas para implememação de linguagens comuns. Linguagens tipo Basic Caracterizam-se por um algoritmo linear e simples, sem compilação em módulos separados, sem abstração de dados ou algo ritmos; existem apenas tipos de dados prédefinidos, e as chamadas às sub-rotinas não utilizam passagem de argumentos. Esse tipo de linguagem geralmente é interpretado, traduzido para ICR e somente depois executado, linha por linha. Como as linhas de código são sintaticamente independentes, esse método simples de interpretação não causa problemas. Linguagens tipo Pascal Esse tipo de linguagem caracteriza-se pelo encorajamento à programação estruturada. As funções e procedimentos podem ter argumentos e as variáveis podem ser globais ou locais (a uma função ou procedimento). Recursão é permitida e facilmente implementada e, em alguns casos (Modula 2 e ADA) , a programação pode ser modular. Nesse último caso, um ligado r deve providenciar a resolução das referências externas e converter os módulos em um único executável ICR. A linguagem ICR não oferece suporte nativo para ligação dinâmica. Se for necessário utilizar essa técnica, o ligador dinâmico deve ser implementado de forma independente. A passagem de parâmetros deve ser feita por meio da pilha da esquerda para a direita, ou seja, o primeiro elemento a ser empurrado para a pilha será aquele mais à esquerda (na linguagem original) e no topo da pilha estará aquele mais à direita. Deve-se prestar especial atenção à estruturação dos blocos da linguagem, uma vez que o espaço de pilha reservado para as variáveis depende disso. Como a ICR não faz distinção entre funções e procedimentos, a pilha deve ser esvaziada ao final das chamadas de procedimentos. Linguagens tipo C Caracterizam-se principalmente pela possibilidade de declaração de variáveis na abertura de qualquer bloco (delimitado por [ ], em C) e pela capacidade de se usarem matrizes ou ponteiros de forma indistinta. A primeira característica pode ser implementada diretamente com os comandos BLKBEG e DECLVAR, mas a segunda apresenta problemas, pois a ICR prefere que os dados tenham tipos explícitos. Recomenda-se fazer a atribuição de tipo, sempre que não for realmente impossível.

Page 30: robotica_mt

32

Linguagens do tipo Lisp Têm como característica básica a habilidade de trabalhar com listas encadeadas e a intercambiabilidade de dados e programas. Esse tipo de linguagem requer um acurado gerenciamento de memória. Apesar de ser possivel escrever compiladores para essas linguagens, recomenda-se consulta a literatura especifica. Linguagens tipo Forth Pelo fato de utilizar basicamente operações baseadas na pilha e pela semelhança estrutural, esse tipo de linguagem não apresenta maiores problemas de implementação. A única ressalva fica por conta da implementação de múltiplas pilhas. Linguagens orientadas a objeto Linguagens desse tipo estão fora dos objetivos do nosso texto e não têm grande utilidade na área aplicada de robótica. Como a ICR possui suporte a todos os tipos de dados comuns em robótica e suporte às operações a eles associadas, pode-se geralmente cair em alguns dos casos anteriores. Muitos robôs industriais são amplamente utilizados em processos de manufatura, como tarefas de montagem, manipulação de materiais, soldagem a arco/ponto, pintura, carga e descarga de Centros de Usinagem e em algumas aplicações especiais, como exploração submarina e pesquisa de próteses para deficientes. Estima-se que haja no mundo cerca de cem fabricantes de robôs. A Tab. 6.1 lista alguns desses fabricantes e suas respectivas linguagens de programação.

Tabela 6.1 – Fabricantes de robos e suas linguagens de programação Fabricante Linguagens de Programação

ABB Arla, Rapid Fanuc KAREL Reiss IRL

Staubli V+ Adept V+

Comau PDL2 Eshed ACL IBM AML/2

Kawasaki AS Motoman Inform 1, Inform 2

Nachi SLIM Panasonic Parl 1 , Parl 2

PSI PSI Sansung FARL-II

Seiko DARL 4 Toyota TL-1

TQ TQ Simulação de robôs Hoje em dia os robôs têm uma larga aplicação na indústria e na manufatura. Exemplo disso são os vários programas de desenvolvimento lançados nacional e internacionalmente, como, por exemplo: Recope (Grupo de Automação e Manufatura), Espirit, Brite e Eureka, grandes programas de pesquisa que, entre suas linhas, focalizam a robótica como um de seus. temas. Os principais esforços no desenvolvimento e aplicações da robótica sem dúvida recaem na indústria automobilistica. Os benefícios da auto mação flexível foram incorporados pesadamente nos processos de manufatura automotiva auto matizada. As indústrias automotivas têm encorajado a utilização de robôs em outras áreas, estimulando seus fornecedores a utilizar a mesma tecnologia. Muitos robôs comerciais têm largo uso em tarefas de montagem e manufatura, como manipulação de material, soldagem a arco/ponto, montagem de partes, pintura, carga e descarga, etc. As técnicas de CAD encontraram extensivo uso nos projeto de engenharia, auxiliando o usuário em processos que envolvam desenvolvimento de diagramas e desenhos de alta complexidade.

Page 31: robotica_mt

33

Entretanto, no que diz respeito a processos que envolvam movimentação de peças, há necessidade de um estudo mais aprofundado através de simulação. A extensão das técnicas de CAD/CAM também é desejável no domínio da robótica. Entretanto a cinemática envolvida nos movimentos do robô é consideravelmente mais complexa do que a relacionada com os movimentos xyz dos centros de usinagem e com os movimentos do efetuador e das juntas do robô. Some-se a isso a necessidade de utilizar de um ambiente capaz de simular úma grande variedade de robôs e tipos de configurações disponíveis no mercado. Apesar dessas dificuldades, a simulação veio para prover um ambiente gráfico capaz de gerar uma interação suave com as diversas linguagens de programação de robôs existentes no mercado. Benefícios como detecção de colisões em off-line, avaliação e otimização de seqüências de programas sem necessidade da presença física do manipulador têm impulsionado o desenvolvimento das pesquisa em simulação de robôs. Em resumo, a programação off-line promove uma interligação essencial para sistemas CAO/CAM. O sucesso dessa integração pode ser evidenciado pela ampla difusão de simuladores comerciais e pela diminuição do tempo de implementação de sistemas flexíveis de manufatura na indústria. Simuladores comerciais O primeiro simulador comercial que possibilitou a simulação de robôs foi o Grasp, desenvolvido pela Universidade de Nottingham num período de sete anos. Utilizado por diversas universidades e instituições de ensino, tinha a inconveniência de não poder modelar estruturas cinemáticas não-seriadas. O Robographics foi desenvolvido pela Computervision, uma companhia bem conhecida dos desenvolvedores de pacotes comerciais de CAD; utilizado pela Austin-Rover e Unimation. A McAuto CAD, uma divisão da McDonell-Douglas, comercializa uma série de pacotes para simulação de robôs, usados pela Cincinatti-Millacron. O programa Place, é usado para avaliação do arranjo físico da célula robotizada. O Build é usado para modelagem e estudos dinâmicos tridimencionais. O Command é usado para programação off-line e o Adjust, para a calibração do robô. A Technomatics comercializa o Robcad. Esse pacote é utilizado por muitas montadoras na europa (Ford, BMW, Volkswagen e Opel). O Igrip, da Deneb, grupo Dassault Systems, também é largamente utilizado em muitas empresas. Semelhante ao Robcad o Igrip, baseia-se em uma estação gráfica e opera no ambiente do programa CAE Catia, que vem incluído no pacote. O software Workspace, da Flow Technologies, é um ambiente desenvolvido para plataforma PC que possui interface gráfica de simulação capaz de gerar um modelo do ambiente, propiciando a geração e interpretação de programas em off-line. Um grande número de outros simuladores está disponível comercialmente, mas tem um pequeno impacto no mercado. Softwares educacionais Para modelagem, simulação, programação off-line, detecção de colisões e análise do arranjo físico, as indústrias montadoras de robôs utilizam softwares que operam em estações de trabalho que demandam alto investimento em equipamentos. No entanto existem algumas opções comerciais com diferentes capacidades e disponíveis para pesquisa: • Xanimate - Software educacional para simulação gráfica de robôs, desenvolvido pela University Ohio. • ROBÔ_SIM - Ambiente de simulação para PC desenvolvido para o Matlab. O pacote consiste em rotinas capazes de desempenhar cálculos específicos (funções para cinemática direta e inversa, dinâmica do manipulador, planejamento de trajetória, controle e simulação). • Simderela - Software de simulação para ambiente Uníx. • RobLib - Software de simulação para Windows, desenvolvido na Faculdade de Engenharia da Universidade do Porto. Capacidade de modelagem de robôs com dois graus de liberdade

Page 32: robotica_mt

34

Exemplos Apresentamos dois exemplos de geração de código de um robô industrial para aplicação em soldagem. Linguagem RAPID - ABB %%% VERSION:l LANGUAGE:ENGLISH %%% MODULE LIVRO_RAPID VAR robtarget TPl:=[[1144.53,- 0.00,1287.05], [O.70701,0.00000,0.70719,0.00000J, [0,0,0,0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR robtarget WELD_BASOGP2:=[[686.71,-100.00,630.08], [0.24991,0.06698,0.93303,- O . 25000 J , [O, -1, O, O] , [9E+0 9, 9E+0 9, 9E+ O 9, 9E+09, 9E+09, 9E+09] ] ; VAR robtarget WELD_POLGPl:=[[786.71,-100.00,530.08], [0.24993,0.06698,0.93303,O . 24999] , [O, -1, O, O] , [9E+0 9, 9E+0 9,9;::+09, 9E+09, 9E+09, 9E+0 9] ] ; VAR robtarget TP2:=[[786.71,-100.00,530.08], [0.24994,0.06698,0.93302,O . 24999 J , [O, -1, O, O] , [9 E+O 9, 9E+0 9,9;::+09, 9E+09, 9E+09, 9E+0 9] ] ; VAR robtarget WELD_POLGP2:=[[786.71,100.00,530.08], [0.24995,0.06698,0.93302,O . 24999] , [O, -1, O, O] , [9 E+O 9, 9E+0 9,9;::+09, 9E+09, 9E+09, 9E+0 9] ] ; VAR robtarget WELD_POLGP4:=[[986.7c,100.00,530.08], [0.24995,- O . 93302, O . 06698, O . 250 O O] , [-1, O, 1, O: , [9E+09, 9E+09, 9E+09 , 9 E+09, 9E+09 , 9E+09 J ] ; VAR robtarget WELD_POLGP3: = [ [886.71,200.00,53 0.08] , [0.00000, O .70707, O . 612 3 9, O . 35356] , [-1, O, 1, O] , [9 E+O 9,9 E+O 9,9;::+09, 9E+09, 9E+09, 9E+09] ] ; VAR robtarget WELD_POLGP5:=[[986.71,-100.00,530.08], [0.24998,- O .933 O 1, O . 06698, O . 24999] , [-1, O, 1, O] , [9E+09, 9E+09, 9 E+O 9, 9E+0 9, 9E+09 , 9E+0 9] ] ; VAR robtarget TP3:=[[986.71,-100.00,530.C8], [0.2-1999,-0.93301,0.06698,0.24999], [1, O, 1, O] , [9 E+09, 9E+09, 9 E+09, 9E+09, 92+ O 9, 9E+09] ] ; VAR robtarget WELD_BASOGP3:=[[1086.71,-10J.00,630.08], [0.25000,- O . 933 O 1, O . 06698, O . 24999] , [-1, O, 1, O , [9 E+C 9,9 E+09, 9 E+09 , 9 E+O 9, 9 E+O 9, 9E+ 09] ] ; !! LANGUAGE RAPID !! MEMORY 32768 !! TEACHPOINTFILE LIVRO_RAPID.PR# !! ROBOT IRB1400 PERS tooldata TOCHA:=[TRUE, [[-92.05,- O . 00,189.53] , [0.99999, O. 00000, O . 0000 O, O . COOOO] ] . [O, [O, O, O] , [1, O, O, O) , O, O, O] ] ; PROC main) MoveJ [[ 1144.53, -0.00,1287.05] , [0.70710, 0.00000, 0.70710, 0.00000] , [-1, 0,- 1, O] , [9E+0 9, 9E+0 9, 9E+0 9, 9E+09, 9E+0 9, 9 E+09 ] ] , \V: = 1 000, fine \ Z : = 1 O O, TOCHA; MoveJ WELD_BASOGP2,vmax\V:=220,fine\Z:=0,TOCHA; MoveL WELD_POLGPl,vmax\V:=220,fine\Z:=0,TOCHA; !! ARCWELDON 100,10 MoveL TP2,vmax\V:=220,fine\Z:=0,TOCHA; MoveL WELD_POLGP2,vmax\V:=220,fine\Z:=200,TOCHA; MoveC WELD_POLGP3,WELD_POLGP4,vmax\V:=220,fine\Z:=200,TOCHA; MoveL WELD_POLGP5,vmax\V:=220, fine\Z:=O,TOCHA; !! ARCWELDOFF MoveL TP3,vmax\V:=220,fine\Z:=0,TOCHA; MoveL WELD_BASOGP3,vmax\V:=22G,fine\Z:=0,TOCHA; MoveJ [[ 1144 . 53 , - O . O O , 1287 . 05 J , [O. 7 O 71 O , O . O O O O O , O . 7 07 1 O , O . O O O O O J , [-1, O , 1, O] , [9E+09, 9E+09, 9E+09, 9E+09, 9E+09, 9E+09]] , \V: =1000, fine\ Z:=100,TOCHA; ENDPROC ENDMODULE

LINGUAGEM KAREL - FANUC PROGRAM LIVRO_KAREL --! LANGUAGE KAREL 2 ----! MEMORY 8192 --! ROBOT IRB1400 -- TEACHPOINT DECLARATIONS VAR WELD_BASOGP3: POSITION WELD_POLGP5: POSITION WELD_POLGP4: POSITION WELD_POLGP3: POSITION WELD_POLGP2: POSITION WELD_POLGP1: POSITION WELD_BASOGP2: POSITION TP1 : POSITION BEGIN $UTOOL=POS(154.8749,-O,67.6648,90,O,90,' ') $USEMAXACCEL=TRUE %INCLUDE LIVRO# WITH $MOTYPE=JOINT MOVE TO $HOME:$UTOOL WITH $MOTYPE=Joint, $TERMTYPE=FINE, $SPEED=lOO MOVE TO WELD_BASOGP2 WITH $MOTYPE=Joint, $TERMTYPE=FINE, $SPEED=lOO MOVE TO WELD_POLGP1 --! ARCWELDON 100.0,30 WITH $MOTYPE=Linear, $TERMTYPE=FINE, $SPEED=lOO

Page 33: robotica_mt

35

MOVE TO WELD_POLGP2 WITH $MOTYPE=Linear, $TERMTYPE=FINE, $SPEED=lOO MOVE TO WELD_POLGP3 WITH $MOTYPE=Linear, $TERMTYPE=FINE, $SPEED=lOO MOVE TO WELD_POLGP4 WITH $MOTYPE=Linear, $TERMTYPE=FINE, $SPEED=lOO MOVE TO WELD_POLGP5 --! ARCWELDOFF WITH $MOTYPE=Linear, $TERMTíPE=FINE, $SPEED=lOO MOVE TO WELD_BASOGP3 WITH $MOTYPE=JOINT MOVE TO $HOME:$UTOOL END LIVRO_KAREL

Referências Bibliográficas Básicas [01] ROMANO, V.Ferreira e outros. Robótica Industrial: Aplicação na industrial de manufatura e de processos.

1a Edição, Edgard-Blücher LTDA, São Paulo, 2002. [02] GROOVER, M.P.; WEISS, M.; NAGEL, R.N.; ODREY, N.G. Robótica: Tecnologia e programação.

1a Edição, McGraw-Hill, LTDA, São Paulo, 1989. [03] ROSÁRIO, J.M.; Princípios de mecatrônica. Prentice Hall, São Paulo, 2005

[04] LIMA II, Eduardo J.;Arnaldo, Marise C.; Araújo, Helder L.- Apostila Robótica Básica – SENAI Cimatec, Salvador, 2003

Complementares Revista periódica Mecatrônica Atual www.mecatronicaatual.com.br

Revista periódica Mecatrônica Fácil www.mecatronicafacil.com.br

wikipedia http://pt.wikipedia.org/wiki/Robot

mecanicaonline http://www.mecanicaonline.com.br

Time line of Robotics http://www.thocp.net/reference/robotics/robotics.html

Robotica Online http://www.roboticsonline.com/index.cfm

Intelligent Robotics & Automation Laboratory

http://www.robotics.ece.ntua.gr/

www.swrtec.de/swrtec/industrial

Empresas Fabricantes de Robôs: ABB http://www.br.abb.com/

Fanuc www.fanucrobotics.com/

Staubli www.staubli.com/web/robot/division.nsf

Adept www.adept.com/

Comau www.comau.com/index.jsp

Eshed www.intelitek.com

IBM http://www-03.ibm.com/ibm/history/exhibits/robotics/robotics_1.html

Kawasaki http://www.kawasakirobotics.com/

Kuka http://www.kuka.com/usa/en/

Motoman http://www.motoman.com/

Nachi www.nachirobotics.com

Panasonic http://www.panasonicfa.com/cgi-bin/productline.cgi?prodline=welding%20and%20robotics

Seiko http://www.seikorobots.com/

Toyota http://breakingnewsblog.com/robotics/archives/toyota_launches_robot_workforce/

Yamaha http://www.yamaharobotics.com/business/robot/index.html

Anexo I O ROBÔ DIDÁTICO - SCORBOT - ER III A palavra robô vem da palavra tcheca "Robota", que significa trabalho escravo. Os robôs didáticos têm sido muito utilizados na orientação de estudantes e operários responsáveis pela operação e manutenção de robôs, devido a robótica se apresentar como um dos campos de maior avanço tecnológico da atualidade.

Page 34: robotica_mt

36

Embora eles possuam algumas das principais características dos robôs industriais, são mais baratos, menores e com baixo nível de desempenho. Similares aos industriais, os robôs didáticos são compostos por: • Braço mecânico: Estrutura metálica de vínculos, junções e atuador com garra. • Sistema de acionamento: Pode ser pneumático, hidráulico ou elétrico (motor DC). • Realimentação: Conjunto de sensores que fornece ao sistema supervisório as informações sobre o estado de vínculos em movimento. • Computador: Responsável pelo controle eletrônico do robô. • Fonte de energia: Providencia energia para o controlador e potência para todos componentes. O quadro a seguir apresenta alguns aspectos comparativos entre o robô didático e o industrial:

Robô Industrial Robô Didático Carga útil 10 a 1000 kg alguns Kg Precisão 10-2 mm 10-1 mm

Funcionamento meses ininterruptos menor tempo Área de trabalho vários metros dezenas de cm

Software muitos poucos Uma das grandes vantagens dos robôs didáticos é a possibilidade de desmontar para reconhecer peças internas. Segurança com o robô didático A presença de robôs no ambiente industrial pode provocar riscos à segurança dos operários não familiarizados, pois eles são mais rápidos que outras máquinas. A segurança humana em ambientes com robôs industriais Colisões com robôs em movimento ou suas ferramentas podem causar ferimentos graves ao ser humano, devendo ser adotadas precauções tais como: Não ultrapassar o isolamento ao redor de um robô em movimento; • Prestar atenção na sinalização local; • Não colocar as mãos na parte interna da garra do robô; • Tomar cuidado ao tocar o controlador do robô e seu sistema de energia. O isolamento de robôs de pessoas não autorizadas é conveniente, e normalmente utilizam-se mecanismos que interrompem o funcionamento do robô instantaneamente caso a área de segurança seja invadida. Segurança de um robô industrial Os robôs e outras máquinas comuns ao seu ambiente de trabalho são equipamentos de alto custo, de tal forma que seus operadores devem ser pessoas familiarizadas com sua operação. Segurança em ambientes de robôs didáticos Os robôs didáticos são menores e mais lentos que os industriais, tendo uma imagem inofensiva a ponto de que seus usuários sejam descuidados. Para evitar que ocorra acidentes no aprendizado deve-se tomar algumas precauções: • Não se aproximar demais do robô em movimento; • Não colocar as mãos no mecanismo interno; • Não abrir a tampa do controlador sem autorização; • Certificar-se que o cabo de alimentação esteja desconectado antes de abrir o controlador ou mesmo trocar os fusíveis; • Certificar-se que a chave de alimentação esteja desligada antes de conectar entradas e saídas.

Page 35: robotica_mt

37

Segurança do robô didático Devido ao fato do robô didático ser mais sensível que os industriais devemos tomar alguns cuidados para aumentar sua vida útil: • Prender o robô a uma base com no mínimo 3 parafusos • Certificar-se que o robô tenha espaço suficiente para movimentar-se; • Não mover o robô a força; • Não colocar cargas superiores a 1 Kg no braço do robô; • Certificar-se que os objetos pesados não corram risco de deslizar das garras; • Não apertar bruscamente os objetos na garra; • Não conectar qualquer tensão aos conectores de entrada do robô; • Não conectar tensões maiores que 12 V aos conectores de saídas, ou fazer conexões que resultem em corrente maior que 10 A. Componentes do robô didático Scorbot - er III O robô didático, como mostra a figura 1, é composto por duas sessões principais: • Sistema do braço mecânico: Ele está ligado a base do robô e tem uma garra para manipular objetos. Existem seis motores DC instalados no braço operando em loop fechado através de um codificador montado em cada motor. • Controlador: Unidade responsável pela operação do braço mecânico. É composto por um microprocessador que supervisiona a operação do robô, memória e componentes lógicos. O controlador recebe comandos de um computador externo e os traduz em instruções de operação para o braço mecânico. O controlador também possui fontes de alimentação que fornece energia para ele mesmo e para os motores do braço do robô. O SCORBOT-ER III deve ser conectado a um computador externo com os softwares de operação e programação do robô instalado. É utilizada a interface serial RS-232C para conectar o controlador ao computador.

O BRAÇO MECÂNICO

Classificação da estrutura mecânica O braço mecânico do SCORBOT-ER III é composto por vínculos e junções articuladas verticalmente com cinco graus de liberdades e uma garra. A figura 2 ilustra o braço mecânico do robô, listando suas junções e comparando o mesmo a um braço humano. A tabela 1 relaciona o nome de cada junta, seu tipo de movimento e o motor responsável pelo movimento.

Fig. 1 - O robô didático Scorbot ERIII

Fig. 2 - Esquema do braço mecânico

Page 36: robotica_mt

38

Motores do Robô Todas as junções do robô são movidas pelos motores DC. A direção do movimento do robô é determinado pela polaridade da tensão de operação. Cada motor tem um controlador de malha fechada que verifica a extensão e direção do movimento dos mesmos. É utilizado um codificador ótico em forma de disco em cada motor do braço do robô para o controle de malha fechada. A figura 3 mostra o motor e o codificador instalados no braço do robô. O codificador consiste de uma fonte de luz (LED), detetores de luz (fototransistor) e um disco de metal com ranhuras que gira com o motor. O codificador fornece ao controlador informações sobre o movimento do robô. Essas informações são conferidas para verificar se os movimentos estão sendo corretamente realizados, o que seria impossível caso o sistema do robô não tivesse os codificadores. Sistema de Drive O sistema de drive do SCORBOT-ER III é do tipo indireto sendo realizado por meio de engrenagens e correias rodando do motor para a junção. Os sistemas de drive utilizam duas definições importantes: • Taxa de transmissão: Valor que permite o cálculo das velocidades relativas dos eixos de movimento. • Resolução: Valor que indica a capacidade do sistema com relação a precisão do movimento. Transmissão indireta em um grau A figura 4 mostra a transmissão usada para movimentar a base do robô. A engrenagem menor com raio Ra está instalada diretamente no eixo de saída do motor. A engrenagem maior com raio Rb está fixada a junção de base do robô. O movimento do robô causa a seguinte cadeia de movimentos: motor - engrenagem A - engrenagem B - base do robô Observe que as engrenagens giram em sentidos opostos.

CÁLCULO DA TAXA DE TRANSMISSÃO

A taxa de transmissão do robô pode ser calculada por: Tab = Rb / Ra : 1 onde: Tab = taxa de transmissão da engrenagem a para a b. Ra = Raio da engrenagem conectada ao eixo de saída do motor. Rb = Raio da engrenagem conectada a base do robô. Para cada volta da engrenagem a, a engrenagem b irá girar Ra/Rb. A taxa de transmissão também pode ser calculada por: Tab = na/nb onde: na = número de dentes da engrenagem ligada ao eixo do motor. nb = número de dentes da engrenagem ligada a base do robô.

Junta

nº Nome Junta Movimento da

Junta Motor nº

1 Base R 1 2 Shoulder R 2 3 Elbow R 3 4 Wrist (pitch) R 4+5 5 Wrist (roll) R 4+5

6 Gripper P

Pinças abrem e fecham

8

TABELA 1 - Relacionamento entre junta e seu movimento

Fig. 4 - Tipo de transmissão usado no robô

Page 37: robotica_mt

39

Cálculo da taxa de transmissão em rpm A taxa de transmissão também determina a taxa relativa de rotação das engrenagens envolvidas. No exemplo a engrenagem a irá rodar (nb/na) vezes mais rápido que a b. Wb/Wa = 1/Tab = na/nb onde: Wa = Rotações por minutos da engrenagem ligada a base do robô. Wb = Rotações por minutos da engrenagem ligada ao eixo do motor. Cálculo da taxa de resolução A resolução define o menor passo possível para girar as engrenagens, motores ou junções. É definida em graus para resolução angular e unidades de comprimento para resolução linear. Quanto menor o passo, maior a resolução e maior a exatidão do movimento. A resolução pode ser calculada por: resolução da engrenagem = a = Sb = 1_ = na resolução da engrenagem b Sa Tab nb

Transmissão Indireta a Dois Graus Na figura 4, foi mostrado uma transmissão a um grau (uma engrenagem move a outra). A figura 5 mostra uma transmissão com o acréscimo de mais um grau. O número de dentes de cada uma das quatro engrenagens é mostrada a seguir:

Engrenagem a b c d Número de dentes na nb nc nd

Cálculo da taxa de transmissão A taxa de transmissão da figura 5 é o produto das taxas das transmissões formadas por cada grau do drive: Tad = Tab x Tcd onde: Txy = taxa de transmissão entre engrenagem x e a engrenagem y Txy = ny / nx Se mais graus de transmissão forem acrescentados, a taxa de transmissão Tad deve ser multiplicada pela taxa de cada grau acrescido. Cálculo da taxa de rpm A razão entre a taxa de revolução da engrenagem d e a engrenagem a, como mostrada na figura 5, é a seguinte:

onde: Wn = taxa de revolução da engrenagem n Txy = taxa de transmissão da engrenagem x para a engrenagem y A inclusão de um grau adicional de transmissão, cuja taxa de transmissão seja maior que 1, reduz a taxa de revolução do último grau de transmissão. Na inclusão de um segundo grau de drive, aumenta a taxa de transmissão e, deste modo, aumenta-se a resolução do sistema, ou seja, o robô torna-se mais preciso, uma vez que é possível realizar movimentos mais curtos.

Fig. 5 - Transmissão com dois graus

Page 38: robotica_mt

40

TRANSMISSÕES DO SCORBOT-ER III

A transmissão de cada eixo de movimento do SCORBOR-ER III começa dentro da carcaça do motor. Dentro desta carcaça há uma engrenagem que é constituída de engrenagens acopladas umas às outras. A estrutura básica de um motor do SCORBOT-ER III é mostrado na figura 6. Existem três tipos de motores neste robô, com montagens de engrenagens diferentes. As taxas de transmissão destes motores estão listados abaixo (Tm é a taxa de transmissão entre o eixo do motor e o eixo de saída):

Motores da base, ombro e cotovelo: Tm 1,2,3 = 127,7:1 Motores do pulso, pitch (arremesso) e roll (giro): Tm 4,5 = 65,5:1 Motor da garra: Tm 8 = 19,5:1

Em outras palavras, uma taxa de transmissão de 127,7: 1, por exemplo, significa que a cada 127,7 revoluções do motor, o eixo de saída dará apenas 1 volta. Cálculo da taxa de revolução do eixo de saída do motor do pulso e sua resolução Dada a taxa de revolução do eixo do motor: Wm = 2412 rpm, temos que a taxa de revolução do eixo de saída é de:

Dado que a resolução do eixo do motor (o cálculo da resolução será explicado no capítulo 5), Sm, é de 60º, temos que a resolução do eixo de saída é de:

Cálculo da taxa de revolução da base, ombro e cotovelo do eixo do motor e suas resoluções Tmol 1,2,3 = 127,7:1 Wm = 2412 rpm

Sm = 60º

Com base nestes valores é possível identificar a taxa de transmissão de cada junta do robô. Transmissão da junta da base A transmissão da junta da base do robô é idêntica à apresentada na figura 4. A engrenagem a está diretamente acoplada ao eixo de saída; a engrenagem b está acoplada ao corpo do robô. Transmissão da junta do ombro A transmissão da junta do ombro do SCORBOT-ER III é similar à de sua base. A diferença é que a transmissão no ombro é dupla, ou seja, o ombro é movido simultaneamente de ambos os lados do braço mecânico, o que aumenta a sua mobilidade, bem como sua habilidade em suportar cargas. A engrenagem a está ligada ao eixo de saída e a engrenagem b está ligada ao ombro, fazendo com que este se mova.

Fig. 6 - Estrutura de um motor do robô didático

Page 39: robotica_mt

41

Transmissão da junta do cotovelo Esta transmissão é mostrada na figura 7. Como na transmissão do ombro, o cotovelo também usa uma transmissão dupla. O cotovelo é movido simultaneamente de ambos os lados do braço mecânico, ou seja, contém dois sistemas de tração, do tipo ilustrado na figura 7. A combinação de duas transmissões duplas (ombro e cotovelo) previne contra torções do braço, além de aumentar a estabilidade do robô. A engrenagem a, que está ligada ao eixo de saída do motor, movimenta a engrenagem b. A engrenagem c, que está ligada nesta engrenagem, movimenta a engrenagem d através de uma correia. Transmissão da junta do pulso O SCORBOT-ER III tem a junta do pulso com dois graus de liberdade, permitindo dois tipos de movimento: subir/descer de pulso (pitch) e movimento de rotação do pulso (roll). A estrutura é diferente das anteriores e é mostrada na figura 8. A junta do pulso tem três partes separadas, constituindo uma montagem conhecida como diferencial. As partes 1 e 2 são tracionadas pelos motores 4 e 5, respectivamente. O movimento da parte 3 depende do movimento relativo de 1 e 2, sendo que a garra é fixada a esta parte. Desse modo: • Quando as partes 1 e 2 movem-se na mesma direção, a parte 3 sobe ou desce (pitch). • Quando as partes 1 e 2 movem-se em direções opostas, a parte 3 sofre rotação (roll). Cada engrenagem tem 32 dentes. Em ambos movimentos de pulso, a extensão de movimento dos motores 4 e 5 é idêntica (podendo somente diferir na direção). As transmissões dos motores 4 e 5 para a junta do pulso são idênticas, conforme transmissão ilustrada na figura 9. A execução da transmissão para o motor 4 (ou motor 5), para a articulação do pulso diferencial, é a seguinte: A engrenagem a é presa ao eixo de saída do motor e traciona a engrenagem b via correia 1 e assim sucessivamente até a engrenagem f que gira a engrenagem diferencial. Taxa de transmissão e resolução de cada junta do robô

Base Ombro Cotovelo Pulso na (dentes) 24 18 18 12 nb (dentes) 120 72 72 24 nc (dentes) - - 17 24 nd (dentes) - - 17 24 ne (dentes) - - - 24 nf (dentes) - - - 24 Wa (rpm) 18,88 18,88 18,88 36,85

Sa (graus) 0,47 0,47 0,47 0,916 Característica de Transmissão um grau um grau dois graus dois graus

Fig. 7 - Transmissão da junta do cotovelo

Fig. 8 - Transmissão da junta do pulso

Fig. 9 - Transmissão dos motores 4 e 5

Page 40: robotica_mt

42

Tabela 2 - Transmissão das juntas Transmissão da garra O motor da garra do SCORBOT-ER III está acoplado à junta do pulso. Sua revolução gira um parafuso fazendo com que a garra abra ou feche. Este tipo de transmissão é chamada de transmissão guiada por parafuso (transmissão lead screw) e é ilustrada na figura 10. Neste tipo de transmissão um dado importante é o passo do parafuso. No sistema milimétrico, ele é definido como o número de milímetros entre duas linhas adjacentes do parafuso. O passo do parafuso é equivalente ao movimento linear do parafuso. Como a garra encontra-se acoplada a este parafuso, logo, têm-se o movimento da garra (em milímetros). Um aumento no valor do passo do parafuso, aumenta a velocidade com a qual a garra abrirá ou fechará. A resolução dos dedos da garra, entretanto, decresce proporcionalmente. Cálculo da velocidade de abertura (fechamento) dos dedos da garra e da sua resolução A velocidade de abertura (fechamento) e a resolução derivam dos dados do motor da garra, das dimensões da garra e do parafuso guia. A força de aperto dos dedos é também afetada pelo passo do parafuso. Cálculo da velocidade de abertura (fechamento) O cálculo é dado por: D = P x N = P x W x t/60 t = 60 x D/(P x W) V = L/t Onde: W = velocidade de revolução do parafuso [rpm] N = número de revoluções do parafuso (totalmente fechado até totalmente aberto) D = comprimento do parafuso [mm] P = passo do parafuso [mm] t = tempo decorrido para o parafuso ir de totalmente fechado até totalmente aberto (negligenciado o tempo de aceleração do motor) [sec] V = velocidade dos dedos da garra [mm/sec] L = comprimento de abertura da garra [mm] Cálculo da resolução O cálculo é dado por: S 8 = Sm /Tmo8 N1 = 360/So Sg = L/(N1 x n) Dados: Sm = 60 graus Tm8 = 19.5:1

Fig. 10 - Transmissão da garra

Page 41: robotica_mt

43

Onde: Sm = resolução do motor [graus] S8 = resolução da saída do motor [graus] Tm8 = raio de transmissão interno do motor da garra Sg = resolução dos dedos da garra [mm] N1 = número de pulsos do encoder por revolução da saída do motor As garras normalmente apresentam dois dedos em cujas pontas podem ser acoplados vários acessórios, como mostra a figura 11. Em operações normais, blocos de borracha são acoplados aos dedos da garra para criar fricção e melhorar o aperto.

O CONTROLADOR

O termo "controlador" refere-se à unidade que opera e controla o braço mecânico. A figura 12 mostra o controlador do SCORBOT-ER III. As funções do controlador são as seguintes: • Ativação dos motores do robô; • Tratamento das informações recebidas dos encoders como parte do processo de realimentação; • Identificação de sinais do ambiente, através da entrada de oito microchaves; • Ativação de equipamentos externos, em completa sincronização com o robô, através de oito saídas; • Identificação dos sinais recebidos do braço do robô, além de estabelecer um ponto de referência permanente, através de oito microchaves instaladas no braço do robô. Painel Frontal do Controlador A figura 13 ilustra o painel frontal do controlador, incluindo o seguinte: • Chave POWER ON/OFF. Alimentação 110V/220V. • Chave MOTORES ON/OFF. Alimentação DC dos motores do robô. • Botão LAMP TEST. Quando pressionado, todas as luzes do painel frontal indicam e checam se o funcionamento está correto. • Botão RESET. Quando pressionado, para o funcionamento do controlador e reseta as informações armazenadas na memória. • CONECTORES DE ENTRADA. A faixa de conectores inclui 16 parafusos tipo conector para oito entradas existentes. Cada par de conectores forma uma entrada. OBSERVAÇÃO: O operador deve tomar cuidado para não conectar qualquer tensão aos conectores de entrada. • CONECTORES DE SAÍDA. Apresenta quatro faixas de conectores, cada qual incluindo três parafusos tipo conector, sendo: N.C. (normally closed) = normalmente fechado

Fig. 11 - Montagem da garra

Fig. 12 - O controlador

Fig. 13 - Painel frontal do controlador

Page 42: robotica_mt

44

COM (common) = comum N.O. (normally open) = normalmente aberto OBSERVAÇÃO: O operador deve tomar cuidado para não conectar tensões maiores do que 12V, ou tensões que resultem uma corrente maior que 10A. • CHAVES DE ENTRADA 1 E 2. Estas chaves são conectadas em paralelo às entradas 1 e 2 na faixa dos conectores de entrada. • LED's DE ENTRADA (oito led's verdes). Quando acesos indicam um curto-circuito na entrada correspondente. • LED'S DE SAÍDA (oito led's vermelhos). Quando acesos indicam um sinal na saída correspondente. • CONECTORES DO MOTOR 6 E 7. Permitem a conexão de dois eixos adicionais de movimento. Podem ser conectados a um motor com encoder, para criar um controle de malha fechada adicional para os graus de movimento. • Botão MOTOR TEST. Ativa uma rotina de auto diagnóstico. Painel Traseiro do Controlador A figura 14 mostra o painel traseiro do controlador, incluindo o seguinte: • LINE. Conexão de tensão (110V ou 220V) para o controlador. • FUSÍVEL 220V. Fusível de 1.5A (alimentação). • FUSÍVEL -12V. Fusível de 4A para entrada de -12DC (motores do robô). • FUSÍVEL +12V. Fusível de 4A para entrada de +12DC (motores do robô. • FUSÍVEL LÓGICO +5V. Fusível de 1A para entrada de +5DC (circuitos do controlador, incluindo microprocessador e memória). • CONECTOR DO ROBÔ. Conector tipo D50, com 50 pinos em três fileiras. Conecta o controlador aos motores e encoders do braço mecânico. • CONECTOR RS232C (Inferior). Conector tipo D25, com 25 pinos em duas fileiras. Conecta o controlador ao computador host. • CONECTOR RS232C (Superior). Conector tipo D25. Conecta o controlador ao controle remoto (teach pendant - dispositivo para operação manual do robô). • LED'S Tx e Rx. Provê informações sobre a existência de dados na transmissão (Tx) e/ou recepção (Rx) respectivamente. Introdução aos tipos de controle Tipos de Controle Como já sabemos, os métodos de controle utilizados em robôs industriais podem ser divididos em duas classificações principais: • Controle ponto-a-ponto • Controle por trajetória contínua. Controle Ponto-a-Ponto Neste método, o caminho pelo qual o robô precisará passar, até um dado ponto final, é definido como um conjunto de pontos intermediários. Estes pontos são enviados à memória do sistema de controle pelo usuário como parte do processo de aprendizado do robô. O curso de um ponto intermediário a outro não é pré-determinado e não afeta a implementação da operação principal. Muitos sistemas de controle de robôs industriais presentes no mercado são deste tipo. O controle ponto-a-ponto é recomendado para robôs planejados para executar tarefas em pontos pré-determinados (por exemplo, verter misturas em moldes, carregar e descarregar partes, ou pontos de soldagem).

Fig. 14 - Painel traseiro do controlador

Page 43: robotica_mt

45

Onde é necessário ultrapassar obstáculos em movimento, o operador deve planejar antecipadamente a introdução de pontos intermediários. Uma modificação mais sofisticada do controle ponto-a-ponto possibilita a introdução de pontos proibidos no controle de programação. O programa irá então ser capaz de assegurar que o robô evitará estes pontos. O robô pode ser ensinado sobre os pontos de seu trajeto de duas maneiras: • Movendo o robô manualmente para um ponto desejado, gravando este ponto na memória do robô, e passando para o próximo ponto a ser ensinado - método por aprendizagem (teach in). • Definindo as coordenadas de cada ponto desejado e gravando-as na memória do robô, sem que este tenha que ser movido fisicamente para que os pontos sejam aprendidos - método de programação off-line. Uma vez aprendidos os pontos do trajeto, programas podem ser escritos direcionando o braço do robô para estes pontos, na ordem desejada, indiferentemente da ordem em que foram ensinados. O controle ponto-a-ponto é muito mais barato que o controle por procedimento contínuo. No entanto, só é apropriado em operações em que o trajeto entre os pontos definidos não é importante. Para executar caminhos mais complicados, onde é necessário existir precisão do começo ao fim, o controle por trajetória contínua deve ser usado. Controle por Trajetória Contínua Este método de controle é usado em robôs projetados para executar operações durante o curso de movimento (por exemplo, pintura spray ou soldagem em arco). O caminho durante o qual a operação deve ser executada é gravado pelo sistema de controle na forma de um conjunto de vários pontos densamente arranjados em sua extensão. Portanto, este tipo de controle necessita de uma grande quantidade de memória e de um computador rápido o bastante para apanhar os pontos da memória, ou para realizar cálculos de trajeto. As coordenadas dos pontos durante o caminho são introduzidas na memória de duas formas: • O operador move manualmente o atuador final através do caminho desejado. Durante o movimento, o sistema de controle memoriza o maior número possível de pontos do percurso. O número de pontos gravados e a distância entre os pontos dependem da velocidade em que o robô é movido e da taxa em que os pontos são coletados na memória, chamada taxa de amostragem. A taxa de amostragem reflete a quantidade de dados coletados em um período determinado, e é um conceito comum no campo da computação. Após a etapa de aprendizagem, o robô é retornado ao ponto de partida. Quando for chamado para executar a operação envolvendo o caminho ensinado, os pontos serão obtidos da memória do controlador e implementados na mesma ordem e na mesma taxa em que foram aprendidos, significando que o robô irá duplicar o caminho que lhe foi ensinado, durante o processo. • O operador introduz na memória do robô as coordenadas dos pontos importantes durante o percurso, assim como a descrição matemática a ser seguida entre dois pontos - linha reta, percurso circular, e outros. O sistema então planeja o caminho a partir de cálculos complexos de trajeto e move o robô através deste caminho. • Como visto acima, este método de controle é muito mais dispendioso que o método ponto-a-ponto. Seu uso é recomendado apenas em tarefas em que o robô deva seguir com extrema precisão todo o percurso desejado.

Page 44: robotica_mt

46

ENCODERS ÓTICOS O encoder é um dispositivo que fornece ao controlador do robô informações sobre o status físico das várias juntas do robô (inclusive taxas de movimento). Em outras palavras, o encoder é uma unidade de realimentação (feedback unit), que informa sobre as posições atuais das juntas do robô, de forma que possam ser comparadas com posições desejadas e seus movimentos sejam planejados. Esta unidade de realimentação possibilita o controle em malha fechada, em arranjo simples de componentes opto-eletrônicos, como na figura 1. Neste caso têm-se uma fonte de luz, um receptor e um disco perfurado, que irá modular a recepção da luz. Este disco está preso a um eixo ou motor, de forma a criar um movimento rotacional, enquanto que a fonte de luz e o receptor estão fixos. A rotação do disco cria uma série de pulsos pela interrupção ou não da luz emitida ao detector. Estes pulsos de luz são transformados pelo detector em uma série de pulsos elétricos. A frequência do pulso é diretamente proporcional ao número de rotações no intervalo de tempo, e ao número de furos ao longo do disco. Os encoders são geralmente montados nas juntas do robô, ou nos eixos dos motores que atuam em cada uma das juntas. O encoder deve ser montado preferencialmente nas juntas, pois desta forma suas informações são diretamente coletadas, evitando possíveis incertezas de medição. Esta montagem requer um encoder de alta precisão e desta forma mais caro. A montagem do encoder na eixo do motor pode causar um grau de incerteza, exceto quando a taxa de transmissão é superior a 1. A função do encoder é de fornecer informações em duas áreas: Quantidade de movimento executado pelo motor (ou pela junta); Direção do movimento (horário ou anti-horário). Informações adicionais, tais como taxa de movimento, podem ser obtidas pelo cálculo da divisão da quantidade de movimento pelo intervalo de tempo decorrido para tal movimento. Encoders óticos podem ser divididos em dois grupos: • Encoders Incrementais; • Encoders Absolutos. Encoders óticos incrementais Este tipo de encoder fornece informações sobre o movimento executado e a direção da rotação do motor (figura 16). Para determinar a quantidade de movimento realmente executada pelo motor, um disco com uma única fileira de furos é suficiente. Porem, para determinar a direção da rotação, precisa-se de duas fileiras de furos no disco (como visto na figura 16). Para demonstrar o método utilizado para determinar o sentido de rotação, considere os sinais recebidos de dois detectores de luz, em quatro passos:

PASSO DETECTOR EXTERNO

DETECTOR INTERNO

Passo 4 escuro escuro Passo 3 escuro luz Passo 2 luz luz Passo 1 luz escuro

Fig. 15 - Encoder ótico simples

Fig. 16 - Encoder ótico incremental

Page 45: robotica_mt

47

Os detectores de luz transformam os estados de luz e escuro em sinais elétricos digitais. Luz é transformado em 0 lógico e escuro em 1 lógico. Como resultado, quando o disco é movimentado no sentido anti-horário, o microprocessador recebe dos detectores uma série de sinais elétricos, como indicado na tabela a seguir:

PASSO DETECTOR EXTERNO

DETECTOR INTERNO

Passo 1 0 1 Passo 2 1 1 Passo 3 1 0 Passo 4 0 0

Quando o movimento for no sentido horário, a série de sinais elétricos será como descrito na tabela a seguir: PASSO DETECTOR

EXTERNO DETECTOR INTERNO

Passo 1 0 1 Passo 2 0 0 Passo 3 1 0 Passo 4 1 1

Cálculo da resolução de um motor conectado a um encoder ótico incremental Na figura 16 é possível observar que o disco possui dois anéis concêntricos de furos. Cada par de furos (anel interno e anel externo) compõe uma unidade de contagem. O disco mostrado na figura 2 possui 6 pares de furos e desta forma 6 unidades são contadas a cada rotação completa do disco. Assim pode-se deduzir que a resolução (S) é: circunferência do disco (em graus) S = num. de pares de furos no disco Em termos matemáticos: 360 Sn = n, n é o número de pares de furos. Portanto a resolução do encoder da figura 2 é: 360 S6 = 60 Os encoders óticos incrementais não fornecem informação sobre a localização absoluta do eixo de movimento no espaço. Mais precisamente, eles fornecem a quantidade de movimento executada pelo eixo, começando do momento em que o computador é ativado e o movimento começa. Se o sistema é desligado ou ocorre uma queda de energia, a informação da localização do eixo de movimento é perdida. Quando o sistema for religado, a posição dos eixos de movimento devem ser re-fixadas. Somente após isto ser feito, o controlador poderá identificar a posição do robô novamente. Apesar de fornecer informações incompletas, os encoders incrementais podem ser utilizados como dispositivos de realimentação para muitos sistemas industriais, através do uso de softwares especiais que analisam o número de pulsos enviados e calculam a posição relativa e a velocidade da junta em movimento. Encoders óticos absolutos Os encoders óticos absolutos fornecem informações mais rigorosas que os encoders óticos incrementais. Possuem a capacidade de informar a posição física do robô assim que ele é ativado, sem a necessidade de fixação da posição inicial. Isto é possível porque o encoder transmite, para o controlador, um sinal diferente para cada posição da junta. A figura 17 mostra um disco contendo 4 anéis de perfurações e está dividido em 16 seções da arcos iguais, contendo cada uma um arranjo diferente de furos. Desta forma, cada seção possui uma combinação diferente de furos, possibilitando uma combinação diferente de sinais recebidos pelos 4 receptores. Quando o sistema é ativado, o controlador identifica a combinação dos sinais recebidos pelos receptores e transforma na exata localização da junta do robô no espaço.

Fig. 17 - Encoder ótico absoluto

Page 46: robotica_mt

48

O número de anéis utilizados em um disco depende do grau de resolução de que se necessita. Quanto maior o número de anéis, maior será o número de combinações de sinais e maior será a resolução do dispositivo (figura 18). O cálculo da resolução (S) do encoder absoluto é dado por: circunferência do disco (em graus) S = num. de segmentos no disco Em termos matemáticos: 360 Sn = 2n, n é o número de anéis. ENCODERS APLICADOS NO SCORBOT-ER III Os encoders utilizados no SCORBOT-ER III são do tipo incremental, de construção simples e designados para dar demonstrações dos princípios de operação aos estudantes. A estrutura de um encoder do SCORBOT-ER III é mostrada na fig.19. O disco do encoder está conectado ao eixo do motor e gira na mesma velocidade deste, entre duas coberturas de alumínio. Em uma delas estão montados dois LED's, que são as fontes de luz. Na outra cobertura estão dois fototransistores, que são os detectores de luz. Cada LED é montado diretamente oposto a um fototransistor, formando dois pares LED-fototransistor. Um deles está localizado próximo a borda do disco, e o outro próximo ao centro. Quando o disco gira, uma linha de luz aparece e desaparece alternadamente entre cada LED e seu fototransistor, causando condução e corte, respectivamente, da corrente entre o coletor e o emissor do fototransistor. Assim, o sinal de tensão entre o emissor e o coletor do fototransistor fica como visto na figura 20, sendo os níveis baixo (0V) e alto (4V),correspondentes à existência ou não de luz emitida. Percebe-se também um deslocamento de tempo entre as ondas dos dois fototransistores (chamado de deslocamento de fase). Isto é causado pelo deslocamento físico entre as perfurações mais externas e mais internas do disco. O sinal de tensão é transmitido para o microprocessador, que traduz a variação de tensão em uma medida da quantidade de movimento realmente executada pelo robô. A direção do deslocamento entre as duas ondas fornece ao controlador o sentido de rotação do motor. Como o disco encoder possui 6 pares de perfurações a cada volta do motor, 6 unidades de contagem são feitas, possibilitando uma resolução de 60. Para calcular a resolução de uma das juntas do robô, por exemplo a junta do cotovelo, deve-se lembrar que o alojamento do motor possui uma coleção de engrenagens que movem-se uma a outra. A razão de transmissão entre estas engrenagens é de 127,7:1 , dando uma resolução de saída do motor de: S = 60/127,7 = 0,47

Fig. 18 - Incremento da resolução do encoder

Fig. 19 - Estrutura do encoder do robô didático

Fig. 20 - Esquema de sinais no emissor e coletor

Page 47: robotica_mt

49

A resolução da junta de cotovelo é:

que é uma resolução muito boa para um robô didático, sem ter um alto custo. Os encoders do SCORBOT-ER III são montados no motor e não nas juntas como seria preferível, pois o movimento do motor nem sempre é diretamente proporcional ao movimento da junta. As transmissões conectando o motor às juntas introduzem um grau de incerteza, levando a valores imprecisos de posição. Neste caso, a montagem do encoder na junta de forma a ter a mesma resolução de 0,12 aumentaria em muito o custo do equipamento, pois, para alcançar tal resolução seria necessário utilizar um disco com 3000 pares de furos, para cada um de seus 6 encoders. O uso de encoders simples, com 6 furos, permite um baixo custo e uma boa resolução, a nível de uso educacional. Entradas e Saídas A Comunicação entre o robô e seu ambiente. Até o momento, foi vista uma descrição do robô e seus vários componentes. Mas deve-se ter em mente que o robô não realiza seu trabalho em um ambiente isolado e, sim, serve máquinas ou outros robôs. Logo, é muito importante coordenar a temporização e as operações de todos os componentes do sistema. Para garantir esta coordenação, ou sincronização, entre o robô e seu ambiente, utiliza-se de entradas e saídas. Entradas são sinais do ambiente para o robô. Saídas são sinais do robô para o ambiente . As seções seguintes discutirão entradas e saídas e como elas trabalham. ENTRADAS Suponha, por exemplo, um transportador onde as peças não são distribuídas regularmente. Compondo o sistema há, também, um robô que tem por função descarregar as peças do transportador. Prevê-se, de imediato, que a chegada da peça no ponto de descarga não pode ser prevista com exatidão. Como o robô pode saber quando a peça que deve ser descarregada, chegou no ponto de descarga? Isto pode ser resolvido com a instalação de uma chave no transportador, no ponto no qual o robô descarrega as peças que estão chegando. A chave, que pode ser mecânica, óptica ou outra, é um dispositivo que conecta ou desconecta dois condutores elétricos. A figura 21 mostra uma chave mecânica. A seqüência para fazer uma conexão elétrica começa com uma pressão que deve ser exercida na alavanca, que empurra o pino. O pino, então, fecha a chave e uma conexão elétrica (curto-circuito) é criada entre os condutores. Ambos condutores são conectados ao controlador, que pode, assim, identificar o status da chave (aberta ou fechada). Quando uma peça no transportador alcança o ponto de descarga, ela pressiona a microchave, que fecha a chave. O controlador identifica o curto resultante entre os dois terminais dos condutores, e atua no braço mecânico do robô que agarra a peça que pressionou a alavanca, e descarrega a peça do transportador, de acordo com o programa armazenado na memória do computador. A figura 22 ilustra este método.

Fig. 21 - Chave mecânica

Page 48: robotica_mt

50

A figura 23 mostra um outro método de solucionar o problema de descarga. Este sistema é composto de uma fonte de luz e um detector de luz montado no lado oposto do transportador. Até a peça chegar no ponto de descarregamento, o detector "vê" a fonte de luz e emite um certo sinal elétrico para o controlador. Quando a peça chega no ponto, ela bloqueia o campo de visão entre a fonte de luz e o detector. O detector então, muda o nível do sinal elétrico que é transmitido ao controlador. A entrada óptica é geralmente mais prática em aplicações deste tipo. Contudo, a máxima distância entre a fonte de luz e os detectores é muito limitada, e paralelo a isso, eles podem sofrer mal funcionamento devido a interferências de luz de seus arredores. APLICAÇÕES DE ENTRADA NO ESCORBOT-ER III O sistema do robô possui 8 entradas. O usuário instala as microchaves como ele julgar conveniente, com um par de fios ligando cada microchave a um ponto de conexão no painel do controlador, como mostra a figura 24. Até agora, nós vimos as conexões de entrada. Para verificar o status da entrada - por exemplo, da entrada 3 - o usuário escreve um comando no programa, como a seguir: IF INPUT 3 IS ON, THEN ROBOT SHOULD DO A PREDEFINED TASK. IF INPUT IS OFF, THEN IT SHOULD DO ANOTHER TASK. "Input on" significa que a alavanca está pressionada. "Input off" significa que a alavanca não está pressionada. Em adição as oito entradas que podem ser conectadas ao sistema, o SCORBOT-ER III possui uma simulação de entrada do painel do controlador, obtida através de dois botões, conectados em paralelo às entradas 1 e 2 do robô. Estes botões possibilitam aos estudantes praticar operações de entrada sem microchaves instaladas na célula de trabalho. Estas entradas são chamadas de entradas didáticas. SAÍDAS O princípio das saídas é similar ao das entradas. Saídas são também projetadas para prover sinalização entre o robô e seu ambiente e/ou operar equipamentos externos e máquinas. Imagine um robô cuja tarefa é agarrar uma broca, trazê-la para a posição acima da peça de trabalho, perfurar um buraco dentro de um certo período de tempo, parar a broca, e levá-la para a próxima posição de perfuração. O problema nesta aplicação é controlar a broca. Não é conveniente que a broca gire através de toda a operação, já que desperdiçaria eletricidade e provocaria sobreaquecimento da mesma. Logo, sua operação deve ser controlada, a fim de que a broca seja ligada no exato momento acima de cada posição de perfuração, e seja desligada depois de cada operação completa de perfuração. Este controle pode ser feito através de sinais de saída presentes no sistema do robô. O controlador sabe quando a broca está posicionada exatamente acima do ponto de perfuração. No ponto exato, o controlador comanda uma saída para girar a broca. A broca é desligada após completar a perfuração de cada buraco, por meio da mesma saída.

Fig. 22 - Operação da chave mecânica

Fig. 23 - Posicionamento com detector

Fig. 24 - Ligação das entradas

Page 49: robotica_mt

51

Como fazer este tipo de saída trabalhar? Isto pode ser feito através do uso de um relê, como mostra a fig 25. Um relê é composto de dois componentes básicos: uma bobina e uma chave. Quando relê é ativado, uma corrente "I" flui através da bobina. Como resultado, um campo magnético é criado perto da bobina. Este campo atrai a chave, fechando-a. A chave fica nesta posição enquanto a corrente fluir na bobina. Quando a corrente para de fluir, o campo magnético torna-se inativo, e a chave abre. Agora, como os relês podem ser integrados ao sistema do robô, e como eles podem ser usados para solucionar o problema de perfuração descrito acima? A figura 26 mostra como isto pode ser feito. Os terminais C e D do relê são conectados em série ao circuito que inclui um motor elétrico, que opera a broca, e uma fonte de tensão para o motor. Enquanto a chave permanece aberta, não flui corrente através do motor, que não gira. O motor começará a girar quando a chave fechar. Os terminais A e B do relê são conectados ao controlador. O controlador pode enviar corrente através da bobina do relê em um determinado instante, fechando o relê e ativando o motor. Em contraste com as entradas, que são componentes passivos, habilitando o controlador a verificar as chaves, saídas são componentes ativos que realmente operam dispositivos externos. As entradas de um robô são freqüentemente usadas para controlar a duração da ativação de uma saída do robô. A saída é ativada quando uma certa entrada é fechada, e desativada quando a entrada abre. APLICAÇÕES DE SAÍDA NO SCORBOT-ER III O sistema do robô possui, também, 8 saídas. Estas saídas são divididas em dois grupos: 4 relês de saída e 4 saídas didáticas. Os relês de saída permitem ativar equipamentos externos, tais como motores, na seqüência, para implementar operações na célula de trabalho. As saídas didáticas consistem de LED's que se iluminam, quando o programa dá um comando para uma certa unidade do equipamento de saída. Estas saídas possibilitam simulações para testar o aprendizado dos estudantes com relação aos princípios das saídas, além do uso de saídas na pratica. A figura 27 ilustra a conexão de um sinal de saída para um equipamento externo. A conexão pode ser realizada em um dos dois seguintes modos: Conectando o equipamento externo aos conectores N.O. (normalmente aberto) e COM (comum). Conectando o equipamento aos conectores N.C. (normalmente fechado) e COM. Estes dois modos são mostrados nas figuras 28 e 29 respectivamente.

Fig. 25 - Chave magnética

Fig. 26 - Esquema de ligação do relê

Fig. 27 - Esquema de ligação das saídas

Fig. 28 - Relê normalmente aberto

Page 50: robotica_mt

52

A operação de saída pode ser feita por meio de um relê como mostra a figura 30. Para ativar uma saída - por exemplo, saída 2 - o usuário escreve um comando no programa, como segue: >> TURN ON OUTPUT 2 Para desconectar a saída, o usuário escreve: >> TURN OFF OUTPUT 2 Para integrar entradas e saídas, o usuário escreverá uma série de comandos como a seguir: >> LINE 1 TURN ON OUTPUT 2 >> LINE 2 IF INPUT 3 ON, JUMP TO LINE 4 >> LINE 3 JUMP TO LINE 2 >>LINE 4 TURN OFF OUTPUT 2 A explicação destes comandos é a seguinte: LINE 1 : a saída 2 agora está ligada; LINE 2 : a entrada 3 serve para verificar o estado do evento que controla a saída 2. O controlador verifica a entrada 3. Se a entrada está ligada, o programa irá para a linha 4, onde ele desconectará a saída 2. Se a entrada 3 estiver desligada, o programa irá para a próxima linha (neste caso, linha 3). LINE 3 : o programa retorna para a linha 2 para ver se a entrada 3 se tornou ativa. Enquanto a entrada 3 não vir a ficar ativa, a saída 2 permanece ativa. Ponto de inicialização do robô (Robot Home) Como já foi visto, chaves são usadas para identificar a posição de peças. Contudo, chaves também podem ser usadas para outras aplicações. Nos robôs industriais, chaves são instaladas em cada articulação do braço mecânico, e são usadas para localizar o ponto de inicialização. O que é um "ponto de inicialização"? O "ponto de inicialização" é ponto de referência fixo, conhecido, utilizado para a localização do braço mecânico no espaço. Quando o robô é ligado depois de ter sido desligado, o "ponto de inicialização" deve primeiramente ser localizado. Somente depois, os programas podem ser carregados da memória e executados. Este ponto de referência garante que futuras execuções de programas presentes serão exatas e sem desvios. Robôs sem tal característica, serão incapazes de executar programas que demandem um alto grau de precisão. Para encontrar seu ponto de inicialização, o controlador move uma articulação até que a chave daquela articulação seja pressionada. Ele então, vai para a próxima articulação, e assim por diante, até que todas as articulações estejam em suas posições específicas, constituindo, juntas, o ponto de inicialização daquele robô.

Fig. 29 - Relê normalmente fechado

Fig. 30 - Conjunto de relês

Page 51: robotica_mt

53

ENCONTRANDO O ROBOT HOME COM O SCORBOT-ER III Como nos robôs industriais, o SCORBOT-ER III é capaz também, de encontrar seu ponto de inicialização no espaço. Cada uma das articulações inclui uma chave, que é pressionada quando a articulação assume uma certa posição no espaço. A figura 31 ilustra a forma do braço mecânico no seu ponto de inicialização. A figura 32 mostra a posição das chaves nas articulações do braço. Os usuários podem obter vantagens do programa de localização do ponto de inicialização fornecido pelo fabricante, ou pode escolher escrever seus próprios programas para esta finalidade. UTILIZANDO SCORBASE PARA OPERAR O ROBÔ

Scorbase é uma linguagem alto nível, utilizada para operar o Robô didático SCORBOT-ER III, que permite o controle da trajetória do robô. O objetivo deste capítulo é apresentar os Princípios de Operação da linguagem SCORBASE e detalhar sua divisão em três níveis: • Nível 1: para iniciantes • Nível 2 : intermediário • Nível 3 : avançado PRINCÍPIOS DE OPERAÇÃO SCORBASE foi projetada para ensinar estudantes a escrever programas para o robô em dois estágios: Estágio 1: ensinar ao robô as varias posições, às quais o usuário quer que ele alcance enquanto executa uma operação. Estágio 2: escrever um programa para operação do robô, sendo que para isto é necessário apenas um computador deixando o robô livre para outro usuário. A vantagem desta metodologia é a eficiência na utilização do robô, pois enquanto um usuário está escrevendo um programa, outro pode operar o mesmo (numa situação semelhante a encontrada nas indústrias ). Isto caracteriza o que se denomina "programação off line" Além desta, uma outra característica da linguagem SCORBASE é a de permitir o controle do robô em tempo real durante a execução do programa.

SCORBASE NÍVEL 1 Este nível de programação é destinado a ensinar ao estudante como posicionar o robô e explicar como estas posições são usadas na programação off line. Ao iniciar o trabalho com Scorbase nível 1 deve-se tomar as seguintes precauções: 1) Ter certeza de que o braço do robô está conectado ao controlador. 2) Certificar-se de que o computador está conectado ao controlador 3) Ligar a alimentação do controlador 4) Ligar a chave do motor 5) Ligar o computador e carregar o programa SCORBASE nível 1

Fig. 31 - Braço mecânico no ponto de inicialização

Fig. 32 - Posição das chaves

MAIN MENU 1 TEACH POSITIONS 2 EDIT PROGRAM (OFF-

LINE) 3 PROGRAM HANDLING 4 RUN PROGRAM 5 HOME

Page 52: robotica_mt

54

Quando o programa estiver carregado o MENU PRINCIPAL será exibido:

SCORBASE NÍVEL 1 O Menu Principal, como mostrado na figura acima, inclui as seguintes opções: • TEACH POSITIONS: esta opção mostrará uma tela na qual o usuário pode movimentar o robô a partir do teclado do computador, e gravar as posições desejadas na memória. • EDIT PROGRAM (OFF-LINE): esta opção mostra uma tela a partir da qual o usuário pode escrever

novos programas para o robô, listar o programa atual, apagar e adicionar novas linhas a programas existentes e deletar programas. • PROGRAM HANDLING: esta opção mostra uma tela a partir da qual o usuário pode realizar operações de disco tais como: gravar novos programas, carregar programas previamente escritos, apagar e listar programas.

SCORBASE NÍVEL 1 • RUN: esta opção mostra uma tela a partir da qual o usuário pode executar passo a passo ou num ciclo contínuo os programas que foram escritos. A estrutura destes menus será discutida a seguir. TEACH POSITIONS MENU

SCORBASE NÍVEL 1 Este menu é selecionado teclando [ 1 ] a partir do MAIN MENU, aparecendo então uma tela conforme a FIGURA 32.

TEACH POSITIONS MENU 1/Q MOVE BASE RIGHT/LEFT

2/W MOVE SHOULDER UP/DOW

3/E MOVE ELBOW UP/DOW

4/R MOVE WRIST-PITCH UP/DOW

5/T MOVE WRIST-ROLL UP/DOW

6/Y MOVE AXIS 6 +/-

7/U MOVE AXIS 7 +/-

OG/OC OPEN/CLOSE GRIPER

F/S FAST/SPEED

GP GO TO POSITION #

P RECORD POSITION

L LIST/DELETE POSITIONS

H SET PRESENT POSITION AS

HOME

<ESC> RETURN TO MAIN MENU

Page 53: robotica_mt

55

MOVENDO AS ARTICULAÇÕES DO ROBÔ Para ensinar posições no espaço, o usuário move as articulações do robô até que a garra esteja localizada na posição desejada. As primeiras sete posições do menu TEACH POSITIONS são destinadas a executar esta função, sendo que nas cinco primeiras opções, o movimento ocorre nas articulações do braço mecânico, e nas opções 6 e 7, são fornecidos dois graus de liberdade adicionais. MENSAGEM DE ERRO DE COMUNICAÇÃO Se uma das teclas de funções acima citadas for pressionada quando o controlador do robô está desligado, ou quando o cabo de comunicação está desligado, será mostrada a seguinte mensagem: "COMUNICATION ERROR" Esta mensagem será mostrado até que se ligue o controlador do robô e se pressione a tecla <ESC> o que causará o retorno do MAIN MENU para a tela. MENSAGEM DE ERRO DO MOTOR Se um das teclas de funções for pressionada quando for impossível o movimento da articulação correspondente, devido a uma parada mecânica que impede o movimento, ou porque o motor desta articulação não está conectado ao controlador, aparecerá a seguinte mensagem: "MOTOR X ERROR! PRESS 'C' TO CONTINUE OR 'M'TO RETURN TO MENU" Onde o "x" da mensagem corresponde ao motor incapaz de se movimentar. Qualquer tecla que não seja 'C' ou 'M', será rejeitada pelo computador. ABRINDO E FECHANDO A GARRA A garra do robô reage aos comandos "OPEN" e "CLOSE" movendo-se para um estado completamente aberto ou fechado quando é teclado [OG] e [CG] respectivamente. Se um objeto está posicionado entre os dedos da garra, o movimento para quando os dedos tocam-no Se a garra já está completamente aberta ou fechada ao se tentar, respectivamente, abri-la ou fechá-la, nenhum movimento será executado. MOVIMENTO DE BAIXA/ALTA RESOLUÇÃO (VELOCIDADE DE MOVIMENTO)

SCORBASE NÍVEL 1 Resolução é um conceito usado para definir o menor movimento que o robô é capaz de executar. No SCORBOT ER- III, este movimento é medido em pulsos de encoder. Selecionando o comando "FAST/SPEED MOVMENT", é possível ajustar a velocidade do movimento. Quanto maior for a velocidade, mais rápido e suave é o movimento, e quanto menor a velocidade, mais truncado será o movimento, por isto, a baixa MANDANDO O ROBÔ PARA POSIÇÕES ARMAZENADAS NA MEMÓRIA Para mover rapidamente o robô para posições previamente armazenadas na memória , o comando [GP] - Go Position - seguido do número da posição armazenada na memória, realiza esta tarefa. O usuário deve tomar as precauções para que não haja obstáculos entre o braço do robô e a posição desejada, além disto, se o usuário decidir cancelar o comando GO POSITION, pode fazê-lo pressionando <ENTER> antes de entrar o número da posição, ou pressionando [B], durante a realização do movimento (o que implica na parada do movimento). No primeiro caso um beep é soado ao se cancelar o comando, e no último será exibida a seguinte mensagem:

Page 54: robotica_mt

56

"PRESS "C" TO CONTINUE "M" TO RETURN TO MENU" Caso o usuário tenha entrado um número para as posições que não esteja compreendido entre 1 e 100, a seguinte mensagem será exibida: "VALUE IS OUT OF RANGE" Caso se mande o robô para uma posição que não existe na memória, a mensagem abaixo será exibida: "POSITION IS EMPTY" GRAVANDO POSIÇÕES NA MEMÓRIA O comando RECORD POSITION é utilizado para se gravar uma determinada posição do braço do robô. Para tanto, deve-se teclar [P] e entrar uma posição de 1 a 100 Caso uma posição ilegal seja fornecida, a gravação é cancelada, um BEEP é soado e a seguinte mensagem é exibida: "VALUE IS OUT OF RANGE" DEFININDO POSIÇÃO ATUAL COMO "HOME"

SCORBASE NÍVEL 1 O comando HOME é utilizado no nível 1 da linguagem SCORBASE, para definir como HOME a posição atualmente ocupada pelo braço do robô. Desta forma, teclando-se [H], a seguinte mensagem será exibida: "SET PRESENT POSITION AS HOME ARE YOU SURE ? (Y/N)" A confirmação desta mensagem (Y) define como HOME a posição corrente. LISTANDO/DELETANDO POSIÇÕES DA MEMÓRIA O comando [L] do menu TEACH POSITIONS chama outro menu: o menu LIST /DELETE POSITIONS que é mostrado a seguir.

A opção [1] pede que seja entrado o número do ponto que se deseja listar e mostra as coordenadas do ponto escolhido uma unidade correspondente ao número de pulsos dos encoders de cada articulação. Caso pontos cujo número não foi gravado sejam solicitados, é exibida a seguinte mensagem: "POSITION IS EMPTY" Caso os pontos solicitados tenham número menor que zero ou maior que 100, é exibida a mensagem: "VALUE IS OUT OFF RANGE" A opção [2] deste menu (LIST FROM POSITION) lista as posições a partir da posição fornecida pelo usuário. As opções [3], [4] e [5] são destinadas a apagar as posições armazenadas na memória, sendo que DELETE POSITION apaga apenas a posição fornecida pelo usuário, DELETE FROM POSITION...TO POSITION ..., apaga uma faixa de posições fornecida pelo usuário, e DELETE ALL apaga todas as posições da memória. A opção PRINT POSITIONS é a de número [6] e se destina a imprimir as posições gravadas

LIST DELETE POSITIONS 1 LIST POSITION 2 LIST FROM POSITION 3 DELETE POSITION 4 DELETE FROM POSITION... TO

POSITION... 5 DELETE ALL 6 PRINT POSITIONS

<ESC> RETURN TO TEACH POSITIONS MENU

Page 55: robotica_mt

57

SCORBASE NÍVEL 1 MENU EDIT PROGRAM (OFF LINE) Este menu corresponde à opção [2] de MAIN MENU e se destina a escrever programas simples onde o robô executa sequencialmente as operações que compreendem abertura e fechamento da garra e mover o robô de uma posição à outra.

Os comandos deste menu serão apresentados abaixo, simulando passo a passo os resultados obtidos com a sua utilização: OPEN GRIPPER (Opção [O]) 1 OPEN GRIPPER: Abre a garra 2 [ ] Avança o ponteiro de programa CLOSE GRIPPER (Opção [C]) 2 CLOSE GRIPPER Fecha a garra até sentir um objeto 3 [ ] Avança o ponteiro de programa GOTO POSITION (Opção [1]) - Move o robô para posição na memória 3 GOTO POSITION (Entrar número da posição) 4 [ ] Avança o ponteiro de programa P/ cancelar o comando teclar 0 ou número >100. Desta forma, será exibida a mensagem: "VALUE OUT OFF RANGE” O exemplo programa exemplo digitado acima fica: 1 OPEN GRIPPER 2 CLOSE GRIPPER 3 GOTO POSITION 1 INSET LINE (Opção [I]) Insere uma linha no meio do programa I INSERT LINE (Entrar o número da linha a ser inserida) Esta opção é útil na correção de programas REPLACE LINE ( [x]) Substitui uma linha existente por outra nova: REPLACE LINE... Teclar núm. da linha a ser substituída No programa exemplo acima, caso se desejasse substituir a linha 1, resultaria: 1 Novo comando 2 OPEN GRIPPER

SCORBASE NÍVEL 1 3 CLOSE GRIPPER 4 GOTO POSITION 1 Deve-se observar que o ponteiro retorna ao fim do programa. MENU LIST/ DELETE PROGRAM

EDIT PROGRAM (OFF LINE)

O/C OPEN/CLOSE GRIPPER 1 GO POSITION I INSERT LINE X REPLACE LINE L LIST/DELETE

<ESC> RETURN TO MAIN MENU 1 [ ]

Page 56: robotica_mt

58

Este menu é similar em estrutura e função ao menu "LIST DELETE POSITIONS", e é exibido ao se teclar [L] no menu "EDIT PROGRAM (OFF LINE)

PROGRAM HANDLING MENU Este menu é exibido ao se escolher a opção [3] do "MAIN MENU" e se destina a executar operações de disco tais como descrito abaixo:

SAVE PROGRAM Salva um programa no disco LOAD PROGRAM Carrega um programa a partir do disco DELETE PROGRAM

Apaga programas do disco

CATALOG Mostra lista de programas do disco MENSAGENS DE ERRO Ao se tentar gravar, carregar, e apagar programas, alguns erros podem ser cometidos e nestes casos SCORBASE se encarrega de advertir o usuário com as seguintes mensagens: "ERROR !!!- I/O ERROR- DOOR OPEN, OR DISKETTE NOT INITIALIZED"

SCORBASE NÍVEL 1 Esta mensagem é exibida ao se realizar a operação com a porta do drive de disquetes aberta, ou com um disquete que não esteja formatado. "ERROR !!!- PROGRAM NOT FOUND PROGRAM MISPLACED OR NOT ON DISKETTE" Esta mensagem é exibida ao se tentar carregar um programa que não esteja gravado no disco ou cujo nome tenha sido digitado errado. "ERROR!!!- DISK FULL - TOO MANY PROGRAMS ON DISKETTE” Esta mensagem é exibida ao se tentar realizar uma operação de gravação quando o disco se encontrar cheio. "ERROR!!!- WRITE PROTECTED - WRITE PROTECTED TAB ON DISKETTE" Esta mensagem é exibida ao se tentar realizar uma operação de gravação quando o disco se encontrar protegido contra gravação.

LIST DELETE PROGRAM 1 LIST LINE 2 LIST FROM LINE 3 DELETE LINE 4 DELETE FROM LINE ... TO LINE ... 5 DELETE ALL 6 PRINT PROGRAM

<ESC> RETURN TO TEACH POSITIONS MENU

PROGRAM HANDLING MENU 1 SAVE PROGRAM 2 LOAD PROGRAM 3 DELETE PROGRAM 4 CATALOG

<ESC> RETURN TO MAIN MENU

Page 57: robotica_mt

59

RUN PROGRAM MENU Este menu é exibido ao se escolher a opção [4] do "MAIN MENU" e se destina a execução dos programas, como descrito abaixo:

RUN SINGLE LINE: executa uma única linha do programa Teclar [1] + [G] : executa o programa linha por linha, a partir da linha 1 Por esta característica, é útil para executar um programa pela primeira vez. RUN SINGLE CYCLE: Executa todo o programa uma vez Teclar [2] + "G" RUN CONTINUOUSLY: Executa o programa continuamente, sem parar, ciclo após ciclo Teclar [3] + "G" Usado para localizar e corrigir erros no programa, simulando procedimentos adotados por robôs industriais. JUMP TO LINE: Permite escolher a linha na qual a execução do programa deve começar. Teclar [4] para mover o ponteiro de programa para a posição desejada. OPÇÃO [B]: Parada de emergência

SCORBASE NÍVEL 1 É destinado a interromper a operação que está sendo executada pelo robô. Quando da utilização desta opção não se perde a posição presente do robô. Ao se tecla [B], a seguinte mensagem é exibida: "PRESS "C"TO CONTINUE "PRESS "M"TO RETURN TO MENU REGULAR STOP: O robô para após completar a linha corrente. USO DA LINGUAGEM SCORBASE NÍVEL 1 Como já foi visto SCOBASE permite: • Operar os motores do robô • Criar movimento no espaço entre posições • Operar a garra Para tanto, é necessário que sejam seguidas as seguintes etapas: 1) Ensinar posições ao robô 2) Editar o programa 1 GO POSITION 2 2 OPEN GRIPPER 3 GO POSITION 1 4 CLOSE GRIPPER 5 GO POSITION 2 6 GO POSITION 3 7 GO POSITION 4 8 OPEN GRIPPER 9 GO POSITION 3

RUN PROGRAM MENU 1 RUN SINGLE LINE 2 RUN SINGLE CYCLE 3 RUN CONTINUOUSLY 4 JUMP TO LINE PRESS "G"KEY TO LET THE ROBOT RUN PRESS "B"KEY FOR IMEDIATE BRAKE ANY OTHER KEY FOR REGULAR <ESC> RETURN TO MAIN MENU

Page 58: robotica_mt

60

3) Rodar o programa Os demais níveis de SCORBASE (que serão posteriormente apresentados) oferecem complemento aos recursos do nível 1, suprindo suas limitações e possibilitando aumento da complexidade das operações.

SCORBASE NÍVEL 2 O SCORBASE Nível 1 apresentou os princípios de ensino por posições e programação off-line visando a familiarização com o robô e sua operação. No Nível 2 a ênfase está no relacionamento entre o robô e o ambiente: transmissão e recepção de sinais, saltos condicionais e incondicionais. Como este nível inclui todo o software do Nível 1, serão mostradas apenas os incrementos e mudanças. MENU PRINCIPAL Há duas mudanças nesta tela:

SCORBASE NÍVEL 2 • Opção 5: HOME MENU, para encontrar a posição inicial do robô no espaço (hard home). • Aviso ao usuário que a posição inicial do robô deve ser encontrada antes de iniciar o trabalho (robô não sincronizado) MENU HOME Feita a seleção da tecla 5 é mostrado o Menu Home. O Menu Home habilita mover o robô para encontrar a posição inicial, ou ainda, habilitar uma posição arbitrária como "home", como era feito no Scorbase Nível 1. Antes de se iniciar a sincronização deve-se salvar o programa que está na memória do computador, pois uma vez pressionada "G" o computador carrega o programa Home e inicia a sincronização do robô. Uma vez carregado o programa Home no computador, inicia-se sua execução, movendo-se todas as articulações do robô, uma a uma, para localizar os limites possíveis de movimento, sendo testadas as chaves fim-de-curso de cada motor.

Enquanto é executado o programa, são apresentadas mensagens da situação atual do robô, como: "Base is (not) at home"

HOME MENU 1/Q MOVE BASE RIGHT/LEFT 2/W MOVE SHOUDER UP/DOWN 3/E MOVE ELBOW UP/DOWN 4/R MOVE WRIST-PITCH UP/DOW 5/T MOVE WRIST-ROLL RIGHT/LEFT 6/Y MOVE AXIS 6 + / - 7/U MOVE AXIS 7 + / - O/C OPEN /CLOSE GRIPPER F/S FAST/SLOW MOVEMENT J/F TURN ON/OFF OUTPUT #. H SET PRESENT POSITION AS HOME

--------------------------------------- ANY OTHER KEY WILL STOP THE ROBOT [ESC] RETURN TO MAIN MENU --------------------------------------- Stop PRESS "G"TO SYNCHRONIZE THE ROBOT

Page 59: robotica_mt

61

Se a mensagem for afirmativa indica que os limites foram encontrados e o ponto de home também. Se negativa indica que houve uma falha para encontrar a chave fim de curso correspondente, podendo ser por mal funcionamento ou devido a posição atual do vínculo estar muito distante da posição inicial, durante a execução do programa home. Caso um ou mais limites não foram encontrados, deve-se, via teclado, alcançar a posição inicial, usando todos os comandos necessários para mover o robô. Para setar uma posição arbitrária como home, basta teclar "H" e confirmar este comando.

SCORBASE NÍVEL 2

Ensinando Posições via "Teach Positions Menu" Há apenas duas diferenças neste menu, em relação ao do Nível 1: 1. O comando TURN ON/OFF OUTPUT #, que liga ou desliga a saída, selecionada foi substituído por J/K TURN ON/OFF OUTPUT #, onde "J" liga e "K" desliga a saída. Este comando é usado para testar saídas do controlador ou os equipamentos a elas ligados. 2. O comando H GO HOME, que após confirmado, move o robô para a posição home. A razão da confirmação é fazer o operador assegurar que o robô não colidirá com algum objeto ou partes de máquinas durante a execução deste comando. Escrita de Programa via Menu Editor de Programas (Off-Line)

A diferença básica entre os Níveis 1 e 2 (com exceção da capacidade de executar o "hard home") aparece neste menu, onde são implementados novos comandos e outros modificados. A seguir apresenta-se estes comandos: Envio do robô p/ uma posição armazenada em memória - Rápido ou Lento Para enviar o robô para uma posição armazenada em memória, pressiona-se a tecla "1", é apresentado na tela [ 1 GO POSITION ... ], o usuário digita o número da posição (< 100) para a qual o robô deve ir, 23 por exemplo, e tecla <RETURN>, a tela apresentará [ 1 GO POSITION 23 FAST/SLOW [ ], o usuário pode cancelar o comando pressionando <RETURN> ou então pressionar "F" ou "S", selecionando assim movimento rápido ou lento. Para opção "S", teremos:

SCORBASE NÍVEL 2 1 GO POSITION 23 *SLOW 2 [ R ] Comando de Espera (em segundos) Para fazer o robô esperar em sua posição presente, o usuário tecla "2", o computador apresenta na tela [ 2 WAIT [ ] ... ],

EDIT PROGRAM (OFF-LINE)

O/C OPEN/CLOSE GRIPPER 1 GO POSITION ... FAST/SLOW 2 WAIT ... SECONDS 3 IF INPUT #. ON JUMP TO ... 4/R TURN ON/OFF OUTPUT #. 5 JUMP TO LINE #... --------------------------------- I INSERT LINE ... X REPLACE LINE ... L LIST/DELETE <ESC> RETURN TO MAIN MENU -------------------------------- [ R]

Page 60: robotica_mt

62

O usuário digita o número de segundos (< 999) que deseja para o robô esperar, por exemplo 3, e pressiona <RETURN>, ao final será apresentado na tela: 2 WAIT 3 SECONDS 3 [ R ] Comando Jump Condicional (Verifica status de entrada) Este comando permite que o programa possa ser executado numa sequência determinada por uma condição de entrada, e não por uma única sequência. Utilizando-se a tecla "3", é apresentado. [ 3 IF INPUT # ], o usuário deve digitar um número de 1 a 8 correspondente a entrada a ser verificada seguido por <RETURN>, após resposta na tela, digita-se o número da linha do programa para onde sua seqüência será desviada e <RETURN>. Exemplo: 3 IF INPUT 5 ON JUMP TO 16 4 [ R ] • Se a entrada 5 for ON , o programa será executado a partir da linha 16. • Se a entrada 5 for OFF, o programa seguirá sua seqüência normal de execução (linha 4). Comando de Operação de Saída (Turn On) O comando faz o controlador ligar uma saída. O usuário pressiona a tecla "4", o computador mostra [ 4 TURN ON OUTPUT # ] e espera que um número entre 1 e 8, seguido por <RETURN> sejam pressionados. Comando de Desconexão de Saída (Turn OFF) Este comando complementa o anterior fazendo o controlador desligar uma saída. O usuário pressiona a tecla "R", o computador mostra [ 5 TURN OFF OUTPUT # ] e espera que um número entre 1 e 8, seguido por <RETURN> sejam pressionados. Comando de Jump Incondicional Executa um salto incondicional, e é selecionado pela tecla "5". Após esta opção o comando será mostrado e aguardará ser introduzido o número da linha de programa para a qual o programa terá prosseguimento seguido por <RETURN>. Exemplo: 6 JUMP TO LINE 21 7 [ R ]

SCORBASE NÍVEL 2 MENU DE MANIPULAÇÃO DE PROGRAMAS (Salvar, Carregar e Deletar) Completamente idêntico ao SCORBASE Nível 1. EXECUTANDO PROGRAMAS VIA RUN PROGRAM MENU Quase idêntico ao usado no nível 2, acrescido de uma linha: 5/T DISPLAY ON Este comando permite visualizar na tela os comandos executados pelo programa. USOS DO SCORBASE NÍVEL 2 O nível 2 habilita a escrita de programas a qual visa um coordenado grupo de esforços constituído por um robô e uma máquina, ou por diversos robôs. Sendo acompanhado basicamente por meio de sinais. A fim de coordenar as atividades dentro da célula de trabalho, as saídas devem ser conectadas do robô para o equipamento externo, e as entradas deste para o robô. A figura 33 mostra um robô dentro de uma célula de trabalho.

Fig. 33 - Robô na célula de trabalho

Page 61: robotica_mt

63

As operações conduzidas na célula de trabalho incluem: • Transportador de peças • Quando uma peça alcança um certo ponto no transportador, ela aciona uma micro-chave conectada à entrada do robô. • O robô desliga uma saída comutadora da tensão do transportador, parando seu movimento. • O robô move-se para baixo, pega a peça, coloca-a na caixa e move-se para a posição de espera. • Durante o deslocamento para a posição de espera, o robô liga a saída comutadora de tensão; transportador recupera o movimento. O programa que comanda estas ações é dado a seguir: 1 GO POSITION 1 (Robô na posição de espera, acima do transportador) 2 TURN ON OUTPUT # 1 (Robô ativa transportador) 3 IF INPUT # 1 ON JUMP TO LINE 5 (Robô verifica presença de objeto) 4 JUMP TO LINE 3 (Robô continua verificação) 5 TURN OFF OUTPUT # 1 (Robô pára transportador, objeto presente) 6 OPEN GRIPPER 7 GO POSITION 2 (Robô abaixa-se até o transportador) 8 CLOSE GRIPPER 9 GO POSITION 1 (Robô ergue objeto) 10 GO POSITION 3 (Robô move objeto sobre a caixa) 11 OPEN GRIPPER 13 GO POSITION 3 (Robô move-se para cima da caixa) Após completar a linha 13, o programa reinicia o ciclo na linha 1.

SCORBASE NÍVEL 3 O Nível 3 expande a capacidade de sentir a existência e tamanho de objetos, habilita a definição de posições no espaço por meio de coordenadas XYZ, e apresentar um numeroso grupo de funções. O que torna a programação muito mais eficiente, enquanto economiza consideráveis quantidades de memória e tempo. Os comandos são idênticos ao do nível 2, sendo acrescido ao Teach Positions Menu o comando: X TEACH POSITIONS BY XYZ Assim, pode-se ensinar posições em coordenadas cartesianas para o robô sem ter que mover seu braço. Quando acionada a tecla X será solicitado a entrada dos valores das coordenadas x,y,z, e pitch e roll - sendo as 3 primeiras em mm e as duas últimas posições do punho em graus - podendo ser atribuído a posição local do braço do robô para cada uma. Após todas variáveis terem sido definidas deve-se atribuir o número da posição (de 1 a 100) e pressionar <Return>. O comando X pode ser usado para mostrar as coordenadas x, y, z e os ângulos de punho em qualquer posição. ESCRITA DE PROGRAMAS VIA MENU EDITOR DE PROGRAMA (OFF-LINE) O nível 3 é incluído diversos comandos ao Menu Editor de Programas, e por serem tantos a serem apresentados na tela de menu, houve a necessidade de alterar o formato na tela dos comandos INSERT, REPLACE e LIST/DELETE. As novas funções são: Comandos de Contador (Looping) 6 SET COUNTER #.. TO .. 7 DECREMENT COUNTER # .. 8 IF COUNTER # .. > 0 JUMP TO.. Estes comandos podem ser usados para produzir laços (loops) em programas. O primeiro comando define uma contagem e ajuste do contador para um valor menor que 999. O segundo decrementa de 1 o valor especificado no contador.

Page 62: robotica_mt

64

O terceiro é um jump condicional, usado para verificar um contador específico, para determinar se seu valor é maior que zero, enquanto a condição não for falsa poderá ser repetido o laço com um ou mais subprogramas inseridos entre o primeiro e o segundo comando. Comandos de Subrotina 9 SET SUBROUTINE #.. 0 RETURN FROM SUBROUTINE P CALL SUBROUTINE #.. Estes três comandos permitem a economia de seções de programas executadas repetidamente na forma de subrotinas, as quais são chamadas a qualquer tempo. Um programa pode incluir até 16 subrotinas. Quando uma subrotina é chamada (comando CALL SUBROUTINE #), ela é executada (inicializa com SET SUBROUTINE #) e ao final da subrotina (RETURN FROM SUBROUTINE) o ponteiro do programa retorna a linha imediatamente posterior ao comando CALL SUBROUTINE.

SCORBASE NÍVEL 3 Comandos de Sensoriamento M SET MEMORY # .. TO .. MM N SET MEMORY #.. TO SENSOR V IF MEMORY # .. > MEMORY # .. JUMP ... O primeiro comando possibilita armazenar valores arbitrários em milímetros no registrador designado. O segundo mede a extensão dos dedos da garra em tempo real, transferindo a medida em milímetros e armazenando-a no registrador designado. O último realiza um jump condicional com a comparação entre duas memórias. O software inclue 16 registradores de memórias. Os demais menus: Menu Manipulador de Programas e Menu de Execução de Programas são idênticos ao do nível 2. No Home Menu é adicionado um novo comando para resetar a abertura da garra para poder realizar medições com o sensor da garra, dada, a, seguir: Z SET GRIPPER TO ZERO USOS DO SCORBASE Nível 3 A principal característica do SCORBASE Nível 3 é o uso das funções adicionais, habilitando incrementar operações sofisticadas ao robô. Adiciona-se agora a habilidade de trabalhar com equipamento em seu ambiente, podendo ser agora ensinado posições em off-line, pode sentir e comparar os tamanhos de vários objetos, executar loops e ler subrotinas. A figura 34 abaixo mostra dois blocos sobre a mesa. Estes blocos são usados para construir uma torre. Os dois blocos podem ser trocados sem confundir o robô. O programa abaixo é usado para construir a torre como a da figura. 1 GO POSITION 3 *FAST 2 OPEN GRIPPER 3 GO POSITION 1 *FAST 4 CLOSE GRIPPER 5 SET MEMORY #1 TO SENSOR (Medida do bloco na posição 1) 6 OPEN GRIPPER 7 GO POSITION 3 *FAST 8 GO POSITION 4 *FAST 9 GO POSITION 6 *FAST 10 CLOSE GRIPPER 11 SET MEMORY #2 TO SENSOR (Medida do bloco na posição 6)

Fig. 34 - Construção da torre

Page 63: robotica_mt

65

SCORBASE NÍVEL 3 12 IF MEMORY #2 (Compara os tamanhos dos dois blocos. > MEMORY #1 JUMP 18 Se bloco na posição 6 é mais largo, torre será construída na posição 6.) 13 GO POSITION 4 *FAST 14 GO POSITION 3 *FAST 15 GO POSITION 2 *FAST 16 OPEN GRIPPER 17 JUMP TO LINE 28 (Separa dois ramos do programa de construção da torre) 18 OPEN GRIPPER 19 GO POSITION 4 *FAST 20 GO POSITION 3 *FAST 21 GO POSITION 1 *FAST 22 CLOSE GRIPPER 23 GO POSITION 3 *FAST 24 GO POSITION 4 *FAST 25 GO POSITION 5 *FAST 26 OPEN GRIPPER 27 GO POSITION 4 *FAST 28 GO POSITION 3 *FAST "Hard Home" Escrevendo um Programa para Localização Como já exposto em outros capítulos, o processo de localização da referência ("home") do robô depende diretamente da sua habilidade de identificar as posições das microchaves instaladas nas ligações do braço do robô, perto das junções. Uma vez que o SCORBASE fornece ao usuário informações sobre o status destas microchaves, o programa de localização do "Hard Home" pode ser escrito como um programa qualquer. Comandos Invisíveis No conjunto de comandos mostrados na tela do editor de programas (EDIT PROGRAM (OFF-LINE)), quatro comandos foram intencionalmente omitidos no capítulo anterior. A omissão se dá para evitar que o uso de tais instruções sejam usadas por usuários inexperientes. Os comandos "invisíveis" -- que servem basicamente para localizar o "hard home" -- são os seguintes:

<CTRL> J SET PRESENT POSITION AS HOME Computador seta artificialmente as coordenadas para zero.

<CTRL> K MESSAGE #... Imprime algumas mensagens pré-estabelecidas, sendo estas numeradas de 1 a 18.

<CTRL> L IF LIMIT SWITCH #. ON JUMP TO... O usuário preenche o campo com o número da chave a ser checada e o número da linha a pular, caso a chave esteja ligada.

<CTRL> P SET AXIS #. TO ZERO Seta um zero na tabela de posições no lugar do eixo especificado.

SCORBASE NÍVEL 3

Escrevendo o Programa de Localização do "Hard Home" Apesar de existirem vários métodos de para a elaboração de tal programa, foi usado aqui um modelo simples, rápido, que requer o conhecimento apenas da linguagem de nível 3 do SCORBASE, além dos comando a pouco citados. O processo inicia pela movimentação da junção da base do robô (eixo 1) em uma dada direção. Os movimento são curtos (15 passos por movimento). Após cada movimento, checa-se a posição da microchave da junção da base.

Page 64: robotica_mt

66

Se esta estiver pressionada, o eixo passa a mover em incrementos de um passo por movimento, de modo a localizar o ponto em que a chave é desligada, para ter uma maior precisão na localização do "hard home". A importância do ponto que separa a microchave pressionada e a microchave solta é a maior precisão de posicionamento do robô, uma vez que existe mais de uma posição possível de uma junção quando a microchave está pressionada. De maneira similar, os eixos restantes são posicionados, um de cada vez, até que o "home" seja localizado. Os fluxogramas a seguir descrevem o processo de sincronização para os eixos do robô. A seguir, tem-se o exemplo de programa utilizado para a localização do "hard home": Sincronização da Base 1 SET PRESENT POSITION AS HOME 2 IF LIMIT SWITCH 1 ON JUMP TO 20 3 SET COUNTER #1 TO 40 4 GO POSITION 1 *FAST 5 IF LIMIT SWITCH #1 ON JUMP TO 20 6 SET PRESENT POSITION AS HOME 7 DECREMENT COUNTER #1 8 IF COUNTER #1 > 0 JUMP TO 4 9 GO POSITION 2 *FAST 10 IF LIMIT SWITCH #1 ON JUMP TO 20 11 SET PRESENT POSITION AS HOME 12 SET COUNTER #1 TO 40 13 GO POSITION 3 *FAST 14 IF LIMIT SWITCH #1 ON JUMP TO 20 15 SET PRESENT POSITION AS HOME 16 DECREMENT COUNTER #1 17 IF COUNTER #1 > 0 JUMP TO 13 18 MESSAGE #1

SCORBASE NÍVEL 3 19 JUMP TO LINE 31 20 SET PRESENT POSITION AS HOME 21 SET COUNTER #1 TO 150 22 GO POSITION 4 *FAST 23 SET PRESENT POSITION AS HOME 24 IF LIMIT SWITCH #1 ON JUMP TO 26 25 JUMP TO LINE 30 26 DECREMENT COUNTER #1 27 IF COUNTER #1 > 0 JUMP TO 22 28 MESSAGE #1 29 JUMP TO LINE 31 30 MESSAGE #1 Sincronização do Ombro 31 SET PRESENT POSITION AS HOME 32 IF LIMIT SWITCH #2 ON JUMP TO 41 33 SET COUNTER #2 TO 75 34 GO POSITION 5 *FAST 35 IF LIMIT SWITCH #2 ON JUMP TO 41 36 SET PRESENT POSITION AS HOME 37 DECREMENT COUNTER #2 38 IF COUNTER #2 > 0 JUMP TO 34 39 MESSAGE #12

Page 65: robotica_mt

67

40 JUMP TO LINE #52 41 SET PRESENT POSITION AS HOME 42 SET COUNTER #2 TO 500 43 GO POSITION 6 *FAST 44 SET PRESENT POSITION AS HOME 45 IF LIMIT SWITCH #2 ON JUMP TO 47 46 JUMP TO LINE 51 47 DECREMENT COUNTER #2 48 IF COUNTER #2 > 0 JUMP TO 43 49 MESSAGE #12 50 JUMP TO LINE 52 51 MESSAGE #2 Sincronização do Cotovelo 52 SET PRESENT POSITION AS HOME 53 IF LIMIT SWITCH #3 ON JUMP TO 73 54 SET COUNTER #3 TO 30 55 GO POSITION 7 *FAST 56 IF LIMIT SWITCH #3 ON JUMP TO 71 57 SET PRESENT POSITION AS HOME

SCORBASE NÍVEL 3 58 DECREMENT COUNTER #3 59 IF COUNTER #3 > 0 JUMP TO 55 60 SET PRESENT POSITION AS HOME 61 GO POSITION 11 *FAST 62 SET PRESENT POSITION AS HOME 63 SET COUNTER #3 TO 30 64 GO POSITION 9 *FAST 65 IF LIMIT SWITCH #3 ON JUMP TO 73 66 SET PRESENT POSITION AS HOME 67 DECREMENT COUNTER #3 68 IF COUNTER #3 > 0 JUMP TO 64 69 MESSAGE #13 70 JUMP TO LINE 84 71 SET PRESENT POSITION AS HOME 72 GO POSITION 10 *FAST 73 SET PRESENT POSITION AS HOME 74 SET COUNTER #3 TO 400 75 GO POSITION 8 *FAST 76 SET PRESENT POSITION AS HOME 77 IF LIMIT SWITCH #3 ON JUMP TO 79 78 JUMP TO LINE 83 79 DECREMENT COUNTER #3 80 IF COUNTER #3 > 0 JUMP TO 75 81 MESSAGE #13 82 JUMP TO LINE 84 83 MESSAGE #3 Sincronização do Pitch do Pulso 84 SET PRESENT POSITION AS HOME 85 IF LIMIT SWITCH #4 ON JUMP TO 105 86 SET COUNTER #4 TO 20

Page 66: robotica_mt

68

87 GO POSITION 12 *FAST 88 IF LIMIT SWITCH #4 ON JUMP TO 105 89 SET PRESENT POSITION AS HOME 90 DECREMENT COUNTER #4 91 IF COUNTER #4 > 0 JUMP TO 87 92 GO POSITION 15 *FAST 93 IF LIMIT SWITCH #4 ON JUMP TO 105 94 SET PRESENT POSITION AS HOME 95 SET COUNTER #4 TO 20 96 GO POSITION 14 *FAST 97 IF LIMIT SWITCH #4 ON JUMP TO 105 98 SET PRESENT POSITION AS HOME

SCORBASE NÍVEL 3 99 DECREMENT COUNTER #4 100 IF COUNTER #4 > 0 JUMP TO 96 101 MESSAGE #14 102 JUMP TO LINE 116 103 SET PRESENT POSITION AS HOME 104 GO POSITION 16 *FAST 105 SET PRESENT POSITION AS HOME 106 SET COUNTER #4 TO 150 107 GO POSITION 13 *FAST 108 SET PRESENT POSITION AS HOME 109 IF LIMIT SWITCH #4 ON JUMP TO 111 110 JUMP TO LINE 115 111 DECREMENT COUNTER #4 112 IF COUNTER #4 > 0 JUMP TO 107 113 MESSAGE #14 114 JUMP TO LINE 116 115 MESSAGE #4 Sincronização do Roll do Pulso 116 SET PRESENT POSITION AS HOME 117 IF LIMIT SWITCH #5 ON JUMP TO 135 118 SET COUNTER #5 TO 30 119 GO POSITION 17 *FAST 120 IF LIMIT SWITCH #5 ON JUMP TO 135 121 SET PRESENT POSITION AS HOME 122 DECREMENT COUNTER #5 123 IF COUNTER #5 > 0 JUMP TO 119 124 GO POSITION 20 *FAST 125 IF LIMIT SWITCH #5 ON JUMP TO 135 126 SET PRESENT POSITION AS HOME 127 SET COUNTER #5 TO 60 128 GO POSITION 19 *FAST 129 IF LIMIT SWITCH #5 ON JUMP TO 135 130 SET PRESENT POSITION AS HOME 131 DECREMENT COUNTER #5 132 IF COUNTER #5 > 0 JUMP TO 128 133 MESSAGE #15 134 JUMP TO LINE 147 135 SET PRESENT POSITION AS HOME

Page 67: robotica_mt

69

136 SET COUNTER #5 TO 150 137 GO POSITION 18 *FAST 138 SET PRESENT POSITION AS HOME 139 IF LIMIT SWITCH #5 ON JUMP TO 141

SCORBASE NÍVEL 3 140 JUMP TO LINE 145 141 DECREMENT COUNTER #5 142 IF COUNTER #5 > 0 JUMP TO 137 143 MESSAGE #15 144 JUMP TO LINE 147 145 MESSAGE #15 146 GO POSITION 21 *FAST 147 SET PRESENT POSITION AS HOME Sincronização da Garra 148 OPEN GRIPPER As posições utilizadas nas instruções GO POSITION estão listadas na tabela abaixo.

# AX-1 AX-2 AX-3 AX-4 AX-5 AX-6 AX-7 1 15 0 0 0 0 0 0 2 -600 0 0 0 0 0 0 3 -15 0 0 0 0 0 0 4 -1 0 0 0 0 0 0 5 0 -20 0 0 0 0 0 6 0 1 0 0 0 0 0 7 0 0 -20 0 0 0 0 8 0 0 -1 0 0 0 0 9 0 0 20 0 0 0 0

10 0 0 -125 0 0 0 0 11 0 0 200 0 0 0 0 12 0 0 0 20 0 0 0 13 0 0 0 -1 0 0 0 14 0 0 0 -20 0 0 0 15 0 0 0 -10 0 0 0 16 0 0 0 -10 0 0 0 17 0 0 0 0 -10 0 0 18 0 0 0 0 -1 0 0 19 0 0 0 0 10 0 0 20 0 0 0 0 300 0 0 21 0 0 0 0 65 0 0

SCORBASE NÍVEL 3

É importante notar que este programa requer apenas o aprendizado de um número relativamente pequeno de posições para a movimentação de cada eixo, enquanto que o robô, devido à função SET PRESENT POSITION AS HOME, consegue mover-se em um grande número de posições. O conjunto de movimentos apresentados neste capítulo é eficiente em operações onde o robô realiza operações curtas, que são repetidas em intervalos fixos, como, por exemplo, em um robô que coloca tampas em garrafas de refrigerante.

Page 68: robotica_mt

70

O braço do robô movimenta-se seguidamente para cima e para baixo, e a linha de produção move-se um passo para frente a cada operação do robô, de modo a posicionar a próxima garrafa ao alcance do robô. Anexo II Elementos de Hardware Motor de passo Um motor de passo é um tipo de motor elétrico que é usado quando algo tem que ser posicionado muito precisamente ou rotacionado em um ângulo exato. Em um motor de passo, um ímã permanente é controlado por uma série de campos eletromagnéticos que são ativados e desativados eletronicamente. Desse modo, é uma mistura entre um motor de corrente contínua e um solenóide. Motores de passo não usam escovas ou comutadores. Os motores de passo possuem um número fixo de pólos magnéticos que determinam o número de passos por revolução. Os motores de passo mais comuns possuem 200 passos completos / revolução, significando que ele leva 200 passos completos para completar uma volta. Controladores avançados de motores de passo podem utilizar modulação de largura de pulso para realizarem micropassos, obtendo uma maior resolução de posição e operação mais macia. Alguns controladores de micropassos podem aumentar a resolução dos passos de 200 passos / revolução para 50,000 micropassos / revolução. Os motores de passo são classificados pelo torque que produzem. Uma característica única deste tipo de motor é a sua habilidade de poder manter o eixo em uma posição segurando o torque sem estar em movimento. Para atingir todo o seu torque, as bobinas de um motor de passo devem receber toda a sua corrente marcada durante cada passo. Os controladores de motor de passo deve possuir circuitos reguladores de corrente para poderem fazer isto. A marcação de voltagem (se houver) é praticamente sem utilidade. O controle computadorizado de motores de passo é uma das formas mais versáteis de sistemas de posicionamento, particularmente quando digitalmente controlado como parte de um servo sistema. Os motores de passo são usados em drive’s de disquete, scanners planos, impressoras, injeção eletrônica nos automóveis e muitos outros dispositivos. O solenóide do topo (1) esta ativado, atraindo o dente superior do eixo. O solenóide do topo (1) é desativado, e o solenóide da direita (2) é ativado, movendo o quarto dente mais próximo à direita. Isto resulta em uma rotação de 3.6°.

O solenóide inferior (3) é ativado; outra rotação de 3.6° ocorre.

O solenóide à esquerda (4) é ativado, rodando novamente o eixo em 3.6°. Quando o solenóide do topo (1) for ativado novamente, o eixo terá rodado em um dente de posição, como existem 25 dentes, serão necessários 100 passos para uma rotação completa.

Page 69: robotica_mt

71

Controle de motor de passo através da porta paralela Motores de passos são dispositivos mecânicos eletro-magnéticos que podem ser controlados digitalmente através de um hardware específico ou através de softwares. Motores de passos são encontrados em aparelhos onde a precisão é um fator muito importante. São usados em larga escala em impressoras, plotters, scanners, driver’s de disquetes, discos rígidos e muitos outros aparelhos. Existem vários modelos de motores de passos disponíveis no mercado que podem ser utilizados para diversos propósitos. Poderemos utilizá-los para mover robôs, câmeras de vídeo, brinquedos ou mesmo uma cortina. Vamos agora entender um pouco sobre o funcionamento dos motores de passo:

Modos de operação de um motor de passo:

A forma com que o motor irá operar dependerá bastante do que se deseja controlar. Tem casos em que o torque é mais importante, outros a precisão ou mesmo a velocidade. Essas são características gerais dos motores de passos, a maioria deles permitem trabalhar dessa forma. Ao trabalhar com motores de passos, precisamos saber algumas características de funcionamento como a tensão de alimentação, a máxima corrente elétrica suportada nas bobinas, o grau (precisão), o torque e muitos outros. As características importantes que deveremos saber para poder controlar um motor de passo seriam a tensão de alimentação e a corrente elétrica que suas bobinas suportam. Veja nas tabelas abaixo, as seqüências corretas para se controlar um motor de passo:

Page 70: robotica_mt

72

A velocidade de um motor de passo Para se controlar a velocidade de um motor de passo envia-se uma seqüência de pulsos digitais (veja Tabelas 1, 2 e 3) num determinado intervalo. Quanto menor esse intervalo, maior será a velocidade em que o motor irá girar. Não defina intervalo menor que 10ms entre cada passo, o motor perderá o torque e em vez de rodar, irá vibrar. A direção (esquerda / direita) de um motor de passo Para mudar a direção de rotação do motor, simplesmente inverta a seqüência dos passos conforme os exemplos abaixo:

Page 71: robotica_mt

73

A precisão de um motor de passo Suponhamos que temos um motor de passo com as seguintes características: • Voltagem: 12 v; • Corrente: 340 mA; • Resistência da bobina: 36 ohm; • Graus: 7.5º Na figura acima a distância entre um ponto vermelho e outro é de 7.5º. Para sabermos quantos passos são necessários para que o motor dê um giro de 360º, faça os seguintes cálculos: • Passos PorVolta = 360º / 7.5º; • Passos PorVolta = 48. Portanto, um motor com precisão de 7.5º, precisa dá 48 passos para completar uma volta. Construindo o hardware para conectar o motor de passo Para acionarmos um motor de passo precisamos de um hardware específico, chamado driver. Você pode fazer um driver usando transistores de potência como os BD135, DB241 etc., A maneira mais fácil é adquirir drivers prontos, como o ULN 2003 ou ULN2803, que nada mais são que arrays de transistores Darlington que podem controlar correntes de até 500mA, estão em forma de circuitos integrados prontos para serem usados em interfaces que necessitem controlar motores de passos, solenóides, relês, motores DC e muitos outros dispositivos. Veja nas figuras abaixo as pinagens e as características desses CIs.

O CI ULN 2003 tem 7 entradas que podem controlar até 7 saídas. Com ele poderemos controlar um motor de passo. Se desejarmos controlar 2 motores, usaremos dois CIs ULN 2003, ou somente um CI ULN 2803.

O CI ULN 2803 tem 8 entradas que podem controlar até 8 saídas. Com ele poderemos controlar até 2 motores de passo simultaneamente.

Page 72: robotica_mt

74

Tanto o CI ULN2003 como o ULN 2803 trabalham com correntes de 500mA e tensão de até 50v. Não utilizem motores de passo que consumam mais que esse valor, se por ventura usarem, poderão queimar os CIs. Veja antes qual a amperagem de trabalho do motor. Prefira motores que consumam menos de 500mA, para não sobrecarregar o CI, a não ser que utilizem outros modelos. Um fator importante que se deve levar em consideração é a fonte de alimentação que terá que fornecer a amperagem necessária. Trabalhe com fonte de alimentação que forneça mais que 500mA. Por exemplo, se desejássemos controlar 3 motores de passos, todos no mesmo circuito, cada um consumindo 340mA, seria necessário uma fonte de alimentação que fornecesse correntes acima de 1A.

Figura 1 - Controle de 1 motor de passo usando o CI ULN 2003

Descobrindo as características elétricas de um motor de passo, quando só sabemos a voltagem

Figura 4 - Motor de 5 fios Figura 5 - Motor de 6 fios

Por falta de informações sobre as características elétricas de um motor de passo, na maioria das vezes abandonamos este como sucata. Se você pelo menos sabe a voltagem de operação de um motor de passo, já é uma informação muito importante para que possa colocá-lo para funcionar, e usá-lo nos projetos próximos projetos. As características elétricas que precisamos saber sobre um determinado motor de passo para fazê-lo funcionar, seriam a tensão elétrica, a corrente ou a resistência das bobinas. Como exemplo, imaginem que a característica elétrica que sabemos sobre um determinado motor de passo é sua voltagem, nesse caso 12v. Somente a voltagem não é suficiente, precisamos saber a amperagem (quanto de corrente o motor consome) para que ele funcione perfeitamente com a nossa interface. Então temos que descobrir a corrente. Também precisamos saber dentre os vários fios do motor de passo, qual é o fio 'comum', aquele que será ligado aos 12v da fonte de alimentação. Para descobri-lo, faça as medições conforme a Animação 2 e a Animação 3. Alguns motores tem 6 fios, 4 são para controlar o motor e os outros 2 são 'comuns'. A resistência entre esses 2 fios são infinitas, isso porque eles estão isolados, o que temos a fazer é juntá-los, formando um único terminal 'comum' onde será ligado ao positivo da fonte de alimentação. Quando um motor tem 6 fios fica muito mais fácil descobrir quais são os 'comuns'.

Page 73: robotica_mt

75

Veja nas animações abaixo como descobrir o fio comum: Animação 2 - Quando encontramos o fio comum, a resistência é a menor possível. Com um multímetro na escala de resistência, fixe uma das pontas de prova em qualquer um dos fios do motor e com a outra comece a medir a resistência em cada fio. Nos fios que encontrar a menor resistência, um desses é o 'comum', onde será ligado os 12v. Animação 3 - Quando não encontramos o fio comum a resistência é o dobro Nas medições feitas na Animação acima, nenhum dos fios medidos era o 'comum'. Portanto, a resistência medida será mais ou menos o dobro da resistência medida na Animação 2. Obs.: Nas medições só existirão dois valores de resistências: uma resistência baixa e uma outra alta. A menor resistência medida indica a resistência de uma única bobina, e esse valor é uma das características elétrica do motor. Vamos supor que o menor valor medido foi 36 ohm de resistência. Aplicando a lei de Ohm temos: • V = R.I • 12 = 36.I • I = 12/36 • I = 340mA Portanto, o motor deve ser alimentado com 12v / 340mA, podendo ser controlado através de um dos CI’s ULN 2003 ou ULN 2803, sem nenhuma restrição, isso porque 340mA está abaixo dos 500mA que os CI’s podem controlar. Com todas essas informações já é possível saber qual o fio do motor ligar os 12v da fonte. Sensores Para que os robôs possam se orientar através de suas funções programadas, ele deve ter noção da posição das peças a ser trabalhada por ele e também ter uma percepção de sua posição no espaço em relação a elas, com isso devemos utilizar sensores para decodificar estas posições. Sensores de proximidade Capacitivos: os sensores de proximidade capacitivos são equipamentos eletrônicos capazes de detectar a presença ou aproximação de materiais orgânicos, plásticos, pós, líquidos, madeiras, papeis, metais, etc. Princípio de funcionamento: o principio de funcionamento baseia-se na geração de um campo elétrico, desenvolvido por um oscilador controlado por capacitor.

Page 74: robotica_mt

76

O capacitor é formado por duas placas metálicas, carregadas com cargas elétricas opostas, montadas na face sensora, de forma a projetar o campo elétrico para fora do sensor, formando assim um capacitor que possui como dielétrico o ar. Quando um material aproxima-se da face sensora, ou seja, do campo elétrico, o dielétrico do meio se altera, modificando também o dielétrico do capacitor frontal, como o oscilador do sensor é controlado pelo capacitor frontal, quando aproximamos um material, a capacitância também se altera, provocando uma mudança no circuito oscilador. Esta variação é convertida em um sinal contínuo, que comparado com um valor padrão, passa a atuar no estágio de saída. FACE SENSORA: é a superfície onde emerge o campo elétrico. Distância sensora nominal (rated sn): é a distância sensora teórica, a qual utiliza um alvo padrão como acionador e não considera as variações causadas pela industrialização, temperatura de operação e tensão de alimentação, é a distância em que os sensores são especificados. EMBUTIDO: este tipo de sensor tem o campo eletromagnético emergindo apenas na face sensora e permite que seja montado em uma superfície metálica. NÃO EMBUTIDO: neste tipo o campo eletromagnético emerge também da superfície lateral da face sensora, sensível à presença de metal ao seu redor. HISTERESE: é a diferença entre o ponto de acionamento (quando o alvo metálico aproxima-se da face sensora) e o ponto de desacionamento (quando o alvo afasta-se do sensor). É importante, pois garante uma diferença entre os pontos de comutação que em uma possível vibração do sensor ou acionador, oscile o sinal de saída. ALVO PADRÃO: as distâncias sensoras nos sensores capacitivos são especificadas para o acionador metálico de aço SAE 1020 quadrado aterrado e com lado igual a 3 vezes a distância sensora para os modelos não embutidos, (na grande maioria) e em alguns poucos casos de sensores capacitivos embutidos utiliza-se o lado do quadrado igual ao diâmetro do sensor.

Fig 1 – Robo Humanóide e desenhos de DaVinci

Page 75: robotica_mt

77

Distância sensora efetiva (effective sr): valor influenciado pela industrialização, especificada para temperatura ambiente (23°C) e tensão de alimentação nominal: Sr = ± 10% Sn DISTANCIA SENSORA USÁVEL (USABLE Su): obtida para um determinado sensor considerando as tolerâncias de industrialização: Su = ± 20% Sr Distancia sensora ASSEGURADA (ASSURED Sa): é a distancia sensora que seguramente pode-se operar, considerando todas as variações de industrialização, temperatura e tensão de operação: Sa = ≤ 72% Sa Distancia sensora x MATERIAL DETECTADO: o sensor capacitivo apresenta ainda uma redução da distância sensora Assegurada de acordo com o dielétrico do material a ser detectado, que influencia diretamente o capacitor frontal do sensor. Sa = Sa . F (ε) Material a ser detectado: A tabela abaixo apresenta o dielétrico dos principais materiais, para efeito de comparação; sendo indicado sempre um teste prático para determinação da distância sensora para o acionador utilizado. Ajuste de sensibilidade: O ajuste de sensibilidade presta-se principalmente para diminuir a influência do acionamento causada pelos materiais em volta da região de sensibilidade do sensor, diminuindo sua distância sensora. Permite ainda que se detecte alguns materiais dentro de outros, como por exemplo: líquidos dentro de garrafas ou reservatórios com visores de vidro ou pó dentro de embalagens, ou fluidos em tubos ou mangueiras plásticas. Os sensores capacitivos possuem ajuste de sensibilidade, que devem ser operados com uma chave de fenda adequada.

Page 76: robotica_mt

78

CUIDADO! O ajuste da sensibilidade do sensor deve ser realizado cuidadosamente e não gire em falso o potenciômetro, pois poderá danificar permanentemente o sensor. Nota 1: na instalação do sensor não embutido verifique se existem objetos próximos à região de sensibilidade do sensor que possam acioná-lo. Nota 2: a detecção de nível com sensor capacitivo sobre visores de vidro (espessura até 5 mm para sensor M30) deve ser previamente testada e o produto controlado não deve aderir ou depositar camadas sobre o vidro. Nota 3: o sensor quando detectando nível sobre visores deve ficar o mais próximo ou mesmo até encostado no visor para se obter a maior distância sensora. Procedimento de ajuste do sensor capacitivo: Monte o sensor no seu suporte (para detecção de nível encoste o sensor no visor); Verifique se não existe nenhuma parte ou peça do suporte em volta do sensor, que poderá causar o acionamento constante do sensor; Alimente o sensor conforme seu diagrama de conexões; Sem o produto a ser detectado, o sensor deve permanecer desacionado, então gire o potenciômetro no sentido horário, até que o led ascenda e logo em seguida reduza a sensibilidade até o led apagar; Acrescente uma margem de segurança diminuindo, um pouco mais a sensibilidade; Coloque o produto a ser detectado e verifique o acionamento do sensor; Retire o produto novamente verificando o desacionamento da saída; Repita os dois procedimentos anteriores verificando a estabilidade da detecção, caso o sensor permaneça acionado retirando-se o produto, diminua um pouco ainda a sensibilidade sempre repetindo os testes novamente; Caso a detecção não seja estável utilize outro sensor com distancia sensora maior. Tipos de configurações elétricas: O que é sensor npn? São sensores que possuem no estágio de saída um transistor que tem função de chavear (ligar e desligar) o terminal negativo da fonte. O que é sensor pnp? São sensores que possuem no estágio de saída um transistor que tem função de chavear (ligar e desligar) o terminal positivo da fonte.

Page 77: robotica_mt

79

O que é sensor namur? Semelhante aos sensores convencionais, diferenciando-se apenas por não possuir o estágio de saída com um transistor de chaveamento. Aplicado tipicamente em atmosferas potencialmente explosivas de industrias químicas e similares, com barreiras de segurança intrínseca. O sensor Namur consome uma corrente ≥ 3 mA quando desacionado com aproximação do alvo a corrente de consumo cai abaixo de ≤ 1 mA, quando alimentado por um circuito de 8 V e impedância de 1 kΩ. O que é sensor cc a 2 fios? Similar aos fim de curso mecânico os sensores são ligados em série com a carga. Observe que uma pequena corrente circula pela carga quando o sensor está desacionado, requerida para alimentação do circuito interno. Verifique o correto acionamento da carga considerando que existe ainda uma queda de tensão sobre o sensor. Sensor ca / cc (corrente alternada e contínua): Sensores a 2 fios multialimentação que operam em qualquer tensão na faixa de 20 a 250 Volts tanto em CC como em CA. Os sensores com conector de 4 pinos (V1) não possuem pino de aterramento. Sensores com conector 3 pinos (v13): Todos os sensores a 2 fios com conector V13 em CA / CC(modelos UA e UF) possuem o terminal de aterramento no pino 1. CUIDADOS GERAIS COM A UTILIZAÇÃO DE SENSORES: CABO DE CONEXÃO: evitar que o cabo de conexão seja submetido a qualquer tipo de esforço mecânico.

Page 78: robotica_mt

80

OSCILAÇÃO: como os sensores são resinados, pode-se utilizá-los em maquinas com movimentos, apenas fixando o cabo junto ao sensor através de abraçadeiras, permitindo que só o meio do cabo oscile. SUPORTE DE FIXAÇÃO: evitar que o sensor sofra impactos com outras partes ou peças e não seja utilizado como apoio. PARTES MÓVEIS: durante a instalação observar atentamente a distância sensora do sensor e sua posição, evitando desta forma impactos com o acionador. PORCAS DE FIXAÇÃO: evite o aperto excessivo das porcas de fixação. PRODUTOS QUÍMICOS: nas instalações em ambientes agressivos deve-se contactar o departamento técnico do fabricante do sensor, para especificar o sensor mais adequado para a aplicação. CONDIÇÕES AMBIENTAIS: evitar submeter o sensor a condições ambientais com temperatura de operação acima dos limites do sensor.

Page 79: robotica_mt

81

CARGAS INDUTIVAS: utilizar o sensor para acionar altas cargas indutivas, poderá danificar permanentemente o estágio de saída dos sensores, além de gerar altos picos de tensão na fonte. CABLAGEM: conforme as recomendações das normas, deve-se evitar que os cabos de sensores e instrumentos de medição e controle utilizem os mesmos eletrodutos que os circuitos de acionamento. Apesar dos sensores possuírem filtros para ruídos, caso os cabos dos sensores ou da fonte de alimentação utilizem as mesmas canaletas dos circuitos de potencia com motores, freios elétricos, disjuntores, capacitores, etc; as tensões induzidas podem possuir energia suficiente para danificar permanentemente os sensores. SENSORES INDUTIVOS: os sensores de proximidade indutivo são equipamentos eletrônicos capazes de detectar a aproximação, passagem e presença de peças metálicas, componentes, elementos de máquinas, etc, em substituição às tradicionais chaves fim de curso. A detecção ocorre sem que haja o contato físico entre o sensor e o acionador, aumentando a vida útil do sensor por não possuir peças móveis sujeitas a desgastes mecânicos. Já quando a carga está desensergizada, toda a tensão está sob o sensor, que para se alimentar gera uma pequena corrente de fuga. Estes valores tem bem pouca influencia quando a carga é de maior potencia (ex: contatores, reles, solenóides, etc), mas podem afetar o funcionamento das cargas eletrônicas. SENSORES FOTOELÉTRICOS: os sensores de proximidade fotoelétricos são equipamentos eletrônicos capazes de detectar a aproximação, passagem e presença de materiais metálicos ou não, através da transmissão e recepção da luz infravermelha (invisível ao ser humano) que pode ser refletida ou interrompida pelo próprio objeto a ser detectado. FOTOSENSOR OU DIFUSO: o transmissor e o receptor são montados na mesma unidade. Sendo que o acionamento da saída ocorre quando o objeto a ser detectados entra na região de sensibilidade e reflete para o receptor o feixe de luz emitido pelo transmissor. REFLETIVO OU COM ESPELHO PRISMÁTICO: apresenta o transmissor e o receptor em uma única unidade. O feixe de luz chega ao receptor somente ser refletido por um espelho prismático, e o acionamento da saída ocorrerá quando o objeto a ser detectado interromper este feixe. BARREIRA: o transmissor e o receptor estão em unidades distintas e devem ser dispostos um de frente para o outro, de modo que o receptor possa constantemente receber a luz do transmissor. O acionamento ocorrerá quando o objeto a ser detectado interromper o feixe de luz. 2 - Tipos de Conexão:

Page 80: robotica_mt

82

O QUE É SENSOR CA? São sensores que possuem no estágio de saída componentes eletrônicos de estado sólido capazes de chavear (ligar e desligar) suas cargas diretamente em corrente alternada. Disponível na versão a 2 fios (mais terra) que deve ser ligado diretamente em série com a carga, ou a 3 fios (mais terra) que possui dois fios para alimentação exclusiva do sensor e um terceiro para a carga. O QUE É SENSOR CA / CC? Como no anterior, mas com capacidade para chavear as cargas tanto em Corrente Alternada como em Corrente Contínua, operando no sistema a dois fios conectados em série com a carga. Os sensores possuem um terceiro fio (verde / amarelo) que deve ser devidamente aterrado e internamente está ligado a carcaça do sensor e desta forma evitam risco de choque elétrico. CONFIGURAÇÕES ELÉTRICAS: os sensores de corrente alternada foram verdadeiramente desenvolvidos para substituição das chaves fim de curso. Possuem o estágio de saída composto por um tiristor, próprio para chaveamento de corrente alternada, conectado exatamente como um contato mecânico. SENSORES CA MODELOS WA E WF: Estes sensores possuem 2 fios (mais terra) e devem ser utilizados dentro da faixa: 20 a 250 Vca podendo ainda ser aplicado com 50 ou 60Hz. O modelo WA é normalmente aberto e energiza a carga quando o sensor detecta seu acionador, já o modelo WF é normalmente fechado. Os sensores possuem um terceiro fio (verde / amarelo) que deve ser devidamente aterrado e internamente está ligado a carcaça do sensor e desta forma evitam risco de choque elétrico. SENSORES CA MODELOS W3A E W3F: Possuem 3 fios (mais terra) e também devem ser utilizados dentro da faixa: 20 a 250 Vca em 50 ou 60Hz. Devem ser escolhidos quando o sensor a 2 fios não for aplicável devido a sua queda de tensão ou corrente de fuga, pois o sensor a 3 fios possui alimentação totalmente independente da carga. O modelo W3A é normalmente aberto e energiza a carga quando o sensor detecta seu acionador, o modelo W3F é normalmente fechado. Os sensores possuem um quarto fio (verde / amarelo) que deve ser devidamente aterrado e internamente está ligado a carcaça do sensor e desta forma evitam risco de choque elétrico. NOTA IMPORTANTE: o sensor não possui proteção contra troca de conexão dos fios AZ e PR, que inclusive pode queimar o sensor. SENSORES CA / CC MODELOS UA E UF: Com 2 fios (mais terra) funcionam ligados em série com a carga podendo ser utilizados tanto em Corrente Alternada como em Corrente Contínua na faixa de 20 a 250V.

Page 81: robotica_mt

83

SENSORES CA / CC MODELOS UZA E UZF: Semelhante aos sensores CA / CC (modelos UA e UF), diferenciando-se por possuir um elaborado circuito de proteção que impede o acionamento da saída em caso de sobrecarga ou curto-circuito. CARGAS ELETRÔNICAS: os sensores de proximidade são muito utilizados para o acionamento de cargas eletrônicas tais como: timers, contadores, reles de estado sólido e principalmente com entrada de controladores lógicos. PRINCÍPIO DE ALIMENTAÇÃO DOS SENSORES: a alimentação dos sensores a dois fios (mais terra) tanto em CA como em CA / CC depende e influi no funcionamento das cargas eletrônicas, pois o sensor é conectado em série com a entrada destes circuitos. A alimentação do sensor nesta condição depende do estado ligado ou desligado da entrada, conforme: ENTRADA ENERGIZADA: quando a carga está energizada uma pequena queda de tensão ocorre sobre o sensor, o que mantem seu circuito interno operando. ENTRADA DESENERGIZADA: já quando a carga está desensergizada, toda a tensão está sob o sensor, que para se alimentar gera uma pequena corrente de fuga. Estes valores tem bem pouca influencia quando a carga é de maior potencia (ex: contatores, reles, solenóides, etc), mas podem afetar o funcionamento das cargas eletrônicas. TENSÃO RESIDUAL: a pequena queda de tensão no sensor (saída energizada) é constante e independente da tensão de alimentação, mas causa maiores danos em aplicações de baixa tensão. Deve-se tomar especial cuidado quando utiliza-se tensões baixas em controladores programáveis, pois devido a queda de tensão no sensor pode ser insuficiente para acionar a entrada do controlador. CORRENTE RESIDUAL: é a corrente que circula pela carga quando a carga está desenergizada, necessária para manter o sensor funcionando, pode causar problemas com cargas de alta impedância. Em aplicações com controladores programáveis, verifique se a corrente residual do sensor não é capaz de acionar o cartão de entrada, pois pode causar uma queda de tensão entendida como nível lógico “1". Com os sensores CA a 3 fios (mais terra) este problema praticamente não existe pois os sensores possuem conexão de alimentação.

Page 82: robotica_mt

84

CORRENTE DE CARGA MÍNIMA: ainda visando garantir a alimentação adequada dos sensores a 2 fios é necessário a uma corrente de carga mínima, que é determinada pela impedância da carga, e novamente as cargas eletrônicas devem ser selecionadas com critério. Caso o controlador eletrônico programável utilizado não atenda os requisitos mínimo de carga para o sensor pode-se completar com um resistor de carga auxiliar, conforme ilustrado. ENTRADA DE CONTROLADORES LÓGICOS: para o perfeito casamento entre os sensores a 2 fios e as entradas dos controladores verifique os parâmetro abaixo: TENSÃO RESIDUAL: a tensão de alimentação menos a queda no sensor tem que ser maior que a menor tensão para o estado lógico "1" (Fig 9). CORRENTE RESIDUAL: a corrente residual do sensor multiplicada pela impedância interna do plc e tem que ser menor do que a máxima tensão entendida como nível lógico "0" (Fig. 10). CARGA MÍNIMA: corrente de entrada no nível lógico "1" tem que ser maior que a corrente de carga mínima do sensor. (Fig. 11). Observe que os valores admissíveis podem alterar dependendo do cartão de entrada, inclusive um mesmo fabricante pode ter um mesmo parâmetro diferente para as várias séries de cartões de entrada. OUTRAS CARGAS: as cargas resistivas, indutivas e capacitivas também devem ser analisadas a fim de obter a compatibilidade com o sensor. CORRENTE MÁXIMA DE CHAVEAMENTO: é a máxima corrente que o sensor pode comutar sem danificar permanentemente os componentes eletrônicos da saída do sensor. Os sensores CA normalmente podem chavear até 500mA e os CA / CC normalmente suportam chaveamento de até 300mA. CORRENTE DE SURTO: é a corrente de pico que acontece no instante da energização de cargas indutivas, e em muitos casos pode ser dezenas de vezes maior que a corrente de carga nominal do equipamento. Os sensores normalmente suportam picos de surto de até 2 ou 4A (dependendo do modelo). CORRENTE DE CONSUMO: este parâmetro é aplicável somente a sensores a 3 fios, sendo medido com a carga desconectada, indicando assim, a corrente que realmente é consumida apenas para o funcionamento interno do sensor.

Page 83: robotica_mt

85

PROTEÇÕES: os sensores indutivos possuem um limitador eletrônico de picos de tensão gerados pelas forças contra-eletromotriz das cargas indutivas, ou ainda em efeitos transitórios induzidos nos cabos dos sensores. No entanto estas proteções podem ser danificadas se os níveis de indução eletromagnéticos estiverem acima dos valores previstos. As proteções dos sensores são efetivas para a maioria das aplacações e se estiverem sujeitos a transitórios acima das especificações de EMC poderão ser danificados permanentemente. TIPOS DE CARGA: um dos problemas mais comuns na aplicação de sensores são as possíveis incompatibilidade com a carga comutada. Nada pode ser mais estressantes para a saída em estado sólido dos sensores do que as altas correntes de partida em circuitos indutivos ou capacitivos, tensões contra eletromotriz gerada pelas cargas indutivas alem de indução eletromagnética presente no ambiente industrial. CARGAS RESISTIVAS: é utilizada na especificação dos sensores de proximidade e como não gera defasagem entre a tensão e a corrente pode ser aplicada até o limite especificado do sensor. LÂMPADAS INCANDESCENTES: a resistência a frio do filamento de tungstênio da lâmpada incandescente é muito baixa, o que causa uma corrente de regime. Desta forma desaconselhamos o uso direto do sensor de proximidade para chaveamento de lâmpadas, mesmo que de pequeno porte. LÂMPADAS DE NEON: já as lâmpadas de neon possuem alta impedância e não são compatíveis com os sensores, pois não atingem a corrente mínima de carga exigida pelos sensores de proximidade CA a 2 fios. LÂMPADAS DE MERCÚRIO: os sensores de proximidade nunca devem ser utilizados com esta lâmpada, pois além de alta corrente de regime requerem a corrente de partida até 3 vezes a nominal e por um tempo que pode chegar até 5 minutos. LÂMPADAS FLUORESCENTES: a corrente de partida pode chegar até 10 vezes a nominal e a lâmpada pode tentar partir por até 10 segundos inviabilizando seu uso com os sensores.

Page 84: robotica_mt

86

CARGAS CAPACITIVAS: a corrente de carga de um circuito capacitivo pode ser extremamente alta, pois os capacitores inicialmente atuam como um verdadeiro curto circuito, sendo que a corrente é limitada somente pela resistência do circuito. Longas linhas de comutação, filtros, circuitos eletrônicos, fontes de alimentação são altamente capacitivas, podendo gerar corrente de pico com mais de 20 vezes a corrente de regime em questão de milissegundo. CARGAS INDUTIVAS: o pior para os sensores de proximidade são as cargas indutivas pois quando são energizadas requerem alta corrente de partida e quando são desligadas liberam a energia acumulada sob a forma de alto pico reverso. MOTORES ELÉTRICOS: Nem pense em utilizar em sensores de proximidade comutando um motor elétrico, por menor que seja. Pois quando estão parados sua impedância é muito baixa, requerendo uma corrente de partida da ordem de 5 a 10 vezes a nominal. Assim que o motor começa a girar a corrente cai e dependendo da carga mecânica aplicada pode estender por muitos segundos a corrente de partida. Quando são desligados a tensão induzida pode provocar até arcos em contatos mecânicos. RELES E CONTATORES: requerem uma corrente inicial de 3 a10 vezes a corrente nominal absorvida em poucos milissegundo e normalmente são compatíveis com os sensores de proximidade, e a surto inicial dificilmente causa a atuação da proteção do sensor. SOLENÓIDES: Dependendo da solenóide a corrente de pico pode ser muito elevada, chegando a 20 vezes a nominal e com duração mais elevada podendo chegar a décimos de segundo, portanto não aconselhamos a utilização direta com os sensores sem uma análise mais profunda da compatibilidade com os sensores.

Page 85: robotica_mt

87

EXERCÍCIOS Conceitos Básicos 1) Descreva com suas próprias palavras, e em poucas linhas (vinte linhas, por exemplo), a sua visão da robótica; defina o que é a robótica no seu ponto de vista e descreva o que você espera ou o que você gostaria de estudar em um curso de Introdução à Robótica. Sugestão: veja o filme "Tempos Modernos", do genial Charles Chaplin, onde é feita uma sátira à vida moderna, com uma visão futurista para a época do filme(1.936); neste filme também podemos ver a complexa relação do ser humano com o trabalho, ou com o emprego, em diversas situações, do ponto de vista de Chaplin. 2) A respeito da palavra robô: a) Qual a origem da palavra robô? b) Quando foi utilizada pela primeira vez com o sentido atual? c) Quem popularizou o uso desta palavra? Como? d) Você acha que o seu significado é coerente com os seus conceitos anteriores de um robô? Por quê? 3) Karel Capek propõe uma fábrica de robôs, na sua peça de teatro RUR, que acabam se rebelando contra a humanidade. Você acredita que este pode ser um futuro possível para o nosso planeta? 4) Quem foi Isaac Asimov? 5) A respeito das Três Leis da Robótica, de Isaac Asimov:

a) Por que, na sua opinião, Isaac Asimov propôs estas Três Leis? Você acredita que estas Três Leis serão necessárias no futuro da humanidade? Por quê? b) Você acredita que estas Três Leis são suficientes? Você acrescentaria uma quinta Lei? Como seria a sua Quinta Lei da Robótica? c) Estas leis são aplicadas aos modernos robôs industriais? De que maneira? d) Encontre uma inconsistência lógica neste conjunto de Leis. Explique como resolver esta inconsistência lógica. e) Você acredita que com estas Três Leis, Karel Capek poderia ter dado um rumo diferente na sua peça de teatro RUR? 6) O que é um andróide? Enumere o maior número de andróides que você for capaz de se lembrar da ficção científica (livros, filmes e desenhos animados). Enumere também os andróides reais que você já viu pessoalmente. 7) Se você tivesse ao seu alcance todos os recursos tecnológicos necessários, como seria o seu robô andróide? Descreva-o, utilizando também a sua ficção científica, se necessário. 8) No livro Os Robôs do Amanhecer, Isaac Asimov propõe uma situação inusitada: um robô é assassinado! Assim, o principal suspeito, um humano, contrata um famoso detetive (também humano) para investigar o caso e provar a sua inocência. E o detetive se empenha na solução do caso, se valendo além de sua intuição e lógica, das Três Leis da Robótica. Como você vê esta situação? Você a considera possível em um futuro próximo? 9) Em uma cena do filme "Eu, Robô", onde um robô, suspeito de ter cometido o assassinato de um famoso cientista, se senta à mesa para ser interrogado por um policial. Como você vê esta situação? Você acredita que algum dia os robôs poderão passar por uma situação semelhante? Por quê? 10) Defina assassinato, e confronte a sua definição com os exercícios 8 e 9. Existe alguma incoerência entre a sua definição e as situações apresentadas nestes exercícios?

Leis da Robótica 1. Um robô jamais deve causar dano a um ser

humano nem, através de omissão, permitir que isto aconteça.

2. Um robô deve sempre obedecer ao ser humano, a menos que isto entre em conflito com a primeira lei.

3. Um robô deve proteger-se de danos, a menos que isto entre em conflito com a primeira e segunda lei. Posteriormente foi adicionada a Lei Zero:

0. Um robô não pode causar mal à humanidade ou, por omissão, permitir que a humanidade sofra algum mal, nem permitir que ela própria o faça.

Page 86: robotica_mt

88

11) Observe a figura ao lado, que mostra uma cena do seriado de televisão, da década de 60 do século passado, "Perdidos no Espaço", onde se destaca o robô B-9. Quais são as suas principais características que podemos observar nesta figura? Como é classificado este robô? 12) O filme "O Homem Bicentenário", de 1999, conta a história do robô Andrew. Quais são as suas principais características de Andrew (à esquerda na figura abaixo)? Como é classificado este robô? 13) Ainda com relação ao filme "O Homem Bicentenário", são abordadas algumas questões inesperadas no mundo atual. Dê a sua opinião sobre as seguintes questões que são apresentadas no filme: a) Um robô deve ser livre ou não? b) Quais os direitos de entidades artificiais, como os robôs? c) O que é ser um ser humano? d) Um ser humano pode ser imortal, ou para ser um ser humano é necessário que se seja mortal? e) Um robô pode se transformar, por algum processo, em um ser humano? f) Um ser humano pode se transformar, por algum processo, em um robô? 14) Explique o que entende ser um ciborg. Enumere o maior número de ciborgues que você for capaz de se lembrar da ficção científica (livros, filmes e desenhos animados). Enumere também os ciborgues reais que você já viu pessoalmente. 15) Na sua opinião, quais são as diferenças básicas entre um andróide e um ciborg? 16) No seriado O Homem de Seis Milhões de Dólares (The Six Million Dollar Man-1974-EUA), um astronauta que já teria andado na Lua(um dos heróis nortes americanos), sofre um acidente aéreo, perdendo as suas duas pernas, o braço direito e o olho esquerdo. Na introdução dos filmes deste seriado, ficaram famosas, na época, as frases: "We can rebuild him. We have the technology. We have the capability to make the world's first Bionic Man. Steve Austin will be that man Better than he was before. Better ... stronger ... faster". Traduzindo: "Nós podemos reconstruí-lo. Nós temos a tecnologia. Nós temos a capacidade para fazer o primeiro Homem Biônico do mundo. Steve Austin será este homem. Melhor do que ele era antes. Melhor ... mais forte ... mais rápido". A respeito deste milagre tecnológico, enumere tantas dificuldades quantas você for capaz de imaginar, para a "reconstrução”, do astronauta Steve Austin. Passados já tantos anos, este milagre já é possível nos dias atuais? Uma tecnologia assim tão avançada poderia dar vida eterna ao ser humano? 17) Com relação ao filme "Robocop", de 1987, um policial "quase" morto, Alex Murphy, é “futilizado" como o cérebro de um robô que luta contra o crime. Quais são as suas principais características que podemos observar neste personagem? Como é classificado este robô? Descreva e discuta os aspectos éticos desta transformação a que o policial foi submetido, de acordo com a sua ética e o seu ponto de vista. 18) Explique O que é um Robô Móvel ou Autônomo. Por que existe a necessidade de um Robô Autônomo ser operado? Pesquise se achar necessário. 19) Descreva (Pesquise se achar necessário) os Robôs Móveis a seguir, dando suas principais características e aplicações: a) Sojourner b) Scorpio 45 20) Descreva (Pesquise se achar necessário) os Robôs a seguir, dando suas principais características e aplicações: a) Exoskeleton b) Walking Machine 21) Você considera que as máquinas do exercício anterior são realmente robôs? Porquê? 22) Em que tipo de ambientes e de serviços, os robôs começaram a ser utilizado pelo homem? 23) O que é automação? 24) Qual a diferença entre a Automação Parcial e a Automação Total? Pesquise se achar necessário.

Page 87: robotica_mt

89

25) Existe alguma automação se dê totalmente sem a participação humana? Por quê? 26) O que é a Automação Pesada? E o que é a Automação Flexível? Qual a vantagem de uma sobre a outra? Pesquise se achar necessário. 27) O que é um robô? 28) O que é um robô industrial? 29) Qual a diferença básica entre uma máquina CNC e um robô? 30) Descreva a classificação dos robôs por geração, destacando as suas principais diferenças. 31) O custo de um robô se deve basicamente a que fatores? 32) Que implicações sociais a utilização de robôs na indústria acarreta? Você acha que, em longo prazo, o uso de robôs pode gerar desemprego nas indústrias? Porquê? 33) Faça uma comparação do ser humano com os robôs, destacando as vantagens de um com relação ao outro. 34) Você acha que uma indústria com alto índice de automação pode gerar empregos qualificados que exijam uma formação específica (técnica ou de engenharia, por exemplo)? A automação pode gerar empregos? 35) Na sua opinião, quais são os benefícios que a robótica traz atualmente, ou virá a trazer em um futuro próximo, à vida das pessoas? E quais seriam os prejuízos? Arquitetura de um Manipulador Robótico 1) O que são manipuladores? 2) Disserte sobre 3 das partes constituintes de um manipulador. 3) Quais são os tipos básicos de juntas robóticas? 4) Quais os possíveis tipos de junta de um braço manipulador? 5) O que você entende por “sistema de referencia” ? 6) O que você entende por cinemática direta e cinemática inversa? 7) O que caracteriza os robôs cartesianos, cilíndricos esféricos e articulados? 8) Qual a forma geométrica dos espaços de trabalho dos robôs cartesianos, cilíndricos e esféricos? 9) Quais os nomes dos três movimentos que caracterizam a orientação da ferramenta ? Que juntas são responsáveis pelos mesmos movimentos em um robô de 6 juntas? 10) O que é espaço ou volume de trabalho? Disserte sobre a relação da definição com o que acontece na prática? 11) Qual a relação entre as juntas de um maipulador e os seus Graus de Liberdade? 12) Quantos graus de liberdade um robô necessita ter para alcançar qualquer ponto em seu espaço de trabalho com qualquer orientação? 13) De alguns exemplos de dispositivos de segurança quando se trata de robôs. 14) Explique as seguintes características de um robô: a) Repetibilidade b) Precisão c) Capacidade Carga d) Resolução 15) Observa as figuras abaixo. Indique o número de movimentos de cada objeto e o número de graus de liberdade. Explique.

(a) (b)

Page 88: robotica_mt

90

16) Numa fabrica de montagem, robôs são utilizados “para prototipação rápida” e soldagem de circuitos integrados, qual o tipo de robô você indicaria como mais adequado para esta aplicação? Explique e justifique a sua escolha. 17) Considere o manipulador de 3GL abaixo, acoplado a uma plataforma móvel como mostra a figura. Os comprimentos dos elos Elo1, Elo2 e Elo3, são respectivamente 2l, 2l e 1l. Sabendo que o deslocamento total da plataforma é de 10 l. Esboce o espaço de trabalho considerando: a) A plataforma estática b) A plataforma em sua trajetória total.

Considere o manipulador articulado planar de três graus de liberdade mostrado na figura ao lado. 18) Os comprimentos dos elos são: L1=L2=1l, L3=0.5 l. Projete um controlador cinemático que realize as seguintes sub-tarefas a) Tarefa mais prioritária: controle da posição da ferramenta de modo a seguir o segmento de reta vertical, partindo do ponto A(x0,y0) = (1.69, 1.39), até o ponto B(x,y) = (1.69, 0.00). b) Tarefa menos prioritária: Colocar a peça na posição C(x1,y1)= (1.5,-1). Evitar o obstáculo retangular situado abaixo do eixo x, de vértices (1,0), (0.5,0), (0.5,-1), (1,-1). 19) Obtenha o espaço de trabalho dos manipuladores abaixo. Observação: Considere o máximo deslocamento linear das juntas prismáticas igual a l e o máximo deslocamento angular das juntas rotacionais igual a ±180º.

Page 89: robotica_mt

ERROR: stackunderflow

OFFENDING COMMAND: ~

STACK: