Post on 07-Nov-2018
transcript
Prof. Silas do Amaral - UDESC 2
• Funcionamento Básico• Tipos de Trajetória
• Trajetórias Ponto a Ponto• 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
Controle Cinemático de Robôs Manipuladores
Prof. Silas do Amaral - UDESC 3
Esquema de uma Junta
Prof. Silas do Amaral - UDESC 4
Malha de Controle de Posiçãode um Robô Industrial
Prof. Silas do Amaral - UDESC 5
Malha de Controle de Posiçãode um Robô Industrial
Prof. Silas do Amaral - UDESC 6
Esquema Simplificado do Controle Cinemático
Prof. Silas do Amaral - UDESC 7
Tratar singularidades e soluções múltiplas.4Interpolar os pontos nas coordenadas das juntas, gerando para cada variável articular uma expressão qi(t), realizável pelos atuadores, e queproduza a trajetória cartesiana desejada.
5
Usando a cinemática inversa, converter estes pontos em coordenadas articulares q = (q1, q2, q3, q4, q5, q6).
3
Discretizar a trajetória cartesiana em um número adequado de pontos.2
A partir das especificações para o movimento pretendido, produzir uma trajetória analítica no espaço cartesiano, discriminando no tempo as coordenadas cartesianas do EF r = (x, y, z, α, β, γ).
1
O controle cinemático consiste das seguintes etapas:
Discretizar a trajetória articular a fim de fornecer referências para o controle dinâmico.6
Etapas do Controle Cinemático
Prof. Silas do Amaral - UDESC 8
Seguimento de TrajetóriaLinear no Espaço Cartesiano
Prof. Silas do Amaral - UDESC 9
ObjetivoTrajetória linear der1 a r4 no tempo T
Seguimento de TrajetóriaLinear no Espaço Cartesiano
InterpolaçãoPolinômio Cúbico
ResultadoTrajetóriaCartesiana
Seleção de Pontosr1, r2, r3 e r4
Cinemática Inversar1 q1 r2 q2
r3 q3 r4 q4
Prof. Silas do Amaral - UDESC 10
• 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.
• 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.
Tipos de Trajetórias
Prof. Silas do Amaral - UDESC 11
MovimentoEixo a Eixo
Trajetórias Ponto a Ponto
MovimentoSimultâneodos Eixos
Prof. Silas do Amaral - UDESC 12
TrajetóriasCoordenadas
TrajetóriasContínuas
Trajetórias Isócronas e Contínuas
Prof. Silas do Amaral - UDESC 13
( ) ( ) i
if
iif
ttt-t-t rrrr +
−=
Geração de Trajetórias CartesianasInterpolaçã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 selecionar pontos intermediários, o que é feito através de um interpolador.
A interpolação mais comum é a linear, para a qual a velocidade é constante desde seu valor inicial r i até o final r f:
Se o robô tiver que passar por mais do que dois pontos não alinhados, este interpolador causará descontinuidade de velocidade. Este problema pode ser resolvido usando outros interpoladores.
Prof. Silas do Amaral - UDESC 14
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
100010001
iR⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−=
001100010
fR⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−=
210212121002121
mR
Geração de Trajetórias CartesianasInterpolaçã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 produzs trajetórias
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.
Prof. Silas do Amaral - UDESC 15
( ) ( )
( ) ( )
( ) ( ) iif
iif
iif
iif
iif
iif
γtt
t-tγγtγ
βtt
t-tββtβ
αtt
t-tααtα
+−
−=
+−
−=
+−
−=
Geração de Trajetórias CartesianasInterpolação Linear da Orientação
A utilização dos ângulos de Euler não apresenta este inconveniente.
Partindo da orientação inicial (αi, βi, γi)para a orientação final (αf, βf, γf), são 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 progressiva em torno de um eixo fixo, o que qualifica os quatérnios como o meio mais adequado para gerar a trajetória cartesiana de orientação.
Prof. Silas do Amaral - UDESC 16
( )
1ii
i1i
1i1i
1ii
ttT :onde etttara
Tt-t)t(
−
−
−−
−
−=
<<
+−=
p
qqqq
Interpoladores Lineares
Deseja-se que uma das articulações q do robô passe sucessivamente pelos valores [q1, q2, q 3, ....] nos instantes [t1, t2, t3, ....]com velocidade constante entre duas posições sucessivas. Com isso, a trajetória entre as posições qi-1 e qi será dada por:
Assegura a continuidade da posição. Não evita saltos bruscos na velocidade. Exige aceleração infinita (Impossível).
Prof. Silas do Amaral - UDESC 17
( ) ( ) ( ) ( ) i1i31i21i1i tttparat-tdt-tct-tbat <<+++= −−−−q
( )
( ) ( )i1i2
1ii3
1i
i2
1i2
1ii2
1i
T1
T2db
T1
T2
T3ca
qqqqq
qqqqq
++−−==
−−−==
−−−
−−−
Interpoladores Cúbicos
Para assegurar continuidade em velocidade, pode-se usar um polinômio de 3o grau, unindo cada par de pontos adjacentes, do tipo:
Os parâmetros a, b, c e d de cada polinômio são obtidos a partir das quatro 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:
Prof. Silas do Amaral - UDESC 18
( ) ( )
( ) ( )⎪⎪⎪
⎩
⎪⎪⎪
⎨
⎧
−=−⎥⎦
⎤⎢⎣
⎡−−
+−
−≠−=
+−−
−
+
+
+−
i1i1ii1ii
1ii
i1i
i1i
i1i1ii
i
settt-t2
1
se0
qqsignqqsignqqqq
qqsignqqsignq
Interpoladores Cúbicos
Para calcular os coeficientes do polinômio cúbico, é preciso conhecer os valores das velocidades de passagem pelos pontos de interesse.
Para isso, há diversas alternativas. Numa delas, as velocidades sãoobtidas de:
Admitindo que a partida/chegada em cada ponto ocorra na situação de 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.
Prof. Silas do Amaral - UDESC 19
( )
⎪⎪⎪⎪
⎩
⎪⎪⎪⎪
⎨
⎧
<<δ⎟⎟⎠
⎞⎜⎜⎝
⎛+−+
δ≤<δ+−
δ≤+
=
Tt-Tt2A-tAT
2ATq
-TtVtA2
Vq
tt2A
t
22
1
20
20
s
ss
sq
q
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 grauVelocidade decresce linearmenteAceleração é constante e negativa
Prof. Silas do Amaral - UDESC 20
Interpolador a Trechos Ligando Vários Pontos Velocidades de Passagem Não Nulas
Para que não sejam produzidos movimentos descontínuos, faz-se um ajuste parabólico nas proximidades dos pontos de passagem.
Quanto maior a aceleração, mais se aproxima do interpolador linear.
Prof. Silas do Amaral - UDESC 21
( ) ( )( ) ( )
( )⎪⎪⎪⎪
⎩
⎪⎪⎪⎪
⎨
⎧
+<<δ+−
+
δ+<<δ−δ++−
+
δ−≤≤−
+
=
21122
121
112
11
011
1
010
TTtTT-tT
TtTT-t2
T-tT
Tt0tT
t
qqq
aqqq
qqq
q1
1
( ) ( )δ
−−−=
21
012
121
TT2TqT qqqa 2
max 2e δ=
a
Interpolador a Trechos Ligando Vários Pontos Velocidades de Passagem Não Nulas
T R A J E T Ó R I A
ACELERAÇÃO ERRO MÁXIMO
Prof. Silas do Amaral - UDESC 22
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);
CRIAÇÃO DO ROBÔ R3 GERAÇÃO DA TRAJETÓRIA
ANIMAÇÃO DO ROBÔ R3 plot(R3, q, 'noname');
Simulação no MatLab
Prof. Silas do Amaral - UDESC 23
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];T = fkine(p560, q);
qi = ikine(p560, T);
disp(' Original Calculada');disp([q' qi'])
pause
echo off
% Carregar PUMA560% Ativar eco na tela
% Configuração das juntas % MTH relativa a configuração q
% Cinemática Inversa
% Comparação entre q e qi
% Pausa
% Desativar eco na tela
Prof. Silas do Amaral - UDESC 24
Simulação no MatLab - 2
Efeito de uma Singularidade
echo on
T = fkine(p560, qr);qi = ikine(p560, T);
disp(' Original Calculada');disp([qr' qi'])fkine(p560, qi) - fkine(p560, qr)
pause
echo off
% Ativar eco na tela
% Para qr, dois eixos do punho % estão alinhados -1gdl
% qi e qr são diferentes, mas o % EF alcança uma só posição
% Pausa
% Desativar eco na tela
Prof. Silas do Amaral - UDESC 25
Simulação no MatLab - 3
Trajetória Retilínea no Espaço Cartesiano
echo on
t = [0:.05:2];
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
% Ativar eco na tela
% Vetor tempo
% Ponto inicial da trajetória% Ponto final da trajetória% Cálculo da trajetória cartesiana
% Pausa
% Desativar eco na tela
Prof. Silas do Amaral - UDESC 26
Simulação no MatLab - 4
Cinemática Inversa para a Trajetória Retilínea
echo on
ticq = ikine(p560, T); toc
pause
echo off
% Ativar eco na tela
% Tempo inicial% 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.
Prof. Silas do Amaral - UDESC 27
Simulação no MatLab - 5
Exibição da Trajetória Retilínea no Espaço das Juntas
echo on
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
Prof. Silas do Amaral - UDESC 28
Simulação no MatLab - 6
Animação
echo on
plot(p560, q)
pause % pressione qualquer tecla para continuarclose(figure(1));
echo off