40 Controle Cinematico - joinville.udesc.br · Etapas do Controle Cinemático Prof. Silas do Amaral...

Post on 21-Jan-2019

215 views 0 download

Transcript of 40 Controle Cinematico - joinville.udesc.br · Etapas do Controle Cinemático Prof. Silas do Amaral...

• Funcionamento Básico

• Tipos de Trajetória• Trajetórias Ponto a Ponto

• Trajetórias Coordenadas ou Isócronas

Controle Cinemático de Robôs Manipuladores

Prof. Silas do Amaral - UDESC 2

• Trajetórias Coordenadas ou Isócronas

• Trajetórias Contínuas

• Geração de Trajetórias Cartesianas

• Interpolação de Trajetórias• Interpoladores Lineares

• Interpoladores Cúbicos

• Interpoladores a Trechos

• Amostragem de Trajetórias Cartesianas

Esquema de uma Junta

Prof. Silas do Amaral - UDESC 3

Malha de Controle de Posição de um Robô Industrial

Prof. Silas do Amaral - UDESC 4

Malha de Controle de Posição de um Robô Industrial

Prof. Silas do Amaral - UDESC 5

Malha de Controle de Posição de um Robô Industrial

Prof. Silas do Amaral - UDESC 6

Esquema Simplificado do Controle Cinemático

Prof. Silas do Amaral - UDESC 7

Discretizar a trajetória cartesiana em um número adequado depontos.2

A partir das especificações para o movimento pretendido, produzir umatrajetória analítica no espaço cartesiano, discriminando no tempo ascoordenadas cartesianas do EFr = (x, y, z, α, β, γ).

1

O controle cinemático consiste das seguintes etapas:

Etapas do Controle Cinemático

Prof. Silas do Amaral - UDESC 8

Tratar singularidades e soluções múltiplas.4Interpolar os pontos nas coordenadas das juntas, gerando para cadavariável articular uma expressãoqi(t), realizável pelos atuadores, e queproduza a trajetória cartesiana desejada.

5

Usando a cinemática inversa, converter estes pontos em coordenadasarticularesq = (q1, q2, q3, q4, q5, q6).

3

Discretizar a trajetória cartesiana em um número adequado depontos.2

Discretizar a trajetória articular a fim de fornecer referências para ocontrole dinâmico.6

Seguimento de Trajetória Linear no Espaço Cartesiano

Prof. Silas do Amaral - UDESC 9

ObjetivoTrajetória linear der1 a r4 no tempo T

Seguimento de Trajetória Linear no Espaço Cartesiano

Seleção de Pontosr1, r2, r3 e r4

Cinemática Inversar1 ���� q1 r2 ���� q2

r3 ���� q3 r4 ���� q4

Prof. Silas do Amaral - UDESC 10

InterpolaçãoPolinômio Cúbico

ResultadoTrajetóriaCartesiana

• Trajetórias Ponto a Ponto

• O camando do movimento de uma articulação é independente do das demais. Cada junta alcança seu destino no menor tempo possível.

• Movimento eixo a eixo. Um só eixo é movido de cada vez, resul-tando num maior tempo de ciclo, porém, com menor consumo de po-tência instantânea por parte dos atuadores.

Tipos de Trajetórias

Prof. Silas do Amaral - UDESC 11

tência instantânea por parte dos atuadores.• Movimento simultâneo de eixos. Os atuadores começam a mover

as articulações do robô ao mesmo tempo com velocidades específicaspara cada uma delas.

• Trajetórias Coordenadas ou Isócronas

• Um cálculo prévio é feito para que o movimento de cada eixo tenha a mesma duração da articulação mais lenta. Esta estratégia produz tra-jetórias imprevisíveis para o EF.

• Trajetórias Contínuas

• Realização de uma trajetória específica. É preciso calcular de maneira contínua as trajetórias articulares.

Movimento Eixo a Eixo

Trajetórias Ponto a Ponto

Prof. Silas do Amaral - UDESC 12

Movimento Simultâneodos Eixos

Trajetórias Coordenadas

Trajetórias Isócronas e Contínuas

Prof. Silas do Amaral - UDESC 13

Trajetórias Contínuas

Geração de Trajetórias Cartesianas Interpolação Linear da Posição

Em geral, o movimento do robô é definido por meio de trajetóriascartesianas. É freqüente especificar apenas os pontos inicial e final.

Se estes pontos estiverem muito separados, é necessário selecionarpontos intermediários, o que é feito através de um interpolador.

Prof. Silas do Amaral - UDESC 14

( ) ( ) i

if

iif

ttt-t

-t rrrr +−

=A interpolação mais comum é a linear,para a qual a velocidade é constantedesde seu valor inicial r i até o final r f:

Se o robô tiver que passar por mais do que dois pontos nãoalinhados, este interpolador causará descontinuidade de velocidade.Este problema pode ser resolvido usando outros interpoladores.

