Anais do XVI Encontro de Iniciação Científica e Pós-Graduação do ITA – XVI ENCITA / 2010
Instituto Tecnológico de Aeronáutica, São José dos Campos, SP, Brasil, 20 de outubro de 2010
PROJETO DO CONTROLADOR DO ROBÔ ADEPT VIA LABVIEW TM
Daniel Zelaquett Lins Pimentel
ITA - Instituto Tecnológico de Aeronáutica
Rua H8-B, no 229, Campus do CTA, São José dos Campos - SP, Brasil, CEP: 12228-461
Bolsista PIBIC-CNPq
[email protected]
Luís Gonzaga Trabasso
ITA - Instituto Tecnológico de Aeronáutica – Divisão de Engenharia Mecânica
Pç. Marechal Eduardo Gomes, no 50, São José dos Campos – SP, Brasil, CEP: 12228-900
[email protected]
Resumo. O presente artigo tem como principal objetivo analisar a viabilidade de controlar o robô Adept TM 300S
através do LabViewTM e, em seguida, desenvolver, neste ambiente de programação, um “Virtual Instrument” (VI) com
uma interface amigável. Para tanto é necessário integrar as bibliotecas do robô Adept com ambientes de programação
a fim de elaborar rotinas de controle e manipulação do robô. Em parceria com profissionais do Centro de
Competência em Manufatura (CCM) e dispondo do Laboratório de Automação da Montagem Estrutural de Aeronaves
(LAME), sediado no Centro Tecnológico Aeroespacial, foi possível desenvolver programas, voltados ao controle do
robô, mediante dois ambientes de programação: o software AIM e o editor do texto do Adept Windows no qual se
utilizou a linguagem de programação V+.
Palavras chave: Adept, LabView, AIM ,V+, Robô.
1. Introdução
Atualmente, visando o aumento da eficiência e produtividade nas mais diversas situações, novos softwares
estão sendo desenvolvidos. LabViewTM consiste em uma ferramenta cujas funcionalidades atendem a esses requisitos.
LabView ( Laboratory Virtual Instrument Engineering Workbench), desenvolvido pela National Instruments, é uma
linguagem de programação gráfica que possibilita inúmeras atividades: automação, aquisição de dados, dentre outros,
sendo utilizado, por exemplo, como um instrumento de controle de robôs, fato de grande interesse hoje em dia.
Este projeto de iniciação científica está sendo desenvolvido com a orientação de profissionais do Centro de
Competência em Manufatura (CCM), sediado no Centro Tecnológico Aeroespacial, e tem como objetivo principal
analisar a viabilidade de controlar o robô Adept TM 300S (vide Figura 1) através do LabViewTM e, em seguida,
desenvolver, neste ambiente de programação, um “Virtual Instrument” (VI) com uma interface amigável. Para tal, será
preciso se familiarizar com LabViewTM e outros ambientes de programação que venham a ser necessários ao controle
do robô. É válido ressaltar que há projetos semelhantes sendo desenvolvidos, com outros robôs, por intermédio de DLL
(Dynamic Link Library) ou pela utilização de Virtual Instrument no LabView. Entretanto, mais especificamente em
relação ao Adept 300S, não se encontraram, até então, estudos com a mesma abrangência. É válido ressaltar que a
análise e estudos de projetos paralelos contribuem, de maneira significativa, em prol da solução do problema proposto.
Figura 1. Robô AdeptTM 300S pertencente ao LAME.
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
2. Controle Manual do robô AdeptTM 300S
Visando o controle do robô via um ambiente de programação, torna-se necessário, a priori, conhecer o mecanismo
de movimentação do robô a fim de observar a quantidade de graus de liberdade e os limites do movimento de cada eixo.
Fatores relacionados à aceleração e à desaceleração de cada um dos eixos do robô devem, também, ser levados em
consideração a fim de que se possa manipulá-lo, automático ou manualmente, de maneira segura. Para tal é de grande
relevância saber utilizar o Master Control Panel.
2.1. MCP - Master Control Panel
Em virtude da necessidade de aprender o mecanismo de movimentação do robô Adept TM 300S, foi necessário
manipulá-lo através do programa Adept Windows DDE, também utilizado para sua inicialização, o qual permite a
conexão do robô via Ethernet. É válido salientar que uma forma de movimentação do robô ocorre por intermédio do
MCP (Master Control Program), correspondente ao funcionamento de um joystick (vide Figura 2).
Figura 2. MCP Layout – Robô AdeptTM 300S.
Após inicializado o programa Adept Windows DDE e realizada a calibração do robô, é possível acessar os
seguintes programas: AIM, VisionWare, AdeptMotion, MotionWare, PalletWare, FlexFeedWare, AdeptNet,
AdeptFTP, AdeptNFS, AdeptTCP/IP, AdeptForce, AdeptModules, AdeptWindows, AdeptWindows PC,
AdeptWindows DDE, AdeptWindows Offline Editor, and V+, relacionado ao Adept Technology, Inc.
3. Controle Automatizado do robô AdeptTM 300S
O controle dos movimentos do AdeptTM pode ser realizado mediante um Joystick, conforme citado
anteriormente, ou por intermédio de rotinas criados no computador (fato que é de grande interesse por parte do CCM,
uma vez que o objetivo final é controlá-lo via LabView, ambiente de programação gráfica, ou por intermédio de
programas de interface gráfica a exemplo do AIM). Em decorrência disto, foi necessário um estudo detalhado do Adept
AIM HELP: arquivo que contém informações parciais acerca deste ambiente de programação, suas funcionalidades e
exemplos de rotinas criadas no âmbito de MotionWare and VisionWare, sendo o primeiro mais relevante em prol da
concretização deste projeto de iniciação científica. Durante o processo de familiarização com o ambiente de
programação AIM, foi possível criar rotinas que possibilitaram a movimentação do robô segundo uma seqüência
construída em um editor de texto do próprio ambiente de programação. Em paralelo, foram definidas algumas variáveis
locais as quais correspondem às posições assumidas pelo robô durante a execução do módulo criado neste programa.
Possibilitou, por conseguinte, a movimentação do robô AdeptTM 300S sem ser necessário utilizar o MCP. É, de fato, um
resultado de grande relevância para o CCM, em virtude de possibilitar a utilização do robô em atividades rápidas e
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
repetitivas e controlá-lo apenas por intermédio do computador. O próximo tópico constituirá de um manual detalhado
acerca da inicialização do software que possibilita elaborar rotinas de movimentação do robô Adept TM 300S.
3.1. Manual de Utilização do software AIM
Após o processo de inicialização do robô Adept TM, é necessário digitar o seguinte código a fim de abrir o
ambiente de programação AIM:
CD AIM
LOAD LOAD_AIM
COMM LOAD_AIM
A fim de criar uma seqüência com linhas de programação visando movimentar o robô AdeptTM, alguns passos
deverão ser realizados. Abaixo serão relacionados alguns comandos, sub-divididos por seções, com o objetivo de
proporcionar o controle do robô sem a necessidade de utilizar o que comumente denomina-se Master Control Program,
abreviado por MCP.
 Criação de um Módulo:
