Upload
buithu
View
215
Download
0
Embed Size (px)
Citation preview
• 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