LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma...

31
UNIVERSIDADE DO VALE DO PARAÍBA FACULDADE DE ENGENHARIA, ARQUITETURA E URBANISMO ENGENHARIA ELÉTRICA / ELETRÔNICA LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E CONTROLE DO ROBÔ PUMA EM AMBIENTE MATLAB/ SIMULINK DIEGO HENRIQUE FERREIRA LIMA LUCAS CARVALHO DE TOLEDO Orientador: Francisco J. Triveno Vargas São José dos Campos, SP Dezembro de 2012.

Transcript of LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma...

Page 1: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

UNIVERSIDADE DO VALE DO PARAÍBA

FACULDADE DE ENGENHARIA, ARQUITETURA E URBANISMO

ENGENHARIA ELÉTRICA / ELETRÔNICA

LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E CONTROLE DO ROBÔ PUMA

EM AMBIENTE MATLAB/ SIMULINK

DIEGO HENRIQUE FERREIRA LIMA

LUCAS CARVALHO DE TOLEDO

Orientador: Francisco J. Triveno Vargas

São José dos Campos, SP

Dezembro de 2012.

Page 2: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

1

RESUMO

Ambientes para simulação de sistemas robóticos estão cada vez mais populares,

principalmente por serem baratos e de fácil acesso. Podem ser utilizados para a análise de

manipuladores robóticos em aspectos como: cálculo estrutural, layout, projeto de controlador,

planejamento de trajetórias e programação off-line. Também podem fornecer uma

compreensão maior do assunto pelos estudantes de robótica proporcionando uma sensação

maior de espaço e movimento sem a necessidade de um robô físico. Neste trabalho é descrita

a metodologia para a construção e montagem do robô PUMA no Solidworks, sua posterior

exportação para o MatLab/ Simulinke seu uso como um ambiente de simulação virtual que

por meio de uma interface gráfica o usuário poderá simular a cinemática direta, cinemática

inversa e controle dinâmico em ambiente SimMechanics. Estes modelos criados são

desenvolvidos como parte de um laboratório de software para apoiar e melhorar os cursos que

contemplem a disciplina Sistemas Robóticos. Neste contexto, foi criado um laboratório virtual

para estudo do robô PUMA que por meio de simulações teve sua eficiência comprovada na

análise de aspectos relacionados à sistemas robóticos.

Palavras chave: Matlab/Simulink, PUMA, manipulador robótico, ambiente de simulação

virtual

Page 3: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

2

ABSTRACT

Environments for simulation of robotic systems are increasingly popular, mainly

because they are cheap and easily accessible. They can be used for the analysis of robotic

manipulators in aspects such as: structural calculation, layout, controller design, trajectory

planning and off-line programming. It can provide a greater understanding of the subject by

students in robotics offering a greater sense of space and movement without the need of a

physical robot. This work describes a methodology for the construction and assembly of the

PUMA robot in Solidworks, its subsequent export to Matlab / Simulink and its use as a virtual

simulation environment by means of a graphical interface the user can simulate the forward

kinematics, inverse kinematics and dynamic control in SimMechanics environment. These

created models are developed as a part of a software lab to support and improve the courses

that include the discipline Robotic Systems. In this context, was created a virtual laboratory to

study the PUMA robot that by simulations had its efficient proved in the analysis of aspects

related to robotic systems.

Keywords: Matlab/Simulink, PUMA, robotic manipulators, virtual simulation environment.

Page 4: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

3

INTRODUÇÃO

Um robô industrial é definido como um manipulador multipropósito controlado

automaticamente, reprogramável, programável em três ou mais eixos [1]. Usualmente o termo

robótica emprega-se para indicar a disciplina associada ao uso da programação de robôs e a

expressão engenharia robótica é mais específica e refere-se à construção de robôs e

dispositivos robóticos [2].

O robô é um sistema mecânico que como qualquer outro possui uma representação

matemática por meio de um modelo. Uma ferramenta utilizada para o estudo destes modelos é

o Simulink que é capaz de fazer a análise de sistemas dinâmicos com total integração ao

sistema MatLab [3]. Mas a identificação dos parâmetros de um modelo é um processo

trabalhoso de tentativa e erro. Equações de movimento para o sistema mecânico são

deduzidas manualmente e são comparadas com os resultados experimentais [4].

O Simulink possui um recurso chamado de Simmechanics que é um ambiente para

modelagem e simulação de sistemas mecânicos que utilizam a dinâmica newtoniana padrão

de forças e torques. As análises cinemáticas baseado em Simmechanics livra o projetista de

robôs de estabelecer o modelo do mecanismo. Sistemas mecânicos podem ser representados

de uma forma gráfica de diagramas de blocos que economizam tempo e esforço para a

geração do modelo. E além de tudo, modelos Simmechanics podem ser conectados

diretamente com diagramas de blocos comuns do Simulink [5].

As ferramentas citadas viabilizam a criação de um ambiente de simulação virtual para a

prática de conceitos de robótica e controle.

