• Nenhum resultado encontrado

COMANDO REMOTO DE ROBÔS INDUSTRIAIS

N/A
N/A
Protected

Academic year: 2021

Share "COMANDO REMOTO DE ROBÔS INDUSTRIAIS"

Copied!
8
0
0

Texto

(1)

COMANDO REMOTO DE ROBÔS INDUSTRIAIS

Emil Yoshigae Nakao

ITA – Instituto Tecnológico de Aeronáutica. Praça Marechal Eduardo Gomes,50,Vila das Acácias – 12228-900.

São José dos Campos - SP Bolsista PIBIC-CNPq emilnakao@msn.com

Emília Villani

ITA – Instituto Tecnológico de Aeronáutica. Praça Marechal Eduardo Gomes,50,Vila das Acácias – 12228-900.

São José dos Campos - SP evillani@ita.br

Resumo. Comando remoto pode ser interpretado como um processo de transmissão de dados que sejam capazes de induzir a alteração do estado de um sistema em um local geograficamente distinto. Dentre as aplicações de comando remoto está incluída o de robôs industriais, cuja importância se destaca conforme a proximidade com o robô constitua um empecilho ao trabalho ou uma ameaça à segurança do operador. Este artigo apresenta uma solução para o problema de comando remoto do PUMA 560, robô industrial utilizado para fins didáticos e para tarefas que não exijam grande esforço mecânico, disponibilizado pelo CCM –ITA(Centro de Competência em Manufatura). Ela

consiste em um aplicativo desenvolvido em LabVIEWTM, que pode ser acessado remotamente pelo Internet Explorer

com a autorização do computador servidor. Dentre as funcionalidades oferecidas estão a transmissão de vídeo e de parâmetros do robô, como tensão nos motores, posição do manipulador em relação a um sistema de coordenadas cartesiano, e o comando por meio de linhas de comando ou por eixo do robô, através de uma interface dedicada. Palavras chave: comando remoto, PUMA 560

1. Introdução

No atual cenário mundial, a indústria de manufatura enfrenta desafios sem precedentes, resultantes de um mercado global cada vez mais competitivo. A Internet e o chamado e-business aumentaram a velocidade nos processos de negócio e permitiu que empresas abandonassem a filosofia tradicional de aplicar o conceito de integração restritamente a seus equipamentos no chão de fábrica, em detrimento de uma nova visão, mais ampla, que abrange todo o ciclo de vida do produto e a cadeia de suprimento.

A cooperação proporcionada pela Internet abrange toda a cadeia de suprimento (fornecedores, unidades de manufatura, distribuidores e assistência técnica). Como resultado tem-se sistemas de manufatura mais ágeis e flexíveis, com capacidade de gerar respostas rápidas em ambientes distribuídos. A resposta para esta necessidade de integração e cooperação está no conceito de e-manufacturing, que utiliza a Internet como meio eficiente e rápido para o acesso remoto, com objetivo de integrar todos os elementos do processo produtivo. Através do conceito de e-manufacturing obtém-se uma nova possibilidade de aproveitamento da estrutura proporcionada pela Internet dentro do sistema de manufatura, o que inclui, entre outras funcionalidades, o monitoramento e comando remoto de sistemas de manufatura. O comando remoto de robôs industriais está incluído não apenas nesse contexto, mas também em áreas distintas, como na medicina, com a realização de cirurgias à distância.A execução de um projeto para o comando remoto de robôs mostra-se importante para a formação de recursos humanos para a indústria, ao permitir por exemplo o estudo do comando de um robô industrial sem a necessidade de se estar presente no laboratório ou no chão de fábrica.

Este trabalho se insere no contexto do Programa TIDIA/KyaTera, financiado pela FAPESP, que tem como objetivo conectar laboratórios de pesquisa através de uma rede de fibra ótica de alta velocidade. A rede TIDIA/Kyatera deve ser usada como plataforma de teste para pesquisas em diferentes áreas, incluindo monitoramento e comando remoto de sistemas de manufatura.

2. Arquitetura do sistema de comando remoto

O sistema de comando remoto desenvolvido destina-se à passagem de comandos e ao monitoramento de um robô PUMA 560, manipulador robótico com seis graus de liberdade, utilizado principalmente para fins didáticos e em linhas de montagem. Ele possui em cada um dos seis eixos um servo-motor e um encoder, que possibilitam a movimentação e a verificação da posição do robô.

