Planejamento de Trajetórias - Instituto de Engenharia Mecânica

Propaganda
Universidade Federal de Itajubá - UNIFEI
Instituto de Engenharia de produção e Gestão - IEPG
EPR-03 Automação da Manufatura
Notas sobre:
Planejamento de
Trajetórias
Y
L2
(x, y)
L1
X=L1.C1+L2.C12
Y=L1.S1+L2.S12
θ2
X=L1.C1
Y=L1.S1
θ1
X
X=0
Y=0
Prof. José Hamilton Chaves Gorgulho Júnior
Itajubá - Outubro de 2009
Revisão 0
1
Planejamento de Trajetória
INTRODUÇÃO
O planejamento de trajetória é realizado pelo programa de controle de um robô para
calcular a posição de cada junta, a cada instante, permitindo que o órgão terminal movimentese segundo a trajetória programada. Aparentemente os cálculos envolvem apenas as
coordenadas inicial e final, mas os artigos irão mostrar que são necessários cálculos que
envolvem cinemática direta, cinemática inversa, coordenadas intermediárias, velocidade,
aceleração e também o tempo de deslocamento.
CONCEITOS BÁSICOS
Para apresentar os conceitos básicos será usado um simples modelo composto apenas
por um elo e uma junta rotativa, ou seja, com apenas um grau de liberdade (GDL ou DOF –
Degree of Freedom). No modelo que é apresentado pela Figura 1 nota-se que o braço, de
comprimento R, gira em torno da origem do sistema de coordenadas do plano XY. Os cálculos
que serão apresentados posteriormente irão considerar R=1.
Y
R
(x,y)
θ
X
Figura 1 – Modelo com 1 grau de liberdade rotativo.
O ponto cuja trajetória será controlada é a extremidade livre que, dependendo do ângulo
θ, alcança diferentes coordenadas (x, y). Os cálculos da cinemática direta e inversa estão
apresentados no Quadro 1. Deve-se lembrar que neste caso as coordenadas que podem ser
atingidas estão restritas a uma circunferência.
2
Cinemática Direta
Cinemática Inversa
x = R ⋅ Cos(θ)
x
θ = ACos 
R
y = R ⋅ Sen(θ)
Quadro 1 – Equação da cinemática direta e inversa.
O cálculo da cinemática inversa pode ser realizado por outros meios, sendo mais
recomendado o uso da função ATan2. Como esta função não é disponibilizada em todas as
linguagens optou-se pelo uso da função ACos.
INTERPOLAÇÃO LINEAR
A forma mais simples de se mover uma junta rotativa da posição inicial θi até a posição
final θf em um tempo td é usando uma interpolação linear, ou seja, usando uma velocidade
angular constante. O Quadro 2 apresenta as equações de posição, velocidade angular e
aceleração angular para este caso.
Posição
 θ − θi
θ(t ) = θi +  f
 td

.t