A análise realizada neste trabalho é feita sobre o PUMA que é um exemplo clássico de

manipulador mecânico. Amplamente utilizado nas indústrias automotivas e no segmento

acadêmico, sendo demonstrado com frequência em cursos de automação e robótica. Durante a

fase de pesquisa deste trabalho foram identificados diversos documentos sobre este

manipulador. O Unimation PUMA, mostrado na Figura 1 é um robô com seis graus de

liberdade sendo que todas as suas seis juntas são rotativas (mecanismo 6R) [6].

Page 5: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

4

Figura 1–Unimate PUMA 500

Na seqüência serão tratados conceitos básicos de manipuladores robóticos industriais. O

entendimento de tais assuntos é essencial para dar seqüência aos tópicos “Metodologia” e

“Resultados e Discussão”.

Tipos de Juntas

Manipuladores mecânicos são compostos de links (corpos rígidos) ligados por juntas ou

articulações em uma cadeia cinemática. As juntas podem ser tipicamente rotativas (revolução)

ou lineares (prismático). Uma junta de revolução permite a rotação relativa entre dois links.

Uma junta prismática permite movimento linear relativo entre dois elos. Usa-se a convenção

(R) para representar articulações de revolução e (P) para juntas prismáticas [7].

Figura 2 – Tipos de juntas mais comuns, a de revolução e a prismática

Graus de Liberdade

Graus de liberdade (degrees-of-fredom – DOF) é o número total de movimentos

independentes que um dispositivo pode efetuar. É determinado pelo número de juntas que o

manipulador possui [2].

Page 6: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

5

Arranjos Cinemáticos

A maioria dos manipuladores industriais atualmente tem seis ou menos graus de

liberdade. Estes manipuladores são geralmente classificados cinematicamente com base nas

primeiras três articulações do braço, com o punho sendo descrito separadamente. A maioria

destes manipuladores esta classificado em um dos cinco tipos geométricos: articular, esférico,

SCARA, cilíndrico ou cartesiano [7].

Configuração articulado (RRR ou 3R)

O manipulador articulado também é chamado de manipulador antropomórfico. Possui

três juntas de revolução (mecanismo RRR ou 3R). É estruturado de tal maneira que o eixo de

rotação da junta 3 é paralela ao da junta 2 e estes dois são perpendiculares ao eixo de rotação

da junta 1, assim como esta demonstrado na Figura 3 [7].

Figura 3 – Estrutura de um manipulador 3R

E a Figura 4 apresenta e espaço ou volume de trabalho da configuração 3R que é a

região dentro da qual o manipulador pode posicionar o end-effector.

Figura 4 – Espaço de trabalho do manipulador 3R

Page 7: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

6

Braço e Punho

O braço é a parte do manipulador que está normalmente associada ao posicionamento

(x,y,z) no espaço físico cartesiano. O punho afeta essencialmente a orientação (θ, φ, ψ) da

garra, pinça ou outra ferramenta. Todavia, é muito comum que haja efeitos cruzados, o braço

afeta também a orientação e o punho afeta na posição cartesiana. Estes componentes de um

manipulador são constituídos por partes rígidas, os elos (links), ligadas entre si pelas juntas

(joints) [2, 7].

O punho esférico tem três eixos que se interceptam num ponto, este pode ser encarado

como um subsistema de um manipulador de 6 graus de liberdade. E o órgão terminal ou “end-

effector” é o componente ligado ao último elo do manipulador. Na Figura 5 é demonstrado o

pulso esférico e o órgão terminal [2, 7].

Figura 5 – Punho esférico e órgão terminal

Matriz de Transformação Homogênea

A matriz de transformação homogênea é uma forma de representar uma transformação

geométrica no espaço de forma compacta. Ela integra numa única matriz os efeitos da rotação

e da translação. A matriz de transformação é constituída por secções com significados

específicos, tal como indicado na Figura 6 [2, 9].

Uma transformação geométrica transforma um ponto noutro e uma sucessão de

transformações é representada pela multiplicação das diversas transformações [9].