O controle do PUMA é realizado por uma placa controladora PCI instalada em um computador pessoal. Foi utilizado o controlador DMC-1880, da empresa Galil Motion Control, com capacidade para controlar até oito eixos. Para amplificar a tensão que é transmitida aos motores do robô são utilizadas placas amplificadoras da mesma empresa.

(2)

O controlador é responsável por manter a tensão adequada nos motores, de forma a manter o manipulador na posição desejada; além disso, disponibiliza a leitura dos encoders e outros dados do sistema através de um buffer interno, denominado Data Record. Por meio de software é possível inferir a posição do robô em coordenadas cartesianas, e solicitar movimentações em função dos eixos dessas coordenadas. A Figura 1 ilustra a arquitetura utilizada.

Figura 1.Arquitetura do sistema de comando do PUMA 560

A comunicação com o controlador no computador pessoal é feita por meio de DLLs (Dynamic Linking Libraries) fornecidas pela fabricante da placa. Tanto o software disponibilizado pela empresa (Galil SmartTerminal, utilizado para a passagem de instruções ao controlador) quanto os desenvolvidos por terceiros fazem uso dessas bibliotecas. A passagem de comandos deve ser feita em uma linguagem específica do controlador, que utiliza pulsos de encoder para definir a posição de cada eixo, velocidade dos motores (pulsos de encoder por segundo) e aceleração.

Dada a dificuldade de se prever a posição do robô e comandá-lo em função de pulsos de encoder, foram implementadas rotinas em C++ de conversão de unidades e de coordenadas. Cada funcionalidade está implementada em uma DLL diferente, objetivando uma melhor clareza na estrutura do projeto e facilidade de manutenção.

Dentre as bibliotecas desenvolvidas, devem ser citadas a de conversão de pulsos de encoder para graus, a de cinemática direta e a de cinemática inversa. Através da cinemática direta é possível determinar a posição e orientação do end-effector em relação a um sistema de coordenadas cartesianas, e com a cinemática inversa faz-se o contrário, determinando-se o ângulo em cada eixo para que o end-effector assuma uma dada posição e orientação.

Dentre as diversas soluções existentes para o problema da cinemática inversa é utilizada a solução geométrica apresentada por Lee et al. (1983), pela possibilidade de se escolher de antemão a solução desejada para o posicionamento do end-effector, através de variáveis que determinam a maneira do robô se posicionar. A Tabela 1 contém os parâmetros de Denavit-Hartenberg utilizados.

Tabela 1. Parâmetros de Denavit-Hartenberg para o PUMA 560

Junta i θi (graus) αi (graus) ai(mm) di (mm) Alcance da junta (graus)

1 90 -90 0 0 -160 a 160 2 0 0 431,8 149,09 -255 a 45 3 90 90 -20,32 0 -45 a 225 4 0 -90 0 433,07 -110 a 170 5 0 90 0 0 -100 a 100 6 0 0 0 56,25 -266 a 266

A interface com o usuário utiliza o LabVIEWTM, ambiente de desenvolvimento da National Instruments, pela agilidade de desenvolvimento oferecida pela linguagem de programação visual G, e pelo amplo suporte a hardware

(3)

externo oferecido pela ferramenta. Ela utiliza as DLLs de cinemática e conversão desenvolvidas para disponibilizar suas funcionalidades ao usuário, conforme o esquema da Figura 2. A disponibilização do aplicativo pela internet é feita automaticamente pelo LabVIEWTM; ele é armazenado em um servidor local, para ser acessado através do Internet Explorer remotamente. É necessário instalar no computador cliente um serviço da National Instruments, oferecido gratuitamente no site da empresa.

Figura 2. Fluxo de informações entre camada de interface e de regras de negócio

3. Desenvolvimento de aplicativo para comando remoto

O desenvolvimento do aplicativo para comando remoto pode ser dividido nas seguintes etapas: 1) Especificação dos requisitos;

2) Definição da arquitetura do sistema;

3) Familiarização com as tecnologias a serem utilizadas; 4) Implementação de aplicativos de testes de funcionalidades; 5) Elaboração do aplicativo;

6) Execução de testes.

3.1. Especificação dos requisitos

Esta etapa consiste em definir os recursos que serão incorporados ao aplicativo de comando remoto. Para o monitoramento e comando do PUMA 560 são especificados os seguintes recursos:

