PIANIFICAZIONE DI TRAIETTORIE Percorso e traiettoria Traiettorie

Transcript

PIANIFICAZIONE DI TRAIETTORIE Percorso e traiettoria Traiettorie
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
PIANIFICAZIONE DI TRAIETTORIE
• generazione degli ingressi di riferimento per il sistema di
controllo del moto
Percorso e traiettoria
Traiettorie nello spazio dei giunti
Traiettorie nello spazio operativo
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
PERCORSO E TRAIETTORIA
⋆ generazione di traiettorie a curvatura regolare
• Percorso: luogo dei punti dello spazio dei giunti (spazio
operativo) che il manipolatore deve descrivere nell’esecuzione
del movimento assegnato (descrizione geometrica)
• Traiettoria: percorso su cui sia specificata la legge oraria di
moto (ad es. velocità e/o accelerazioni)
• Algoritmo di pianificazione della traiettoria
⋆ ingressi
definizione del percorso
vincoli al percorso
vincoli dovuti alla dinamica del manipolatore
⋆ uscita
traiettorie dei giunti (o dell’organo terminale) espresse come
sequenza temporale di valori assunti da posizione, velocità
e accelerazione
CONTROLLO DEI ROBOT
• Numero ristretto di parametri
⋆ percorso
punti estremi
eventuali punti intermedi
primitive geometriche
⋆ legge di moto
tempo complessivo
velocità e/o accelerazione max
velocità e/o accelerazione in punti assegnati
• Traiettorie nello spazio operativo
⋆ descrizione naturale del compito
⋆ vincoli sul percorso
⋆ singolarità
⋆ ridondanza
• Traiettorie nello spazio dei giunti
⋆ inversione cinematica
⋆ azione di controllo
Prof. Bruno SICILIANO
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
TRAIETTORIE NELLO SPAZIO DEI GIUNTI
• Generazione di una funzione q(t) che interpola i valori
assegnati per le variabili di giunto nel rispetto dei vincoli
imposti.
⋆ traiettorie generate poco onerose dal punto di vista
computazionale
⋆ posizioni e velocità (e accelerazioni) dei giunti funzioni
continue del tempo
⋆ effetti indesiderati minimizzati (ad es. traiettorie a curvatura
non regolare)
• Moto punto–punto
⋆ punti estremi e tempo di transizione
• Moto attraverso una sequenza di punti
⋆ punti estremi, punti intermedi e tempi di transizione
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Moto punto–punto
⋆ generazione di q(t) che realizza il moto da qi a qf in un
tempo tf
• Polinomio cubico
q(t) = a3 t3 + a2 t2 + a1 t + a0
q̇(t) = 3a3 t2 + 2a2 t + a1
q̈(t) = 6a3 t + 2a2
⋆ calcolo dei coefficienti
a 0 = qi
a1 = q̇i
a3 t3f + a2 t2f + a1 tf + a0 = qf
3a3 t2f + 2a2 tf + a1 = q̇f
• Polinomio quintico (accelerazioni iniziale e finale)
q(t) = a5 t5 + a4 t4 + a3 t3 + a2 t2 + a1 t + a0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
3
2
1
0
0
0.2
0.4
0.6
[s]
0.8
1
0.8
1
0.8
1
vel
5
[rad/s]
4
3
2
1
0
0
0.2
0.4
0.6
[s]
acc
20
[rad/s^2]
10
0
−10
−20
0
0.2
0.4
0.6
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Profilo di velocità trapezoidale
q̈c tc =
qm − qc
tm − tc
1
qc = qi + q̈c t2c
2
q̈c t2c − q̈c tf tc + qf − qi = 0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• q̈c assegnata (sgn q̈c = sgn (qf − qi ))
s
1 t2f q̈c − 4(qf − qi )
tf
−
tc =
2
2
q̈c
|q̈c | ≥
4|qf − qi |
t2f
⋆ traiettoria

1
2

 qi + 2 q̈c t