p’ = TN(...T3(T2(T1 p) (1)

Page 8: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

7

Figura 6 – Componente da Matriz de transformação no espaço

Espaço das juntas e espaço cartesiano

Podem-se definir dois espaços de variáveis: o espaço das variáveis das juntas, ou

simplesmente espaço das juntas e o espaço cartesiano ou operacional. A dimensão do espaço

operacional é 6 (3 translações e 3 orientações) e o espaço das juntas tem como dimensão o

número de juntas do manipulador. As operações do espaço das juntas para o espaço cartesiano

não apresenta qualquer ambiguidade, mas o contrário pode não acontecer. Nem sempre é

possível se estabelecer uma relação unívoca com o espaço cartesiano. [2]

Cinemática

É a ciência que trata de movimento sem levar em conta as forças que as causam. Dentro

da ciência da cinemática se estuda a posição, velocidade, aceleração e todas as derivadas de

ordem superior das variáveis de posição (em relação ao tempo, ou qualquer outra variável).

Assim, o estudo da cinemática de manipuladores refere-se a todas as propriedades

geométricas e com base no tempo do movimento. A cinemática divide-se em dois tipos de

problemas: A cinemática direta e a cinemática inversa [7].

Cinemática Direta

O problema da cinemática direta é definido por: Dado a localização da ferramenta de

um manipulador, a partir da configuração das juntas, determinar sua posição e orientação no

espaço cartesiano. Esta definição pode ser mais bem expressada pela Equação 2, em que

exprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

das juntas[2, 8, 10].

𝑋 = 𝐹𝑑𝑖𝑟 𝑞 (02)

Onde:

𝑋 = 𝑥 𝑦 𝑧 𝑇 (03)

𝑞 = 𝑞1 𝑞2 … 𝑞𝑛 𝑇 (04)

A relação entre o referencial de origem e o referencial da extremidade do robô é dada

por uma matriz de transformação RTH. Para se fazer o estudo da cinemática, é necessário

definir sistemas de coordenadas associados a cada elo [6]. Como cada elo “i” do manipulador

Page 9: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

8

está associado a uma matriz de transformação Ai a transformação associada a um manipulador

pode ser escrita como na Equação 4. As equações de cinemática direta podem ser obtidas da

matriz resultante RTH.

RTH = A1A2... An (04)

Cinemática Inversa

Procura determinar o conjunto de valores das juntas que se adéquam a uma dada

configuração no espaço operacional. Pode ser vista conceitualmente como o conjunto de

processos para determinar as funções inversas do sistema das expressões da cinemática direta.

Uma das dificuldades da cinemática inversa é que nem sempre é possível estabelecer uma

relação unívoca com o espaço cartesiano, significando que várias configurações no espaço das

juntas resultam na mesma configuração no espaço cartesiano [6, 9].

Cinemática de Velocidade

Para se seguir um determinado trajeto com velocidade constante, ou uma velocidade

prescrita, deve-se conhecer a relação entre a velocidade da ferramenta e a velocidade das

juntas [11]. Esta relação é dada pela Equação 6.

𝑋 = 𝐽𝜃 (06)

˙Em que 𝑋 e 𝜃 são definidos por:

𝑋 = 𝑥 𝑦 𝑧 (07)

𝜃 =

𝜃1

𝜃2

⋮𝜃𝑛

(08)

O termo J da Equação 9 é uma matriz conhecida como “Jacobiano do manipulador”.

Para a determinação da velocidade de junta a partir da velocidade do end-effector é necessário

o uso do inverso do Jacobiano [11].

𝜃 = 𝐽−1𝑋 (09)

Dinâmica

No controle do manipulador mecânico precisa-se conhecer suas propriedades dinâmicas

para se determinar a quantidade de força que deve-se exercer sobre o mecanismo para move-

lo. Derivar as equações dinâmicas de movimento para os robôs não é uma tarefa simples,

devido ao grande número de graus de liberdade e das não-linearidades presentes no sistema

[11].

Page 10: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

9

Controladores

Um controlador compara o valor real da grandeza de saída do processo com a grandeza

de referência (valor desejado), determina o desvio e produz um sinal de controle que reduzirá

o desvio a zero ou a um valor pequeno. A maneira pela qual o controlador automático produz

o sinal de controle é chamada de ação de controle [12].

Ação de controle proporcional: Para um controlador com ação de controle proporcional,

a relação entre o sinal de saída do controlador u(t) e o sinal de erro atuante e(t) é definida pela

Equação 10. Esse controlador é essencialmente um amplificador com ganho ajustável [12].

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 (10)

Ação de Controle Integral: Em um controlador com a ação de controle integral, o valor

da saída do controlador u(t) é variado segundo uma taxa proporcional ao sinal de erro atuante

e(t). Este controlador é descrito pela Equação 11.

𝑢 𝑡 = 𝐾𝑖 𝑒 𝑡 𝑑𝑡𝑡

𝑜 (11)

Ação de Controle proporcional e derivativa (PD): A ação de controle de um controlador

proporcional e derivativo é definida pela Equação 12.

Onde Kp representa ganho proporcional e Td é uma constante chamada tempo

derivativo. Tanto Kp como Td são ajustáveis. A ação de controle derivativa, algumas vezes

denominada de controle de taxa, é onde a magnitude da saída do controlador é proporcional à

taxa de variação do sinal de erro atuante. O tempo derivativo Td é o intervalo de tempo pelo

qual a ação derivada avança o efeito da ação de controle proporcional.

A ação de controle derivativa nunca pode ser usada sozinha porque esta ação de

controle somente é feita durante períodos transitórios. É uma ação antecipativa, mas amplifica

os sinais de ruído [12].

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 + 𝐾𝑝𝑇𝑑𝑑𝑒 (𝑡)

𝑑𝑡 (12)

Ação de controle proporcional-integral-derivativa (PID): Combina as vantagens da ação

de controle proporcional, ação de controle integral e ação de controle derivativa. A Equação

13 descreve este controlador.

𝑢 𝑡 = 𝐾𝑝𝑒 𝑡 + 𝐾𝑝

𝑇𝑖 𝑒 𝑡 𝑑𝑡 + 𝐾𝑝𝑇𝑑

𝑑𝑒 (𝑡)

𝑑𝑡

𝑡

𝑜 (13)

Page 11: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

10

MATERIAIS E MÉTODOS

Fases do Projeto

Na Figura 7 é apresentado o diagrama de blocos que contempla a sequência de

atividades desenvolvidas neste projeto.

Figura 7 – Fases do desenvolvimento do projeto

Objetivo

O presente projeto tem como principal objetivo descrever o desenvolvimento de um

laboratório virtual de controle e análise do robô PUMA que por meio de uma interface gráfica

o usuário pode configurar os parâmetros da simulação. Também demonstra e discute

resultados obtidos de simulações realizadas neste laboratório virtual.

Page 12: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

11

Recursos

Durante a criação deste projeto foram utilizados os seguintes softwares:

- SolidWorks Premium 2011 x64 Edition

- MATLAB Version 7.8.0.347 (R2009a)

- Simulink Version 7.3

- Simmechanics Version 3.1

Montagem no SolidWorks

Para a criação da estrutura "física" do robô utilizou-se o software SolidWorks. Cada

parte que compõem o robô foi modelada individualmente como uma única peça, assim com o

recurso de montagem do próprio software as peças foram ligadas até chegar ao robô montado.

Foi necessário um cuidado especial nesta parte, pois a posição relativa entre cada peça na

montagem iria representar a condição inicial das juntas do robô quando ele fosse ser

simulado. A Figura 8 demonstra a montagem feita em Solidworks.

Figura 8 – Robô PUMA após a montagem das peças no SolidWorks

Exportação da Montagem para o Simulink

Assim que a montagem ficou pronta, ela foi salva no formato “*.xml” que pode ser

interpretado pelo simulink para gerar o modelo Simmechanics. Desta maneira o robô foi

exportado.

Na exportação, algumas vezes pode ocorrer alguma falha na interpretação da

montagem. O modelo criado no Simmechanics procura as relações de movimento entre cada

peça e a partir disto utiliza uma determinada junta que representa este movimento. Caso a

junta criada seja a errada deve-se trocar a respectiva junta pela correta. Para o robô PUMA

Page 13: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

12

tem-se a configuração 6R, ou seja, seis juntas rotacionais. A Figura 9 apresenta a posição das

juntas no robô e também o sentido positivo de rotação para cada uma delas e na Figura 10 é

demonstra as ligações do modelo criado no Simulink.

Figura 9 – Sentido de Rotação das juntas do PUMA 500

Figura 10 – Modelo criado no Simulink do robô PUMA

Page 14: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

13

Preparação do Modelo do Robô no Simulink

Para o devido controle do robô foi necessário ligar em cada junta um atuador, um sensor

e um bloco opcional para entrar com os valores iniciais de posição e velocidade angular.

Figura 11 – Respectivamente Atuador, Sensor e Bloco de Condições Iniciais

O atuador pode ser acionado por movimento angular ou por torque. Se for por

movimento angular considera-se a cinemática da junta, desta maneira a junta irá para a

posição definida pelo sinal de controle sem considerar o torque necessário para levar a junta

para tal posição. A posição de cada junta possui resposta instantânea ao sinal de entrada. Esta

configuração de junta preocupa-se apenas com a cinemática do mecanismo, ou seja, apenas

com as relações entre posições, velocidades e acelerações.

Por outro lado, também há o controle por torque, em que o movimento de cada junta

para uma determinada posição angular depende do torque aplicado a ela. E este torque

aplicado é dependente da diferença entre a posição desejada e a posição inicial, também dos

pesos e inércias envolvidas na estrutura do robô. O controle por torque representa de maneira

mais fiel um robô real e além de tudo é ideal para se aplicar os conhecimentos de controle de

sistemas dinâmicos. As duas configurações de controle de juntas foram utilizadas neste

projeto.

O sensor é utilizado no controle em malha fechada do sistema, ele também é colocado

em cada junta e fornece a posição e a velocidade angular instantâneas. Estes valores medidos

são utilizados na realimentação do controlador.

Os blocos de “Condição Inicial” foram utilizados para que o PUMA iniciasse o seu

movimento em uma posição conhecida.

Ao fim de todas as adaptações, foi criado um subsistema representando o modelo do

manipulador conforme Figura 12.

Page 15: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

14

Figura 12 – Modelo Simulink do Robô PUMA

Trajetórias do Robô

Todas as trajetórias definidas para este manipulador foram definidas a partir de funções

paramétricas temporais. A mais simples e utilizada foi a da circunferência, dada pelas

Equações 14 até a 16.

f1(t) = a1 + R1 cos(tempo) (14)

f2(t) = a2 + R2sen(tempo) (15)

f3(t) = a3 (16)

E manipulando-se de forma adequada estas equações pode-se traçar circunferências em

qualquer plano paralelo aos planos xOy, xOz ou yOz, no sentido horário ou anti-horário. Por

exemplo, se o robô for traçar uma circunferência em torno de um determinado ponto

P(xc,yc,zc) com zc constante, então:

x = xc + R1cos(tempo) (17)

y = yc + R2 sen(tempo) (18)

z = zc (19)

Page 16: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

15

Análise das Equações de Cinemática do PUMA

Considerações Iniciais

As equações utilizadas na cinemática inversa e na cinemática direta do PUMA foram

deduzidas de maneira analítica, apenas com o auxílio de funções trigonométricas. E para

facilitar o trabalho de análise cada junta recebeu uma identificação. Estas identificações junto

com outras características de cada junta estão representadas na Tabela 1.

Tabela 1 – Símbolo utilizado para representar cada junta

Número da Junta Identificação Posição no Robô Eixo de Rotação

1 J1 Braço Z0

2 J2 Braço Z1

3 J3 Braço Z2

4 J4 Punho Z3

5 J5 Punho Z4

6 J6 Punho Z5

É importante considerar que as juntas de orientação, ou seja, do punho esférico não

foram controladas neste trabalho. No entanto, o sistema esta preparado para controlar todas as

seis juntas.

Outro detalhe que deve ser citado é que o sistema de coordenadas global foi posicionado

na interseção dos eixos Z0 e Z1 e a altura da base não foi considerada. A Figura 13 destaca a

posição do plano Z=0 no robô.

Figura 13 – Indicação do Plano de Referência Z=0

Page 17: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

16

As análises da cinemática direta e da cinemática inversa foram feitas com base nas

Figuras 14 e 15.

Figura 14 – Determinação das equações cinemáticas da primeira junta J1

Figura 15 – Determinação das equações cinemáticas das juntas J2 e J3

Cinemática Direta

A resolução analítica da cinemática direta é simples para o caso do manipulador PUMA.

Utilizando a Figura 15, pode-se determinar a coordenada z do end-effector pela projeção do

braço do robô sobre o eixo z. Assim, pela Equação 20.

𝑧 = 𝐿2 sin 𝜃2 + 𝐿3 sin(𝜃2 + 𝜃3) (20)

E a Equação 21 calcula a projeção do braço sobre a semirreta r.

r

z

Page 18: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

17

𝑟 = 𝐿2 cos 𝜃2 + L3cos(𝜃2 + 𝜃3) (21)

A semirreta r esta contida no plano xOy, então as coordenadas x e y podem ser

calculadas respectivamente pelas Equações 22 e 23.

𝑥 = cos 𝜃1(𝐿2 cos 𝜃2 + 𝐿3 cos(𝜃2 + 𝜃3)) (22)

𝑦 = sin 𝜃1(𝐿2 cos 𝜃2 + 𝐿3 cos(𝜃2 + 𝜃3)) (23)

Cinemática Inversa

Na determinação da cinemática inversa do Puma foram consideradas apenas as três

primeiras juntas do robô que representam a translação do órgão terminal.

Primeiro determinou-se a equação de J1 que é a mais simples e direta. Para esta análise

foi utilizado o esquema da Figura 14. Como o eixo de rotação desta junta é o Z0, seu ângulo

de junta é dado pela rotação sobre este eixo, ou seja:

𝜃1 = tan−1 𝑃𝑦

𝑃𝑥 (24)

Para a determinação das equações da segunda e da terceira junta foi necessário uma

análise mútua, pois estas juntas trabalham em conjunto para a execução do movimento. Uma

vantagem desta configuração é que ela é similar a de um manipulador planar com dois graus

de liberdade, conforme Figura 15.

O plano que J2 e J1 se movimentam é definido pelo eixo z e por r, conforme Figura 15,

sendo r definido por:

𝑟 = 𝑥2 + 𝑦2 (25)

Pela Lei dos Cossenos, tem-se que:

cos 𝜃3 = 𝑟2+𝑧2−𝐿2

2−𝐿32

2𝐿2𝐿3 (26)

𝜃3 = cos−1 𝑟2+𝑧2−𝐿22−𝐿3

2

2𝐿2𝐿3 (27)

Utilizando relações trigonométricas, pode-se obter a equação para θ2,

𝜃2 = tan−1 𝑧

𝑟− tan−1 𝐿3 sin 𝜃3

𝐿2+𝐿3 cos 𝜃3 (28)

Page 19: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

18

Montagem do Sistema no Simulink

Foram testados dois sistemas, uma para a análise da cinemática em malha aberta e outro

para a análise do controle dinâmico em malha fechada em que foi empregado um controlador.

As duas análises não foram realizadas no mesmo modelo por uma questão de tempo de

simulação. Quando o controlador é utilizado a simulação torna-se tão lenta que é difícil de se

perceber o movimento do robô, porém este tempo é suficiente para se verificar a atuação do

controlador sobre as variáveis.

Uma observação deve ser feita neste ponto, por uma questão de simplificação do

projeto, o espaço de trabalho de robô foi limitado, desta maneira, os limites superiores e

inferiores das coordenadas alcançáveis pelo órgão terminal são dadas por:

x0 = 0,2m < x < 1,2m

y0 = 0,2m< y< 1,2m

z0 = -0.5m < x <0,5m

Sistema para a análise da Cinemática

Na Figura 16 é demonstrado o diagrama de blocos criado para a simulação da

cinemática.

Figura 16 – Diagrama de Blocos para a análise da Cinemática Direta.

O bloco “Movimento e Cinemática Inversa” foi criado com duas finalidades, a primeira

é fornecer as coordenadas que o robô deve percorrer no sistema cartesiano, ou seja, a

Page 20: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

19

trajetória do PUMA. A segunda função é de converter as variáveis do domínio cartesiano para

o domínio das juntas. Na Figura 17 podem-se notar os dois blocos principais com as funções

citadas anteriormente. No sub-bloco “Função de Trajetória” estão contidas as equações

paramétricas que definem a trajetória. As equações estão contidas em uma função externa e

são escritas em M-código, que são solicitadas de dentro do Simulink.

O mesmo foi feito com as equações da cinemática inversa que estão contidas no sub-

bloco “Cinemática Inversa”.

Figura 17– Diagrama interno do Bloco “Movimento e Cinemática Inversa”.

E no bloco “Cinemática Direta” é feita a conexão com as equações que expressam a

cinemática direta. A saída deste bloco é comparada com a trajetória de referência, para se

validar por inteiro as equações que definem o sistema. As análises que podem ser realizadas

neste ambiente são: A comparação dos sinais das coordenadas da trajetória cartesiana,

comparação dos sinais de todas as juntas e a análise do traçado do robô.

Para facilitar a entrada dos dados de trajetória foi criada uma interface gráfica (Figura

18), em que é possível se escolher dois tipos de movimento. É possível fazer trajetórias

circulares ou fazer trajetórias definida por pontos. Essa interface é identificada como LAB01.

Figura 18 – Interface Gráfica para Configuração da Simulação de Cinemática

Page 21: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

20

Sistema para a análise do Controle Dinâmico

Na Figura 19 é demonstrado o diagrama de blocos criado para a simulação de controle

dinâmico.

Figura 19 – Diagrama de Blocos para a análise do Controle Dinâmico

Exceto por algumas diferenças, este sistema possui funções similares comparado ao

primeiro. O bloco “Movimento de Referência” representa o sinal da trajetória e a cinemática

inversa, já o bloco “Análise dos Movimentos” contém as funções de cinemática direta.

A primeira diferença neste sistema é a inclusão de um controlador que faz a

compensação do erro de posição de junta e de velocidade de junta. Dentro do controlador as

compensações para as três primeiras juntas (juntas de posicionamento) foram separadas das

três últimas (juntas de orientação), em dois sub-blocos, isto ocorreu porque as juntas do punho

não foram utilizadas. O diagrama de blocos interno do controlador pode ser visualizado na

Figura 20.

Foi utilizado um PD para o controle das juntas J1 e J3. A junta J2 recebeu além do ganho

proporcional-derivativo um ganho integrativo tornando-se um controlador PID. Os ganhos do

controlador foram sintonizados para garantir um bom desempenho.

O cálculo dos erros é realizado dentro do Sub-bloco “Calculo de Erro” que tem a função

de reorganizar as variáveis de entrada e calcula a diferença entre cada sinal esperado com o

Page 22: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

21

respectivo sinal real fornecido pelo sensor da junta. Conforme Figura 21, as variáveis são

separadas por posição e velocidade e também pelo número da junta. Outro detalhe é a retirada

de uma amostra do erro de posição referente a junta J2 para receber o devido ganho

integrativo.

Figura 20 – Diagrama Interno do Bloco “Controlador”

Figura 21 – Diagrama Interno do Sub-Bloco “Calculo de Erro”

Outra diferença em relação ao modelo anterior é a possibilidade de analisar o

desempenho do sistema sendo afetado por um sinal interferente. Este sinal interferente é

acoplado nos sinais de realimentação para o controlador e simula os possíveis ruídos que

podem afetar a captação dos dados pelo sensor em uma situação mais realista. No bloco

“Acoplador de Sinal Interferente” é realizado a soma do sinal de cada sensor com o respectivo

sinal de interferência.

É possível selecionar as características da interferência de maneira independente para

cada variável de controle. Na Figura 22 é apresentado o diagrama do Bloco “Interferência”

que por meio de uma variável de controle pode-se definir o tipo de sinal.

Page 23: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

22

Figura 22 – Interior do Bloco “Interferência”

Para este sistema foi criada outra interface gráfica identificada como LAB2 (Figura 23),

utilizada para se trabalhar os aspectos de controle de sistemas dinâmicos. O movimento que o

manipulador pode executar foi restrito no traçado de uma circunferência. Esta interface

permite o manuseio dos ganhos do controlador. Outro aspecto desta interface é a possibilidade

de ativar o ruído na realimentação do sistema.

Figura 23 – Interface Gráfica para Configuração da Simulação de Controle Dinâmico.

Page 24: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

23

RESULATADOS E DISCUSSÃO

Simulações foram realizadas para analisar a viabilidade do projeto como ambiente de

análise de movimento e de ajuste de controle.

Foram realizadas análises do cumprimento de trajetória com o auxílio da interface

gráfica LAB1 e também análise da atuação do controlador em relação ao seu desempenho

utilizando a interface gráfica LAB2.

Cinemática

A trajetória utilizada foi a elíptica, com as características apresentadas na Figura 24. Na

Figura 25 é demonstrado robô percorrendo sua trajetória.

Os resultados foram obtidos na saída do bloco de cinemática direta. Na Figura 26 é

possível ver o traçado do robô em três planos diferentes, este resultado corresponde

claramente à trajetória definida na configuração da interface gráfica.

Figura 24 – Setup de Teste para simulação da trajetória.

Figura 25 – Simulação da Cinemática do PUMA

Page 25: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

24

Figura 26 – a) Traçado da trajetória vista no plano xOy;b) No plano xOz;c) Plano yOz.