Velocidade
Aceleração
θ − θi
θ& (t ) = f
td
&θ&(t ) = 0
Quadro 2 – Equações angulares para interpolação linear.
O símbolo θ& significa “derivada de θ”. Como θ é a posição angular do braço, sua
derivada fornece a velocidade angular. O símbolo &θ& significa “derivada de θ& ”, e como se trata
da derivada da velocidade angular obtém-se a aceleração angular. Apesar das três equações
serem funções relativas ao tempo, apenas a posição irá variar. Como se trata de um
deslocamento angular linear a velocidade é constante e a aceleração é nula.
Neste momento é interessante o uso de um exemplo numérico para fixação dos
conceitos. Suponha que a posição inicial do braço seja θ i = 0 o e que deseja-se atingir a posição
final θ f = 90 o em um intervalo de tempo t d = 10 segundos. Substituindo estes valores nas
equações do Quadro 2 obtém-se: θ(t ) = 9.t [graus] e θ& (t ) = 9 [graus/seg] . Variando t de 0 até 10
segundos podemos obter os gráficos da Figura 2.
3
Posição [graus]
100
Y
80
60
40
20
0
Tempo [seg]
0
1
2
3
4
5
6
7
8
9
10
Velocidade [graus/seg]
10
X
8
6
4
2
0
Tempo [seg]
0
1
2
3
4
5
6
7
8
9
10
Figura 2 – Gráficos de posição e velocidade para interpolação linear.
Não se deve esquecer que, apesar do gráfico de posição angular mostrar uma linha reta,
no espaço cartesiano o braço executa um arco de circunferência. O esquema do lado direito da
Figura 2 mostra a posição a cada segundo. Como a velocidade angular é constante tem-se
que a distância entre as posições é uniformemente distribuída.
Note que, em termos práticos, a aceleração é considerada nula. Porém é necessário um
pico de aceleração para iniciar o movimento e, no final, um pico de desaceleração para
interrompê-lo. Isso faz com que ocorram choques mecânicos muito fortes no início e no final da
trajetória, tornando esta forma de controle pouco adequada.
Os dados fornecidos para o exemplo estavam em graus, mas normalmente são
fornecidas coordenadas cartesianas para o destino e isso requer o cálculo da cinemática
inversa. Além disso, também é necessário verificar se a coordenada fornecida pode realmente
ser atingida. O Quadro 3 apresenta uma sugestão de algoritmo para o cálculo das grandezas
do Quadro 2 no tempo e também desenhar do braço. Os dados necessários são a coordenada
cartesiana de destino e o tempo de deslocamento. O algoritmo verifica se o ponto pode ser
atingido e em seguida faz o cálculo da cinemática inversa para determinar a posição angular
final da junta. Uma variável que contará a passagem do tempo é iniciada antes de um looping.
4
Dentro desse looping o tempo é incrementado para permitir o cálculo das variáveis
angulares (posição, velocidade e aceleração). Com base no valor da posição angular em cada
instante é possível desenhar a posição do braço usando os cálculos de cinemática direta.
Velocidade e aceleração não têm necessidade de ficar dentro do looping nesta situação, pois
são constantes no tempo, porém, nos casos seguintes, estas grandezas irão ser variáveis e
sendo assim o algoritmo posiciona o cálculo no devido lugar para manter-se compatível.
Definir R e θi
Ler x, y e td
Se Raiz(x2+y2)<>R então
Mensagem “Coordenada fora da área de trabalho”
Fim
Fim Se
Calcular θf=Acos(x/R)
t=0
Enquanto t < td fazer
Incrementar t
Calcular Posição Angular: θ = θi + t.(θf-θi)/td
Calcular Velocidade Angular: θ& =(θf-θi)/td
Calcular Aceleração Angular: &θ& =0
Traçar Linha de [0, 0] até [R*Cos(θ), R*Sen(θ)]
Fim Enquanto
Quadro 3 – Algoritmo para cálculo e traçado do movimento.
POLINÔMIO CÚBICO
O uso de uma equação cúbica para representar a posição angular no tempo elimina os
choques da interpolação linear. Da mesma forma exposto no caso linear as equações de
velocidade e aceleração são obtidas por derivação. A velocidade angular é representada por
uma equação quadrática e a aceleração angular por uma equação linear. No Quadro 4 são
apresentadas as três equações.
3.(θ f − θi )
2.(θf − θi )
Posição
θ(t ) = θi +
Velocidade
6.(θ f − θi )
6.(θ f − θi ) 2
θ& (t ) =
.t −
.t
2
3
td
td
Aceleração
&θ&(t ) = 6.(θ f − θi ) − 12.(θ f − θi ) .t
2
3
td
td
td
2
.t 2 −
td
3
.t 3
Quadro 4 – Equações angulares para interpolação não linear.
5
O algoritmo do Quadro 3 pode ser atualizado bastando substituir as equações de
posição, velocidade e aceleração pelas apresentadas no Quadro 4
Usando os mesmos
valores do exemplo numérico anterior, que são θ i = 0 o , θ f = 90 o e t d = 10 seg obtém-se os
valores da Tabela 1 e os gráficos da Figura 3.
Tabela 1 – Valores obtidos com as equações do Quadro 4.
Tempo
0
1
2
3
4
5
6
7
8
9
10
Posição
0.00
2.52
9.36
19.44
31.68
45.00
58.32
70.56
80.64
87.48
90.00
Velocidade
0.00
4.86
8.64
11.34
12.96
13.50
12.96
11.34
8.64
4.86
0.00
Aceleração
5.40
4.32
3.24
2.16
1.08
0.00
-1.08
-2.16
-3.24
-4.32
-5.40
Figura 3 – Gráficos resultantes das equações do Quadro 4.
A aceleração inicia-se com 5.4º/s2, permitindo que a velocidade saia do zero e inicie o
movimento do braço. Com a passagem do tempo o valor da aceleração diminui enquanto a
velocidade aumenta (cada vez mais lentamente) e o braço se afasta da posição de origem.
Exatamente na metade do movimento (45º) a aceleração é nula e a velocidade atinge o seu
valor máximo (13.5º/s). A partir desse ponto a aceleração passa a ser negativa, isto é, torna-se
uma desaceleração e, conseqüentemente, a velocidade diminui gradativamente. Próximo ao
final do movimento a velocidade é cada vez menor e isso faz o braço chegar ao destino
suavemente.
6
A Figura 4 apresenta a posição do braço variando no tempo (de 0 até 10 segundos).
Nota-se que apesar dos intervalos de tempo serem constantes as distâncias angulares em
cada momento não são. O movimento é lento no início e também no final.
Figura 4 – Posição do braço a cada 0.25 segundo.
O gráfico da Figura 4 foi obtido com um programa didático disponível em
http://www.iem.efei.br/gorgulho/download/planejador.zip. O programa simula os movimentos de
um braço com dois graus de liberdade e apresenta os gráficos de posição, velocidade e
aceleração para cada junta.
INTERPOLAÇÃO LINEAR COM EXTREMIDADES PARABÓLICAS
Outra estratégia de movimentação é, de certa forma, a união dos conceitos anteriores.
Tem-se uma movimentação linear com início e final do movimento suave (quadrático). A
denominação em inglês é linear segments with parabolic blends - LSPB. A Figura 5 apresenta
a forma de variação da posição, velocidade e aceleração para uma movimentação deste tipo.
Nota-se que há três fases distintas.
Fase 1 – Início Parabólico: no início do movimento há uma aceleração constante que faz com
que a velocidade aumente linearmente. Esse comportamento faz com que a posição
se altere cada vez mais rapidamente.
Fase 2 – Velocidade Linear: nesta etapa a aceleração deixa de existir, fazendo com que a
velocidade seja constante. A velocidade constante, por sua vez, faz com que o
deslocamento passe a ser linear.
7
Fase 3 – Final parabólico: para finalizar o movimento é usada uma desaceleração de valor
constante. Essa desaceleração diminui a velocidade de forma linear e faz com que a
posição varie cada vez mais lentamente até atingir a sua meta.
Figura 5 – Variação das grandezas no movimento linear-parabólico.
O instante no qual ocorre a transição da entrada parabólica para o deslocamento linear
será denominado de TA (também chamado de blend time). A posição angular do braço nesse
instante será definida como θA. Da mesma forma, o instante de transição do deslocamento
linear para a finalização parabólica será denominado TB e a posição angular de θB.
Como pode ser notado no gráfico o equacionamento que será apresentado a seguir
assume que os segmentos parabólicos têm a mesma duração, fazendo com que sejam
simétricos em relação ao ponto central. A duração dos segmentos parabólicos depende do
valor adotado para a aceleração e desaceleração. Quanto maior este valor menor é a porção
parabólica, fazendo com que o movimento tenda a uma interpolação linear simples. Do lado
oposto, quanto menor a aceleração, menor é a porção linear. Há um valor mínimo para a
aceleração, que faz com que a porção linear não exista, fazendo com que o gráfico da posição
seja similar à obtida pelo polinômio cúbico.
8
A Figura 6 mostra o mesmo movimento da Figura 5, mas com duas acelerações
angulares diferentes. Nos gráficos do lado esquerdo a aceleração angular adotada é igual à
aceleração angular mínima. Os gráficos do lado direito mostram a aceleração angular ajustada
para 100 vezes o valor da aceleração angular mínima.
Figura 6 – Esquerda: aceleração angular mínima. Direita: aceleração angular alta.
As várias equações necessárias para definir o movimento estão listadas no Quadro 5,
na ordem de cálculo. Os seguintes valores são necessários: ângulo inicial (θi), ângulo final (θf),
tempo de deslocamento (td) e fator de multiplicação da aceleração mínima (c) que deve ser
maior que 1. Na equação de TA usa-se subtração quando θf>θi e soma quando ocorrer o
contrário.
Aceleração Mínima
Aceleração Adotada
&θ& = 4.(θ − θ ) / t 2
min
f
i
d
&θ& = c.&θ&
min
(&θ&.t d )2 − 4.&θ&.(θf − θi ) / (2.&θ&)
Tempo A
TA = (t d / 2) ±
Ângulo A
θ A = θi + &θ&.TA 2 / 2
Tempo B
TB = t d − TA
Ângulo B
θ B = θ f − &θ&.TB 2 / 2
Velocidade Linear
(
(
)
)
θ& L = (θ B − θ A ) / (TB − TA )
Quadro 5 – Equações angulares para movimento linear com extremidades parabólicas.
9
Os valores angulares de posição, velocidade e aceleração em função do tempo são
calculados por equações diferentes conforme a fase em que se encontra o movimento. O
Quadro 6 apresenta estas equações.
Fase
Posição
(
Velocidade
Aceleração
)
1 ( t ≤ TA )
θ i + &θ&. t 2 / 2
&θ&.t
&θ&
2 ( TA < t < TB )
θi + θ& L .(t − TA )
θ& L
0
TB + θ& L .(t − TB ) − &θ&.( t − TB ) 2 / 2
θ& L − &θ&.(t − TB )
− &θ&
3 ( t ≥ TB )
Quadro 6 – Equações angulares para posição, velocidade e aceleração.
Juntamente com o programa didático há uma planilha do Excell (Linear-Parabólico.xls)
que implementa estes cálculos e apresenta os gráficos angulares de posição, velocidade e
aceleração.
TRAJETÓRIA DE TEMPO MÍNIMO
Em alguns sistemas robóticos os comandos de movimentação não incluem o tempo de
deslocamento, ou seja, o programador informa apenas a coordenada de destino. Nesses casos
o sistema irá atingir a meta no menor tempo possível. E para isso a aceleração angular
máxima permitida pelo equipamento é pré-programada pelo fabricante usando a interpolação
linear com extremidades parabólicas.
A forma de movimento nesta situação é mostrada do lado esquerdo da Figura 6, ou seja,
a aceleração angular máxima admissível é aplicada durante a primeira metade do movimento e
depois a desaceleração máxima é aplicada na segunda metade. O Quadro 7 apresenta as
equações que permitem calcular o tempo de deslocamento em função da aceleração angular e
a velocidade angular máxima atingida. Obviamente o momento de inversão da aceleração é
dado por td/2.
Tempo de Deslocamento
td =
4.(θ f − θi )
&θ&
max
2.(θ f − θ i )
θ& máx =
td
Velocidade Máxima
Quadro 7 – Equações para a trajetória de tempo mínimo.
10
MODELO COM DOIS GRAUS DE LIBERDADE
O modelo usado no artigo anterior, com apenas 1 grau de liberdade rotativo, possuía
uma área de trabalho muito limitada, resumida a uma circunferência. O modelo que será usado
deste momento em diante é composto por dois elos de mesmo tamanho e com eixos de
rotação paralelos. A Figura 7 apresenta o modelo cuja configuração faz com que a área de
trabalho seja um círculo com raio=1 (L1=L2=0.5).
Y
L2
(x, y)
L1
X=L1.C1+L2.C12
Y=L1.S1+L2.S12
θ2
X=L1.C1
Y=L1.S1
θ1
X
X=0
Y=0
Figura 7 – Modelo com dois graus de liberdade.
A Figura 7 traz também as coordenadas cartesianas das extremidades dos elos, obtidas
por cinemática direta (são úteis para desenhar o braço em um programa). Nessas equações
tem-se:
C1=Cos(θ1)
C12=Cos(θ1).Cos(θ2)-Sen(θ1).Sen(θ2)= Cos(θ1+θ2)
S1=Sen(θ1)
S12=Sen(θ1).Cos(θ2)+Cos(θ1).Sen(θ2)= Sen(θ1+θ2)
A cinemática inversa torna-se mais complexa do que o apresentado no artigo anterior. A
Figura 8 mostra que os dois elos formam um triângulo do qual será possível extrair, por uma
solução analítica, os valores de θ1 e θ2 quando forem fornecidas as coordenadas (x, y) da
extremidade.
Da análise da Figura 8 podem ser obtidas as seguintes relações:
R = X2 + Y2
X
Ar = ACos 
R
θ1 = Ar − A1
θ 2 = 180 − A 2
O valor de R é importante pois permite definir se a coordenada fornecida pode ser
atingida, ou seja, se R > L1 + L 2 então o ponto está fora da área de trabalho. Nota-se que Ar
não terá solução quando R=0 (como L1=L2 esta situação poderá ocorrer). Neste caso é
interessante definir θ2=180º e manter o valor atual de θ1 (que pode assumir qualquer valor).
11
Y
(X, Y)
A3
R2= X2+Y 2
R
θ2
L2
A2
A1
AR
θ1
L1
X
Figura 8 – Triângulo formado pelos dois elos.
Da trigonometria sabe-se que:
L2 2 = R 2 + L12 − 2.R.L1.Cos(A1)
e
R 2 = L12 + L2 2 − 2.L1.L2.Cos(A 2)
E obtém-se:
 R 2 + L12 − L2 2