a) Recursos para envio de comandos ao controlador: o sistema deve ser capaz de transmitir os comandos passados pelo usuário ao controlador, na linguagem aceita por ele. O usuário não necessariamente precisa transmitir os comandos na linguagem do controlador.

b) Recursos para monitoramento de parâmetros do robô: o sistema deve disponibilizar ao usuário dados referentes aos motores e posicionamento do robô, de forma inteligível.

c) Recursos para execução de scripts de comandos: o sistema deve ser capaz de carregar no controlador uma rotina de comandos, a ser executada pelo robô quando solicitado.

d) Recursos para monitoramento do robô por vídeo: deve ser disponibilizada a transmissão de vídeo em tempo real do robô, para seu acompanhamento.

(4)

e) Recursos para acesso remoto do aplicativo: o aplicativo deve ser disponibilizado a um usuário remoto de maneira segura.

3.2. Definição da arquitetura do sistema

Com base na estrutura do sistema e nos recursos disponíveis para aquisição de dados, objetivando o cumprimento dos requisitos e facilidade de manutenção, é definida a arquitetura do sistema, descrita na seção 2.

3.3. Familiarização com as tecnologias a serem utilizadas

Para o desenvolvimento proposto é necessário o estudo das tecnologias a serem utilizadas. Dentre as atividades realizadas nessa fase vale citar:

y Estudo sobre implementação de DLLs com a linguagem C++;

y Implementação de testes para uso de DLLs prontas do sistema operacional; y Implementação de testes de interfaceamento com hardware externo; y Estudo da documentação da placa controladora;

y Estudo da arquitetura física do sistema;

y Familiarização com o LabVIEWTM, com a realização de tutoriais; y Estudo de cinemática de robôs;

y Pesquisas para a implementação dos testes de funcionalidade.

3.4. Implementação de aplicativos de teste de funcionalidades

A implementação de cada teste de funcionalidade separadamente facilita a detecção e remoção de erros no código. Foram implementados os seguintes aplicativos-teste:

a) Comando em linguagem do controlador e download de arquivos .DMC: permite que o usuário digite comandos na linguagem aceita pelo controlador, e os execute. Fornece a resposta do controlador, e é capaz de carregar arquivos .DMC, semelhantes a scripts de comandos, na memória do controlador para posterior execução.

b) Comando simplificado com uso do teclado: permite ao usuário comandar o robô sem utilizar a linguagem do controlador, por meio de botões de incremento e decremento de posição para cada eixo do PUMA.

c) Preparação do robô para atividades com arquivo .DMC: prepara o robô para ser utilizado, limitando os valores de tensão nos motores, as posições máximas a serem alcançadas pelos eixos, a aceleração e a desaceleração de todos os motores, para reduzir os riscos de danos mecânicos ao robô.

d) Coleta de dados do controlador: coleta dados do Data Record e os disponibiliza ao usuário.

e) Conversão de unidades para operações de cinemática: é responsável pela conversão de pulsos de encoder para graus e vice-versa de cada um dos eixos do robô.

f) Cálculo de cinemática direta: ao receber como parâmetros a posição angular dos eixos do robô, retorna a posição e orientação de seu end-effector em relação a um sistema de coordenadas cartesianas com origem no ombro do robô (intersecção do link 0 com o link 1).

g) Cálculo de cinemática inversa: ao receber como parâmetros a posição e orientação desejadas para o end-effector, retorna a posição angular necessária em cada eixo.

3.5. Elaboração do aplicativo

O aplicativo foi desenvolvido no LabVIEWTM, que além da programação visual dispõe de diversos componentes para comunicação com hardware externo. A proposta do ambiente é facilitar a criação de “instrumentos virtuais”, o que justifica o suporte oferecido ao interfaceamento.

A elaboração do aplicativo consistiu no agrupamento das funcionalidades testadas até então, com a adição da transmissão de vídeo, através de uma biblioteca do LabVIEWTM específica para câmeras USB, a “NI-IMAQ for USB cameras”. Foi utilizada uma webcam para a captura de imagem do robô. A Figura 3 mostra a interface do aplicativo.

(5)

Figura 3.Interface do aplicativo de comando remoto – passagem de comandos

O aplicativo é dividido em duas seções: uma para o monitoramento do robô, que coleta dados da placa controladora, disponibiliza o vídeo e usa a DLL de cinemática direta para exibir a orientação e a posição do end-effector em coordenadas cartesianas, e outra para interação com o usuário, dividida em três abas, sendo uma para o comando do robô, a segunda para carregamento de arquivos .DMC na memória do controlador, e a terceira para o cálculo da cinemática inversa. A orientação do end-effector é dada em termos dos vetores n (normal vector), s (sliding vector) e a (approach vector), que têm módulo unitário.