Controle Dinâmico

As três juntas utilizadas nesta análise foram J1, J2 e J3e os ganhos dos controladores

foram ajustados até alcançar os devidos valores. As simulações foram realizadas com duas

situações, a primeira sem a presença de sinal interferente e na segunda com acoplamento de

ruído na captação do sinal do sensor.

Para esta análise utilizou-se uma trajetória circular de raio 0.2 m, localizada no ponto

(0.5; 0.5; 0) e paralela ao plano xOy.

Sem a presença de sinal interferente

A comparação entre o sinal de referência (Posição Angular) da junta J1em amarelo, com

o respectivo sinal do seu sensor em magenta pode ser visualizado na Figura 27a. Após 1,5

segundos o movimento da junta torna-se estável e acompanha a referência com baixo erro em

regime permanente. Na Figura 27b é apresentada a mesma análise em J1, mas em relação à

velocidade angular.

Figura27 – a) Atuação do Controlador sobre a posição angular de J1; b) Sobre a velocidade

angular de J1.

a) b) c)

a) b)

Page 26: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

25

A terceira junta apresentou um comportamento similar. O sinal captado pelo sensor é

estabilizado e após 2 segundos de simulação acompanhou o sinal de referência com baixo erro

em regime permanente, conforme Figura 28a e na Figura 28b a análise da velocidade.