A1 = ArcCos

2.R.L1





e
 L12 + L2 2 − R 2
A 2 = ArcCos

2.L1.L2





Pode-se agora elaborar um algoritmo para a cinemática inversa deste problema, como o
mostrado pelo Quadro 8.
Definir L1 e L2
Ler x e y
Calcular R=Raiz(x2+y2)
Se R>(L1+L2) então “Coordenada não pode ser atingida”
Se R=0 então
Definir θ2=180
Senão
Calcular Ar=ArcCos(x/R)
Calcular A1=ArcCos((R2+L12-L22)/(2.R.L1))
Calcular A2=ArcCos((L12+L22-R2)/(2.L1.L2))
Calcular θ1=Ar-A1
Calcular θ2=180-A2
Fim-Se
Quadro 8 – Algoritmo para a Cinemática Inversa.
12
O Quadro 9 apresenta um algoritmo para o cálculo e desenho do braço com dois graus
de liberdade. Os cálculos de posição angular, velocidade angular e aceleração angular são
exatamente iguais aos apresentados no primeiro artigo e, agora, são calculados para cada elo.
Definir L1, L2, θi1, θi2
Ler x, y e td
Cinemática Inversa (calcular θf1, θf2)
t=0
Enquanto t<td fazer
Incrementar t
Calcular Posição (θ1 e θ2)
Calcular velocidade (θ1 e θ2)
Calcular Aceleração (θ1 e θ2)
C1=Cos(θ1)
S1=Sin(θ1)
C12= Cos(θ1+θ2)
S12= Sen(θ1+θ2)
Traçar Linha de [0, 0] até [L1.C1, L1.S1]
Traçar Linha de [L1.C1, L1.S1] até [L1.C1+L2.C12, L1.S1+L2.S12]
Fim Enquanto
Quadro 9 – Algoritmo para planejamento de trajetória.
As próximas três figuras mostram a movimentação do braço usando as três abordagens
matemáticas apresentadas. A coordenada de origem é (1, 0) e a de destino é (-0.25, 0.75),
com tempo de deslocamento de 5 segundos. Para cada movimentação são mostrados os
gráficos de θ1 (os gráficos de θ2 possuem forma similar). A posição do braço foi desenhada a
cada décimo de segundo aproximadamente. Na Figura 9 está o resultado da interpolação
linear, onde nota-se o espaçamento eqüidistante dos pontos no trajeto.
13
Figura 9 – Interpolação linear.
Na Figura 10 foi usado o polinômio cúbico. A densidade de pontos é maior no início e
vai sendo reduzida até atingir a metade do percurso. A partir deste ponto vai aumentando
novamente até atingir o ponto meta.
Figura 10 – Polinômio cúbico.
A Figura 11 mostra a interpolação linear com extremidades parabólicas. Foi usado um
fator c=1.25, ou seja, a aceleração adotada é 1.25 vezes a aceleração mínima. A densidade
dos pontos é variável no início e final enquanto na porção central o espaçamento é igual.
14
Figura 11 – Interpolação linear com extremidades parabólicas.
TRAJETÓRIA COM PONTOS INTERMEDIÁRIOS
A Tabela 2 apresenta um conjunto de pontos que serão percorridos para comparar as
três estratégias apresentadas.
Tabela 2 – Valores para x, y e tempo de múltiplos pontos.
Ponto
Coordenada
X [m]
Coordenada
Y [m]
Tempo de
Deslocamento [s]
Origem
1.0
0.0
-
1
0.65
0.65
3.0
2
0.0
0.25
3.0
3
-0.65
0.65
3.0
4
0.0
-0.75
3.0
5
0.35
0.35
3.0
A Figura 12 apresenta a movimentação pelos pontos mostrados pela Tabela 2 usando a
interpolação linear, bem como os gráficos de θ1. Os pontos programados estão marcados por
um x de cor branca. Nota-se que o espaçamento entre os pontos é igual em cada trecho. Como
o tempo é igual para cada deslocamento tem-se que, onde a distância é menor, a velocidade é
mais alta. O gráfico de velocidade angular mostra que esta grandeza varia bruscamente. Pelos
gráficos é possível concluir que o segundo movimento ocorre no sentido contrário dos demais
(posição diminui e a velocidade é negativa).
15
Figura 12 – Múltiplos pontos usando interpolação linear.
A movimentação usando o polinômio cúbico está na Figura 13. A posição angular alterase suavemente. Fica claro também que a velocidade angular é nula no início e final de cada
trecho do percurso.
Figura 13 – Múltiplos pontos usando polinômio cúbico.
A Figura 14 exibe a movimentação usando a interpolação linear com extremidades
parabólicas (fator c=1.25). Nesta situação a velocidade angular também é nula no início e final
de cada trecho do percurso, ou seja, no ponto programado a velocidade angular é zero para os
dois elos.
16
Figura 14 – Múltiplos pontos usando interpolação linear com extremidades parabólicas.
Na Figura 15 são mostrados os gráficos de θ2 para as três situações. As formas dos
gráficos de posição e velocidade angular apresentam uma similaridade bastante alta.
Comparando estes gráficos com os gráficos de θ1 é possível perceber que cada elo executa
um movimento diferente, que requer variação de velocidade e aceleração diferentes também.
Figura 15 – Múltiplos pontos usando interpolação linear com extremidades parabólicas.
DEFININDO A VELOCIDADE NO PONTO
A interpolação linear com extremidades parabólicas permite, por meio de cálculos
adicionais, definir a velocidade angular das juntas nos pontos intermediários de uma trajetória,
mas devido a sua complexidade esta técnica não será abordada. Já, para o polinômio cúbico, o
17
equacionamento é mais simples e está exibido no Quadro 10. Foram usados quatro
parâmetros (a0 até a3) para simplificar a visualização.
a 0 = θi
θ(t ) = a 0 + a 1 .t + a 2 .t 2 + a 3 .t 3
a 1 = θ& i
3
2 & θ& f
(
)
θ
−
θ
−
θi −
f
i
td
td
t d2
θ& (t ) = a 1 + 2.a 2 .t + 3.a 3 .t 2
a2 =
&θ&(t ) = 2.a + 6.a .t
2
3
a3 = −
2
(θf − θi ) + 12 θ& f + θ& i
3
td
td
(
)
Quadro 10 – Equações para polinômio cúbico com velocidade no ponto.
Analisando os parâmetros nota-se que além da posição inicial (θi), posição final (θf) e
tempo de deslocamento (td) devem ser fornecidas as velocidades angulares inicial ( θ& i ) e final
( θ& f ). Se as velocidades angulares inicial e final forem nulas obtém-se o polinômio cúbico
apresentado anteriormente.
Deve ficar claro que o primeiro movimento de um caminho de múltiplos pontos tem
velocidade inicial nula e que o último movimento tem velocidade final nula. Nos demais a
velocidade final de um trecho é igual a velocidade inicial do trecho seguinte.
As equações apresentadas são para apenas uma junta. Para sistemas com mais juntas
é possível definir a velocidade angular de cada uma delas separadamente. Esta definição de
velocidades pode ser feita de vários modos. Pode-se optar, por exemplo, pela determinação
automática usando alguma heurística que mantenha uma aceleração constante nos pontos
intermediários. Outra forma depende da escolha de velocidades cartesianas no ponto (Vx e Vy)
que irão refletir em velocidades angulares nas juntas.
A Figura 16 mostra o resultado da movimentação pelos pontos da Tabela 2 com a
velocidade das duas juntas configuradas para 20º/s. No plano XY a trajetória toma uma forma
diferente da observada na Figura 13 para possibilitar que a velocidade angular programada
seja atingida. Do lado direito, no gráfico de velocidade, observa-se que ao final de cada
movimento a velocidade angular atingiu o valor de 20º/s.
18
Figura 16 – Polinômio cúbico com velocidade de 20º/s nos pontos intermediários.
Usar valores muito elevados faz com que os movimentos sofram “deformações” para
possibilitar que sejam atingidas as velocidades angulares programadas. Na Figura 17 foi
usado 60º/s para as duas juntas, em todos os pontos intermediários. Durante a execução é
interessante observar o movimento entre a origem e o primeiro ponto. O braço move-se
inicialmente em sentido contrário para ter espaço suficiente para acelerar e atingir a velocidade
angular definida.
Figura 17 - Polinômio cúbico com velocidade de 60º/s nos pontos intermediários.
19
O ESPAÇO CARTESIANO
A Figura 18 mostra um movimento em linha reta (straight line motion) entre os pontos I
(início) e F (fim). O movimento foi dividido em 5 partes, ou seja, há quatro pontos intermediários
entre I e F. Conhecendo-se as coordenadas cartesianas de cada um destes pontos é possível
calcular, por cinemática inversa, os valores de θ1 e θ2 necessários.
Y
F
∆X
∆Y
I
X
Figura 18 – Movimento em linha reta no espaço cartesiano.
A Figura 18 também mostra que a divisão da trajetória cria intervalos de igual dimensão
para cada eixo, que foram denominados de ∆X e ∆Y. Quanto menor a dimensão destes
intervalos mais linear será a trajetória.
O Quadro 11 mostra um algoritmo para executar os cálculos de uma trajetória no
espaço cartesiano. Nota-se que a cinemática inversa passa a figurar dentro do looping de
tempo.
Definir L1, L2, θi1, θi2
Ler x, y e td
t=0
Enquanto t<td fazer
Incrementar t
Cálculos Cartesianos do Elo 2 (X2, Y2, Vx2, Vy2, Ax2 e Ay2)
Cinemática Inversa
Cálculos Trigonométricos
Cálculos Angulares
Cálculos Cartesianos do Elo 1
Fim Enquanto
Quadro 11 – Algoritmo para planejamento de trajetória no espaço cartesiano.
20
Os cálculos cartesianos do Elo 2 definem a posição, velocidade e aceleração do órgão
terminal a cada instante do movimento e em cada eixo. Na literatura é comum encontrar outra
& 2 para velocidade do elo 2 no eixo X e X
&& 2 para
notação para os símbolos, como por exemplo, X
aceleração. As equações desses cálculos dependem da estratégia de movimento adotada e
serão abordadas adiante.
A cinemática inversa, apresentada nos artigos anteriores, é responsável por calcular os
valores de θ1 e θ2 para cada coordenada (X2, Y2) do movimento, ou seja, a cada instante
calcula-se os ângulos necessários para que a posição desejada seja atingida. O Quadro 12
apresenta duas equações que podem ser usadas neste cálculo (note o uso de uma outra
notação para a função arco-tangente de dois argumentos). Como θ1 depende de Sin(θ2) e
Cos(θ2) é óbvio que é necessário calcular inicialmente θ2 (que depende de X2, ,Y2, L1 e L2).
 L2.Sin (θ2) 
 Y2 