q(t) = qi + q̈c tc (t − tc /2)


qf − 21 q̈c (tf − t)2
0 ≤ t ≤ tc
tc < t ≤ tf − tc
tf − tc < t ≤ tf
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
3
2
1
0
0
0.2
0.4
0.6
[s]
0.8
1
0.8
1
0.8
1
vel
5
[rad/s]
4
3
2
1
0
0
0.2
0.4
0.6
[s]
acc
20
[rad/s^2]
10
0
−10
−20
0
0.2
0.4
0.6
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• q̇c assegnata
|qf − qi |
2|qf − qi |
< |q̇c | ≤
tf
tf
tc =
qi − qf + q̇c tf
q̇c
q̇c2
q̈c =
qi − qf + q̇c tf
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Moto attraverso una sequenza di punti
⋆ opportunità di specificare punti intermedi (sequenza di
punti)
• Assegnati N punti di percorso, trovare una funzione
interpolante che passi per tali punti
⋆ polinomio di grado N − 1
non è possibile assegnare velocità iniziale e finale
al crescere del grado di un polinomio aumenta il suo
carattere oscillatorio (traiettorie poco naturali)
l’accuratezza numerica con cui può essere calcolato un
polinomio peggiora all’aumentare del suo grado
una volta impostato il sistema di equazioni dei vincoli,
risulta oneroso risolverlo
i coefficienti del polinomio dipendono da tutti i punti
assegnati =⇒ se si vuole cambiare uno dei punti di
percorso, si deve ricalcolare il tutto
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenze di polinomi interpolatori di grado più basso (cubici)
uniti tra di loro nei punti assegnati lungo il percorso
⋆ i valori di q̇(t) in corrispondenza dei punti di percorso sono
imposti arbitrariamente
⋆ i valori di q̇(t) in corrispondenza dei punti di percorso sono
assegnati in base ad un opportuno criterio
⋆ l’accelerazione q̈(t) deve essere continua in corrispondenza
dei punti di percorso
• Sequenze di polinomi di grado minore di tre (passaggio in
prossimità dei punti di percorso imposti)
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenza di polinomi con vincoli imposti sulle velocità nei
punti di percorso
Πk (tk ) = qk
Πk (tk+1 ) = qk+1
Π̇k (tk ) = q̇k
Π̇k (tk+1 ) = q̇k+1
⋆ continuità delle velocità nei punti intermedi
Π̇k (tk+1 ) = Π̇k+1 (tk+1 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
6
4
2
0
0
2
4
6
4
6
4
6
[s]
vel
[rad/s]
5
0
−5
0
2
[s]
acc
[rad/s^2]
20
0
−20
−40
0
2
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenza di polinomi con velocità calcolate nei punti di
percorso
q̇1 = 0
0
q̇k = 1
2 (vk
+ vk+1 )
sgn (vk ) 6= sgn (vk+1 )
sgn (vk ) = sgn (vk+1 )
q̇N = 0
vk = (qk − qk−1 )/(tk − tk−1 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
6
4
2
0
0
2
4
6
4
6
4
6
[s]
vel
[rad/s]
5
0
−5
0
2
[s]
acc
30
[rad/s^2]
20
10
0
−10
−20
−30
0
2
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenza di polinomi con accelerazione continua nei punti di
percorso (spline)
Πk−1 (tk ) = qk
Πk−1 (tk ) = Πk (tk )
Π̇k−1 (tk ) = Π̇k (tk )
Π̈k−1 (tk ) = Π̈k (tk )
⋆ 4N − 2 equazioni nei 4(N − 1) coefficienti incogniti
(polinomi di quarto grado per il primo e l’ultimo segmento?)
⋆ 2 punti virtuali (continuità su posizione, velocità e
accelerazione) =⇒ N + 1 polinomi cubici
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
⋆ 4(N − 2) equazioni per gli N − 2 punti di percorso interni:
Πk−1 (tk ) = qk
Πk−1 (tk ) = Πk (tk )
Π̇k−1 (tk ) = Π̇k (tk )
Π̈k−1 (tk ) = Π̈k (tk )
⋆ 6 equazioni per i punti iniziale e finale
Π1 (t1 ) = qi
Π̇1 (t1 ) = q̇i
Π̈1 (t1 ) = q̈i
ΠN +1 (tN +2 ) = qf
Π̇N +1 (tN +2 ) = q̇f
Π̈N +1 (tN +2 ) = q̈f
⋆ 6 equazioni per i punti virtuali
Πk−1 (tk ) = Πk (tk )
Π̇k−1 (tk ) = Π̇k (tk )
Π̈k−1 (tk ) = Π̈k (tk )
⇓
⋆ Sistema di 4(N + 1) equazioni per la determinazione dei
4(N + 1) coefficienti degli N + 1 polinomi cubici
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
⋆ algoritmo efficiente dal punto di vista computazionale
Π̈k (t) =
Πk (t) =
Π̈k (tk+1 )
Π̈k (tk )
(tk+1 − t) +
(t − tk )
∆tk
∆tk
Π̈k (tk )
Π̈k (tk+1 )
(tk+1 − t)3 +
(t − tk )3
6∆tk
6∆tk
!
Πk (tk+1 ) ∆tk Π̈k (tk+1 )
(t − tk )
−
+
∆tk
6
!
Πk (tk ) ∆tk Π̈k (tk )
+
(tk+1 − t)
−
∆tk
6
⋆ 4 incognite: Πk (tk ), Πk (tk+1 ), Π̈k (tk ) e Π̈k (tk+1 )
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
⋆ N variabili qk per k 6= 2, N + 1 assegnate
⋆ vincoli di continuità su q2 e qN +1
⋆ vincoli di continuità su qk per k = 3, . . . , N
⋆ q̇i e q̇f assegnate
⋆ vincoli di continuità su q̈k per k = 2, . . . , N + 1
⋆ q̈i e q̈f assegnate
⇓
Π̇1 (t2 ) = Π̇2 (t2 )
..
.
Π̇N (tN +1 ) = Π̇N +1 (tN +1 )
⋆ sistema di equazioni lineari
T
A [ Π̈2 (t2 ) . . . Π̈N +1 (tN +1 ) ] = b
a11
 a21
 .
A=
 ..
 0

0
a12
a22
..
.
0
0
...
...
..
.
0
0
..
.
. . . aN −1,N −1
...
aN,N −1
0
0
..
.
aN −1,N
aN N






CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
6
4
2
0
0
1
2
3
4
5
3
4
5
3
4
5
[s]
vel
[rad/s]
5
0
−5
0
1
2
[s]
acc
30
20
[rad/s^2]
10
0
−10
−20
−30
0
1
2
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenza di polinomi parabolico-lineari con passaggio in
prossimità di punti di via
qk − qk−1
∆tk−1
q̇k,k+1 − q̇k−1,k
q̈k =
∆t′k
q̇k−1,k =
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Esempio
pos
[rad]
6
4
2
0
0
1
2
3
4
5
3
4
5
3
4
5
[s]
vel
4
[rad/s]
2
0
−2
−4
−6
0
1
2
[s]
acc
40
[rad/s^2]
20
0
−20
−40
0
1
2
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Applicazione della legge trapezoidale al problema dell’interpolazione
pos
5
[rad]
4
3
2
1
0
0
0.5
1
[s]
1.5
2
1.5
2
1.5
2
vel
4
[rad/s]
3
2
1
0
0
0.5
1
[s]
acc
[rad/s^2]
20
10
0
−10
−20
0
0.5
1
[s]
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
TRAIETTORIE NELLO SPAZIO OPERATIVO
• Sequenze di punti assegnati
⋆ inversione cinematica
⋆ traiettorie nello spazio dei giunti
⋆ microinterpolazione
• Punti di percorso x(tk )
⋆ componenti xi (tk ) raccordate secondo sequenze di
polinomi interpolatori
• Primitive di percorso
⋆ espressione analitica del moto
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Primitive di percorso
• Rappresentazione parametrica di una curva nello spazio
p = f (s)
t=
dp
ds
1 d2 p
n= 2 2
d p ds
ds2 b=t×n
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Segmento nello spazio
p(s) = pi +
s
(pf − pi )
kpf − pi k
1
dp
=
(pf − pi )
ds
kpf − pi k
d2 p
=0
ds2
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Circonferenza nello spazio


ρ cos (s/ρ)
p (s) =  ρ sin (s/ρ) 
0
′
p(s) = c + Rp′ (s)


−sin (s/ρ)
dp
= R  cos (s/ρ) 
ds
0


−cos
(s/ρ)/ρ
d2 p
= R  −sin (s/ρ)/ρ 
2
ds
0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
Traiettorie di posizione e di orientamento
• Posizione p = f (s)
⋆ s(t) polinomio interpolatore
ṗ = ṡ
dp
= ṡt
ds
⋆ segmento
p(s) = pi +
s
(pf − pi )
kpf − pi k
ṗ =
ṡ
(pf − pi ) = ṡt
kpf − pi k
p̈ =
s̈
(pf − pi ) = s̈t
kpf − pi k
⋆ circonferenza


ρ cos (s/ρ)
p(s) = c + R  ρ sin (s/ρ) 
0


−ṡ sin (s/ρ)
ṗ = R  ṡ cos (s/ρ) 
0
 2

−ṡ cos (s/ρ)/ρ − s̈ sin (s/ρ)
p̈ = R  −ṡ2 sin (s/ρ)/ρ + s̈ cos (s/ρ) 
0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Sequenza di punti
pe = p0 +
N
X
j=1
sj
(pj − pj−1 )
kpj − pj−1 k
0

sj (t) = s′j (t)

kpj − pj−1 k
j = 1, . . . , N
0 ≤ t ≤ tj−1
tj−1 < t < tj
tj ≤ t ≤ tf
⇓
ṗe =
N
X
j=1
p̈e =
N
X
j=1
N
X
ṡj
ṡj tj
(pj − pj−1 ) =
kpj − pj−1 k
j=1
N
X
s̈j
s̈j tj
(pj − pj−1 ) =
kpj − pj−1 k
j=1
• Punti di via

0
sj (t) = s′j (t + ∆tj )

kpj − pj−1 k
∆tj = ∆tj−1 + δtj
0 ≤ t ≤ tj−1 − ∆tj
tj−1 − ∆tj < t < tj − ∆tj
tj − ∆tj ≤ t ≤ tf − ∆tN
j = 1, . . . , N
∆t0 = 0
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
• Orientamento
⋆ interpolazione delle componenti di n(t), s(t), a(t) ?
⋆ interpolazione di φ(t)
s
(φf − φi )
kφf − φi k
ṡ
(φf − φi )
φ̇ =
kφf − φi k
s̈
φ̈ =
(φf − φi )
kφf − φi k
φ(s) = φi +
⋆ asse equivalente di rotazione (Rf = Ri Rfi )
Rfi
=
RiT Rf

r11
=  r21
r31
r12
r22
r32

r13
r23 
r33
r11 + r22 + r33 − 1
2


r32 − r23
1
i
 r13 − r31 
r =
2 sin ϑf
r21 − r12
ϑf = cos −1
Ri (t):
Ri (0) = I
Ri (tf ) = Rfi
R(t) = Ri Rri (ϑ(t))
ϑ(0) = 0
ϑ(tf ) = ϑf
CONTROLLO DEI ROBOT
Prof. Bruno SICILIANO
ω i = ϑ̇ r i
ω̇ i = ϑ̈ r i
⇓
Re (t) = Ri Ri (t)
ωe (t) = Ri ω i (t)
ω̇e (t) = Ri ω̇ i (t)