- Na barra superior, selecione a opção "Module" e, em seguida, selecione a opção "Select/Edit";
- Com o botão esquerdo do mouse clique em "Create" e no campo "New Module name" e "Directory
path" digite o nome do módulo que deseja criar. Por exemplo, "Mod" (vide Figura 3).
Figura 3. Criando Módulos.
 Editando o Módulo Criado
- Selecione o módulo criado clicando apenas uma vez sobre o nome anteriormente definido e, em
seguida, pressione o botão " Edit". Abrirá a seguinte janela (vide Figura 4):
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
Figura 4. Editando Módulos.
.
Figura 5.
Criando um “Database
Name”.
- Selecione a opção "Add" e, em seguida,"Location" a fim de criar uma "database type" através da
qual será possível criar variáveis relativas a cada uma das posições a ser ocupadas pelo Adept TM300S (vide
Figura 5). Atribua um nome no campo em branco, a exemplo de "posicoes”.
- Novamente selecione o botão "Add"→"Sequence" e atribua um nome no campo "Database name", a
exemplo de "sequencia" (vide Figura 6).
Figura 6. Criando um “Database Name”para o tipo de
variável “Sequence”.
Figura 7. Criando variáveis do tipo
“Location”.
- Selecione a opção o botão "DONE" duas vezes e selecione o módulo criado: "Mod".
 Criando variáveis para as posições do robô