Assim, o controlador PD apresentou um desempenho satisfatório para as juntas J1 e J3.

Figura28 – a) Atuação do Controlador sobre a posição angular de J3; b) Sobre a velocidade

angular de J3.

O desempenho do controlador sobre a junta J2 foi menos satisfatório comparado ao das

outras duas juntas. Foi aumentado gradualmente o ganho proporcional, com isto o erro em

regime permanente foi reduzido, mas com elevação do overshoot inicial. O ganho

proporcional influenciou na redução do erro permanente até certo ponto, após isto só houve

elevação do overshoot.

Com o aumento do ganho derivativo, reduziu-se o overshoot, mas houve um aumento

do erro em regime permanente, conforme Figura 29.

Desta maneira, foi necessária a inclusão de um ganho integrativo ao controlador,

tornando-o um controlador PID. O desempenho do controlador foi melhorado, no entanto

ainda não apresentou um resultado compatível com os de J1 e J3.

Este desempenho não satisfatório do controlador sobre a segunda junta foi devido

principalmente à elevada carga aplicada em J2, que suporta o peso de quase todo o braço e

também o peso do punho. Quanto a isto, ficou evidente a necessidade de outra técnica de

controle que forneça uma resposta mais adequada.

Na Figura 30 é demonstrada a comparação do sinal de referência para um controlador

