SEM0317
SEM0317 –– Aula
Aula 99
Planejamento de Trajetórias
Planejamento de Trajetórias
em Manipuladores Robóticos
em Manipuladores Robóticos
em Manipuladores Robóticos
em Manipuladores Robóticos
Prof. Dr. Marcelo
Prof. Dr. Marcelo Becker
Becker
•
•
Introdução
Introdução
•
Programação Explícita
–
Espaço das Juntas
–
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
–
Espaço Cartesiano
–
Observações
•
Programação Baseada em Modelos
•
Exercícios Recomendados
Introdução
Introdução
• Como obter a trajetória que descreve
o movimento desejado para o
manipulador robótico?
– Cinemática e Dinâmica conhecidas...
– Técnicas:
1.
1. Programação ExplícitaProgramação Explícita: usuário fornece uma trajetória pré-definida que o manipulador deve seguir
– Posições, Velocidades e Acelerações desejadas; – Presença de Obstáculos, etc.
Introdução
Introdução
• Como obter a trajetória que descreve
o movimento desejado para o
manipulador robótico?
– Cinemática e Dinâmica conhecidas...
– Técnicas:
2.
2. Programação Baseada em ModelosProgramação Baseada em Modelos: usuário
especifica modelos geométricos do manipulador e obstáculos e descreve a tarefa a ser executada através desses modelos
Introdução
Introdução
• Como obter a trajetória que descreve
o movimento desejado para o
manipulador robótico?
– Cinemática e Dinâmica conhecidas...
– Técnicas:
3.
3. Programação Baseada em TarefasProgramação Baseada em Tarefas: usuário especifica comandos para o manipulador: “pegar parafuso A e colocá-lo no furo B” (task-level controller)
•
•
Introdução
Introdução
•
•
Programação Explícita
Programação Explícita
–
Espaço das Juntas
–
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
–
Espaço Cartesiano
–
Observações
•
Programação Baseada em Modelos
•
Exercícios Recomendados
Programação Explícita
Programação Explícita
• Como obter a trajetória que descreve
o movimento desejado para o
manipulador robótico?
– Cinemática e Dinâmica conhecidas...
– Cinemática e Dinâmica conhecidas...
– Trajetória:
• Formas de representação • Tempo real: 60 ~ 2000 Hz
– Trajetória pré-definida:
• Posições, Velocidades e Acelerações desejadas; • Presença de Obstáculos
Programação Explícita
Programação Explícita
• Modos de controle para manipuladores
robóticos
Presença de Obstáculos
Presença de Obstáculos
SIM
SIM NÃONÃO
SIM
SIM NÃONÃO
SIM SIM
NÃO NÃO
TrajetóriasTrajetórias Definidas Definidas
Planejador de trajetórias Planejador de trajetórias off
off--line livre de colisões e line livre de colisões e
acompanhamento on
acompanhamento on--line line
da trajetória da trajetória
Planejador de trajetórias Planejador de trajetórias off
off--line e acompanhamento line e acompanhamento
on
on--line da trajetórialine da trajetória
Controlador de Posição Controlador de Posição Controlador de posição
Controlador de posição com detecção e desvio com detecção e desvio de obstáculos on
Programação Explícita
Programação Explícita
• Modos de controle para manipuladores
robóticos
Condições de Contorno da Trajetória Planejador de Planejador de Trajetórias Trajetórias da Trajetória Especificações da Trajetória Limites Dinâmicos do Manipulador)
(
),
(
),
(
),
(
)
(
,
)
(
),
(
t
t
v
t
t
p
t
t
t
Ω
φ
θ
θ
Programação Explícita
Programação Explícita
• Movimento desejado para o
manipulador robótico?
Sistema de Referência da Ferramenta Câmera
Sistema de Referência da Ferramenta Câmera
– Movimento do sistema
de coordenadas da
Sistema de Referência da FerramentaSistema de Referência do Punho
Sistema de Referência do Robô Ferramenta Sistema de Referência da Estação Sistema de Referência da Peça
Sistema de Referência da Ferramenta
Sistema de Referência do Punho
Sistema de Referência do Robô Ferramenta Sistema de Referência da Estação Sistema de Referência da Peça
de coordenadas da
ferramenta {T} relativo
ao da estação {S}
– Movimento
desacoplado das n
juntas do manipulador,
etc.
{S} {T}Programação Explícita
Programação Explícita
• Movimento desejado para o
manipulador robótico?
– Movimento desacoplado:
• Independe do manipulador, ferramentas, peças a • Independe do manipulador, ferramentas, peças a
serem manuseadas, etc.
– Problema básico:
• {Tinicial} → {Tfinal}
• Mudança de posição e orientação da ferramenta com relação à estação {S}
Programação Explícita
Programação Explícita
• Movimento desejado para o
manipulador robótico?
– No caso de trajetórias mais complexas:
• Seqüência de posições e orientações desejados • Seqüência de posições e orientações desejados
(intermediários às posições inicial {Tinicial} e final da ferramenta {Tfinal})
• Cada “ponto” intermediário: {Tintermediário}i
• Especifica-se atributos espaciais e temporais
Movimentos “suaves” (funções contínuas cujas derivadas
também são contínuas - 1ªs e às vezes 2ªs)
Evitar movimentos com variações bruscas de aceleração (Jerk)
Programação Explícita
Programação Explícita
• Movimento desejado para o
manipulador robótico?
{Tinicial}
•
•
Introdução
Introdução
•
•
Programação Explícita
Programação Explícita
––
Espaço das Juntas
Espaço das Juntas
–
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
–
Espaço Cartesiano
–
Observações
•
Programação Baseada em Modelos
•
Exercícios Recomendados
Espaço das Juntas
Espaço das Juntas
• Movimento desejado para o manipulador
robótico é descrito em função das variáveis
de junta
– Não causa problemas de singularidade
– Não é feita correspondência entre as variáveis
– Não é feita correspondência entre as variáveis
de junta e o espaço cartesiano
• Cada “ponto” é descrito como uma posição e orientação de {T} em relação a {S}
• Converte-se os “pontos” para variáveis de junta através da cinemática inversa
• Obtém-se uma função “suave” para cada uma das n juntas do manipuladorfunção “suave”
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Tem-se:
• O “ponto” inicial (t0, θ0) e o final (tf, θf)
– Deseja-se:
• Uma função “suave” para θ(t)
Função Contínua Função Contínua quanto à velocidade quanto à velocidade
• Uma função “suave” para θ(t)
t0 t θ0 θf f f
t
θ
θ
θ
θ
=
=
)
(
)
0
(
00
)
(
0
)
0
(
=
=
ft
θ
θ
&
&
P o li n ô m io d o 3 º G R A U P o li n ô m io d o 3 º G R A UEspaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– 4 coeficientes...
3 3 2 2 1 0.
.
.
)
(
t
=
a
+
a
t
+
a
t
+
a
t
θ
– Assim, para velocidade e aceleração:
– Substituindo as condições para t = 0 e t = t
f...
t
a
a
t
t
a
t
a
a
t
.
6
2
)
(
.
3
.
2
)
(
3 2 2 3 2 1+
=
+
+
=
θ
θ
&
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Obtém-se para as equações de posição e
velocidade:
0 0=
a
θ
2 3 2 1 1 3 3 2 2 1 0 0 0.
3
.
2
0
0
.
.
.
f f f f f ft
a
t
a
a
a
t
a
t
a
t
a
a
a
+
+
=
=
+
+
+
=
=
θ
θ
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Obtém-se os 4 coeficientes...
(
)
.
3
θ
θ
−
=
a
0
1 0 0=
=
a
a
θ
(
)
(
0)
3 3 0 2 2.
2
.
3
θ
θ
θ
θ
−
−
=
−
=
f f f ft
a
t
a
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos (MatLab)
– Para as condições: - Tem-se:
º
15
0=
θ
2 3.
44
,
4
.
20
15
)
(
t
=
+
t
−
t
θ
2−
=
θ
&
s
t
f3
º
75
=
∆
=
θ
t
t
t
t
t
.
66
,
26
40
)
(
.
33
,
13
.
40
)
(
2−
=
−
=
θ
θ
&
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Nos gráficos:
70 80 0 0.5 1 1.5 2 2.5 3 10 20 30 40 50 60 tempo [s] Â ng ul o [g ra us ] 3 2.
44
,
4
.
20
15
)
(
t
=
+
t
−
t
θ
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Nos gráficos:
30 35 2.
33
,
13
.
40
)
(
t
=
t
−
t
θ
&
0 0.5 1 1.5 2 2.5 3 0 5 10 15 20 25 30 tempo [s] V el oc id ad e A ng ul ar [ gr au s/ s]Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Nos gráficos:
30 40t
t
)
40
26
,
66
.
(
=
−
θ
&
&
0 0.5 1 1.5 2 2.5 3 -40 -30 -20 -10 0 10 20 tempo [s] A ce le ra çã o A ng ul ar [ gr au s/ s 2 ]θ
&
&
(
t
)
=
40
−
26
,
66
.
t
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Tem-se:
• O “ponto” inicial (t0, θ0) e o final (tf, θf) • Os “pontos” intermediários
– Deseja-se:
– Deseja-se:
• Uma função “suave” para θ(t)SEM PARAR em cada
“ponto” intermediário...
– Procedimento:
• Converter os pontos inicial, final e intermediário para as variáveis de junta através da cinemática inversa
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Agora as condições de contorno não são
nulas...
a
=
θ
f ft
θ
θ
θ
θ
&
&
&
&
=
=
)
(
)
0
(
0 2 3 2 1 1 0 3 3 2 2 1 0 0 0.
3
.
2
.
.
.
f f f f f f ft
a
t
a
a
a
t
a
t
a
t
a
a
a
+
+
=
=
+
+
+
=
=
θ
θ
θ
θ
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Obtém-se os 4 coeficientes...
(
)
2
1
.
3
θ
θ
θ
θ
−
−
& −
&
=
a
0 1 0 0θ
θ
&
=
=
a
a
(
)
(
0)
2(
0)
3 3 0 0 2 2.
1
.
2
1
2
.
3
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
+
+
−
−
=
−
−
−
=
f f f f f f f f ft
t
a
t
t
t
a
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Tendo as velocidades das juntas desejadas
para cada “ponto”, aplica-se as equações
anteriores para cada trecho.
– Especificação das velocidades:
– Especificação das velocidades:
1.
1. Via usuárioVia usuário: fornece para cada posição a
velocidade linear e angular no espaço cartesiano 2.
2. Via SistemaVia Sistema: velocidades escolhidas
automaticamente através de um processo heurístico
3.
3. Via SistemaVia Sistema: velocidades escolhidas
automaticamente para manter uma aceleração contínua
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Heurística:
• Se ocorre mudança de sinal na inclinação na linha tracejada → velocidade nula...
• Senão, a velocidade é obtida pela média das • Senão, a velocidade é obtida pela média das
inclinações t0 tA tB tC tD θD θC θB θA θ0
50 55
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Exemplo – “Pontos” desejados (MatLab)
θD θA 50 55 θD θA 0 2 4 6 8 10 12 10 15 20 25 30 35 40 45 Tempo [s] Â ng ul o [g ra us ] θC θB θA θ0 0 2 4 6 8 10 12 10 15 20 25 30 35 40 45 Tempo [s] Â ng ul o [g ra us ] θC θB θA θ0
50 55 50
55
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Exemplo – Ângulos da Junta
θD θA θA θD 0 2 4 6 8 10 12 10 15 20 25 30 35 40 45 Tempo [s] Â ng ul o [g ra us ] 0 2 4 6 8 10 12 10 15 20 25 30 35 40 45 Tempo [s] Â ng ul o [g ra us ] θC θB θA θ0 θC θB θA θ0
10 15
Espaço das Juntas
Espaço das Juntas
• Polinômios Cúbicos
– Exemplo - Velocidade
10 15 0 2 4 6 8 10 12 -20 -15 -10 -5 0 5 Tempo [s] V el oc id ad e [g ra us /s ] 0 2 4 6 8 10 12 -20 -15 -10 -5 0 5 Tempo [s] V el oc id ad e [g ra us /s ]Espaço das Juntas
Espaço das Juntas
• Polinômios de “Ordem mais Elevada”
– Empregados quando se deseja definir
posição, velocidade e aceleração no início e
o final do segmento da trajetória
– Polinômios de 5ª ordem:
– Polinômios de 5ª ordem:
• 6 coeficientes... 5 5 4 4 3 3 2 2 1 0.
.
.
.
.
)
(
t
=
a
+
a
t
+
a
t
+
a
t
+
a
t
+
a
t
θ
4 5 3 4 2 3 2 12
.
3
.
4
.
5
.
)
(
t
=
a
+
a
t
+
a
t
+
a
t
+
a
t
θ
&
3 5 2 4 3 26
.
12
.
20
.
2
)
(
t
=
a
+
a
t
+
a
t
+
a
t
θ
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem
– Obtém-se para as equações de posição,
velocidade e aceleração:
5 4 3 2+
+
+
+
+
=
θ
2 0 1 0 0 02a
a
a
=
=
=
θ
θ
θ
&
&
&
3 5 2 4 3 2 4 5 3 4 2 3 2 1 5 5 4 4 3 3 2 2 1 0.
20
.
12
.
6
2
.
5
.
4
.
3
.
2
.
.
.
.
.
f f f f f f f f f f f f f f ft
a
t
a
t
a
a
t
a
t
a
t
a
t
a
a
t
a
t
a
t
a
t
a
t
a
a
+
+
+
=
+
+
+
+
=
+
+
+
+
+
=
θ
θ
θ
&
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem
– Obtém-se os 6 coeficientes...
0 0=
θ
a
2 0 0 0 3).
.
3
(
).
.
12
.
8
(
.
20
.
20
f ft
f ft
fa
=
θ
−
θ
−
θ
&
+
θ
&
−
θ
&
&
−
θ
&
&
0 0
=
θ
a
5 2 0 0 0 5 4 2 0 0 0 4 3 3.
2
).
(
).
.
6
.
6
(
.
12
.
12
.
2
).
.
2
.
3
(
).
.
16
.
14
(
.
30
.
30
.
2
f f f f f f f f f f f f ft
t
t
a
t
t
t
a
t
a
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
&
&
&
&
&
&
&
&
−
−
+
−
−
=
−
+
+
+
−
=
=
0 1=
θ
&
a
2
0 2θ
&
&
=
a
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem (MatLab)
– Para as condições iniciais, tem-se:
º
15
0=
=
θ
θ
θ
&
0=
0
º
/
s
θ
&
&
0=
0
º
/
s
2s
t
t
f f3
º
75
=
=
∆
=
θ
s
f=
0
º
/
θ
&
2/
º
0
s
f=
θ
&
&
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem (MatLab)
– Obtém-se as equações:
5 4 3.
4815
,
1
.
11
,
11
.
22
,
22
15
)
(
t
=
+
t
−
t
+
t
θ
3 2 4 3 2 5 4 3.
63
,
29
.
32
,
133
.
32
,
133
)
(
.
4075
,
7
.
44
,
44
.
66
,
66
)
(
.
4815
,
1
.
11
,
11
.
22
,
22
15
)
(
t
t
t
t
t
t
t
t
t
t
t
t
+
−
=
+
−
=
+
−
+
=
θ
θ
θ
&
&
&
70 80
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem
– Nos gráficos:
0 0.5 1 1.5 2 2.5 3 10 20 30 40 50 60 70 tempo [s] Â ng ul o [g ra us ] 5 4 3.
4815
,
1
.
11
,
11
.
22
,
22
15
)
(
t
=
+
t
−
t
+
t
θ
35 40
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem
– Nos gráficos:
4 3 2.
4075
,
7
.
44
,
44
.
66
,
66
)
(
t
=
t
−
t
+
t
θ
&
0 0.5 1 1.5 2 2.5 3 -5 0 5 10 15 20 25 30 tempo [s] V el oc id ad e A ng ul ar [ gr au s/ s]30 40
Espaço das Juntas
Espaço das Juntas
• Polinômios de 5ª Ordem
– Nos gráficos:
0 0.5 1 1.5 2 2.5 3 -40 -30 -20 -10 0 10 20 tempo [s] A ce le ra çã o A ng ul ar [ gr au s/ s 2 ] 3 2.
63
,
29
.
32
,
133
.
32
,
133
)
(
t
=
t
−
t
+
t
θ
&
&
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Interpolação linear para mover a junta da
posição atual para a posição final
• Velocidade torna-se descontínua no início e no final do movimento...
movimento...
– Para obter uma trajetória “suave”: adiciona-se
trechos parabólicos...
• Emprega-se trechos de aceleração constante • Comportamento “suave” para a velocidade
• Comportamento contínuo para posição e velocidade • Diversas soluções são possíveis...
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
θf θ θf θ θh θf θ θf θ θh
– Como a velocidade na fronteira da parábola é igual à velocidade no segmento de reta:
b h b h b
t
t
t
−
−
=
θ
θ
θ
&
&
.
t0 tf θ0 t tb tf - tb t0 tf θ0 t th θh t0 tf θ0 t tb tf - tb t0 tf θ0 t th θh 2 0.
.
2
1
b bθ
θ
t
θ
=
+
&
&
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Assim, para t = 2.th:
0
)
(
.
.
.
2−
θ
+
θ
−
θ
0=
θ
&
&
t
b&
&
t
t
b fDuração desejada para o Movimento Duração desejada para o Movimento
θ
θ
θ
θ
θ
&
&
&
&
&
&
2
)
(
4
2
0 2 2−
−
−
=
f bt
t
t
4
(
2 0)
t
fθ
θ
θ
&
&
≥
−
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Tem-se:
• O “ponto” inicial (t0, θ0) e o final (tf, θf) • Os “pontos” intermediários
– Deseja-se:
– Deseja-se:
• Uma função “suave” para θ(t)SEM PARAR em cada
“ponto” intermediário...
– Procedimento:
• Segmentos lineares unem os pontos especificados; • Segmentos parabólicos suavizam o movimento.
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas (MatLab)
– Para as condições iniciais, tem-se:
º
15
=
θ
2 1=
40
º
/
s
θ
&
&
º
75
º
15
0=
=
fθ
θ
2 2 1/
º
30
/
º
40
s
s
=
=
θ
θ
&
&
&
&
70 80
70 80
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Nos gráficos:
0 0.5 1 1.5 2 2.5 3 10 20 30 40 50 60 tempo [s] Â ng ul o [g ra us ] 0 0.5 1 1.5 2 2.5 3 10 20 30 40 50 60 tempo [s] Â ng ul o [g ra us ]Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Nos gráficos:
25 30 25 30 0 0.5 1 1.5 2 2.5 3 0 5 10 15 20 tempo [s] V el oc id ad e A ng ul ar [ gr au s/ s] 0 0.5 1 1.5 2 2.5 3 0 5 10 15 20 tempo [s] V el oc id ad e A ng ul ar [ gr au s/ s]Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Nos gráficos:
20 30 30 40 0 0.5 1 1.5 2 2.5 3 -30 -20 -10 0 10 20 tempo [s] A ce le ra çã o A ng ul ar [ gr au s/ s 2 ] 0 0.5 1 1.5 2 2.5 3 -40 -30 -20 -10 0 10 20 tempo [s] A ce le ra çã o A ng ul ar [ gr au s/ s 2 ]Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Sejam:
• j, k e l 3 pontos consecutivos
• A duração do segmento que conecta os pontos j e k é tdjk
e k é tdjk
• A duração do segmento de parábola que conecta os pontos j e k é tk
• A duração do segmento de reta que conecta os pontos j e k é tjk
• A velocidade durante o trecho linear é
• A aceleração durante o trecho parabólico no ponto j é
j
θ
&
&
jk
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
θ θj tjk θ&kl td12 tk θi t tdjk θk θl jk θ&
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Dados:
• Todos os pontos desejados da trajetória:
• As durações desejadas dos trechos da trajetória: tdjk • A magnitude desejada da aceleração para cada
k
θ
• A magnitude desejada da aceleração para cada trecho:
– Obtém-se:
• A duração dos segmentos parabólicos que conectam os pontos da trajetória: tk
k
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Para os pontos internos à trajetória:
j k jk
t
−
=
θ
θ
θ
&
k j djk jk k jk kl k k jk kl k djk jkt
t
t
t
t
t
2
1
2
1
|
|
)
sgn(
−
−
=
−
=
−
=
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
&
&
&
&
&
&
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Para o 1º trecho da trajetória:
1 2 1 1
1
t
t
t
−
−
=
θ
θ
θ
&
&
2 1 12 12 1 1 2 2 12 12 1 1 12 1 2 12 1 1 2 1 1 122
1
)
(
2
2
1
|
|
)
sgn(
2
t
t
t
t
t
t
t
t
t
t
t
d d d d−
−
=
−
−
−
=
−
−
=
−
=
−
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
&
&
&
&
&
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Para o último trecho da trajetória:
1
1
−−
=
n n n nt
θ
θ
θ
&
&
&
&
1 ) 1 ( ) 1 ( 1 2 ) 1 ( ) 1 ( ) 1 ( 1 ) 1 ( 1 ) 1 (
2
1
)
(
2
2
1
|
|
)
sgn(
2
1
− − − − − − − − − − −−
−
=
−
−
−
=
−
−
=
−
=
−
n n n n d n n n n n n n d n n d n n n n d n n n n n n n n n n d n nt
t
t
t
t
t
t
t
t
t
t
θ
θ
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
&
&
&
&
&
50 55
Espaço das Juntas
Espaço das Juntas
• Funções Lineares e Parabólicas
– Exemplo – “Pontos” desejados (MatLab)
θD θA 0 2 4 6 8 10 12 10 15 20 25 30 35 40 45 Tempo [s] Â ng ul o [g ra us ] θC θB θA θ0 θ0
•
•
Introdução
Introdução
•
•
Programação Explícita
Programação Explícita
––
Espaço das Juntas
Espaço das Juntas
––
Espaço Cartesiano
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
––
Espaço Cartesiano
Espaço Cartesiano
–
Observações
•
Programação Baseada em Modelos
•
Exercícios Recomendados
Espaço Cartesiano
Espaço Cartesiano
• Movimento desejado para o manipulador
robótico é descrito em função de variáveis
Cartesianas
– Seqüência de “pontos” que fornecem a Posição
e Orientação da ferramenta em função do
e Orientação da ferramenta em função do
tempo
• Cada “ponto” é descrito como uma posição e
orientação de {T} em relação a {S} em Coordenadas Cartesianas
• Trajetórias mais comuns: segmentos de reta, arcos de circunferência, elipses, senoidais, etc.
Espaço Cartesiano
Espaço Cartesiano
• Movimento desejado para o manipulador
robótico é descrito em função de variáveis
Cartesianas
– Seqüência de “pontos” que fornecem a Posição
e Orientação da ferramenta em função do
e Orientação da ferramenta em função do
tempo
• Não é necessário converter inicialmente os “pontos” para variáveis de junta através da cinemática inversa • São Computacionalmente mais “caras” pois requerem a
solução da cinemática inversacinemática inversa do manipulador “em tempo real” (taxa de atualização – update rate)
Espaço Cartesiano
Espaço Cartesiano
• Movimento Retilíneo no Espaço Cartesiano
– Movimento comumente empregado
• Seleciona-se uma seqüência de pontos alinhados e próximos
• Emprega-se uma função “suave” para conectar os • Emprega-se uma função “suave” para conectar os
pontos
– Splines, p.e.: funções lineares e parabólicas – Componentes de posição: alinhados
– Componentes de orientação: Matriz de rotação » Não se pode usar interpolação linear
» Emprega-se então a representação ângulo-eixo (angle-axis)
Espaço Cartesiano
Espaço Cartesiano
• Problemas encontrados no Espaço
Cartesiano com Movimento Retilíneos
– Incompatibilidade com o espaço de trabalho e
singularidades
1. Pontos intermediários da Trajetória fora do espaço de 1. Pontos intermediários da Trajetória fora do espaço de
trabalho
Posição Inicial e Final
Posições intermediárias A
Espaço Cartesiano
Espaço Cartesiano
• Problemas encontrados no Espaço
Cartesiano com Movimento Retilíneos
– Incompatibilidade com o espaço de trabalho e
singularidades
2. Velocidades de Junta Elevadas quando próximos a 2. Velocidades de Junta Elevadas quando próximos a
singularidades
Manipulador desvia da
trajetória desejada...
B
Espaço Cartesiano
Espaço Cartesiano
• Problemas encontrados no Espaço
Cartesiano com Movimento Retilíneos
– Incompatibilidade com o espaço de trabalho e
singularidades
3. Posições inicial e final atingíveis em diferentes soluções 3. Posições inicial e final atingíveis em diferentes soluções
B A
•
•
Introdução
Introdução
•
•
Programação Explícita
Programação Explícita
––
Espaço das Juntas
Espaço das Juntas
––
Espaço Cartesiano
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
––
Espaço Cartesiano
Espaço Cartesiano
––
Observações
Observações
•
Programação Baseada em Modelos
•
Exercícios Recomendados
Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Trajetória usualmente gerada em termos de
– Enviadas para o Sistema de Controle do
Manipulador
junta
de
variáveis
e
(
)
→
)
(
),
(
t
θ
t
θ
t
θ
&
&
&
Manipulador
• Taxa de atualização (update rate)...
RobôRobô Sistema de Controle Gerador de Trajetória
τ
) (t dθ
& ) (t dθ
&& ) (t dθ
θ
θ
& RobôRobô Sistema de Controle Gerador de Trajetóriaτ
) (t dθ
& ) (t dθ
&& ) (t dθ
θ
θ
&Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço das Juntas
– Para splines cúbicas (polinômios de 3º grau)
• Todos os coeficientes das n splines cúbicas são • Todos os coeficientes das n splines cúbicas são
calculados previamente:
• Quando se chega ao final de um trecho da
trajetória, um novo conjunto de coeficientes do polinômio é empregado e t reiniciado como 0 (“zero”) 3 3 2 2 1 0
.
.
.
)
(
n n n n nt
=
a
n+
a
nt
+
a
nt
+
a
nt
θ
Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço das Juntas
– Para splines Lineares e Parabólicas
• O valor de t é verificado a cada atualização para determinar se o trecho atual é linear ou parabólico. determinar se o trecho atual é linear ou parabólico. Para o trecho linear:
0
.
=
=
+
=
θ
θ
θ
θ
θ
θ
&
&
&
&
&
jk jk jt
Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço das Juntas
– Para splines Lineares e Parabólicas
• O valor de t é verificado a cada atualização para determinar se o trecho atual é linear ou parabólico. determinar se o trecho atual é linear ou parabólico. Para o trecho parabólico:
(
)
k inb k jk inb k inb jk j jk j inbt
t
t
t
t
t
t
t
θ
θ
θ
θ
θ
θ
θ
θ
θ
&
&
&
&
&
&
&
&
&
&
&
=
+
=
+
−
+
=
+
−
=
.
.
2
1
)
.(
2
1
2 Para um novo trecho com spline linear e parabólica,t
é reiniciado comoObservações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço Cartesiano
– Para splines Lineares e Parabólicas
• Valores de posição e orientação representados no espaço cartesiano.
espaço cartesiano.
• x
representa a posição e orientação.• Para cada grau de liberdade, tem-se, no trecho linear:
0
.
=
=
+
=
x
x
x
t
x
x
x
jk jk j&
&
&
&
&
Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço Cartesiano
– Para splines Lineares e Parabólicas
• No trecho parabólico:
(
)
k inb k jk inb k inb jk j jk j inbx
x
t
x
x
x
t
x
t
t
x
x
x
t
t
t
t
&
&
&
&
&
&
&
&
&
&
&
=
+
=
+
−
+
=
+
−
=
.
.
2
1
)
.(
2
1
2Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço Cartesiano
– Para splines Lineares e Parabólicas
• Converte-se então a trajetória em coordenadas Cartesianas para variáveis de junta
x
,
x
& e
x
&
&
Cartesianas para variáveis de junta :
– Para posição: CINEMÁTICA INVERSACINEMÁTICA INVERSA
– Para velocidade: JACOBIANOJACOBIANO
– Para aceleração: JACOBIANO INVERSO e sua DERIVADAJACOBIANO INVERSO e sua DERIVADA
• Modo mais simples:
– Converter e empregar um SOLVER para se obter um vetor Θ com as variáveis de junta (taxa de aquisiçãotaxa de aquisição); – Diferenciação Numérica é então empregada:
x
x
x
,
& e
&
&
θ
θ
θ
,
& e
&
&
T em S
G
x
Θ Θ& e &&
Observações
Observações
• Geração de Trajetórias em “Tempo Real”
– Espaço Cartesiano
– Para splines Lineares e Parabólicas
• Algoritmo, para cada instante de tempo t:
t
t)
(t
(t)
(t)
t
t)
(t
(t)
(t)
SOLVE
(t)
SG S Gδ
δ
δ
δ
−
Θ
−
Θ
=
Θ
−
Θ
−
Θ
=
Θ
=
Θ
→
&
&
&
&
&
)
(
T
T
x
Θ ΘΘ, & e &&
Envia-se
para o sistema de controle do Manipulador
Observações
Observações
• Planejar Trajetórias com o Modelo Dinâmico
– Em geral, considera-se um valor padrão ou
máximo de aceleração na geração de
trajetórias
• Função da dinâmica do Manipulador e de seus limites • Função da dinâmica do Manipulador e de seus limites • Atuadores são caracterizados:
– Não por torque e aceleração máximos... – Por curvas de torque vs. velocidade
• Induz-se Simplificações:
– Considerar uma aceleração máxima (“conservadora”) para cada junta do manipulador
– Não se aproveita completamente as capacidades de velocidade do atuador...
Observações
Observações
• Planejar Trajetórias com o Modelo Dinâmico
– Para se obter o tempo mínimo para um
manipulador atingir uma posição ou executar
uma trajetória:
• Modelo Dinâmico do Manipulador • Modelo Dinâmico do Manipulador
• Curvas de torque x velocidade dos atuadores Soluções Numéricas são empregadas...
Observações
Observações
• Uso de Quartenions
– Comparação entre o uso de quartenions e matrizes
Operação
Operação QuartenionsQuartenions MatrizesMatrizes Operação
Operação QuartenionsQuartenions MatrizesMatrizes
R1R2 9 (+) e 16 (x) 15 (+) e 24 (x) Rv 12 (+) e 22 (x) 6 (+) e 9 (x) R → Rol(n,θθθθ) 24 (x), 1 (√) e 1 (arctan) 8 (+), 10 (x), 2 (√) e 1 (arctan)
•
•
Introdução
Introdução
•
•
Programação Explícita
Programação Explícita
––
Espaço das Juntas
Espaço das Juntas
––
Espaço Cartesiano
Espaço Cartesiano
Sumário da Aula
Sumário da Aula
––
Espaço Cartesiano
Espaço Cartesiano
––
Observações
Observações
•
•
Programação Baseada em Modelos
Programação Baseada em Modelos
•
Exercícios Recomendados
Programação baseada em Modelos
Programação baseada em Modelos
• Planejar Trajetórias Livres de Colisões
– Colisões com obstáculos:
• Fixos (máquinas, paredes, grades, etc.)
• Móveis (pessoas, objetos, outros manipuladores, etc.)
– Não disponíveis comercialmente...
– Não disponíveis comercialmente...
– O sistema deve ter modelos:
• Do manipulador;
• Da área de trabalho;
• Planejar Trajetórias livres de Colisões
– Várias técnicas são aplicadas:
• Modelar o espaço livre da área de trabalho
empregando a Teoria de GrafosTeoria de Grafos e encontrar uma trajetória livre de colisões
Programação baseada em Modelos
Programação baseada em Modelos
trajetória livre de colisões
– Complexidade exponencial no número de juntas do manipulador...
• Empregar Campos de Potencial ArtificialCampos de Potencial Artificial ao redor dos obstáculos e um pólo de atração na posição desejada
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
• Robô PUMA com garra de 3 dedos • 6 Graus de Liberdade
Programação baseada em Modelos
Programação baseada em Modelos
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
• Manipulador com n graus de liberdade
• Representação no Espaço de Configurações:
– Configuration Space (C-space): Conjunto de parâmetros
Programação baseada em Modelos
Programação baseada em Modelos
– Configuration Space (C-space): Conjunto de parâmetros que definem completamente a posição de qualquer ponto do manipulador ou obstáculo (fixo ou móvel) dentro de seu espaço de trabalho.
– Forma de representação: » Espaço das Juntas » Espaço Cartesiano
Espaço das Juntas
Espaço Cartesiano
Multiplicidade de Soluções
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
• Mapeia-se os obstáculos no Espaço de Configurações
– C-Space Obstacles (Figura para um manipulador RRR)
Programação baseada em Modelos
Programação baseada em Modelos
• Espaço Livre: complemento do C-Space Obstacles
θ1 θ2 θ3 θ2 θ2 a3 b3 a 3 b3 θ3 R1
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
• Espaço livre é obtido para cada junta • n juntas → n C-spaces...
Programação baseada em Modelos
Programação baseada em Modelos
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
Programação baseada em Modelos
Programação baseada em Modelos
1
θ2
2π
Um manipulador com 2 juntas rotacionais (RR) e obstáculos no espaço cartesiano (2D) e no espaço das juntas (C-space)
1 2 1 2 θ1 2π 0
• Planejar Trajetórias livres de Colisões
– Exemplo: Lozano-Pérez (1987)
Programação baseada em Modelos
Programação baseada em Modelos
2
Um manipulador com 3 juntas rotacionais (RRR) e obstáculos no espaço cartesiano (2D) e no espaço das juntas (C-space)