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