PD e na Figura 31 é feita a mesma análise, mas com a adição do ganho integral.

a) b)

Page 27: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

26

Figura 29 – Atuação do Controlador PD com ganho derivativo excessivo sobre a posição

angular de J2.

Figura 30 – Atuação do Controlador PD sobre a posição angular de J2.

Figura 31 – Atuação do Controlador PID sobre a posição angular de J2.

Page 28: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

27

Com a presença de Sinal Interferente

Neste teste é avaliada a influência de um ruído acoplado na captação do sinal do sensor.

O setup para este teste é o mesmo do caso anterior, incluindo a trajetória. São gerados três

gráficos, sendo um para cada junta (J1, J2 e J3).

Os gráficos obtidos podem ser visualizados nas figuras 32b, 33b e 34b. Para cada

gráfico a curva em amarelo representa o sinal de referência, a curva ciano representa o sinal

captado do sensor com o ruído e a curva em magenta é posição real de cada junta.

Para comparação, nas Figuras 32a, 33a e 34a é apresentado o sinal de referência e o

sinal do sensor sem o ruído.

O sinal de cor ciano é utilizado para a realimentação do controlador.

Figura 32 – Para a Junta J1a) Curva de compensação sem ruído; b) Curva de compensação

com ruído

Figura 33 – Para a Junta J2a) Curva de compensação sem ruído; b) Curva de compensação

