RETROFITTING DE UMA MESA XY
FILIPE A. S. ROCHA, WENDERSON G. SERRANTOLA, GABRIEL N. LOPEZ, DIEGO S. TORGA, MAYKO A.
DE CARVALHO, GERALDO P. DE SOUZA, JOSÉ A. N. COCOTA JUNIOR, ALAN K. RÊGO SEGUNDO.
Departamento de Engenharia de Controle e Automação e Técnicas Fundamentais (DECAT),
Universidade Federal de Ouro Preto (UFOP)
UFOP, Campus Morro do Cruzeiro, Escola de Minas, DECAT, Ouro Preto, MG – CEP35400-000
E-mails: [email protected], [email protected],
[email protected], [email protected],
[email protected], [email protected], [email protected],
[email protected]
Abstract
 Faced with an increasingly globalized environment, companies are being forced to adapt themselves. The offer of
products with competitive price and quality are currently the main challenges with which companies must deal in order to survive
in the market. The automation of these companies is undoubtedly a way to lower costs and to maintain an effective quality control on production. In this context, robotics plays an essential role as it provides numerous benefits to industrial activities, such as
safety, agility, quality, accuracy, better working conditions and reducing the waste of raw materials. These benefits are directly or
indirectly linked with the improvement of the results of the organizations. In this paper we developed a robotic application for
automation and control of tool position of an XY table through integration between Arduino and MATLAB platforms.
Keywords
 step motor, MATLAB, kinematic position control.
Resumo
 Diante de um cenário cada vez mais globalizado, as empresas estão sendo forçadas a se adaptar. A oferta de produtos
com preços competitivos e de qualidade constituem atualmente os principais desafios com os quais as empresas devem lidar para
sobreviverem no mercado. A automação dessas empresas é, sem dúvida, uma forma de baixar custos e de manter um controle de
qualidade efetivo sobre a produção. Nesse contexto, a robótica tem papel essencial, pois proporciona inúmeros benefícios às atividades industriais, tais como: segurança, agilidade, qualidade, precisão, melhores condições de trabalho e redução do desperdício de matéria prima. Esses benefícios estão atrelados direta ou indiretamente com a melhoria dos resultados das organizações.
Neste trabalho foi desenvolvida uma aplicação de robótica para automação e controle de posição da ferramenta de uma mesa XY
por meio da integração entre as plataformas Arduino e MATLAB.
Palavras-chave
 motor de passo, MATLAB, controle cinemático de posição.
