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
i1
para
e onde :
t - t i1
q i1
T
t i1 t t i
T t i t i1
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:
qt a bt - t ct - t
i1
i1 2
dt - t
i1 3
para t i1 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 i1 1 i
i1
q
q
q 2q
2
2
T
T
T
a q i1
c
b q i1
d
2 i
1 i1 i
i1
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 i1 q i q i q i1
i1 i i i1
t t
2 t - t
se sign q i q i1 sign q i1 q i
se sign q i q i1 sign q i1 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