Abaixo são mostradas as equações utilizadas no cálculo dos ângulos das juntas do robô, a partir de uma posição do end-effector especificada pelo usuário. Elas fazem parte da solução da cinemática inversa do PUMA. O algoritmo utilizado permite que o usuário decida previamente a solução que deseja (dentre as que podem existir para uma mesma posição desejada) ao definir as variáveis ARM, ELBOW, WRIST e FLIP WRIST, que indicam a posição das juntas em relação às demais e a orientação do end-effector. Tais variáveis podem valer +1 ou -1, e definem o posicionamento de diferentes partes do robô. Adotando o vetor p = [px py pz] como indicador da posição do end-effector em relação à origem do sistema de coordenadas, localizado na intersecção do primeiro eixo de rotação com o segundo (contados a partir da base do robô), e considerando θi, com i variando de 1 a 6, o ângulo nos eixos de rotação do robô, também contados a partir da base, tem-se:

Ângulo da primeira junta (Eq. 1):

2 .

. ; (1)

Para futura utilização, define-se:

(2)

(6)

.

(4)

(5)

1 ² (6)

Em função das equações 2, 3,4 5 e 6 define-se o ângulo para a segunda junta com a Eq.7:

2 .. .. ; (7)

Para o cálculo do ângulo da junta 3, define-se:

cos (8)

. 1 ² (9)

(10)

cos | | (11)

Com base nas equações 8,9,10 e 11 é encontrado o ângulo da terceira junta pela Eq.12:

2 ; (12)

O cálculo dos ângulos para as demais juntas, responsáveis pela orientação do end-effector, e maiores detalhes sobre a solução do problema de cinemática inversa utilizando abordagem geométrica podem ser encontrados em Lee et al. (1983).

A Figura 4 mostra o aplicativo sendo acessado remotamente. O acesso pelo browser pode ser controlado no servidor, que determina o número máximo de conexões, e autoriza um usuário remoto a obter o controle do aplicativo. Todas as funcionalidades são disponibilizadas pelo LabVIEWTM, ao se executar um assistente para publicação do instrumento virtual.

(7)

Figura 4. Disponibilização do aplicativo pela internet.

3.6. Execução de testes

Os testes foram realizados em paralelo com a implementação das funcionalidades em aplicativos separados. O critério de aprovação utilizado para cada funcionalidade foi o seguinte:

a) Comando em linguagem do controlador e download de arquivos .DMC: capacidade de transmitir ao controlador os comandos inseridos pela interface em LabVIEWTM consecutivamente e sem falhas; fazer o robô executar uma rotina pré-estabelecida de movimentos com o carregamento de arquivos .DMC gravados no computador local com sucesso. Foram realizados testes bem sucedidos nos aplicativos de teste e no final.

b) Comando simplificado com uso do teclado: funcionamento de todos os botões da interface, com ou sem teclas de atalho, conforme especificado nas legendas presentes (incrementar ou decrementar ângulo de determinado eixo). Os testes realizados nos aplicativos de teste e final foram bem sucedidos.

c) Preparação do robô para atividades com arquivo .DMC: posições angulares limitadas pelo controlador nos 5 primeiros eixos; movimentação do robô com aceleração limitada (a aceleração padrão é demasiadamente alta, podendo causar danos físicos ao motor). A verificação desses critérios de aprovação é feita com a observação da movimentação do robô. Foi verificado que para valores adequados de aceleração e desaceleração nos eixos os limites especificados eram obedecidos; além disso, uma vez iniciados os aplicativos, e executada a rotina de preparação, a aceleração dos eixos era limitada, mostrando o bom funcionamento da rotina de preparação.

d) Coleta de dados do controlador: disponibilização de dados do robô coerentes com a situação do robô na interface. Os testes consistiram em verificar se havia aquisição de dados, e se concordavam com as informações obtidas com um programa de teste fornecido pela fabricante da placa controladora.

e) Conversão de unidades para operações de cinemática: correta conversão de unidades para uma série de valores de teste. Ao final do desenvolvimento dos aplicativos de teste não foram encontrados problemas nas conversões, que se encontravam dentro da faixa de valores esperados.