1
Introdução
As mesas XY, também conhecidas como mesas
cartesianas ou posicionadoras, possuem grande quantidade de aplicações nos diversos setores industriais
(KASSOUF, 2003), como também no setor
comercial e de serviços. As mesas XY estão presentes em diversos tipos de equipamentos e tem a função
de posicionar adequadamente a peça para os trabalhos de usinagem, soldagem, cortes, pinturas, furações entre outros (MARIANO et al., 2005). Elas são
bastante indicadas para tais funções, pois apresentam
espaço de trabalho plano e cinemática simplificada,
descrita por funções lineares, uma vez que utilizam
apenas juntas prismáticas.
Uma mesa XY com controle de passo micrométrico é composta de partes micromecânicas contendo
carros acionados por parafusos com “roscas finas”,
motores de passo, circuitos eletrônicos de controle,
circuitos de interface para microcomputador e software de gerenciamento (SANTOS FILHO, 2002).
Normalmente o acionamento desse tipo de mesa
de coordenadas utiliza malhas fechadas de controle,
que atuam juntamente com sensores de posição.
Como elementos dos sistemas de retroalimentação,
são utilizadas estruturas de sensores ligados aos eixos
dos motores (encoders) (MENEZES FILHO et al,
2010).
Os controladores dos equipamentos, utilizando o
controle de erro de trajetória, atuam nos eixos de
modo independente, relacionando malhas fechadas
de controle apenas com os valores de posição e referência para cada eixo (MENEZES FILHO et al.,
2010).
O objetivo deste trabalho é implementar para
fins didáticos um controlador cinemático de posição
por feedforward em uma mesa XY em desuso há
mais de uma década. Para alcançar este objetivo é
necessário efetuar o retrofitting do robô. A mesa XY
utilizada neste trabalho, Micro Slides NAO-501778,
possui motores de corrente contínua sem escovas
(Brushless Direct Curent – BLDC) e controlador
Anorad I-SERV-BLM2, que utiliza o microprocessador 8XC196KC20 da Intel. Em função da falta de
informações sobre o controlador, bem como dos
atuadores que foram descontinuados, propõe-se a
substituição da placa controladora pela plataforma
Arduino MEGA 2560 e o uso dos motores de passo
como atuadores.
2 Materiais
2.1 Mesa XY
A mesa XY utilizada é do modelo NAO-501778
(Fig. 1), possui motores de corrente contínua sem
escovas da empresa Micro Slides. Seu espaço de
trabalho compreende uma região quadrada com dimensão de 145 [mm] por 145 [mm] (Fig. 2).
Figura 3. Circuito de Acionamento do Motor de Passo.
Figura 1. Mesa XY.
Figura 4. Sinais gerados pelos encoders.
Figura 2. Representação do espaço de trabalho de um robô planar
de dois elos (FONTE: SICILIANO et al., 2009)
A movimentação da mesa é feita por dois motores de passo, sendo um para cada eixo. A posição da
mesa é obtida através de encoders instalados em seus
eixos.
A distância percorrida é medida por meio da
contagem de pulsos do encoder, utilizando funções
de interrupção do Arduino. A mesa é enviada para a
posição inicial em ambos os eixos toda vez que o
sistema é inicializado, contando a partir daí os pulsos
do encoder para verificar a posição do atuador. A
confirmação de posição inicial da mesa é detectada
por chaves óticas de fim de curso.
Foram realizados vários experimentos para se
obter o ganho de normalização dos encoders, que
através da multiplicação pelo número de pulsos gera
a distância percorrida em milímetros.
2.4 Chaves de Fim de Curso
2.2 Motor de Passo e Sistema de Acionamento
Os motores usados para acionamento da mesa
XY são do modelo 57BYG 059, na configuração
unipolar. Suas características construtivas são: 4
[V/fase]; 2,5 [Ω/fase]; 1,6 [A/fase], 1,8 [°/passo] e
200 [pulsos/rotação completa]. Quando acoplado à
mesa, um passo gera um deslocamento linear de
0,0245 [mm] e uma rotação inteira do motor gera um
deslocamento de 2,554 [mm].
O módulo de potência e o sistema de acionamento dos motores foram construídos em uma única
placa, baseados nos circuitos integrados L297 e L298
(Fig. 3).
2.3 Encoders
A mesa XY possui dois encoders lineares incrementais em cada eixo, defasados em 90 [º], da
RSF Elektronik. O encoder possui resolução de 8
[µm], gerando assim uma onda quadrada com frequência proporcional à distância percorrida (Fig. 4).
Cada eixo da mesa contém duas chaves de fim
de curso. Elas são responsáveis por delimitar o espaço de trabalho da mesa XY. Quando o efetuador
chega ao limite do eixo, é interrompido um sinal
luminoso que então para de incidir sobre o sensor
óptico, desta maneira é gerado um sinal que é enviado para o Arduino. Estes sinais são as referências
para a calibração da mesa.
3 Calibração e Operação da Mesa XY
3.1 Calibração
Para a calibração do robô foi realizado um conjunto de ensaios para estabelecer a relação entre o
número de passos do motor e a distância percorrida
por cada eixo da mesa XY.
A partir da posição inicial, o motor de um eixo
recebe uma sequência pré-estabelecida de passos à
velocidade constante, e ao término do deslocamento
linear, a posição final do eixo é medida com o auxílio
de um paquímetro. O processo é repetido para uma
nova quantidade de passos até atingir o limite da
região de trabalho, sempre tendo como posição inicial a origem (0,0). A partir dos resultados obtidos foi
feito um ajuste de curva por meio do método dos
mínimos quadrados, correlacionando a distância
percorrida e o número de passos. Tanto para o eixo X
quanto para o eixo Y da mesa foram obtidos modelos
polinomiais de primeira ordem com coeficientes de
determinação (R2) próximos de 1, indicando que os
modelos ajustados explicam bem os valores observados (Fig. 5 e 6).
12000
y = 78,591x + 2,316
R² = 0,9999
Número de Passos
10000
8000
6000
4000
2000
0
0
50
100
150
Distância (mm)
Figura 5. Ajuste de curva do eixo Y.
12000
y = 78,691x - 0,9279
R² = 0,9999
Número de Passos
10000
8000
6000
4000
2000
0
0
50
100
150
Distância (mm)
Figura 6. Ajuste de curva do eixo X.
Os modelos matemáticos obtidos por meio da
calibração foram incluídos na programação do Arduino. A partir da posição desejada, obtem-se o número de passos referentes à distância que deve ser
percorrida. Cada passo do motor representa 0,0127
[mm].
3.2 Operação em Malha Fechada
Para a operação em malha fechada foi realizada
uma abordagem de controle cinemático de posição
por feedforward. No caso da mesa XY, pelo sistema
ser linear, a inversa da matriz do Jacobiano foi suprimida do diagrama de blocos apresentado na Fig. 7,
por se tratar de uma matriz identidade.
Figura 7. Diagrama de blocos para o controle cinemático.
Para realizar o controle, o MATLAB inicialmente divide a trajetória desejada em vários pontos e
calcula para cada posição a velocidade desejada, em
função da distância a ser percorrida entre dois pontos
e do intervalo de tempo da amostragem. A determinação da velocidade entre dois pontos é necessária
para a implementação do laço feedforward (Spong et
al., 2005). Os dados gerados (posições e velocidades)
pelo MATLAB são utilizados no programa do Arduino para a execução do controle cinemático de
posição.
Como a cinemática do sistema é linear, é possível implementar dois laços de controle em paralelo,
sendo um para cada eixo da mesa XY. Desta forma,
cada eixo deve ter sua própria sintonia de ganho
proporcional (K) e seus próprios vetores de velocidades e posições desejadas.
Após receber as posições e velocidades desejadas referentes à trajetória, o controlador no Arduíno
trabalha da seguinte forma: calcula-se o erro de posição (Erro), obtido pela subtração entre a posição
desejada (P_Desejado) e a posição atual do efetuador
(P_Atual). Como o encoder gera dados em contagem
de pulsos, estes são convertidos para milímetros
através da multiplicação por um ganho (K_sensor). O
erro calculado é multiplicado pelo ganho proporcional do controlador (K) e, então, somado com a componente de velocidade da ação do feedforward
(dP_Desejado), gerando o sinal de controle de velocidade (U) em [mm/s].
Como os motores de passo trabalham com rotações angulares fixas (neste caso de 1,8 [º/passo]), na
prática o sinal U é convertido em frequência para o
acionamento das bobinas do motor. No processo
pode ser que ocorra a saturação da velocidade dos
motores já que os mesmos possuem uma velocidade
máxima de operação.
4 Software
A comunicação entre MATLAB e Arduino é feita pela porta USB. Ao receber o pedido de comunicação vindo do computador, o Arduino posiciona o
efetuador na origem da área de trabalho, ou seja,
posição (x,y) = (0,0). Assim que recebe os vetores
com as posições e velocidades desejadas, o Arduino
calcula e inicia a trajetória experimental, salvando
todos os dados referentes à trajetória, e.g., posição
alcançada, sinal de controle e sinal de erro para cada
intervalo de amostragem. Logo que termina a trajetória, o módulo de comando da mesa envia esses dados
para o MATLAB, que os trata da forma adequada e
gera os gráficos pertinentes ao ensaio realizado. Na
Fig. 8, temos a representação da arquitetura do software.
O movimento da mesa XY de sua origem para o
ponto inicial da trajetória é feito em malha aberta e, a
partir desse ponto, o controle em malha fechada é
executado para a trajetória desejada.
Figura 9. Erro real (vermelho) e simulado (azul) – eixo X
Figura 8. Arquitetura do software.
5 Resultados
Nesta seção são apresentados os resultados experimentais e de simulação obtidos a partir do controle cinemático de posição para as trajetórias linear
e circular.
5.1 Trajetória Linear
Figura 10. Erro real (vermelho) e simulado (azul) – eixo Y.
Para a trajetória linear foi usada como origem a
coordenada arbitrária (40, 20) [mm] e para o destino
final o ponto de coordenadas (20, 40) [mm], dividida
em 50 pontos. Foram realizados testes alterando os
ganhos dos dois eixos e o tempo de amostragem.
Dentre os resultados experimentais obtidos, o
mais satisfatório foi utilizando o ganho do controlador em 30 para o eixo X e 32 para o eixo Y, com um
tempo de amostragem de 100 [ms]. A faixa de operação do intervalo (T) de clock dos motores para que
não haja saturação é de 600 a 13.000 [µs]. A velocidade dos motores é diretamente proporcional à frequência do clock aplicado no sistema de acionamento
e tem valor igual a f=1/T.
Na trajetória simulada o erro final apresentado
foi nulo, pois os dados são ideais (Fig. 9 e 10). Já na
trajetória real observa-se um erro final de 0.35 [mm]
para o eixo X e 0.48 [mm] para o eixo Y. Os erros
apresentados provavelmente são devidos às configurações de ganhos e ao intervalo de amostragem.
Na Fig. 11 encontram-se os sinais de controle,
ou seja, as velocidades aplicadas em cada motor
durante a trajetória linear, que são determinadas pela
plataforma Arduino durante cada ciclo de amostragem do sistema. Os valores do eixo X se encontram
negativos, pois representam o movimento de retorno
em relação ao sentido positivo do eixo.
A trajetória linear executada no experimento em
comparação com a trajetória simulada encontra-se
representada na Fig. 12. Ambas as trajetórias iniciam
no mesmo ponto, porém é possível notar que a trajetória experimental é compensada pela ação do controlador, que busca o ponto de equilíbrio (erro nulo)
quando o tempo tende ao infinito. Note que o sinal
do controle é proporcional ao sinal do erro com a
suavização do sinal do laço feedforward (Fig. 11).
Figura 11. Saída controlador Uy (vermelho) e Ux (azul) para o
experimento.
sinal do erro amplificado pelo ganho do controlador,
sem apresentar suavização do sinal conforme apresentado na trajetória linear.
Figura 12. Trajetória real (azul) e simulada (vermelho).
5.2 Trajetória Circular
Assim como no experimento de trajetória linear,
foram realizados testes alterando os ganhos dos dois
eixos e o tempo de amostragem para uma trajetória
circular com o ponto central em (25, 25) [mm] e com
raio de 20 [mm], dividida em 100 pontos.
O melhor resultado alcançado utilizou o ganho
de 30 para os controladores de ambos os eixos, com
um intervalo de amostragem de 300 [ms].
Como na trajetória linear, o erro da simulação é
nulo. Na trajetória circular real houve erro maior em
relação à linear, devido, principalmente, à resolução
de apenas 100 pontos para essa trajetória (Fig. 13 e
14). Esse número de pontos não pôde ser aumentado
devido à limitações de memória do Arduino.
Ao contrário da trajetória linear, a trajetória circular necessita de maior variação de velocidade, o
que requisita maior ação do controlador (Fig. 15).
A trajetória circular executada no experimento
em comparação com a trajetória simulada encontrase representada na Fig. 16. Ambas as trajetórias iniciam no mesmo ponto, porém é possível notar que a
trajetória experimental não consegue acompanhar de
forma satisfatória a trajetória desejada.
Figura 14. Erro real (vermelho) e simulado (azul) – eixo Y.
Figura 15. Saída controlador Uy (vermelho) e Ux (azul) para o
experimento.
Figura 16. Trajetória real (azul) e simulada (vermelho).
Figura 13. Erro real (vermelho) e simulado (azul) – eixo X.
Observa-se que na trajetória circular, para o controlador implementado, a ação do laço feedforward
foi desprezível em relação a ação do controle proporcional. Neste experimento a ação de controle segue o
5.3 Repetibilidade e Precisão
Foram realizados dez ensaios para determinar a
repetibilidade e a precisão do robô para uma trajetória retilínea com as seguintes configurações: trajetória do ponto inicial Xi = 20 [mm], Yi = 20 [mm] para
o ponto alvo Xf = 72,5 [mm], Yf = 72,5 [mm]. Os
ganhos proporcionais dos controladores foram ajustados para Kx = 30 e Ky = 32. O tempo de amostragem foi estipulado em 100 [ms] e a trajetória foi
dividida em 100 pontos.
Conforme representado na Fig. 17, houve uma
pequena dispersão dos pontos alcançados, com distância máxima entre eles de 0,127 [mm]. Em contrapartida, a precisão do robô foi de 1,19 [mm], conforme ilustrado na Fig. 18.
prismáticas. O robô desenvolvido apresentou boa
repetibilidade, e melhor precisão durante a execução
de uma trajetória com controle em malha fechada
(Fig. 9 e 10) em relação a tarefa de alcançar um ponto desejado (Fig. 18).
Em trabalhos futuros, deseja-se investigar a aplicação de um maior número de pontos em uma trajetória a ser executada, com o uso de uma plataforma
aberta com maior recurso computacional. Outra possibilidade é a substituição dos atuadores por motores
de corrente contínua, para analisar o desempenho do
controlador com o uso de distintos motores.
Referências Bibliográficas
Figura 17. Repetibilidade da mesa XY.
Figura 18. Precisão da mesa XY.
6 Conclusão
Este trabalho abordou o retrofitting de um robô
planar com duas juntas prismáticas, que se encontrava fora de uso há mais de uma década. O artigo
aplica na prática o controle cinemático de posição
para a trajetória linear e circular.
Os resultados iniciais obtidos nos ensaios das
trajetórias, bem como na determinação da repetibilidade e precisão foram satisfatórios, considerando o
limite computacional da plataforma Arduino utilizada, as características eletromecânicas dos motores,
bem como as folgas existentes nos fusos das juntas
Kassouf, S. (2003). Mesa XY. Mecatrônica Atual,
João Pessoa, v. 21, n. 4, p. 406-424
Mariano, V.; Silva, J. F.; Silva, J. B. A.; Nascimento,
J. F. L.; Silva, J. C. B. (2006). Simulação da dinâmica e identificação de parâmetros em uma
mesa XY de máquina-ferramenta. Revista Iberoamericana de Ingeniería Mecânica. Vol. 10, n. 1,
p. 57-70.
Menezes Filho, J. B.; Silva, S. A.; Araújo, C. S.;
Xavier Filho, A. F. (2010). Controlador vetorial
neural para mesa de coordenadas XY. Revista
Controle & Automação, João Pessoa, v. 21, n. 4,
p. 406-424.
Santos Filho, S. G. (2002). Controle de Mesa XY
utilizando motor de passo. Mecatrônica Atual, v.
2, p. 28-35.
Siciliano, B.; Sciavicco, L.; Villani, L.; Oriolo, G.
(2009). Robotics modeling, Planning and Control. London: Springer.
Spong, M.W.; Hutchinson, S.; Vidyasagar, M.
(2005). Robot Modeling and Control. 1st ed.
New York, NY, US: Wiley.
Download

RETROFITTING DE UMA MESA XY FILIPE A. S. R