prof. silas do amaral - udesc2 funcionamento básico tipos de trajetória trajetórias ponto a ponto...
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çã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
Malha de Controle de Posição de um Robô Industrial
Prof. Silas do Amaral - UDESC 7
Esquema Simplificado 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 cada variável articular uma expressão qi(t), realizável pelos atuadores, e que produza 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, a, b, g).
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 9
Seguimento de Trajetória Linear no Espaço Cartesiano
Prof. Silas do Amaral - UDESC 10
ObjetivoTrajetória linear der1 a r4 no tempo T
Seguimento de Trajetória Linear no Espaço Cartesiano
InterpolaçãoPolinômio Cúbico
ResultadoTrajetória Cartesiana
Seleção de Pontos r1, r2, r3 e r4
Cinemática Inversar1 q1 r2 q2
r3 q3 r4 q4
Prof. Silas do Amaral - UDESC 11
• 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íficas para 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 12
Movimento Eixo a Eixo
Trajetórias Ponto a Ponto
Movimento Simultâneodos Eixos
Prof. Silas do Amaral - UDESC 13
Trajetórias Coordenadas
Trajetórias Isócronas e Contínuas
Trajetórias Contínuas
Prof. Silas do Amaral - UDESC 14
i
if
iif
ttt-t
-t rrrr
Geração de Trajetórias Cartesianas Interpolação Linear da PosiçãoEm geral, o movimento do robô é definido por meio de trajetórias cartesianas. É 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 15
100010001
iR
001100010
fR
210212121002121
mR
Geração de Trajetórias Cartesianas Interpolação Linear da OrientaçãoMé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 16
iif
iif
iif
iif
iif
iif
γtt
t-tγγtγ
βtt
t-tββtβ
αtt
t-tααtα
Geração de Trajetórias Cartesianas Interpolação Linear da OrientaçãoA utilização dos ângulos de Euler não apresenta este inconveniente.
Partindo da orientação inicial (ai, bi, gi) para a orientação final (af, bf, gf), 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 17
1ii
i1i
1i1i
1ii
ttT :onde e
tttaraTt-t)t(
p
qqqq
Interpoladores LinearesDeseja-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 18
i1i31i21i1i tttparat-tdt-tct-tbat q
i1i2
1ii3
1i
i2
1i2
1ii2
1i
T1
T2db
T1
T2
T3ca
qqqqq
qqqqq
Interpoladores CúbicosPara 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 19
i1i1ii1ii
1ii
i1i
i1i
i1i1ii
i
settt-t2
1
se0
qqsignqqsignqqqq
qqsignqqsignq
Interpoladores CúbicosPara 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ão obtidas 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 a partir das velocidades de passagem projetadas no espaço da tarefa.
Prof. Silas do Amaral - UDESC 20
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 grau Velocidade cresce linearmente Aceleração é constante e positiva
Trecho 2: Interpolador linear Velocidade é constante Aceleração é nula
Trecho 1: Polinômio de 2o grau Velocidade decresce linearmente Aceleração é constante e negativa
Prof. Silas do Amaral - UDESC 21
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 22
21122
121
112
11
011
1
010
TTtTT-tT
TtTT-t2
T-tT
Tt0tT
t
qqq
aqqq
qqq
q1
1
21
012
121
TT2TqT qqq
a 2max 2
e 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 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);
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 24
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 25
Simulação no MatLab - 2Efeito 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 26
Simulação no MatLab - 3Trajetó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 27
Simulação no MatLab - 4Cinemá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 28
Simulação no MatLab - 5Exibiçã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 continuar close(figure(1)) echo off
Prof. Silas do Amaral - UDESC 29
Simulação no MatLab - 6Animação
echo on
plot(p560, q)
pause % pressione qualquer tecla para continuar close(figure(1));
echo off