θ1 = ArcTan 2
 − ArcTan 2
 X2 
 L1 + L2.Cos(θ2) 
 X 2 2 + Y 2 2 − L12 − L2 2 

θ2 = ArcCos

2
.
L
1
.
L
2


Quadro 12 – Cinemática inversa.
Após a cinemática inversa obter θ1 e θ2 pode-se calcular o valor instantâneo das
funções trigonométricas que serão necessárias na próxima etapa. O Quadro 13 mostra estas
funções.
C1=Cos(θ1)
S1=Sin(θ1)
C2=Cos(θ2)
S2=Sin(θ2)
C12= Cos(θ1+θ2)
S12= Sen(θ1+θ2)
Quadro 13 – Cálculos trigonométricos.
Uma possibilidade é unir as duas etapas anteriores na seguinte seqüência de cálculos:
θ2, C2, S2, θ1, C1, S1, C12 e S12. A etapa seguinte consiste em calcular as grandezas
angulares faltantes dos dois elos, que são velocidade e aceleração. O Quadro 14 mostra as
equações para os cálculos para o exemplo de dois graus de liberdade. Para facilitar a leitura o
símbolo θ& usado para representar a velocidade angular foi substituído por Va e o símbolo &θ&
para representar a aceleração angular foi substituído por Aa.
21
Va1 =
(Vx 2.C12 + Vy2.S12)
L1.S2
Va 2 =
(−L1.C1 − L2.C12).Vx 2 − (L1.S1 + L2.S12).Vy 2
L1.L2.S2
Aa1 =
(Va1 + Va 2).(C12.Vy 2 − S12.Vx 2) + C12.Ax 2 + S12.Ay2 − L1.C2.Va1.Va 2
L1.S2
Aa 2 =
− (X 2.Ax 2 + Y 2.Ay2 + Vx 2 2 + Vy2 2 + L1.L2.C2.Va 2 2 )
L1.L2.S2
Quadro 14 – Cálculos das velocidades angulares e das acelerações angulares.
A última etapa envolve o cálculo das grandezas cartesianas do Elo 1, que são posição,
velocidade e aceleração para cada eixo. O Quadro 15 apresenta as equações necessárias.
X1 = L1.C1
Y1 = L1.S1
Vx1 = −L1.S1.Va1
Vy1 = L1.C1.Va1
Ax1 = − L1.(C1.Va12 + S1.Aa1)
Ay1 = − L1.(S1.Va12 − C1.Aa1)
Quadro 15 – Cálculos cartesianos do Elo 1.
Deve ficar claro que, se o objetivo é apenas enviar dados de posição para um robô ou
plotar uma imagem em uma tela, vários cálculos não são necessários. Tendo o valor de θ1 e θ2
a cada instante as velocidades e acelerações, tanto angulares quanto cartesianas, são
conseqüências físicas do movimento.
PROBLEMAS GEOMÉTRICOS NAS COORDENADAS CARTESIANAS
O primeiro problema geométrico que pode ocorrer quando o planejamento de trajetória é
realizado no espaço cartesiano está ligado à forma do espaço de trabalho. Dependendo da
dimensão dos elos e dos limites de movimento a região de trabalho possuirá convexidades e,
dessa forma, um movimento em linha reta poderá passar por pontos fora da área de trabalho.
A Figura 19 mostra o espaço de trabalho típico de um robô SCARA com um exemplo de uma
trajetória em linha reta que não pode ser realizada.
No modelo usado como exemplo tem-se L1=L2 e nenhuma restrição quanto aos ângulos
máximos. Isso faz com que a área de trabalho não possua nenhuma convexidade. Dessa
forma é possível obter qualquer trajetória retilínea entre coordenadas válidas.
22
Y
X
Figura 19 – Problema no movimento cartesiano retilíneo.
Um outro problema geométrico está ligado às singularidades. Quando o braço
aproxima-se de uma configuração singular uma ou mais juntas terão suas velocidades
aumentadas muito rapidamente. Na posição singular essas velocidades tendem ao infinito. Isso
pode ser matematicamente verificado observando-se as equações do Quadro 3. Nas quatro
equações o divisor possui S2 que atinge o valor zero quando θ2 vale 0º ou 180º. Nessas
posições os valores de Va1, Va2, Aa1 e Aa2 são levados ao infinito e, por conseqüência,
também os valores de Vx1, Vy1, Ax1 e Ay1. A Figura 20 mostra um exemplo típico da
execução de um movimento linear que passa próximo de uma configuração singular.
Figura 20 – Movimento passando próximo de uma configuração singular.
O movimento executado na Figura 20 vai de (0.8, 0.05) para (-0.8, 0.05). O movimento
inicia-se com θ1 girando no sentido negativo (tendendo a atingir -90º) e θ2 girando no sentido
positivo (tendendo atingir 180º). Conforme se aproxima da coordenada (0, 0) é necessário que
θ1 gire rapidamente no sentido positivo para permitir a continuidade do movimento. Quanto
23
menor o valor de Y para esse movimento, mais rapidamente esse giro em torno da origem vai
ocorrer. Se o movimento passar pela origem o movimento seria instantâneo, ou seja, em um
instante tem-se θ1=-90º e no instante seguinte tem-se θ1=90º, como mostra a Figura 21.
Figura 21 – Movimento passando em uma configuração singular.
INTERPOLAÇÃO LINEAR
Da mesma forma como mostrado no primeiro artigo, a estratégia mais simples de
movimentação é por meio de uma interpolação linear. Basicamente as equações são idênticas
às mostradas para a movimentação linear no espaço angular. A diferença é que as variáveis
não são mais angulares e sim cartesianas. O Quadro 16 mostra as equações cartesianas para
interpolação linear, tanto para o eixo X quanto para o eixo Y. Nota-se que a velocidade em
cada eixo é constante e a aceleração é nula.
Posição
Velocidade
X 2(t ) = X 2 i +
(X 2 f − X2i ) .t
Vx 2 =
(X 2 f − X 2i )
Y 2(t ) = Y 2 i +
(Y 2 f − Y2i ) .t
Vy 2 =
(Y2 f − Y2i )
td
td
td
Aceleração
Ax 2(t ) = 0
Ay2(t ) = 0
td
Quadro 16 – Equações cartesianas para interpolação linear.
A Figura 22 mostra o resultado da movimentação do braço usando as equações do
Quadro 16, bem como os gráficos de posição, velocidade e aceleração para o eixo Y. Os
dados são os mesmos usados no artigo anterior, ou seja, origem em (1, 0), destino (-0.25, 0.75)
e tempo de deslocamento de 5 segundos. Nota-se o espaçamento igual entre os pontos
durante todo o movimento, confirmando que o movimento é linear no tempo (e no espaço).
24
Figura 22 – Movimento com interpolação linear no espaço cartesiano.
Na Figura 23 são mostrados os gráficos de posição para os ângulos θ1 e θ2. Nota-se
que enquanto os movimentos do elo 2 em X e Y são lineares, os movimentos angulares de θ1
e θ2 possuem outras formas.
Figura 23 – Gráficos de Teta1 e Teta2.
POLINÔMIO CÚBICO
A uso de um polinômio cúbico é uma das formas de se evitar os choques mecânicos no
início e fim dos movimentos. No Quadro 17 estão as equações cartesianas que permitem que
o movimento em linha reta seja executado de maneira mais suave. Apenas as equações do
eixo X estão representadas. Para obter as equações de Y basta substituir o nome das variáveis.
Posição
X 2(t ) = X 2i +
Velocidade
Vx 2(t ) =
Aceleração
Ax(t ) =
3
(X 2f − X2i ).t 2 − 23 (X2f − X 2i ).t 3
2
td
td
6
(X2f − X 2i ).t − 63 (X 2f − X2i ).t 2
2
td
td
6
(X 2f − X 2i ) − 123 (X2f − X 2i ).t
2
td
td
Quadro 17 – Polinômio cúbico cartesiano (para o eixo X).
25
A Figura 24 mostra, no lado esquerdo, o movimento entre (1, 0) e (-0.25, 0.75) em 5
segundos usando o polinômio cúbico. O espaçamento entre os pontos é maior na posição
central, quando a velocidade é maior, enquanto que nas extremidades o espaçamento diminui.
No lado direito estão os gráficos de posição, velocidade e aceleração em Y (em X a forma é
similar).
Figura 24 – Movimento com polinômio cúbico no espaço cartesiano.
INTERPOLAÇÃO LINEAR COM EXTREMIDADES PARABÓLICAS
Esta abordagem matemática também elimina os choques mecânicos do início e fim do
movimento cartesiano linear. O equacionamento é similar ao que foi apresentado no artigo
inicial, bastando substituir as variáveis angulares por suas correspondentes variáveis
cartesianas. Na Figura 25, à esquerda, está o movimento no espaço cartesiano, enquanto do
lado direito estão os gráficos de posição, velocidade e aceleração em Y (em X a forma é
similar).
26
Figura 25 – Interpolação linear com extremidades parabólicas no espaço cartesiano.
O conceito de trajetória de tempo mínimo, abordado na primeira parte, também pode ser
aplicado no espaço cartesiano, porém não é usual. Se o objetivo é realizar movimentos rápidos
então o espaço das juntas é muito superior ao espaço cartesiano (para esta configuração de
juntas rotativas).
TRAJETÓRIA COM PONTOS INTERMEDIÁRIOS
Da mesma maneira como ocorreu no espaço das juntas, no espaço cartesiano também
pode-se realizar movimentos em linha reta com pontos intermediários. Na Figura 26 estão os
resultados obtidos com interpolação linear (normal e com extremidades parabólicas).
Figura 26 – Interpolação linear (esquerda) e interpolação linear com extremidades parabólicas (direita).
O polinômio cúbico permite a definição da velocidade no ponto. Se as velocidades em X
e Y são iguais a zero o movimento é realmente uma linha reta. Caso seja definida alguma
velocidade o trajeto cartesiano se deforma. Na Figura 27 à esquerda está o movimento com
27
velocidade nula em todos os pontos. No lado direito foi programada a mesma velocidade em
todos os pontos (-0.25 m/s em X e 0 em Y).
Figura 27 – Polinômio cúbico sem e com velocidade nos pontos.
Na Figura 28 estão os gráficos de posição, velocidade e aceleração em X e Y. Em X
pode-se ver que a velocidade é de -0.25 m/s no final de cada etapa, enquanto que em Y a
velocidade é nula.
Figura 28 – Gráficos de posição, velocidade e aceleração.
28
COMENTÁRIOS FINAIS
O objetivo deste texto foi introduzir os conceitos sobre o planejamento de trajetória, que
vai muito além do que foi exposto. O modelo explorado, com apenas dois graus de liberdade,
não necessitou de equações matriciais, mas é possível imaginar que o aumento dos graus de
liberdade faz com que a complexidade seja elevada. Além disso, a alteração dos tipos de junta
do robô também levam a grandes alterações matemáticas.
Outros fatores que envolvem o controle da posição do órgão terminal não foram
abordados, apesar da grande importância. Pode-se citar o torque e a inércia que influenciam
fortemente o controle PID que busca manter a trajetória real o mais próxima possível da
trajetória calculada.
REFERÊNCIAS
Craig, J. J., Introduction to Robotics – Mechanics & Control, Addison-Wesley Publishing
Company, 1955.
Fu, K. S.; Gonzáles, R. C.; Lee, C. S. G., Robotics: Control, Sensing, Vision, and
Intelligence, McGraw Hill Book Company, 1987.
Koren, Y., Robotics for Engineers, McGraw Hill Book Company, 1985.
Spong, M. W.; Vidyasagar, M.; Robot Dynamics and Control, John Wiley & Sons, Inc., 1989.
Paul, R. P., Robot Manipulators: Mathematics, Programming, and Control – The Computer
Control of Robot Manipulators, Massachusetts Institute of Technology (1981), Ninth
Printing, 1992.
29
Download