- Na barra de ferramentas superior, selecione "Edit"→"Locations" e após uma nova janela ser aberta,
clique em "Edit"→"New Record" e no campo do lado superior esquerdo,digite o nome da variável que deseja
criar, a exemplo de " pos_a".
 Estabelecendo valores para a variável criada através do método “Teach”
- Aperte o botão "Teach" no lado esquerdo inferior. Em seguida, um bip será emitido no MCP
("joystick");
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
- Selecione, no MCP, o botão "MAN/Halt";
- Na opção “Joint" selecione umas das juntas, "θ”, “Z” ou “R" e movimente o robô Adept para a
posição desejada;
- Aperte o botão do lado direito mais superior a fim de selecionar a opção "Exit". Feito isso, aperte o
botão "Here" a fim de que os dados referentes a essa posição sejam armazenados na variável "pos_a",
previamente criada (vide Figura 7).
- Insira valores nulos no campo "Approach" e "Depart" (outros valores adequados podem ser
inseridos);
De maneira análoga crie uma outra variável, a exemplo de "pos_b" referente a uma outra posição desejada.
 Editando uma seqüência
- Na barra de ferramentas superior selecione: "Edit"→"Sequence"→"Sequencia", a fim de criar um
código simples de movimentação do robô adept entre as posições “pos_a” e “pos_b”;
- Clique com o botão esquerdo do mouse na palavra "statement" até que uma nova janela com uma
lista de comandos seja aberta. Selecione o comando " MOVE"( Figura 8);
Figura 8. Selecionando um comando.
Figura 9. Selecionando a variável do
tipo“Location”.
- Clique com o mouse na palavra "locations" e escolha uma das variáveis de posições criadas. A
exemplo de “pos_a” (vide Figura 9);
- Selecione "Edit"→" Append line" e crie uma linha análoga, selecionando, agora, “pos_b”.
 Executando a linha de programação (seqüência criada)