f) Cálculo de cinemática direta: correta inferência da posição do robô com base em valores de ângulo para teste. O cálculo foi verificado utilizando exemplos numéricos presentes em Fu et al.(1987), e também com base na própria

(8)

verificação da posição do robô e leitura dos encoders. Foi obtido sucesso nos testes feitos ao final do desenvolvimento do aplicativo.

g) Cálculo de cinemática inversa: correta determinação dos ângulos das juntas, dadas algumas posições de teste. A verificação foi feita com base em alguns exemplos de cálculo de cinemática inversa presentes em Fu et al. (1987), que mostravam o valor dos ângulos nas juntas para determinada posição; o desenvolvimento do aplicativo de teste para cinemática inversa se estendeu até que os resultados coincidissem com os do exemplo dado; para outros valores de posições também foi obtido sucesso no cálculo, com verificação feita por meio do posicionamento do robô com base nos valores de ângulo fornecidos pelo aplicativo. Devido à existência de múltiplas soluções inerentes à cinemática inversa, e à necessidade de se definir diversas variáveis, como orientação dos braços do robô, a verificação do cálculo se torna trabalhosa. Foi obtido sucesso nos últimos testes realizados, tanto no aplicativo teste quanto no final.

4. Conclusão

Este artigo apresenta o desenvolvimento de um aplicativo para comando remoto de robôs industriais. Além da transmissão de dados sobre o estado do robô, é possível enviar comandos e acompanhar o movimento do PUMA 560 por vídeo.

A solução apresentada pode ser utilizada para fins didáticos e para o comando à distância de robôs industriais, o que pode ser de grande valia caso eles sejam de grande porte, de modo que a permanência em regiões próximas a eles constitua uma ameaça à segurança do operador.

O aplicativo desenvolvido é parcialmente dependente da máquina utilizada. As rotinas de cinemática variam com o robô, mas podem ser substituídas com a troca da DLL utilizada, sendo mínimas as alterações necessárias no restante do código. Apesar da relativa independência do aplicativo em relação ao robô comandado, a alteração do controlador utilizado pode acarretar uma considerável reescrita de código.

Algumas funcionalidades exigiram muitas horas de trabalho até apresentarem resultados satisfatórios, como é o caso da DLL de cálculo da cinemática inversa. Foram implementadas apenas algumas funcionalidades essenciais ao comando remoto. Como possíveis melhorias no projeto pode-se citar a implementação da aprendizagem de movimentos, com a gravação de uma seqüência de posições em um arquivo local, e a possibilidade de posterior repetição dos mesmos, e a simplificação da interface de cinemática inversa, para facilitar o comando pela especificação de coordenadas cartesianas.

5. Agradecimentos

Os autores agradecem o apoio de seus colegas de laboratório no CCM, e o auxílio financeiro das seguintes entidades: FAPESP, CNPq e CAPES.

6. Referências

Fu,K.S., Gonzalez,R.C. and Lee, C.S.G., 1987, “Robotics: Control, Sensing, Vision and Intelligence”, McGraw Hill Book Co., USA.

Lee, C.S.G. and Ziegler,M., 1983, “A Geometric Approach in Solving the Inverse Kinematics of PUMA Robots”, University of Michigan, Ann Harbor.

Sokolov,A., 1999, “Robot Motion Realisation Using LabVIEW”, Periodica Polytechnica SER. Mech. Eng. Vol. 43, No.2, pp.131-145.

Referências

Documentos relacionados

Os resultados mostraram que o solo sob mata nativa apresentou maior capacidade de retenção de água enquanto a área fertirrigada apresentou menor capacidade e também

•   O  material  a  seguir  consiste  de  adaptações  e  extensões  dos  originais  gentilmente  cedidos  pelo 

“Ao receber o grau de bacharel em Ciências Contábeis,// juro, perante Deus e a sociedade,// exercer a minha profissão com dedicação,// responsabilidade e competência,//

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

O trabalho apresentado neste artigo propõe um método para projeto de hiperdocumentos educacionais, denominado EHDM, que contempla os autores com um modelo conceitual que possui

libras ou pedagogia com especialização e proficiência em libras 40h 3 Imediato 0821FLET03 FLET Curso de Letras - Língua e Literatura Portuguesa. Estudos literários

Entre as atividades, parte dos alunos é também conduzida a concertos entoados pela Orquestra Sinfônica de Santo André e OSESP (Orquestra Sinfônica do Estado de São