Controle Cinemático de
Robôs Manipuladores
• 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
Prof. Silas do Amaral - UDESC
2
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
Etapas do Controle Cinemático
O controle cinemático consiste das seguintes etapas:
1
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).
2
Discretizar a trajetória cartesiana em um número adequado de pontos.
3
Usando a cinemática inversa, converter estes pontos em coordenadas
articulares q = (q1, q2, q3, q4, q5, q6).
4
Tratar singularidades e soluções múltiplas.
5
Interpolar 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.
6
Discretizar a trajetória articular a fim de fornecer referências para o
controle dinâmico.
Prof. Silas do Amaral - UDESC
8
Seguimento de Trajetória
Linear no Espaço Cartesiano
Prof. Silas do Amaral - UDESC
9
Seguimento de Trajetória
Linear no Espaço Cartesiano
Objetivo
Trajetória linear de
r1 a r4 no tempo T
Interpolação
Polinômio Cúbico
Seleção de Pontos
r1, r2, r3 e r4
Cinemática Inversa
r1  q1
r2  q2
r3  q3
r4  q4
Resultado
Trajetória
Cartesiana
Prof. Silas do Amaral - UDESC
10
Tipos de Trajetórias
•
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, resultando num maior tempo de ciclo, porém, com menor consumo de potê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 trajetó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.
Prof. Silas do Amaral - UDESC
11
Trajetórias Ponto a Ponto
Movimento
Eixo a Eixo
Movimento
Simultâneo
dos Eixos
Prof. Silas do Amaral - UDESC
12
Trajetórias Isócronas e
Contínuas
Trajetórias
Coordenadas
Trajetórias
Contínuas
Prof. Silas do Amaral - UDESC
13
Geração de Trajetórias Cartesianas
Interpolação Linear da Posição
Em 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:


t - ti
r t   r - r
 ri