Geração de Trajetórias Cartesianas Interpolação Linear da Orientação

Métodos paraRepresentaçãoda Orientação

A utilização das matrizes de rotação leva a resultados inconsistentes,devido a necessidade de serem ortonormais. Considere o exemplo:

Matrizes de RotaçãoÂngulos de Eulerou Quatérnios{ Cada um destes

métodos produz����s trajetórias

Prof. Silas do Amaral - UDESC 15

=100

010

001

iR

−−

=001

100

010

fR

−−

=21021

21210

02121

mR

devido a necessidade de serem ortonormais. Considere o exemplo:

OrientaçãoInicial

OrientaçãoFinal

Orientação IntermediáriaInterpolação Linear

R(z,90o)seguida de

R(x,90o)

Rm não é ortonormal e, portanto, não correspondea uma orientação válida.

( ) ( )

( ) ( ) iif

iif

iif

iif

βtt

t-tββtβ

αtt

t-tααtα

+−

−=

+−

−=

Geração de Trajetórias Cartesianas Interpolação Linear da Orientação

A utilização dos ângulos de Euler nãoapresenta este inconveniente.

Partindo da orientação inicial (ααααi, ββββi, γγγγi)para a orientação final (ααααf, ββββf, γγγγf), sãoválidas as seguintes interpolações :

Prof. Silas do Amaral - UDESC 16

( ) ( ) iif

iif γ

ttt-t

γγtγ +−

−=válidas as seguintes interpolações :

O inconveniente desta trajetória é que, do ponto de visto do usuário,não é intuitiva, com estranhas evoluções da orientação.

A evolução mais natural consiste num giro de maneira progressivaem torno de um eixo fixo, o que qualifica os quatérnios como o meiomais adequado para gerar a trajetória cartesiana de orientação.

Interpoladores Lineares

Deseja-se que uma das articulações q dorobô passe sucessivamente pelos valores[q1, q2, q 3, ....] nos instantes [t1, t2, t3, ....]com velocidade constante entre duasposições sucessivas. Com isso, a trajetóriaentre as posições qi-1 e qi será dada por:

Prof. Silas do Amaral - UDESC 17

( )

1ii

i1i

1i1i

1ii

ttT :onde e

tttaraTt-t

)t(

−−

−=<<

+−=

p

qqqq

Assegura a continuidade da posição.Não evita saltos bruscos na velocidade.Exige aceleração infinita ( Impossível ).

( ) ( ) ( ) ( ) i1i31i21i1i tttparat-tdt-tct-tbat <<+++= −−−−q

Interpoladores Cúbicos

Para assegurar continuidade em velocidade, pode-se usar umpolinômio de 3o grau, unindo cada par de pontos adjacentes, do tipo:

Prof. Silas do Amaral - UDESC 18

( )

( ) ( )i1i2

1ii3

1i

i2

1i2

1ii2

1i

T1

T2

db

T1

T2

T3

ca

qqqqq

qqqqq

&&&

&&

++−−==

−−−==

−−−

−−−

Os parâmetros a, b, c e d de cada polinômio são obtidos a partir dasquatro condições de contorno: posições e velocidades em t i-1 e t i.

Fazendo T = t i - t i-1,os parâmetros são:

Interpoladores Cúbicos

Para calcular os coeficientes do polinômio cúbico, é preciso conheceros valores das velocidades de passagem pelos pontos de interesse.

Para isso, há diversas alternativas. Numa delas, as velocidades sãoobtidas de:

Prof. Silas do Amaral - UDESC 19

( ) ( )

( ) ( )

−=−

−−+−

−≠−=

+−−

+

+

+−

i1i1ii1ii

1ii

i1i

i1i

i1i1ii

i

settt-t2

1

se0

qqsignqqsignqqqq

qqsignqqsign

q&

Admitindo que a partida/chegada em cada ponto ocorra na situaçãode repouso, garante continuidade em velocidade e em aceleração.

Outra alternativa consiste em obter as velocidades de passagem apartir das velocidades de passagem projetadas no espaço da tarefa.

Interpolador a Trechos Ligando Dois Pontos Velocidades Inicial e Final Nulas

Trecho 1: Polinômio de 2o grauVelocidade cresce linearmenteAceleração é constante e positiva

Trecho 2: Interpolador linearVelocidade é constanteAceleração é nula

Trecho 1: Polinômio de 2o grau

Prof. Silas do Amaral - UDESC 20

( )

<<δ

+−+

δ≤<δ+−

δ≤+

=

Tt-Tt2A

-tAT2

ATq

-TtVtA2

Vq

tt2A

t

22

1

20

20

s

ss

sq

q

Trecho 1: Polinômio de 2o grauVelocidade decresce linearmenteAceleração é constante e negativa

Interpolador a Trechos Ligando Vários Pontos Velocidades de Passagem Não Nulas

Para que não sejam produzidosmovimentos descontínuos, faz-se umajuste parabólico nas proximidades dospontos de passagem.

Quanto maior a aceleração, mais se

Prof. Silas do Amaral - UDESC 21

Quanto maior a aceleração, mais seaproxima do interpolador linear.

( ) ( )( ) ( )

δ+<<δ−δ++−+

δ−≤≤−+

= 112

11

011

1

010

TtTT-t2

T-tT

Tt0tT

taqq

q

qqq

q

1

Interpolador a Trechos Ligando Vários Pontos Velocidades de Passagem Não Nulas

T R A J E

T Ó R

Prof. Silas do Amaral - UDESC 22

( ) ( ) ( )

( )

+<<δ+−+

δ+<<δ−δ+++=

21122

121

1111

TTtTT-tT

TtTT-t2

T-tT

t

qqq

qq1

( ) ( )δ

−−−=

21

012

121

TT2TqT qqq

a2

max 2e δ= a

R I A

ACELERAÇÃO ERRO MÁXIMO

CRIAÇÃO DO ROBÔ R3 GERAÇÃO DA TRAJETÓRIA

Simulação no MatLab

Prof. Silas do Amaral - UDESC 23

L1 = link([0 1 0 0 0]);

L2 = link([-pi/2 0.5 0 0 0]);

L3 = link([0 0 0 0.5 0]);

R3 = robot({L1 L2 L3});

qi = [pi/2 -pi/2 0];

qf = [-pi/2 pi/2 0];

t = [0:0.05:5];

q = jtraj(qi, qf, t);

ANIMAÇÃO DO ROBÔ R3 plot(R3, q, 'noname');

Obtenção da Cinemática Inversa a partir da MTH

Simulação no MatLab - 1

puma560echo on

q = [0 -pi/4 -pi/4 0 pi/8 0];

% Carregar PUMA560% Ativar eco na tela

% Configuração das juntas

Prof. Silas do Amaral - UDESC 24

q = [0 -pi/4 -pi/4 0 pi/8 0];T = fkine(p560, q);

qi = ikine(p560, T);

disp(' Original Calculada');disp([q' qi'])

pause

echo off

% Configuração das juntas % MTH relativa a configuração q

% Cinemática Inversa

% Comparação entre q e qi

% Pausa

% Desativar eco na tela

Simulação no MatLab - 2

Efeito de uma Singularidade

echo on

T = fkine(p560, qr);qi = ikine(p560, T);

% Ativar eco na tela

% Para qr , dois eixos do punho % estão alinhados � -1gdl

Prof. Silas do Amaral - UDESC 25

qi = ikine(p560, T);

disp(' Original Calculada');disp([qr' qi'])fkine(p560, qi) - fkine(p560, qr )

pause

echo off

% estão alinhados � -1gdl

% qi e qr são diferentes, mas o % EF alcança uma só posição

% Pausa

% Desativar eco na tela

Simulação no MatLab - 3

Trajetória Retilínea no Espaço Cartesiano

echo on

t = [0:.05:2];

% Ativar eco na tela

% Vetor tempo

Prof. Silas do Amaral - UDESC 26

T1 = transl(0.6, -0.5, 0.0);T2 = transl(0.4, 0.5, 0.2);T = ctraj(T1, T2, length(t));

pause

echo off

% Ponto inicial da trajetória% Ponto final da trajetória% Cálculo da trajetória cartesiana

% Pausa

% Desativar eco na tela

Simulação no MatLab - 4

Cinemática Inversa para a Trajetória Retilínea

echo on

ticq = ikine(p560, T);

% Ativar eco na tela

% Tempo inicial% Cinemática Inversa

Prof. Silas do Amaral - UDESC 27

q = ikine(p560, T); toc

pause

echo off

% Cinemática Inversa% Tempo final

% Pausa

% Desativar eco na tela

Este método é muito lento. Para um robô real, o cálculo da cinemática inversa deve durar apenas alguns mili-segundos.

Simulação no MatLab - 5

Exibição da Trajetória Retilínea no Espaço das Junt as

echo on

subplot(3,1,1); plot(t,q(:,1)); xlabel('Tempo (s)');

Prof. Silas do Amaral - UDESC 28

subplot(3,1,1); plot(t,q(:,1)); xlabel('Tempo (s)'); ylabel('Junta 1 (rad)')

subplot(3,1,2); plot(t,q(:,2)); xlabel('Tempo (s)' ); ylabel('Junta 2 (rad)')

subplot(3,1,3); plot(t,q(:,3)); xlabel('Tempo (s)' );ylabel('Junta 3 (rad)')

pause % pressione qualquer tecla para continuarclose(figure(1))

echo off

Simulação no MatLab - 6

Animação

echo on

plot(p560, q)

Prof. Silas do Amaral - UDESC 29

plot(p560, q)

pause % pressione qualquer tecla para continuarclose(figure(1));

echo off