- Na barra de ferramentas superior selecione:"Execute"→"Task Control Panel";
- Selecione "Robot_1" com apenas um clique sobre o nome e reduza a velocidade do robô (Robot
speed) para 15,por questão de segurança. Estando mais acostumado com o programa, poder-se-á, em seguida,
aumentar um pouco mais a velocidade do Adept TM;
- Clique em "Select" e selecione a opção "sequencia";
- No MCP selecione "COMP/PWR";
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
- Clique em "Start" e, em seguida, em "Procceed" no campo inferior, à direita de um quadrado verde
luminoso;
- O robô iniciará seu movimento. Caso deseje que o mesmo execute algumas atividades, como repetir
o movimento e/ou parar, dentre outras, selecione os botões correspondentes visualmente explícitos no “Task
Control Panel”.
Este manual é um guia inicial para a movimentação do robô Adept TM 300S via o ambiente de
programação AIM. Entretanto, é preciso um maior aprofundamento por parte do usuário a fim realizar as demais
atividades disponíveis por esse software.
3.2. Programação em linguagem V+
V+ é um sistema de controle embasado em computadores e uma linguagem de programação destinada,
especificamente, para utilização com robôs industriais da Adept Technology, sistemas de visão computacional e de
controle de movimentos. Este tipo de linguagem fornece todas as funcionalidades das linguagens de programação de
“alto-nível”, incluindo estruturas de controle, recursividade nas execuções dos programas, dentre outros. Os programas
elaborados nesta linguagem de programação são criados utilizando-se um editor de texto específico: “SEE editor”
(Figura 10), o qual pode ser acessado diretamente através do Adept Windows. Para acessá-lo, basta digitar “SEE
prog_name”. Caso o programa ainda não exista, o usuário terá a opção de escolher um nome para o programa a ser
criado. Há três modos de edição: “command”, “insert” e “replace”. É válido ressaltar que os programas em V+ podem
ser escritos utilizando qualquer editor que crie um arquivo de texto DOS ASCII.
Figura 10. Janela do “SEE editor”.
A utilização desta nova linguagem contribui, de maneira significativa, para elaborar programas destinados a
controlar o robô Adept 300S, não sendo necessária a utilização do MCP. Esta vantagem, já obtida por intermédio do
software AIM, tornou-se mais fácil a implementação, em virtude das facilidades proporcionadas pela programação em
V+. Em conseqüência disto, foram elaborados programas destinados a controlar o robô de modo que este executasse
movimentos pré-determinados. Uma aplicação destas rotinas de programação se estende ao uso do robô Adept TM 300S
no âmbito industrial para a realização de movimentos que sejam de interesse por parte do usuário. A configuração dos
movimentos seqüenciais deste robô industrial é inserida conectando-se o controlador deste através de um cabo de
comunicação à Ethernet de um computador. Uma utilização bastante comum é os programas “pick and place”, através
dos quais o robô armazena uma série de posições na memória, movimentando-se para elas diversas vezes dentro de sua
programação.
Tabela 1: Comandos da linguagem de programação V+ para o controle do robô AdeptTM 300S.
Comando
DELAY time
Descrição
Pára o robô.
time: tempo em segundos.
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
DELETP program
DIRECTORY/ switch wildcard_spec
DISTANCE(location_1,location_2)
DO @ task: program instruction
DRIVE joint,change,speed
DRY.RUN
EDIT program_name, step
. END
END
ESTOP
EXECUTE/C task_number program
FOR loop_var = initial TO final STEP
increment
group_of_steps
END
GLOBAL type variable,...,variable
IDENTICAL(location,location)
INRANGE(location)
INT(value)
JHERE var1,var2,...,varN
JMOVE expr 1, exp,2,..., expr n
MOVE location
MOVES location
OPEN
OPENI
PAUSE
#PHERE
#PPOINT(j1_value,...,jNvalue)
PROCEED
RETRY
Deleta o programa da memória.
program – nome do program.
Lista os programas armazenados na
memória do sistema.
Retorna a distância em milímetros entre
eles.
Executa o comando sem que seja necessário
ele está em um programa.
Move um dos eixos do robô.
Ex: DRIVE 2,-62.4,75 : altera o ângulo do
eixo 2 de -62.4 graus a uma velocidade iguala
75% da “monitor speed”.
Ativa/Desativa o envio de comandos para o
robô.
Abre o progama “program_name” para ser
editado na posição “step”.
Marca o final de um programa em V+.
Marca o final de uma estrutura de controle.
Envia um sinal para parar o robô.
task_number: número real ou expressão
que especifica qual tarefa será ativida.
Program: nome do programa executado.
loop_var: variável de controle do loop.
initial/final: valor inicial/final de loop_var.
increment:incremento da variável loop_var.
group_of_steps: comandos a serem
executados no loop.
Declara variáveis globais.
Obs: O único tipo de variável suportado no
MICRO V+ é real.
Retorna VERDADEIRO se forem iguais e
FALSO se forem diferentes.
Retorna um valor que indica se a posição
relacionada à “location” pode ser alcançada pelo
robô e, se não, porque não.
Retorna a parte inteirada variável “value”.
Armazena nas variáveis reais var1,...,varN
os atuais valores dos eixos do robô.
Realiza um movimento interpolado dos
eixos dos robô de um valor igual a expr n para o
eixo n.
Realiza um movimento interpolado segundo
a variável location(transformation,precision
point,location).
Realiza o que se denomina de straight-line
motion.1
Abre a garra pneumática durante o próximo
movimento do robô.
Abre a garra pneumática na conclusão do
atual movimento.
Pára a execução do programa, mas permite
resumi-lo.
Retorna um valor real que representa a atual
posição do robô.
Retorna um valor do tipo “precision-point”
composto
pelos
argumentos
j1_value,...,jN_valeu.
Executa a próximo movimento.
Executa,
novamente,
o
movimento
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
RELAXI
SSTEP
STORE
anteriormente concluído.
Comando que torna a garra pneumática não
solicitada, ou seja, de modo que ela não se
encontre firme.
Executa o próximo comando do programa
relacionado à tarefa 1( “task #1”).
Armazena os programas e as variáveis na
NVRAM2. Todas as tarefas devem estar
estabilizadas antes do comando STORE ser
executado.
1
.
Straight-line motion corresponde a um método de movimentação do robô de
tal modo que os movimentos ocorrem ao longo de linhas retas , parando a cada
instante para qualquer mudança na direção.
2
.
NVRAM ( Non-Volatile Random Access Memory) é um tipo de memória que não perde seus dados
mesmo sem a alimentação de energia.
É válido ressaltar, adicionalmente, que outros comandos relacionados à programação em linguagem V+ podem
ser encontrados em manuais fornecidos pela Adept Technology, Inc. Estes estão explicitados na bibliografia utilizada
para a execução das atividades propostas neste projeto.
4. Agradecimentos
O incentivo ao desenvolvimento de pesquisas no Brasil apresentou, nos últimos anos, um crescimento
considerável. O programa de bolsas de iniciação científica, financiando pelo CNPQ, é, de fato, um exemplo explícito de
tal acontecimento. Em virtude disto, agradeço, inicialmente, a este órgão pela oportunidade oferecida aos alunos dos
diversos cursos de graduação a desenvolver estudos e pesquisas nas variadas áreas. Paralelamente, é de grande valia o
apoio do professor orientador, coordenadores de curso do CNPQ no ITA, dos profissionais deste instituto, do CCM e,
também, dos familiares pelo apoio fornecido ao longo do período de desenvolvimento do projeto.
5. Conclusão
A proposta de um controlador para robôs é, atualmente, um fator de grande relevância e que vem sendo
desenvolvido por intermédio de vários softwares. Os estudos direcionados à consolidação do objetivo deste projeto
proporcionaram o contato inicial com ambientes de programação variados, incluindo o LabViewTM , o editor de texto
relacionado à programação em V+, o software AIM, assim como o desenvolvimento de rotinas de controle do Adept
300S. Em virtude da não existência de estudos previamente realizados como este robô, foi preciso analisar a viabilidade
das soluções inicialmente propostas e, paralelamente, estudar novas formas de contornar as dificuldades encontradas ao
longo do projeto. Em virtude destas, foi necessário definir novos planos de estudos a fim de cumprir as metas
estabelecidas no cronograma inicial. Conseqüentemente, foi indispensável à realização de pesquisas, tanto relacionadas
ao robô como aos softwares utilizados, e a troca de conhecimento com profissionais da área.
6. Referências
Adept Technology, Inc, Rev. A. Agosto, 1997, “Adept Windows User’s Guide Version 1.1”, Part Number
00962-01710.
Adept Technology, Inc, Rev. B. Junho, 2000, “Adept Windows User’s Guide Version 2.1”, Part Number
00963-17300.
Adept Technology, Inc, Rev. A. Setembro, 1997, “V+ Language User’s Guide Version 12.1”, Part #
00962-01130.
Adept Technology, Inc, Rev. A. Setembro, 1997, “V+ Operating System User’s Guide”, Part # 0096201230.
Adept Technology, Inc, Rev A. Junho,1991, “Manual Control Pendant User's Guide”, Part Number
00101- 00010;
Adept Technology, Inc, Rev. A. Setembro, 1997, “Instructions for Adept Utility Programs Version 12.1”,
Part # 00962-01000.
Adept Technology, Inc, Fevereiro de 2006, “MicroV+ 2.x User and Reference Guide”.
Adept Technology, Inc, http://www.adept.com.
Anais do XVI ENCITA, ITA,20 de outubro de 2010
,
Bitter,Rick. LabView: advanced programming techniques / Richard Bitter, Taqi
Mohiuddin, Matthew R.Nawrocki. – 2nd ed.
Download

INSTRUCTIONS FOR PUBLICATION IN THE