t f  ti
f
i
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
Geração de Trajetórias Cartesianas
Interpolação Linear da Orientação
Métodos para
Representação
da Orientação
{
Matrizes de Rotação
Ângulos de Euler
ou Quatérnios
Cada um destes
métodos produz
s trajetórias
A utilização das matrizes de rotação leva a resultados inconsistentes,
devido a necessidade de serem ortonormais. Considere o exemplo:
Orientação
Inicial
Orientação
Final
Orientação Intermediária
Interpolação Linear
 1 0 0
R i  0 1 0
0 0 1
0  1 0
R f  0 0  1
 1 0 0
0
1 2  1 2
R m   0
1 2  1 2
1 2
0
1 2
R(z,90o)
seguida de
R(x,90o)
Rm não é ortonormal e,
portanto, não corresponde
a uma orientação válida.
Prof. Silas do Amaral - UDESC
15
Geração de Trajetórias Cartesianas
Interpolação Linear da Orientação
t - ti
A utilização dos ângulos de Euler não




α
t

α

α
 αi
f
i
apresenta este inconveniente.
t t
f
i
t - ti
Partindo da orientação inicial (ai, bi, gi)




β
t

β

β
 βi
f
i
para a orientação final (af, bf, gf), são
t f  ti
válidas as seguintes interpolações:
t - ti
γt   γ f  γ i 
 γi
t f  ti
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
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:

q( t )  q  q
i
i1
para
e onde :

t - t i1
 q i1
T
t i1  t  t i
T  t i  t i1
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
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:
qt   a  bt - t   ct - t 
i1
i1 2
 dt - t 
i1 3
para t i1  t  t i
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:


3 i
2  i1 1  i
i1
q

q

q  2q
2
2
T
T
T
a  q i1
c
b  q i1
d



2 i
1  i1  i
i1
q

q

q q
3
2
T
T
Prof. Silas do Amaral - UDESC

18
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ão
obtidas de:

0


i
q  
 1  q i1  q i q i  q i1 
  i1 i  i i1 
t t 

2  t - t








se sign q i  q i1  sign q i1  q i
se sign q i  q i1  sign q i1  q i
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
19
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
A 2
 0
q

s
t

2


2
q0  s V  sVt
q t   
2A


 AT2
A 2
 1

q

s


AT
t
t 


2
2 


t
  t  T-
T-  t  T
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
Interpolador a Trechos Ligando Vários Pontos
Velocidades de Passagem Não Nulas
T
RA
J
E
TÓ
R
I
A
 0 q1  q 0
t
q 
T
1


 1 q1  q 0
t - T1   a t - T1  2
q t   q 
T1
2


 1 q 2  q1
t - T2 
q 
T
2



ACELERAÇÃO



T1 q2  q 1  T2 q 1  q 0
a
2T1T2 
0  t  T1  
T1    t  T1  
T1    t  T1  T2
ERRO MÁXIMO

Prof. Silas do Amaral - UDESC
e max 
a 2

2
22
Simulação no MatLab
CRIAÇÃO DO ROBÔ R3
GERAÇÃO DA TRAJETÓRIA
L1 = link([0 1 0 0 0]);
qi = [pi/2 -pi/2 0];
L2 = link([-pi/2 0.5 0 0 0]);
qf = [-pi/2 pi/2 0];
L3 = link([0 0 0 0.5 0]);
t = [0:0.05:5];
R3 = robot({L1 L2 L3});
q = jtraj(qi, qf, t);
ANIMAÇÃO DO ROBÔ R3
plot(R3, q, 'noname');
Prof. Silas do Amaral - UDESC
23
Simulação no MatLab - 1
Obtenção da Cinemática Inversa a partir da MTH
puma560
echo on
% Carregar PUMA560
% Ativar eco na tela
q = [0 -pi/4 -pi/4 0 pi/8 0];
T = fkine(p560, q);
% Configuração das juntas
% MTH relativa a configuração q
qi = ikine(p560, T);
% Cinemática Inversa
disp(' Original Calculada');
disp([q' qi'])
% Comparação entre q e qi
pause
% Pausa
echo off
% Desativar eco na tela
Prof. Silas do Amaral - UDESC
24
Simulação no MatLab - 2
Efeito de uma Singularidade
echo on
% Ativar eco na tela
T = fkine(p560, qr);
qi = ikine(p560, T);
% Para qr, dois eixos do punho
% estão alinhados  -1gdl
disp(' Original Calculada');
disp([qr' qi'])
fkine(p560, qi) - fkine(p560, qr)
% qi e qr são diferentes, mas o
% EF alcança uma só posição
pause
% Pausa
echo off
% 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
% Ativar eco na tela
t = [0:.05:2];
% Vetor tempo
T1 = transl(0.6, -0.5, 0.0);
T2 = transl(0.4, 0.5, 0.2);
T = ctraj(T1, T2, length(t));
% Ponto inicial da trajetória
% Ponto final da trajetória
% Cálculo da trajetória cartesiana
pause
% Pausa
echo off
% 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
% Ativar eco na tela
tic
q = ikine(p560, T);
toc
% Tempo inicial
% Cinemática Inversa
% Tempo final
pause
% Pausa
echo off
% 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));
subplot(3,1,2); plot(t,q(:,2));
subplot(3,1,3); plot(t,q(:,3));
pause
close(figure(1))
xlabel('Tempo (s)');
ylabel('Junta 1 (rad)')
xlabel('Tempo (s)');
ylabel('Junta 2 (rad)')
xlabel('Tempo (s)');
ylabel('Junta 3 (rad)')
% pressione qualquer tecla para continuar
echo off
Prof. Silas do Amaral - UDESC
28
Simulação no MatLab - 6
Animação
echo on
plot(p560, q)
pause
close(figure(1));
% pressione qualquer tecla para continuar
echo off
Prof. Silas do Amaral - UDESC
29
Download

40_Controle_Cinematico