desenvolvimento de uma interface para teleoperação ... · palavras-chave: braço robótico, ......

12
Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 301 Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e comunicação serial utilizando JAVA Marlon José do Carmo [email protected] Rodrigo de Albuquerque Pacheco Andrade [email protected] André Del Bianco Giuffrida [email protected] Angelo Rocha de Oliveira [email protected] RESUMO Este trabalho apresenta um projeto de teleoperação robótica e teve como objetivos projetar e implementar um sistema que possibilite operar e monitorar um braço robótico com seis graus de liberdade via internet. Para a realização do trabalho, foi utilizado um Robô Industrial da ABB, modelo IRB 2400/10, do Laboratório de Otimização de Processos de Fabricação (LOPF), pertencente ao Núcleo de Manufatura Avançada (NUMA) da USP, de São Carlos, SP, em parceria com o CEFET-MG Campus III-Leopoldina. Nesse projeto, os softwares foram desenvolvidos em JAVA, envolvendo acesso à porta serial, porta USB e transporte dos dados através do protocolo TCP/IP. Com o sucesso da conclusão do trabalho, o robô pôde ser operado e monitorado de qualquer lugar do mundo, tendo como aplicação direta a teleoperação em ambiente cuja problemática seja a segurança intrínseca. Palavras-chave: Braço robótico, Teleoperação, Processos de fabricação. Developing an interface for robotic teleoperation data transport over TCP/IP and serial communication using JAVA ABSTRACT This paper presents a robotic teleoperations project and aims to design and implement a system which enables to monitor and to operate a robotic arm with six degrees of freedom through the Internet. To conduct the work, it was used an ABB Industrial Robot, model IRB 2400/10, from the Optimization Laboratory of Manufacturing Process Optimization (OLMP, belonging to the Center for Advanced Manufacturing (CAM) at USP, São Carlos SP, in partnership with the CEFET from the MG-Campus III Leopoldina. In this project, the software was developed in JAVA involving access to serial port, USB port, and transport of data via TCP/IP. With the successful completion of this work, the robot can be operated and monitored from anywhere in the world, having as direct application the teleoperation in an environment in which the problem is intrinsic safety. Keywords: Robotic Arm, Teleoperation, Manufacturing processes.

Upload: hanhu

Post on 28-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 301

Desenvolvimento de uma interface para teleoperação robótica com

transporte de dados via TCP/IP e comunicação serial utilizando

JAVA

Marlon José do Carmo

[email protected]

Rodrigo de Albuquerque Pacheco Andrade

[email protected]

André Del Bianco Giuffrida

[email protected]

Angelo Rocha de Oliveira

[email protected]

RESUMO

Este trabalho apresenta um projeto de teleoperação robótica e teve como objetivos projetar e implementar um

sistema que possibilite operar e monitorar um braço robótico com seis graus de liberdade via internet. Para a

realização do trabalho, foi utilizado um Robô Industrial da ABB, modelo IRB 2400/10, do Laboratório de

Otimização de Processos de Fabricação (LOPF), pertencente ao Núcleo de Manufatura Avançada (NUMA) da

USP, de São Carlos, SP, em parceria com o CEFET-MG Campus III-Leopoldina. Nesse projeto, os softwares

foram desenvolvidos em JAVA, envolvendo acesso à porta serial, porta USB e transporte dos dados através do

protocolo TCP/IP. Com o sucesso da conclusão do trabalho, o robô pôde ser operado e monitorado de

qualquer lugar do mundo, tendo como aplicação direta a teleoperação em ambiente cuja problemática seja a

segurança intrínseca.

Palavras-chave: Braço robótico, Teleoperação, Processos de fabricação.

Developing an interface for robotic teleoperation data transport over TCP/IP and

serial communication using JAVA

ABSTRACT

This paper presents a robotic teleoperation’s project and aims to design and implement a system which enables

to monitor and to operate a robotic arm with six degrees of freedom through the Internet. To conduct the work,

it was used an ABB Industrial Robot, model IRB 2400/10, from the Optimization Laboratory of Manufacturing

Process Optimization (OLMP, belonging to the Center for Advanced Manufacturing (CAM) at USP, São

Carlos – SP, in partnership with the CEFET from the MG-Campus III Leopoldina. In this project, the software

was developed in JAVA involving access to serial port, USB port, and transport of data via TCP/IP. With the

successful completion of this work, the robot can be operated and monitored from anywhere in the world,

having as direct application the teleoperation in an environment in which the problem is intrinsic safety.

Keywords: Robotic Arm, Teleoperation, Manufacturing processes.

Page 2: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

302 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

1. Introdução

Desde os tempos mais primórdios, o ser

humano tem feito uso de ferramentas que estendam

seu alcance, com o objetivo de aumentar sua

destreza, seja qual for a aplicação. Os homens das

cavernas, por exemplo, utilizavam galhos de árvore

para cavar covas, fazer fogo, extrair raízes que

serviam como alimento ou até para servir de lança,

seja para caça, seja para pesca. Recentemente, há os

ferreiros como exemplo dos que utilizavam, e

utilizam, ferramentas que facilitam o manuseio de

objetos quentes. É claro que há certa limitação

quanto ao manuseio desse objeto quando

comparado com a mão humana. Tal limitação é

imposta pela natureza da ferramenta utilizada.

A teleoperação é uma técnica

particularmente interessante, pois permite que

determinado trabalho seja realizado remotamente,

mas ainda sim controlado pelas próprias mãos, em

circunstâncias em que a ação direta não é possível,

inadequada ou em situações em que é impossível

estabelecer rotinas para a operação, seja pela sua

imprevisibilidade, grau de risco ou complexidade

(AGUIRRE, 2007).

Com a evolução e desenvolvimento de

novas tecnologias, algumas tarefas que antes

pareciam ser impossíveis de executar, hoje, com o

auxílio da teleoperação, são perfeitamente

possíveis.

Os pioneiros da pesquisa em radioatividade

tomaram conhecimento dos perigos da radiação na

primeira parte deste século, e precauções de

segurança não foram tomadas quando a

manipulação de isótopos radioativos naturais era

realizada, até que os perigos da irradiação (através

da inalação ou absorção) foram descobertos. A

partir desse momento, percebeu-se que corpos

radioativos tinham que ser manipulados a uma

distância grande o suficiente para diminuir o efeito

da radiação. Garras de laboratório e pinças de

manipulação a distância eram usadas para

manipular objetos a uma distância de até 50 cm de

distância.

Como a atividade das fontes tratadas

aumentou os mecanismos de manipulação a

distância, elas se tornaram mais comuns, e a

manipulação de material radioativo era feita atrás de

barreiras de proteção que reduziam a radiação,

juntamente com uma janela de vidro, que permitia

que a manipulação pudesse ser observada. A troca

das primeiras varetas radioativas dos reatores

nucleares foi realizada em 1943, sendo estes

desenvolvidos por Oak Ridge e Argonne National

(MARTINS, 2008), utilizando sistemas de cabos,

carrinhos e pinças para que esses materiais

pudessem ser movimentados até certa distância

(AGUIRRE, 2007).

A teleoperação de veículos robustos no

espaço para acesso a ambientes desconhecidos e

não estruturados permitirá a inspeção, manutenção,

montagem e outras atividades críticas no espaço.

Hoje, os robôs não necessitam de atenção e

dedicação exclusivas de um operador (ÁLVARES,

2001).

Desde o ano 2000, a NASA vem

desenvolvendo um novo modelo de interação entre

humanos e robôs, com controle colaborativo, que se

baseia no diálogo entre humanos e robôs. Ao invés

de um supervisor ficar ditando as funções ao

subordinado, robôs e seres humanos conversam

para trocar informações, fazer perguntas e resolver

problemas. Com essa abordagem, a interação entre

humanos e robôs fica mais natural, equilibrada e

direta do que as abordagens convencionais. Com o

controle colaborativo, as funções humanas servem

como um recurso para os robôs. Como

consequência, o robô pode fazer perguntas do tipo:

“Com base nessa imagem, é seguro para avançar?”

Isso permite que o ser humano contribua

compensando a autonomia limitada do robô, mas

sem forçá-lo a dedicar atenção contínua para o robô

(ÁLVARES, 2001).

Recentemente no Brasil, um sistema de

teleoperação para um manipulador mestre-escravo

de 3 GDL foi desenvolvido, utilizando-se

realimentação háptica como forma de operação a

distância Uma área em que o sistema poderia

facilmente ser aplicado seria a militar. Uma

situação fácil de exemplificar é a tentativa de

desarme de minas terrestres sem que haja

detonação. Para maior segurança da pessoa

responsável, o sistema lhe permitiria estar em um

local distante e seguro e receber as sensações

hápticas importantes e necessárias na execução

dessa tarefa, como se estivesse o próprio

manipulando a mina (CORREIA, 2008).

O Brasil começou a corrida tecnológica,

iniciada em 1946, bastante atrasado. Segundo

Gudrun Litzenberger, chefe do Departamento de

Estatística da Federação Internacional de Robótica

(IFR) e secretária geral da Federação na Alemanha,

há hoje cerca de um milhão de robôs em operação

no mundo. Dois terços deles estão instalados no

Japão, na América do Norte e na Alemanha, os

Page 3: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e

comunicação serial utilizando JAVA

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 303

mercados mais importantes. O Brasil tem apenas

quatro mil robôs. “Nossa estatística pode estar

subestimada, porque só temos dados completos do

Brasil a partir de 2004, mas, de qualquer forma, o

grau de automação ainda é muito baixo”, segundo

Correia (2008).

De acordo com a Robotic Industries

Association – RIA, fonte oficial de estatísticas do

setor nos Estados Unidos, em 2008 havia cerca de

182 mil robôs, número superado apenas pelo Japão

(CORREIA, 2008).

Muitos desses robôs presentes no Brasil não

são teleoperados, ou seja, exige a presença de um

operador próximo ao robô para ser devidamente

operado. É mais do que óbvio que, com o passar do

tempo, esses robôs vão ficando ultrapassados, e os

preços para atualizá-los são exorbitantes.

O Robô IRB 2400/10 da ABB é um ótimo

exemplo. Com um sistema fechado, onde só é

possível operá-lo fazendo uso de seu Joystick

denominado Teach Pendant, é um tipo de robô

muito comum nas indústrias brasileiras.

Atualmente com a globalização com

crescimento em exponencial e a disputa pelo

mercado consumidor, faz que as empresas a cada

dia mais tendam a produzir produtos novos e

diferenciados. E para isso são comuns a mudança

do leiaute do chão de fábrica, a calibração e

reprogramação de robôs para se adaptar ao novo

leiaute do novo produto.

Um tipo comum de problema que ocorre é

com relação à reconfiguração realizada nesses

robôs, pois é necessária a presença real do

técnico/engenheiro. O que pode levar muito tempo

e dinheiro, pois nem sempre poderá existir um

profissional apto e disponível naquele local e

momento. Portanto, imagine-se a situação descrita

no parágrafo subsequente.

Certa montadora no Brasil possui 30 robôs

distribuídos em seis plantas, em locais distintos e

afastados. A montadora dispõe de três engenheiros

especializados nesses robôs industriais. É chegado o

segundo trimestre, e os novos modelos já estão

sendo produzidos, porém os 30 robôs precisam

urgentemente ser reconfigurados em alguns

parâmetros internos e realinhar os pontos de

soldagem, pois a configuração anterior fez que as

peças tivessem problemas no setor de qualidade.

Acontece que a distância física que existe entre as

plantas impede que os engenheiros reconfigurem

todos os robôs a tempo, fazendo que a montadora

pare a produção e perca dinheiro.

E se fosse possível realizar essas alterações,

sem sair do escritório? O trabalho proposto é

direcionado para esses tipos de robôs e soluciona

esse e outros tipos de problemas, pois, muitas

vezes, a presença de um operador no local de

atuação do robô, nem sempre é possível, seja por

insalubridade, seja por periculosidade.

No âmbito do ensino, a teleoperação é

extremamente útil, pois o mesmo robô, uma vez

feito teleoperado, poderá servir para ensinar a

alunos de qualquer lugar do mundo, sem a

necessidade de sair de sua própria sala de aula. É o

ensino a distância ganhando forças no ramo da

robótica.

A principal motivação deste trabalho foi o

desenvolvimento de um sistema (baseado em

hardware, firmware e software) que permite a

teleoperação do Robô IRB 2400/10 da ABB.

É importante ressaltar que o projeto tem

duração que transpõe a data de apresentação deste

trabalho, portanto os resultados apresentados aqui

são parciais e não caracterizam de forma completa o

estudo. O trabalho proposto é o início de um projeto

maior, que terá sequência no Laboratório de

Otimização de Processos de Fabricação da USP, de

São Carlos. Uma vez que o projeto tenha sucesso

com o robô descrito, ele também será aplicado em

outros robôs e centros de usinagem.

2. Descrição do robô

O robô industrial é um manipulador

multifuncional reprogramável projetado para mover

materiais, peças, ferramentas ou dispositivos

especiais, através de movimentos variáveis

programados, possibilitando a realização de uma

variedade de tarefas (ÁLVARES; ROMARIZ,

2002).

O que distingue um robô de outros

dispositivos de movimentação é sua habilidade de

ser reprogramado para o cumprimento de tarefas

distintas. A maioria dos robôs modernos possui a

capacidade de armazenar diversos programas na

memória, permitindo, com um simples apertar de

um botão, selecionar o programa desejado para a

realização de determinada tarefa.

O robô é composto por duas partes

principais: caixa de controle (controlador) e

manipulador, como mostrado na figura 1.

Page 4: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

304 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

Manipulador

Controlador

Figura 1 - Controlador e manipulador

A Interface Homem-Máquina é realizada

através do teach pendant e, ou, do painel de

operação, localizado na parte frontal do controlador,

como mostrado na figura 2.

Teach Pendant Painel de Operação

Figura 2 - Interface homem-máquina

O manipulador IRB 2400/10 é equipado

com motor AC e freios eletromecânicos em todas as

juntas. Os freios travam todos os eixos do robô

quando este permanecer inoperante por mais que 3

min (ABB Flexible Automation, 1990a).

A Figura 3 mostra os vários graus de

liberdade do manipulador e suas principais partes.

Eixo 1

Eixo 2

Eixo 3

Eixo 6

Eixo 5

Eixo 4

Figura 3 - Graus de liberdade do braço manipulador

O controlador contém toda a eletrônica

responsável pela operação do manipulador e dos

demais equipamentos periféricos. A Figura 4 indica

a localização dos vários componentes da caixa de

controle (ABB FLEXIBLE AUTOMATION,

1990b).

Chave geral Painel do Operação

Teach Pendant

Disk Drive

Figura 4 - Componentes do controlador

A seguir são apresentadas as

funcionalidades com as descrições de todos os

botões do Teach Pendant.

Teclas de Menu

Teclas de

Janela

Teclas de

Movimento

Incremental

Apagar

Stop

Contraste

Teclas de

Navegação

Enter

Teclas

Numéricas

Teclas de Função

Tela

Figura 5 - Teclas do teach pendant

Toda a eletrônica responsável pelas tarefas

de controle e supervisão é montada na caixa de

controle. As Figuras 6 e 7 indicam a posição das

unidades e placas eletrônicas a partir das visões

Page 5: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e

comunicação serial utilizando JAVA

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 305

frontal e superior da caixa, considerando-se as

portas abertas.

Unidade Computacional

Painel frontal do controladorDisjuntores

Figura 6 - Painel frontal do controlador

Painel superior do controlador

Módulos I/O

Bateria

Conexão Serial

Painel

(Cadeia de segurança)

Conexões: sinais de

Potência e de Sensores

Figura 7 - Painel superior do controlador

O robô apresenta dois canais de

comunicação serial: RS232 e RSS485/RS422 Full

Duplex. Esses canais podem ser utilizados para

comunicação ponto a ponto com impressoras,

terminais, computadores e outros equipamentos.

Esses canais seriais podem ser utilizados

com velocidades de 300 a 19.200 bits/s, e o sistema

suporta apenas um canal com a velocidade máxima.

Para taxas mais elevadas ou para

comunicação em rede, os robôs podem ser

equipados com interface ethernet.

3. A comunicação entre o teach pendant e o

controlador

O IRB 2400 é um robô industrial com seis

graus de liberdade, projetado especificamente para

indústrias que fazem uso da automação de um modo

maleável. O robô tem estrutura aberta e é

especialmente adaptado para uso flexível e pode se

comunicar intensamente com os sistemas externos,

como sensores atuadores, impressoras etc. (ABB

FLEXIBLE AUTOMATION, 1990a).

A comunicação com o computador é, porém,

extremamente limitada, pois essa versão S4C do

controlador não possui protocolo de comunicação

aberto. O que permitiria algumas funções básicas

através da comunicação serial EIA-232, como a

movimentação do braço robótico, salvar, editar e

carregar arquivos através de um computador.

Assim, à primeira vista, é inviável a operação a

distância de um robô com essas características.

Como a proposta é deslocar o Teach

Pendant, resta saber quais são as ações tomadas por

ambas às partes quando a comunicação física é

interrompida.

O ato de deslocar o TP é fazê-lo se

comunicar com o controlador, sem estar conectado

fisicamente, utilizando para isso conversores, placas

de aquisição, computadores e outros periféricos.

Em um projeto de teleoperação envolvendo

um robô com protocolo de comunicação fechado,

existem grandes riscos de a teleoperação não ser

bem-sucedida, seja pela limitação natural do

sistema, seja imposta pelos projetistas, portanto se

faz necessário realizar testes passo a passo para

assegurar a viabilidade do projeto.

3.1. Entendendo a comunicação

Para entender como funciona a comunicação

do robô, vários testes foram realizados. O primeiro

teste foi executado com o robô ligado e

funcionando no modo manual. O cabo que liga o TP

ao controlador foi desconectado. O resultado foi

uma parada imediata do robô. Ao reconectar o cabo,

percebeu-se que apareceu um erro na tela do TP

informando que a conexão havia sido perdida e a

parada de emergência, ativada. Após religar os

motores, o robô continuou funcionando

normalmente. Esse teste indica que não é necessário

reinicializar o controlador, caso o cabo se

desconecte.

Teste dos Conversores EIA-485/EIA-

232

O cabo de conexão do Teach Pendant é

formado por 10 fios:

4 fios para liberar os freios

4 fios para parada de emergência

2 fios de comunicação com padrão EIA

485

Os computadores convencionais não

possuem suporte ao tipo de padrão EIA 485,

portanto dois conversores EIA-485/EIA-232 são

utilizados para a comunicação com os PCs. Um

teste extremamente importante parte do princípio

em conectar os conversores entre si para ver se o

robô funciona.

O esquema de ligação segue na Figura 8.

Page 6: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

306 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

Figura 8 - Teste utilizando conversores RS-485

O sucesso da ligação dos dois conversores

EIA485/EIA232 entre si mostra que é viável

trabalhar com o padrão EIA232, que será utilizado

para levar o sinal até o computador.

Vale ressaltarar que os outros oito fios de

segurança não trabalham com o mesmo padrão,

portanto terão que ser transportados de maneira

diferente, e no início dos testes eles foram mantidos

conectados fisicamente entre o Teach Pendant e o

controlador, e somente os dois fios de comunicação

passaram pelos testes. O tratamento dos sinais dos

oito fios será discutido mais na frente, e por

convenção os fios não estão sendo mostrados nas

figuras.

3.2. Inserindo um PC no caminho

O próximo passo é ligar cada um dos dois

conversores em um PC com duas portas seriais,

como mostrado na Figura 9.

Figura 9 - Teste utilizando um PC com duas conexões seriais

O resultado desse teste, se executado com

sucesso, demonstra se é possível utilizar um PC

para transportar os dados. O computador

inicialmente servirá apenas como uma bridge para

os sinais.

Utilizando o software Labview® (RITTER,

2002), famoso programa para criação de

instrumentos virtuais diversos, uma Virtual

Instrumente (VI) foi criada, a fim de ler os dados de

uma porta serial e escrever na outra e vice-versa. A

Figura 10 ilustra a montagem do VI utilizado.

Figura 10 - Virtual instrument montado no Software Labview

Page 7: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e

comunicação serial utilizando JAVA

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 307

3.3. Descobrindo o Baud Rate

Quando se adiciona um computador no meio

da transmissão, alguns conceitos devem ser

observados. Um software para ler e reproduzir

fielmente um dado conectado à porta serial deverá

estar configurado exatamente no mesmo Baud Rate

utilizado pelo TP. O Baud Rate é a velocidade em

que um equipamento consegue transmitir os dados,

e a configuração incorreta desse valor impossibilita

a comunicação.

Realizando uma pesquisa no User Guide

(ABB Flexible Automation, 1990a) e no Product

Manual (ABB FLEXIBLE AUTOMATION,

1990b) do robô, esse valor em nenhum momento é

citado. O manual do fabricante cita que a máxima

velocidade que as Inputs e Outputs (IO) seriais do

controlador trabalham é 19.200. Portanto, na base

da tentativa e erro, configurou-se o VI com valores

de 19.200, 9.600 e 4.800, entre outros, porém sem

sucesso. A dúvida que pairava com relação ao que o

computador estava recebendo de dados fez que

fosse criado um cabo específico que lesse tanto o

que o TP escrevia quanto o controlador. A Figura

11 ilustra essa configuração.

Figura 11 - Teste para a leitura dos sinais de comunicação

Esse cabo específico na verdade se divide

em dois, em que um deles lê o sinal do RX e o outro

lê o sinal do TX do cabo serial que transporta os

dados. Utilizando o VI no Labview, os valores

foram lidos em diversas frequências distintas, e não

tinham sentido algum. O Teach Pendant sempre

informava a seguinte mensagem:

“Teach Pendant connection lost.”

Pensou-se até que o sinal poderia ser

criptografado para proteger contra alterações, mas

logo essa ideia foi descartada, porém se acreditava

que não seria possível ler e reproduzir os sinais por

alguma limitação imposta pelos desenvolvedores.

No entanto, fazendo uso de um osciloscópio, pode-

se diagnosticar o valor correto do Baud Rate. E o

valor aferido foi de 38.400 bauds, o que indica que

a informação da frequência dada pelo Product

Manual não se enquadrava na conexão do Teach

Pendant.

Com a frequência correta determinada, os

dados agora, quando lidos pelo PC, faziam sentido,

e era possível até ler as mensagens de aviso que

eram impressas na tela do TP.

Utilizando o VI da Figura 10, pela primeira

vez a mensagem de “conexão perdida” que sempre

era mostrada na tela deu lugar às mensagens de

inicialização do robô. Nesse momento, a

teleoperação começava a tomar forma. Mas, em

determinado momento, a comunicação

simplesmente travou e o robô teve de ser reiniciado.

Esse problema curioso intrigou bastante o

grupo e, após certo tempo, foi solucionado. O

momento no qual a comunicação é interrompida

origina-se quando ambos trocam uma grande

quantidade de informações. E o “buffer” da serial

do PC é limitado e acabou “transbordando”, e os

dados enviados de seus remetentes não foram

entregues ao destinatário. E, como nesse caso não

existe sinal de aviso de chegada de mensagem,

ambos ficaram esperando a resposta um do outro.

Como esse problema é causado pelo teste

em um PC com duas seriais, e a solução foi pular o

teste com apenas um PC e testar diretamente a

comunicação entre dois PCs em rede.

3.4. Alcançando o sucesso utilizando dois PCs em

rede

Utilizando um software chamado de

TCPCom (DEILTEL, 2010) (que tem a propriedade

de ler/enviar os dados de/para uma porta serial e

enviar e receber via TCP/IP para/de outro

computador que faz uso do mesmo software), dois

computadores ligados em uma rede local foram

configurados como mostrado na Figura 12.

Figura 12 - Teleoperação com dois Pcs em rede

Page 8: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

308 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

Configurando o software do PC do

controlador como Servidor e o software do PC do

TP como Cliente, tudo estava pronto para o teste de

teleoperação. E pela primeira vez foi possível

teleoperar o robô com sucesso. O problema de

buffer não existe neste caso, pois apenas uma porta

serial é utilizada em cada PC.

Com o sucesso desse último teste, veio

finalmente a certeza de que era possível teleoperar o

robô de qualquer lugar do mundo. Porém, faz-se

necessário também transportar os sinais dos outros

oito fios descritos no início deste capítulo. Para

isso, duas placas de aquisição serão projetadas e

desenvolvidas. Uma placa acompanhará o Teach

Pendant, junto com um conversor EIA-485. A outra

placa será conectada ao controlador, juntamente

com o conversor restante.

3.5. Placas de Teleoperação

As placas de aquisição serão responsáveis

por ler os dados de segurança entre o TP e o

controlador. Para transportar esses dados fielmente,

um estudo acerca dos sinais nos 10 fios foi feito.

Figura 13 - Esquema elétrico de comunicação do Teach

Pendant

A Figura 13 representa o esquema elétrico

de sinais do TP. Como se pode perceber, 10 fios são

responsáveis por todas as informações trocadas

entre o Teach Pendant e o controlador.

Os sinais TP e TP-N são

responsáveis pela troca de informações entre o

controlador e o robô, em que os dados que chegam

ao TP indicam as posições dos eixos do robô que

serão exibidas na tela, ou alguma mensagem. Todos

os testes feitos anteriormente se referiam ao

transporte desse sinal. Os outros oito fios são

responsáveis por transportar os sinais de segurança,

Enable Device e Emergency Stop.

O botão de Enable Device (Botão de

Habilitação) serve para liberar os freios dos motores

quando o robô estiver no modo de operação manual

<250 mm/s ou 100%. E, quando acionado, o robô

poderá ser levado para a condição MOTORS ON. A

liberação desse botão provocará a parada do robô e

o acionamento dos freios. Já o botão de Emergency

Stop (parada de emergência) para imediatamente o

robô quando é pressionado, independentemente do

modo ou estado do sistema. Esse botão permanece

apertado e deve ser retornado à posição original

para que o robô volte à condição MOTORS ON.

Os oito fios restantes são responsáveis por

transportar esses sinais de segurança. Os sinais de

24V TP e 0V são responsáveis pela alimentação do

TP. A diferença de potencial entre os sinais EN1 e

EN2 indicam para o controlador se o botão de

Enable Device foi (ou não) acionado. Os sinais

ES2A e ES1A possuem entre si ddp de 24V, que

são devolvidos para ES2B e ES1B,

respectivamente, caso o Emergency Stop não esteja

pressionado, pois o botão é normalmente fechado.

Levando em consideração que esses sinais

devem ser levados para lugares distantes, faz-se a

necessidade de fazer a aquisição desses sinais,

através de uma placa.

Essas placas de aquisição precisam ler os

dados e enviar ao PC, bem como receber os dados

do PC e escrever na saída da placa.

A partir dessa indigência, começou-se a

projetar duas placas de aquisição de dados. Uma

para o Teach Pendant e outra para o controlador.

Essas placas foram projetadas utilizando como base

um microcontrolador da Microchip, modelo

PIC18f4550. A característica principal desse PIC é

a comunicação via USB com o computador (DE

SOUZA; SOUZA, 2008). Essas placas serão

responsáveis por ler os sinais de ambos os lados e

enviar para o computador ao qual estiverem

conectadas. Esses computadores, por sua vez,

através do software de teleoperação, empacotarão

esses dados, junto com os sinais lidos da porta

serial, e fará o envio via TCP/IP para o servidor,

que encaminhará essas mensagens recebidas para o

destinatário.

O projeto da placa de aquisição foi feito

baseado em uma placa feita pela própria Microchip

(PICDEM™ FS USB Demo Board) (DE SOUZA;

SOUZA, 2008), para aquisição de dados.

3.6. Placa de Teleoperação – Teach Pendant

A placa de Teleoperação do TP será

responsável pelas seguintes tarefas:

Fornecer alimentação de 24 v para o

NF

ES2A

ES1A

ES1B

ES

2B

Page 9: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e

comunicação serial utilizando JAVA

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 309

Teach Pendant

Comunicar com o PC Via USB

Ler, empacotar e enviar ao PC o estado

de cada um dos seguintes botões:

Enable Device

Emergency Stop

Motors On

Receber e desempacotar os sinais do PC e

acionar os LEDs que indicarão o estado de cada

uma das ações a seguir:

Enable Device

Emergency Stop

Motors On

É necessário saber exatamente que tipo de

dados devem ser lidos e, por isso, antes de qualquer

coisa é extremamente necessário fornecer, através

de uma fonte externa, a tensão CC de 24 v para

alimentar o circuito do TP. Portanto, a placa do

Teach Pendant contará com uma fonte com a tensão

indicada anteriormente conectada ao circuito.

O sinal do Enable Device é advindo

justamente dos mesmos 24 v que alimentam o TP. E

por esse motivo adicionou-se à placa um relé de

24v, que chaveia os 5V que acionam (ou não) a

porta RB4 do PIC.

O sinal do Emergency Stop também é

advindo de uma tensão de 24 v, porém essa tensão

não alimenta o circuito interno do TP. Um relé,

semelhantemente ao utilizado anteriormente, foi

usado para chavear o sinal de 5 v na entrada RB5 do

PIC.

O sinal do Motors On, diferentemente dos

dois anteriores, não faz parte originalmente do

Teach Pendant e foi adicionado à placa por questão

de necessidade, visto que para a operação manual

do robô é necessário, antes de Liberar o Freio

(acioando a Enable Device), acionar o botão Motors

On, que originalmente se encontra no painel do

controlador. Esse sinal vem através de uma botoeira

que chaveia 5 v da própria placa, na porta RB3 do

PIC.

Nas três chaves anteriores, utilizou-se um

resistor Pull-Down de 10 k para assegurar o valor

de 0 v, pois na transição dos contatos o pino ficará

com um valor indeterminado (em aberto) e sujeito a

ruídos, o que pode causar mau funcionamento do

firmware.

A distância física entre o TP e o controlador

é fator de pouca importância, desde que a latência

entre o PC do TP e do controlador seja baixa.

Os sinais de entrada na placa de

teleoperação foram o Enable Device, Emergency

Stop e Motors On. Esses sinais serão transportados

até serem entregues no controlador. Porém, o

tráfego do sinal, até o controlador em definitivo,

leva certo tempo, geralmente na ordem de

milissegundos, mas que, dependendo da conexão,

pode chegar até a ordem de segundos. Levando esse

aspecto em consideração, é interessante para o

operador saber o atraso com que essas informações

são entregues. Para isso, a placa foi projetada, com

três LEDS nas saídas RD2, RD3 e RD4, que

indicam o acionamento dos três sinais citados,

respectivamente. Porém, o sinal lido para

acionamento desses três LEDs, não é diretamente o

valor dos sinais de entrada no PIC.

Pegando como exemplo o Enable Device, ao

pressionar esse botão, chaveia-se o sinal na Placa e

ele envia os sinais ao PC, ao qual está conectado.

Esse PC, através do software desenvolvido

(apresentado no próximo capítulo) e fazendo uso de

uma conexão TCP/IP, envia os sinais até o PC do

controlador. Esse PC, através do software de

teleoperação, repassa os sinais à placa de

teleoperação do controlador, e a placa, por sua vez,

ativa o relé que aciona o Enable Device. A mesma

placa envia ao PC o valor atual do EN, e esse sinal é

enviado de volta ao PC do TP, que aciona o LED

mostrando que o Enable Device foi acionado.

Assim, é possível determinar, visualmente, a

latência da conexão que une os dois sistemas. Esse

processo é semelhante ao PING-PONG utilizado

nos computadores para saber o tempo que leva para

uma mensagem ir e voltar de algum outro PC.

A Figura 14 ilustra a primeira versão da

placa de teleoperação do Teach Pendant.

Figura 14 - Placa de teleoperação - Teach Pendant

Page 10: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

310 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

3.7. Placa de teleoperação – Controlador

A placa de teleoperação do controlador será

responsável pelas seguintes tarefas:

Comunicar com o PC Via USB.

Ler, empacotar e enviar ao PC o estado

da lâmpada sinalizadora do Motors On.

Receber e desempacotar os sinais do PC

e chavear os relés referentes aos

seguintes sinais do Teach Pendant:

Enable Device.

Emergency Stop.

Motors On.

Esses valores recebidos, do Enable Device e

Emergency Stop, também deverão retornar ao PC

do TP para acionar os LEDs indicadores.

A função física principal dessa placa é

substituir o Teach Pendant por dois relés e, com

outro relé, chavear o Sinal de Motors On.

O único sinal que a placa capta

externamente é o estado da luz (que pisca) no botão

Motors On (ou não) a porta RB3 do PIC.

Os outros dois sinais que a placa recebe

advêm da própria placa e são os valores dos estados

dos botões Enable Device e Emergency Stop.

Esses três valores são empacotados e

enviados para o PC, que empacota esses dados e,

junto com os dados internos do Teach Pendant, são

enviados até o outro PC.

Considerada a parte mais importante, pois

nela estão contidos os três relés que chavearão os

estados emitidos no controlador pelos botões no

Teach Pendant, que percorreram todo o caminho. O

Sinal do Enable Device é normalmente aberto. Em

questões de projeto, isso significa que na posição

NO do relé duplo nada será conectado, pois o sinal

deverá ficar aberto para que atinja o valor de -24 v

(intrínseco ao projeto do controlador). E na posição

NC os dois sinais EN1 e EN2 são conectados. O

Motors On funciona do mesmo jeito que o Enable

Device. Já no caso do Emergency Stop, que é NC,

os Sinais ES2A e ES1A são conectados aos comuns

e os sinais ES1B e ES2B, conectados ao lado NO.

A Figura 16 mostra a placa de teleoperação

do controlador.

Figura 16 - Placa de teleoperação – Controlador

4. Softwares e firmwares de teleoperação

O projeto de teleoperação robótica utiliza

placas microcontroladas para fazer a aquisição dos

dados e de computadores para enviar e receber os

dados via internet, portanto é extremamente

necessário o desenvolvimento de Softwares e

Firmwares específicos para o projeto.

Como se pode perceber, as palavras

software e firmware estão no plural. Isso quer dizer

que estão sendo desenvolvidas duas versões de

cada. O software será dividido entre duas versões de

clientes e um servidor. Utilizando a API Java.net.,

um dos clientes ficará no computador onde o Teach

Pendant está conectado e o outro ficará no

computador cujo controlador se encontrava. O

servidor também ficará no PC do controlador.

Os firmwares por pertencerem a placas

fisicamente diferentes também são distintos e

compatíveis com seus propósitos.

Os softwares responsáveis pela teleoperação

foram desenvolvidos utilizando a linguagem Java.

A linguagem Java possui um grande

benefício quando comparado a outras plataformas

de desenvolvimento. O software, uma vez

desenvolvido, poderá ser executado em diversas

plataformas sob uma mesma compilação, ou seja,

não é necessário reescrever ou, nem mesmo,

recompilar o código fonte como é comum em outras

linguagens. Porém, existem algumas desvantagens.

Pois fazer comunicação diretamente com o

hardware torna a vida do programador um pouco

mais árdua.

A teleoperação de um sistema legacy como

o do robô só é possível se reproduzir exatamente

aquilo que for lido, ou seja, não é possível acessar o

controlador e operar o robô somente utilizando um

computador, pois para essa versão do robô não é

disponibilizado um protocolo de comunicação com

as funções básicas do robô. É necessário fazer a

Page 11: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Desenvolvimento de uma interface para teleoperação robótica com transporte de dados via TCP/IP e

comunicação serial utilizando JAVA

Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010. 311

aquisição dos sinais do cabo do TP e, através de

dois computadores conectados à internet, reproduzir

os sinais (respeitando o padrão de comunicação de

cada sinal) para o controlador e vice-versa.

Portanto, o software de teleoperação é um fator

fundamental nesse processo.

Para que a teleoperação ocorra com sucesso,

é necessário que o operador enxergue exatamente o

que está acontecendo e com o menor atraso

possível, para aumentar a sensação de presença.

O primeiro passo, para o projeto do software

de teleoperação, é especificar exatamente o papel a

ser desempenhado por ele.

O cabo que liga o Teach Pendant e o

controlador possui 10 fios, sendo dois deles

responsáveis pela troca de dados entre o Teach

Pendant e o controlador, e os outros oito são

responsáveis por levar os sinais de segurança

Enable Device e Emergency Stop, além de

alimentar o TP com 0 e 24V.

O padrão de comunicação dos dois

primeiros sinais é o RS485, que fazendo uso de um

conversor RS485/RS232 é possível conectar a um

computador que possua uma conexão serial.

Portanto, o primeiro desafio no campo do

desenvolvimento do software foi trabalhar com a

comunicação serial em Java.

4.1. Comunicação Serial em JAVA

A Sun e demais empresas envolvidas no

desenvolvimento Java desenvolveram algumas

APIs para facilitar o trabalho, como é o caso da API

RXTX (API RXTX, 2010) para a comunicação

tanto serial quanto paralela, podendo, também,

trabalhar via USB como será também o caso nesse

projeto.

A API RXTX é baseada na API Javacomm

(JAVA COMUNICATIONS API, 2010) distribuída

pela própria Sun, com a seguinte vantagem: essa

API é portável para Linux, Windows e Mac, o que

garante a vantagem de construir um software que

roda em qualquer plataforma.

A placa de aquisição de dados, que

transporta os sinais do Enable Device, Emergency

Stop e Motors On, possui comunicação USB,

utilizando no firmware a classe CDC, faz que a

placa de teleoperação seja vista como uma conexão

serial pelo PC ao qual estiver conectada. Essa tarefa

facilita a vida do desenvolvedor do software, uma

vez que ele já faz leitura serial utilizando a API

RXTX.

4.2. Comunicação entre os softwares

As informações, tanto das placas de

teleoperação quanto dos sinais de comunicação,

precisam ser enviadas do TP para o controlador e

vice-versa. O elo entre os processos do servidor e

dos clientes (PC-TP e PC-Controlador) é o socket.

Ele é a “porta” na qual os processos enviam e

recebem mensagens. Portanto, socket é a interface

entre a camada de aplicação e a de transporte dentro

de uma máquina. Inicialmente, o cliente deve se

comunicar com o servidor da seguinte maneira: O

servidor determina previamente determinada porta

e, com um socket, fica aguardando conexões nela.

Já o cliente, através do IP do servidor e da porta

previamente estabelecida, solicita uma conexão

com esse servidor.

Por sua vez, o servidor aceita a conexão

gerando um novo socket em determinada porta do

lado do servidor, criando um canal de comunicação

entre o cliente e o servidor, permitindo, assim, a

liberação do socket inicial para que este possa ser

chamado por outros clientes.

A API Java.net possui um conjunto de

funções bem conhecidas que realizam essas tarefas

de acesso. Essas bibliotecas implementam o código

necessário internamente e disponibilizam uma

interface-padrão para que as aplicações Java

possam executar essas tarefas.

Para identificação, os clientes recebem um

nome de remetente e do respectivo destinatário.

Figura 17 - GUI inicial do software de teleoperação

O funcionamento da teleoperação pode ser

apreciado em: <http://www.youtube.com/

watch?v=JHxGcm-bZMU>.

5. Conclusões

Durante a execução deste trabalho, foi

possível determinar a possibilidade de teleoperar o

Robô IRB 2400/10 da ABB. Esse robô que possui

protocolo de comunicação fechado, em que a

solução encontrada para o seu manuseio foi

Page 12: Desenvolvimento de uma interface para teleoperação ... · Palavras-chave: Braço robótico, ... seja para caça, seja para pesca. ... hardware, firmware e software) que permite

Marlon J. do Carmo, Rodrigo de Albuquerque P. Andrade, André Del Bianco Giuffrida e Angelo R. Oliveira

312 Revista Eletrônica Produção & Engenharia, v. 3, n. 2, p. 301-312, Jul./Dez. 2010.

deslocar o TP, utilizando placas de aquisição,

conversores EIA-485/EIA-232 e computadores para

enviar, através da rede, as mensagens para o outro

PC.

Essa nova metodologia para interface de

sistemas robóticos é extremamente interessante para

o pátio tecnológico brasileiro e mundial, visto que

muitos robôs em atividade possuem arquitetura

fechada, e as atualizações desses controladores são

de alto custo.

No âmbito educacional, a ideia é utilizar o

sistema para dar aulas a distância, possibilitando,

assim, o acesso de mais usuários, como meio de

incentivo à área de robótica.

6. Referências

ABB Flexible Automation. BaseWare OS 3.0,

3HAC 0930-1. User Guide (Guia do usuário do

Robô – IRB2400), 1990a.

ABB Flexible Automation. M97A, 3HAC 0818-1.

Product Manual IRB 2400, 1990b. (Manual do

Produto – IRB2400).

AGUIRRE, L. A. Inciclopédia de Automática.

São Paulo: Edgard Blücher, 2007.

ÁLVARES, A. J.; ROMARIZ, L. J. Telerobotics:

Methodology for the development of a through

the - Internet Robotic Teleoperated System.

Journal of the Brazilian Society of Mechanical

Sciences, v. 24, n. 2, p. 122-126, 2002.

ÁLVARES, A. J. Telemanufatura: Teleoperação via

web da máquina de oxi-corte CNC AUTOCUT

2.5L. In: CONGRESSO BRASILEIRO DE

ENGENHARIA MECÂNICA – COBEM, 16.,

2001. Resumos... [S.l. : s.n.t.], 2001.

CORREIA, Flávio Augusto Coutinho. Um sistema

de tele-operação para um manipulador mestre-

escravo 3 GDL com realimentação háptica. Rio

de Janeiro: Instituto Militar de Engenharia, 2003.

Dissertação (Mestrado) – Instituto Militar de

Engenharia, Rio de Janeiro, 2003.

DEILTEL, P.; DEILTEL H. Java: Como

programar. 8. ed. São Paulo: Pearson, 2010.

DE SOUZA, D. R.; SOUZA, D. J. Desbravando o

PIC. Rio de Janeiro: Érica, 2008.

LITZENBERGER G. Robôs made in Brasil.

Revista Inovação em Pauta, n. 7, p. 57, 2009.

MARTINS, Rodrigo. Projeto de um protótipo de

um Manipulador Teleoperado. São José, 2008.

Trabalho de Conclusão de Curso (Graduação em

Engenharia de Computação) –Universidade do Vale

de Itajaí, São José, SC, 2008.

RITTER, D. J. LabView GUI: Essential

techniques. Rio de Janeiro: MC Graw Hill, 2002.

Artigo selecionado entre os 10 melhores do

VII Encontro Mineiro de Engenharia de

Produção - EMEPRO 2011.