com ruído

a) b)

a) b)

Page 29: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

28

Figura 34 – Para a Junta J3 a) Curva de compensação sem ruído; b) Curva de compensação

com ruído

Conforme as figuras apresentadas, mesmo que o sinal de realimentação contenha ruído,

a instabilidade do sistema não é afetada, pois o controlador conseguiu fazer a compensação.

a) b)

Page 30: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

29

CONCLUSÃO

Foram criados dois ambientes de simulação, um para análise da cinemática do

manipulador (LAB1) e o outro para a análise de controle dinâmico (LAB2). Neste trabalho foi

demonstrado o procedimento para geração do modelo do robô PUMA no Simulink a partir de

uma montagem realizada no Solidworks e seu uso como parte de um laboratório virtual para

simulações com interface gráfica. Algumas análises foram realizadas no robô utilizando as

funcionalidades do laboratório virtual para avaliar a real viabilidade do projeto como

ambiente de análise de movimento e controle.

Nos ensaios realizados o projeto desempenhou bem suas funções e foi possível fazer

várias análises de traçado da trajetória do manipulador e também foi trabalhada a sintonização

do controlador. Portanto o sistema foi avaliado como adequado para análise de trajetórias

simples, para ajuste de controladores de sistemas robóticos e para avaliar a influencia de

diversos tipos de ruído sobre a instabilidade do sistema.

O trabalho consegue desempenhar as funções que foram propostas, mas melhorias e

ajustes ainda podem ser realizados. Como melhorias o ambiente poderia simular trajetórias

mais complexas, poderia permitir a análise de outras técnicas de controle e fazer uma

interface com um robô físico em tempo real. Em relação aos ajustes poderia ter sido feita a

integração dos dois ambientes de simulação em um só.

Durante o desenvolvimento do projeto foram aplicados conhecimentos de sistemas

robóticos, teoria de controles e lógica de programação. São assuntos que foram estudados em

sala de aula e colaboraram para alcançar o objetivo final.

Page 31: LABORATÓRIO VIRTUAL PARA SIMULAÇÃO E ...biblioteca.univap.br/dados/000005/0000050c.pdfexprime uma coordenada no espaço cartesiano 𝑋 , em função de uma configuração no espaço

30

REFERÊCIAS BIBLIOGRÁFICAS

[1] F. Piltan et al. PUMA-560 Robot Manipulator Position Sliding Mode Control Methods

Using MATLAB/SIMULINK and Their Integration into Graduate/ Ungraduate Nonlinear

Control, Robotics and MATLAB Courses. International Journal of Robotic and Automation,

Volume 6.(2012) 106 p.

[2] V. Santos, Robótica Industrial. Aveiro: Universidade de Aveiro, (2004) 1,2-4,3.

[3] MATLAB. THE MATH WORKS. Simulink Getting Started Guide R2012b:

informação e documentação de referência – elaboração. Natick, MA, 2012.

[4] Y. Shaoqiang, L. Zhong, L. Xingshan, Modeling and Simulation of Robot Based on

Matlab/ SimMechanics. Chinese Control Conference, Beijing, (2008).

[5] MATLAB. THE MATH WORKS. SimMechanics User’s Guide: informação e

documentação de referência – elaboração. Natick, MA, (2002).

[6] J. Craig, Introduction to Robotics: Mechanics and Control.2nd

ed. Addison Wesley

Longman, USA, (1989) 87-113.

[7] M. W. Spong, S. Hutchinson, M. Vidyasagar, Robot Dynamics and Control, 2nd

Ed.

(2004) 8-18.

[8] V. Carrara, Apostila de Robótica. Universidade Braz Cubas.

[9] A. Lopes, Robótica Industrial: Modelação Cinemática e Dinâmica de Manipuladores

de Estrutura em Série. 2002. 101 f. Dissertação de Mestrado em Automação, Instrumentação e

Controle, Universidade do Porto, Porto. (2002).

[10] R. Zwirtes, Cinemática Inversa para Controle da Abordagem de Órgãos Terminais de

Robôs Manipuladores. 2004. 66 f. Trabalho de Conclusão de Curso em Ciência da

Computação, Universidade de Santa Catarina, Joinville. (2004).

[11] R. Silva, Introdução à Dinâmica e ao Controle de Manipuladores Robóticos. Apostila

de Engenharia de Controle e Automação da PUCRS.

[12] Ogata, Katsuhiko, Engenharia de controle moderno, 5ª edição, Pearson Prentice Hall,

São Paulo, (2010) 178-182.