Documente Academic
Documente Profesional
Documente Cultură
Facoltà di Ingegneria
Corso di Laurea Specialistica in Ingegneria Informatica
PIANIFICAZIONE E CONTROLLO
DEL MOTO DI VEICOLI
CON RIMORCHIO
Relatore:
Chiar.mo Prof. AURELIO PIAZZI
Correlatore:
Ing. GABRIELE LINI
i
ii
Introduzione 1
1 Pianificazione di traiettorie 3
1.1 Robotica mobile . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Inversione dinamica di percorso . . . . . . . . . . . . . . . . . 5
1.3 Veicolo con rimorchio . . . . . . . . . . . . . . . . . . . . . . . 9
2 Le η 4 -spline 13
2.1 Derivazione geometrica delle equazioni . . . . . . . . . . . . . 14
2.2 Calcolo dei coefficienti . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Generalizzazione sulle η k -spline . . . . . . . . . . . . . . . . . 25
2.4 Esempi di percorsi . . . . . . . . . . . . . . . . . . . . . . . . 27
iii
INDICE iv
6 Simulazione 68
6.1 Descrizione dell’ambiente . . . . . . . . . . . . . . . . . . . . . 68
6.1.1 Dimensioni veicolo con rimorchio . . . . . . . . . . . . 69
6.1.2 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.2 Scenario Labirinto . . . . . . . . . . . . . . . . . . . . . . . . 71
6.3 Scenario Parcheggio parallelo . . . . . . . . . . . . . . . . . . . 74
6.3.1 Una manovra - indietro/avanti . . . . . . . . . . . . . . 74
6.4 Scenario Parcheggio Perpendicolare . . . . . . . . . . . . . . . 77
6.4.1 Una manovra - avanti/indietro . . . . . . . . . . . . . . 77
6.4.2 Due manovre - avanti/indietro/avanti . . . . . . . . . . 80
6.5 Simulazione del controllo . . . . . . . . . . . . . . . . . . . . . 83
Conclusioni 88
Bibliografia 103
Elenco delle figure
vi
ELENCO DELLE FIGURE vii
1
Introduzione 2
Pianificazione di traiettorie
3
Capitolo 1. Pianificazione di traiettorie 4
y([0, t1 ]) = Γ (1.1)
A partire dai parametri messi in evidenza nella Figura 1.1, si ottiene facil-
mente il seguente modello
ẋ(t) = v(t) cos θ(t)
ẏ(t) = v(t) sin θ(t) (1.2)
θ̇(t) = ω(t)
Ora, il problema di pianificazione del moto che si sta affrontando, può esse-
re visto come un problema di raggiungibilità nello spazio degli stati estesi.
Quindi, il Problema 1.1 si trasforma nel seguente modo:
Problema 1.2. Dato un qualsiasi tempo finale tf > 0 trovare degli ingressi
di controllo v(·), ω(·) ∈ C 1 ([0, tf ]) tali che il robot mobile, partendo da un
arbitrario stato esteso iniziale
θA = θ(0)
vA = v(0)
v̇A = v̇(0)
ωA = ω(0)
ω̇A = ω̇(0)
Definizione 1.1 (curva). Una curva sul piano {x, y} può essere descritta
dalla mappa
p : [u0 , u1 ] → R2 , p(u) = [α(u) β(u)]T (1.4)
Dalla Proposizione 1.1 risulta evidente che per risolvere il problema di inver-
sione dinamica di percorso con v(t) 6= 0, il percorso dato Γ deve essere una
curva G3 ; per la dimostrazione di tale proposizione si rimanda all’articolo [2].
Dal punto di vista matematico la Proposizione 1.1 non è sufficiente per risol-
vere il problema di pianificazione di traiettorie per il veicolo con rimorchio.
Per risolvere questo problema è necessario introdurre la continuità geometrica
del quarto ordine (G4 ) e la successiva definizione di percorso.
....
una curva G3 , p (u) è continua a tratti e la derivata seconda della curvatura
scalare rispetto alla lunghezza dell’arco s è continua lungo la curva.
• v velocità del punto medio dell’asse delle ruote posteriori del veicolo
trainante;
v1 = v cos (θ0 − θ1 )
v
ω1 = sin (θ0 − θ1 )
d1
θ̇1 = ω1
x1 + j y1 = x0 + j y0 + d1 ej(π+θ1 ) . (1.6)
Le η 4-spline
13
Capitolo 2. Le η 4 -spline 14
p(0) = pA (2.6a)
p(1) = pB (2.6b)
" #
cos θA
ṗ(0) = η1 (2.6c)
sin θA
" #
cos θB
ṗ(1) = η2 (2.6d)
sin θB
κ(0) = κA (2.6e)
κ(1) = κB (2.6f)
dκ
(0) = κ̇A (2.6g)
ds
dκ
(1) = κ̇B (2.6h)
ds
d2 κ
2
(0) = κ̈A (2.6i)
ds
d2 κ
(1) = κ̈B (2.6j)
ds2 " #
cos θ
A
< p̈(0), > = η3 (2.6k)
sin θ
A
" #
cos θB
< p̈(1), > = η4 (2.6l)
sin θ B
" #
... cos θ
A
< p (0),
> = η5 (2.6m)
sin θA
" #
... cos θ B
< p (1), > = η6 (2.6n)
sin θB
" #
.... cos θ
< p (0),
A
> = η7 (2.6o)
sin θ A
" #
.... cos θ
B
< p (1), > = η8 (2.6p)
sin θB
con
η1 , η2 > 0, ηi ∈ R con i = 3, . . . , 8.
Capitolo 2. Le η 4 -spline 17
η = [η1 η2 η3 η4 η5 η6 η7 η8 ]T
α0 = xA (2.7)
β0 = yA . (2.8)
α0 + α1 + α2 + α3 + α4 + α5 + α6 + α7 + α8 + α9 = xA (2.9)
β0 + β1 + β2 + β3 + β4 + β5 + β6 + β7 + β8 + β9 = yA . (2.10)
ηi ∈ R+ con i = 1, 2.
Quindi dalle equazioni (2.6c), (2.6d), (2.11), (2.14) e (2.15) si può scrivere
α1 = η1 cos θA (2.16)
β1 = η1 sin θA (2.17)
α1 + 2α2 + 3α3 + 4α4 + 5α5 + 6α6 + 7α7 + 8α8 + 9α9 = η2 cos θB (2.18)
β1 + 2β2 + 3β3 + 4β4 + 5β5 + 6β6 + 7β7 + 8β8 + 9β9 = η2 sin θB (2.19)
Anche in questo caso si riescono a determinare altri due coefficienti del siste-
ma (2.6): α1 e β1 .
Ricordando la definizione geometrica di curvatura derivante dalla teoria delle
curve planari si può scrivere
α̇β̈ − α̈β̇
κ(u) = (u). (2.20)
(α̇2 + β̇ 2 )3/2
Capitolo 2. Le η 4 -spline 19
quindi, esplicitamente:
α̇(1)β̈(1) − α̈(1)β̇(1)
κ(1) = = κB . (2.25)
η23
"... #
... α(u)
p (u) = ... (2.28)
β (u)
con
...
α(u) = 6α3 + 24α4 u + 60α5 u2 + 120α6 u3 +
+ 210α7 u4 + 336α8 u5 + 509α9 u6 (2.29)
...
β (u) = 6β3 + 24β4 u + 60β5 u2 + 120β6 u3 +
+ 210β7 u4 + 336β8 u5 + 509β9 u6 . (2.30)
Infine ".... #
.... α (u)
p (u) = .... (2.31)
β (u)
con
....
α (u) = 24α4 + 120α5 u + 360α6 u2 +
+ 840α7 u3 + 1680α8 u4 + 3024α9 u5 (2.32)
....
β (u) = 24β4 + 120β5 u + 360β6 u2 +
+ 840β7 u3 + 1680β8 u4 + 3024β9 u5 . (2.33)
Dato che il sistema (2.6) risulta lineare e con soluzione unica, la dimostra-
zione formale della Proposizione 2.1 è il risultato del calcolo esplicito dei
coefficienti.
ηi = 0 con i = 3, . . . , 8.
α0 = xA (2.37)
α1 = η1 cos θA (2.38)
1
α2 = − η12 κA sin θA (2.39)
2
1
α3 = − η13 κ̇A sin θA (2.40)
6
1 4
η1 3 κ3A + κ̈A sin θA
α4 = − (2.41)
24
α5 = 126 (xB − xA ) − 70 η1 cos θA − 56 η2 cos θB +
35 2 5 4 3 5 3 5 4
+ η κA + η1 κA + η1 κ̇A + η κ̈A sin θA −
2 1 8 2 24 1
Capitolo 2. Le η 4 -spline 23
21 2 1 4 3 3 1 4
− η κB + η2 κB − η2 κ̇B + η κ̈B sin θB (2.42)
2 2 8 24 2
α6 = − 420 (xB − xA ) + 224 η1 cos θA + 196 η2 cos θB −
105 2 5 4 3 20 3 5 4
− η κA + η1 κA + η κ̇A + η κ̈A sin θA +
2 1 4 3 1 12 1
77 2 1 4 3 23 3 1 4
+ η κB + η2 κB − η κ̇B + η2 κ̈B sin θB (2.43)
2 2 2 6 2 6
α7 = 540 (xB − xA ) − 280 η1 cos θA − 260 η2 cos θB +
2 5 4 3 15 3 5 4
+ 63 η1 κA + η1 κA + η κ̇A + η κ̈A sin θA −
4 2 1 12 1
2 3 4 3 11 3 1 4
− 53 η2 κB + η2 κB − η κ̇B + η2 κ̈B sin θB (2.44)
4 2 2 4
α8 = − 315 (xB − xA ) + 160 η1 cos θA + 155 η2 cos θB −
2 5 4 3 3 5 4
− 35 η1 κA + η1 κA + 4 η1 κ̇A + η κ̈A sin θA +
8 24 1
65 2 1 4 3 7 3 1 4
+ η κB + η2 κB − η2 κ̇B + η2 κ̈B sin θB (2.45)
2 2 2 2 6
α9 = 70 (xB − xA ) − 35 η1 cos θA − 35 η2 cos θB +
15 2 1 4 3 5 3 1 4
+ η κA + η1 κA + η1 κ̇A + η κ̈A sin θA −
2 1 8 6 24 1
15 2 1 4 3 5 3 1 4
− η κB + η2 κB − η2 κ̇B + η κ̈B sin θB (2.46)
2 2 8 6 24 2
β0 = y A (2.47)
β1 = η1 sin θA (2.48)
1
β2 = η12 κA cos θA (2.49)
2
1
β3 = η13 κ̇A cos θA (2.50)
6
1 4
η1 3 κ3A + κ̈A cos θA
β4 = (2.51)
24
β5 = 126 (yB − yA ) − 70 η1 sin θA − 56 η2 sin θB −
35 2 5 4 3 5 3 5 4
− η κA + η1 κA + η1 κ̇A + η κ̈A cos θA +
2 1 8 2 24 1
Capitolo 2. Le η 4 -spline 24
21 2 1 4 3 3 1 4
+ η κB + η2 κB − η2 κ̇B + η κ̈B cos θB (2.52)
2 2 8 24 2
β6 = − 420 (yB − yA ) + 224 η1 sin θA + 196 η2 sin θB +
105 2 5 4 3 20 3 5 4
+ η κA + η1 κA + η κ̇A + η κ̈A cos θA −
2 1 4 3 1 12 1
77 2 1 4 3 23 3 1 4
− η κB + η2 κB − η κ̇B + η2 κ̈B cos θB (2.53)
2 2 2 6 2 6
β7 = 540 (yB − yA ) − 280 η1 sin θA − 260 η2 sin θB −
2 5 4 3 15 3 5 4
− 63 η1 κA + η1 κA + η κ̇A + η κ̈A cos θA +
4 2 1 12 1
2 3 4 3 11 3 1 4
+ 53 η2 κB + η2 κB − η κ̇B + η2 κ̈B cos θB (2.54)
4 2 2 4
β8 = − 315 (yB − yA ) + 160 η1 sin θA + 155 η2 sin θB +
2 5 4 3 3 5 4
+ 35 η1 κA + η1 κA + 4 η1 κ̇A + η κ̈A cos θA −
8 24 1
65 2 1 4 3 7 3 1 4
− η κB + η2 κB − η2 κ̇B + η2 κ̈B cos θB (2.55)
2 2 2 2 6
β9 = 70 (yB − yA ) − 35 η1 sin θA − 35 η2 sin θB −
15 2 1 4 3 5 3 1 4
− η κA + η1 κA + η1 κ̇A + η κ̈A cos θA +
2 1 8 6 24 1
15 2 1 4 3 5 3 1 4
+ η κB + η2 κB − η2 κ̇B + η κ̈B cos θB . (2.56)
2 2 8 6 24 2
Alla luce di quanto affermato, il sistema introdotto in (2.6) può essere gene-
ralizzato nel modo seguente
p(0) = pA (2.57a)
p(1) = pB (2.57b)
" #
cos θ
A
ṗ(0) = η1 (2.57c)
sin θA
" #
cos θ B
ṗ(1) = η2 (2.57d)
sin θB
κ(0) = κA (2.57e)
κ(1) = κB (2.57f)
···
···
d(k−2) κ
(k−2)
(k−2) (0) = κA
(2.57g)
ds
d(k−2) κ (k−2)
(1) = κB (2.57h)
ds (k−2)
" #
cos θ
A
< p̈(0), > = η3 (2.57i)
sin θA
" #
cos θ B
< p̈(1), > = η4 (2.57j)
sin θ
B
···
···
" #
cos θ
A
(k)
< p (0), > = η2k−1 (2.57k)
sin θA
" #
(k) cos θB
< p (1), sin θ > = η2k (2.57l)
B
d(k−2) κ
dove ds(k−2)
(·) indica la derivata della curvatura rispetto alla lunghezza del-
l’arco s di ordine k − 2 mentre p(k) (·) indica la derivata di p rispetto ad u di
ordine k.
Capitolo 2. Le η 4 -spline 27
50
45
40
35
30
Y [m]
25
20
15
10
0
0 10 20 30 40 50
X [m]
50
40
30
Y [m]
20
10
−10 0 10 20 30 40 50 60
X [m]
50
40
30
Y [m]
20
10
−10 0 10 20 30 40 50 60
X [m]
50
40
30
Y [m]
20
10
−10 0 10 20 30 40 50 60
X [m]
50
40
30
Y [m]
20
10
−10 0 10 20 30 40 50 60
X [m]
cA = [ 0 0 0 0 0 0 ]T
cB = [ 50 50 0 0 0 0 ]T .
punto iniziale e finale. Un’euristica stabilisce che una buona scelta per i
parametri η è la distanza geometrica tra il punto iniziale e finale. La distanza
è calcolata come norma euclidea degli estremi della curva cioè
kpA − pB k = 70.7107 m.
Controllo feedforward su
percorso assegnato
32
Capitolo 3. Controllo feedforward su percorso assegnato 33
Percorso
100
80
60
40
Y [m]
20
−20
1
κ1B = tan (θ0B − θ1B ) (3.6)
d1
1 1
1 d0
tan δA − d1
sin (θ0A − θ1A )
κ̇1A = (3.7)
d1 cos3 (θ0A − θ1A )
Capitolo 3. Controllo feedforward su percorso assegnato 36
1 1
1 d0
tan δB − d1
sin (θ0B − θ1B )
κ̇1B = (3.8)
d1 cos3 (θ0B − θ1B )
3.5 Vincoli
Dal punto di vista matematico, il modello cinematico del veicolo con rimor-
chio non presenta vincoli sul dominio delle variabili di stato. Questo però è
ovviamente irrealistico perchè il mezzo meccanico ha dei vincoli fisici che non
traspaiono dalle equazioni cinematiche. In aggiunta, dato che gli ingressi del
sistema sono la velocità lineare v(t) e l’angolo di sterzatura δ(t) della motri-
ce, si vuole ottenere un controllo continuo per avere un movimento fluido del
veicolo.
A tale scopo sono stati introdotti vincoli di massimo valore di sterzatura δmax
del veicolo trainante, massimo valore di curvatura (κmax ), derivata (κ̇max ) e
derivata seconda di curvatura rispetto alla lunghezza dall’arco (κ̈max ).
Per il veicolo motrice si è determinato il massimo valore di curvatura come
l’inverso del minimo raggio di curvatura (Rmin ) di un veicolo prototipo preso
ad esempio. La formula è quindi
1
κmax = (3.22)
Rmin
Per determinare il vincolo di massima sterzatura della motrice si utilizza la
formula
δmax = arctan (κmax d0 ). (3.23)
Capitolo 3. Controllo feedforward su percorso assegnato 39
Percorso
50
40
30
Y [m]
20
10
0
−10 0 10 20 30 40 50
X [m]
0.4
0.3
0.2
Delta(s) [rad]
0.1
−0.1
−0.2
−0.3
0 10 20 30 40 50 60 70 80 90
S − Ascissa curvilinea [m]
Dopo aver generato il percorso del rimorchio che interpola due stati este-
si qualsiasi A e B mediante l’utilizzo delle η 4 -spline è sorto il problema di
generare un percorso specifico che minimizzasse l’escursione massima dei con-
trolli. Questo è stato pensato nell’ottica di evitare di ottenere dei controlli
con comportamenti bruschi e elevato dispendio energetico.
In un contesto di iterative steering, è necessario generare una collezione di
percorsi consecutivi tali che, nei vari punti di contatto, si mantengano le
proprietà di continuità geometrica del quarto ordine necessarie per ottenere
dei controlli di classe C 1 per il veicolo con rimorchio. Oltretutto, in uno sce-
nario realistico, suddividere il percorso desiderato in vari percorsi intermedi
garantisce anche un comportamento più reattivo del veicolo in relazione al-
l’aggiramento di ostacoli presenti nell’ambiente.
Nasce l’esigenza di introdurre, nel pianificatore del moto del veicolo, una
funzione di ottimizzazione di alcuni parametri liberi del sistema. Si è scelto
di ottimizzare i punti di interpolazione della derivata seconda di curvatura
44
Capitolo 4. Ottimizzazione dei parametri 45
della η 4 -spline in modo da congiungere i gli stati estesi iniziale e finale con
percorsi smooth. Si è anche cercato di minimizzare il massimo valore di cur-
vatura e derivata di curvatura che assume il percorso del rimorchio nei vari
tratti pianificati. Infine si sono ottimizzate anche le informazioni relative ai
punti intermedi del percorso: pi = (x1i , y1i ), θ1i , κi , κ̇i , κ̈i per permet-
tere di generare dei segnali di controllo sulla traiettoria complessiva senza
discontinuità.
dove
.
Q = R2 × [0, 2π[2 ×[−δM , +δM ]
muovono nel piano cartesiano {X, Y }. Il corpo del veicolo con rimorchio A
occupa una porzione di R2 che dipende dal vettore di configurazione q, cioè
A(q) ⊂ R2 .
Definendo la curva i-esima, rappresentante il percorso del punto mediano
dell’asse ruota del rimorchio, nel seguente modo
tale che
con i = 1, . . . , (N − 1) e j = 1, . . . , N .
I vettori lb e ub rappresentano i vincoli di ricerca del minimo rispettivamen-
te inferiori (“lower bound”) e superiori (“upper bound”).
Nel Paragrafo 4.1.1 è illustrato il significato della funzione f (x) mentre nella
Sezione 4.4 è esposto il significato del vettore delle variabili x.
Capitolo 4. Ottimizzazione dei parametri 48
• stot (x) =
PN
i=1 s(i) (x) con s(i) (x) che rappresenta la lunghezza dell’i-
esimo percorso.
Percorso
15
10
Y [m]
−5
−15 −10 −5 0 5 10 15
X [m]
Percorso
15
10
Y [m]
−5
−15 −10 −5 0 5 10 15
X [m]
be utilizzare un bounding box per gli ostacoli e per il veicolo che tenga conto
anche degli errori introdotti dal sistema reale e non modellati in simulazione.
La funzione di penalità legata alla presenza di collisioni ha un andamento
simile alle funzioni di penalità per i vincoli di curvatura e derivata di curva-
tura ed è proporzionale all’area di collisione calcolata mediante l’algoritmo
di obstacle avoidance. L’andamento è esposto in Sezione 4.3.
4.2.1 Algoritmo
Per implementare la funzione di obstacle avoidance bisogna estrarre dai per-
corsi del veicolo e del rimorchio l’insieme dei punti che li compongono. Aven-
do la rappresentazione geometrica dell’insieme degli ostacoli, ottenuta da
composizione di poligoni convessi, l’algoritmo possiede tutte le informazioni
necessarie per procedere al calcolo dell’area di collisione. Lo pseudo-codice
della funzione è esposto nell’Algoritmo 4.1. Per ogni punto (xi , yi ) del percor-
Capitolo 4. Ottimizzazione dei parametri 52
so del rimorchio e per ogni punto (x0i , y0i ) del percorso del veicolo vengono
calcolate le coordinate del veicolo con rimorchio dalla funzione coord. Avendo
le coordinate che rappresentano, lungo il percorso, i bounding box del veicolo
e del rimorchio, si possono calcolare le intersezioni dei bounding box con gli
ostacoli presenti nell’ambiente. Questa operazione, svolta dalla funzione in-
tersez nello pseudo-codice, risulta un’operazione molto semplice sfruttando
la convessità degli oggetti coinvolti. L’intersezione produce un valore positi-
vo se il veicolo è in collisione con un ostacolo altrimenti assume il valore 0;
nell’algoritmo tali valori sono indicati dalle variabili areav e arear . A questo
punto si tiene traccia solo del massimo dell’area di collisione tra veicolo e
ostacoli in ogni punto dei due percorsi. Ovviamente, come già illustrato in
precedenza, un percorso avente un’area di collisione con gli ostacoli maggiore
di 0 sarà penalizzato nella scelta del valore ottimo da parte dell’ottimizzato-
Capitolo 4. Ottimizzazione dei parametri 53
re.
Questo algoritmo ha, però, una complessità non polinomiale perchè al cre-
scere del numero di ostacoli presenti nella scena e del numero di punti che
rappresentano il percorso, la quantità di operazioni richieste per portarlo a
termine aumenta in modo esponenziale. Per migliorarne l’efficienza si è scelto
di discretizzare le curve che rappresentano il percorso in un numero limitato
di punti. La scelta fatta non inficia la validità del metodo a patto di utiliz-
zare un passo di discretizzazione sufficientemente fine.
Alla luce dell’algoritmo presentato la condizione insiemistica presente nell’e-
quazione (4.7) è equivalente ad un’equazione algebrica calcolando l’area di
collisione massima (maximal collision area - mca).
.
mca = max mcai
i=1,...,N
dove
( " # " #
. q1 px,i (u)
mcai = max area (A(q) ∩ O) : = + d1 ej q4 ,
u∈[0,1] q2 py,i (u)
q3 = arg (ṗ0x,i (u) + j ṗ0y,i (u)) , q4 = arg (ṗx,i (u) + j ṗy,i (u))} .
Figura 4.3: Funzione di penalità per la curvatura del percorso del rimorchio
to alla funzione obiettivo cresce in modo lineare con pendenza elevata (con
m 1). Si riesce in questo modo ad avere l’effetto desiderato sulla funzione
obiettivo, ossia un incremento netto della stessa alla minima variazione della
curvatura e, allo stesso tempo, non essendo una funzione a gradino, l’otti-
mizzatore si comporta in modo adeguato scartando la soluzione che presenta
un superamento dei vincoli.
Capitolo 4. Ottimizzazione dei parametri 55
Il Problema 4.1 risulta cosı̀ essere definito come problema di minimo con fun-
zione obiettivo multivariabile, non lineare e vincolata.
I parametri presenti nel vettore x sono quindi le uniche variabili su cui l’ot-
timizzatore può spaziare per determinare il minimo della funzione. La scelta
dei parametri è stata fatta per riuscire a determinare punti di interpolazione
intermedi tra il punto di partenza e l’arrivo indicati rispettivamente dallo
stato esteso h iT
I = x0I y0I θ0I θ1I vI v̇I δI δ̇I
e h iT
F = x0F y0F θ0F θ1F vF v̇F δF δ̇F .
Capitolo 4. Ottimizzazione dei parametri 56
58
Capitolo 5. Controllo del sistema 59
tale che il sistema è lineare sul campo differenziale generato dal vettore y.
implica che
l’equazione differenziale
dϕ0
= f (ϕ0 , ϕ1 )
dt
è identicamente soddisfatta.
Secondo la Proposizione 5.1 il sistema in esame del veicolo con rimorchio avrà
un flat output composto da due componenti visto che il modello del sistema
Capitolo 5. Controllo del sistema 60
(i) (i)
f (x1 , ẋ1 , . . . , x1 , y1 , ẏ1 , . . . , y1 ).
È sufficiente mostrare che θ0 sia esprimibile come funzione del flat output e
di un numero finito di sue derivate per dire che anche l’angolo di sterzatura
δ ha la stessa proprietà.
Partendo dal modello cinematico del veicolo con rimorchio si esegue una
ridefinizione delle variabili chiamando u il modulo della velocità del veicolo
e ϕ l’angolo di sterzatura delle ruote del veicolo trainante
ẋ0 = u cos θ0
ẏ0 = u sin θ0
u (5.1)
θ̇0 = tan ϕ
d0
u
θ̇1 =
sin (θ0 − θ1 ).
d1
Si introduce il sistema in forma implicita può essere scritto come segue
ẋ0 sin θ0 − ẏ0 cos θ0 = 0
(5.2)
d1 θ̇1 − (ẋ0 cos θ0 + ẏ0 sin θ0 ) sin (θ0 − θ1 ) = 0.
Capitolo 5. Controllo del sistema 61
Si può definire il modulo della velocità del punto posteriore del rimorchio
mediante
u1 = u cos (θ0 − θ1 )
e
ẏ1
tan θ1 =
ẋ1
oppure
ẏ1 ẋ1
sin θ1 = 1 e cos θ1 = 1 .
(ẋ21 + ẏ12 ) 2 (ẋ21 + ẏ12 ) 2
Ora, ricordando che
x0 = x1 + d1 cos θ1 ,
y0 = y1 + d1 sin θ1
e
ẏ0
tan θ0 =
ẋ0
si vede immediatamente che x0 e y0 sono espressi in funzione di x1 , y1 e delle
loro derivate del primo ordine, cioè
ẏ1
x0 = x1 + d1 cos arctan (5.3)
ẋ1
ẏ1
y0 = y1 + d1 sin arctan . (5.4)
ẋ1
Per quanto riguarda θ0 si può mostrare che può essere espresso in funzione
del flat output e le sue derivate fino al secondo ordine. Eseguendo i calcoli
espliciti risulta che
!
3/2
ẋ1 (ẋ21 + ẏ12 ) − ẏ1 [d1 (ẋ1 ÿ1 − ẍ1 ẏ1 )]
θ0 = arctan 3/2
(5.5)
ẏ1 (ẋ21 + ẏ12 ) + ẋ1 [d1 (ẋ1 ÿ1 − ẍ1 ẏ1 )]
r che compare nella Definizione 5.2 per il caso del veicolo con rimorchio
è pari ad 1. Partendo da questo presupposto è necessario effettuare una
trasformazione del modello del sistema per permettere di sfruttare la teoria
introdotta. Per riuscire ad esprimere lo stato e gli ingressi del sistema in
funzione del flat output è necessario derivare fino al secondo ordine v1 per
ottenere i controlli desiderati. Bisogna quindi compensare la necessità della
derivazione con l’inserimento di due nuovi stati nel sistema.
Indicando con v1 il modulo della velocità dell’asse posteriore del rimorchio,
si può scrivere la relazione che la lega all’ingresso del sistema v.
v1 = v cos (θ0 − θ1 )
Si devono introdurre anche due nuovi stati nel sistema per riuscire ad espri-
merlo secondo il metodo della “flat-ness” introdotto precedentemente. Il
modello trasformato risulterà quindi
v1
ẋ0 = cos θ0
cos (θ0 − θ1 )
v1
ẏ0 = sin θ0
cos (θ0 − θ1 )
θ̇ = 1 v1
0 tan δ
d0 cos (θ0 − θ1 ) (5.6)
v1
θ̇1 = tan (θ0 − θ1 )
d1
v̇1 = z2
ż2 = u1
Nel modello (5.6) sono presenti due nuovi stati v1 e z2 . Questi stati ausiliari
sono necessari per ottenere il controllo come soluzione di un sistema lineare,
in particolare v1 coincide con la velocità del punto mediano dell’asse ruota
del rimorchio e z2 coincide con v̇1 .
Il sistema presenta quindi un vettore di stato di sei componenti rappresenta-
bile da
x = [x0 y0 θ0 θ1 v1 v̇1 ]T
mentre gli ingressi al sistema e quindi i controlli sono
u = [u1 u2 ]T = [v̈1 δ ]T
Capitolo 5. Controllo del sistema 63
Come si può notare dal sistema (5.7) il rumore è stato aggiunto in modo
affine per la natura additiva del rumore stesso. Questa ipotesi può essere
assunta senza perdita di generalità perchè non sono presenti vincoli stringen-
ti sull’entità del rumore presente in un sistema reale. Una modellizzazione
migliore potrebbe essere fatta ad hoc su di un problema specifico.
Le variabili εi (t) con i = 1, . . . , 6 sono campioni estratti dal processo stoca-
stico rappresentato da sei funzioni di probabilità gaussiane a media nulla e
varianza dipendente dal tipo di variabile di stato che si sta considerando. In
particolare si è scelta una varianza maggiore per le variabili che definiscono
la posizione del veicolo mentre una varianza minore per le variabili che de-
finiscono delle posizioni angolari. La scelta si basa su una deduzione logica
della meccanica di un veicolo con rimorchio: risulta più plausibile una mag-
giore incertezza sulla posizione rispetto ad un’incertezza sull’orientazione del
veicolo.
definendo
... ...
ẍ1 − x̄¨1 ẋ1 − x̄˙ 1
... x 1 − x̄ 1 x1 − x̄1
e = ... ... , ë = , ė = , e= .
y 1 − ȳ 1 ÿ1 − ȳ¨1 ẏ1 − ȳ˙ 1 y1 − ȳ1
Dal percorso Γ pianificato mediante η 4 -spline si ottengono per ogni istante
... ...
di tempo i valori di (x̄1 , ȳ1 ), (x̄˙ 1 , ȳ˙ 1 ), (x̄¨1 , ȳ¨1 ) e ( x̄ 1 , ȳ 1 ). Il simbolo sopras-
segnato indica appunto che tali variabili sono il riferimento che la legge di
controllo deve seguire.
... ...
Mentre i valori (x1 , y1 ), (ẋ1 , ẏ1 ), (ẍ1 , ÿ1 ) e ( x 1 , y 1 ) ad ogni istante di tempo
sono ottenuti dalla valutazione del sistema reale. In simulazione sono deri-
vate dal modello (5.7) mediante le seguenti relazioni geometriche.
Dalla legge di controllo riportata in (5.8) si può ricavare il sistema
...
... ...
x 1 = e x + x̄ 1
... (5.9)
...
y 1 = ...
e y + ȳ . 1
ẋ1 = v1 cos θ1
(5.11)
ẏ1 = v1 sin θ1
ẍ1 = v̇1 cos θ1 − v1 θ̇1 sin θ1
(5.12)
ÿ1 = v̇1 sin θ1 + v1 θ̇1 cos θ1
...
x 1 = v̈1 cos θ1 − 2 v̇1 θ̇1 sin θ1 − v1 θ̈1 sin θ1 − v1 θ̇12 cos θ1
(5.13)
...
y 1 = v̈1 sin θ1 + 2 v̇1 θ̇1 cos θ1 + v1 θ̈1 cos θ1 − v1 θ̇12 sin θ1
Dall’equazione (5.16) si nota che il controllo v1 (t) non può essere nullo
per evitare la singolarità della funzione. L’equazione (5.15) non presenta
alcuna singolarità in quanto la funzione a denominatore non può essere mai
nulla per definizione del problema di interpolazione polinomiale di classe G4
(Problema 2.1).
Ora manca la determinazione dei coefficienti Ki con i = 1, 2, 3.
s3 + K3 s2 + K2 s + K1 = 0. (5.17)
K1 = 60 (5.19)
K2 = 47 (5.20)
K3 = 12. (5.21)
Capitolo 6
Simulazione
68
Capitolo 6. Simulazione 69
Nei paragrafi seguenti sono illustrate le scelte fatte per dimensionare il veico-
lo con rimorchio e quindi i relativi vincoli massimi sulla curvatura e derivata
di curvatura di ogni tratto del percorso.
6.1.2 Vincoli
Dopo aver definito le dimensioni del veicolo con rimorchio, si possono definire
i vincoli massimi che il veicolo con rimorchio deve rispettare nei vari percorsi
di classe G4 . Seguendo la trattazione teorica dei vincoli espressa in Sezio-
ne 3.5 si riescono a definire tutti i vincoli necessari per esprimere il problema
di ottimizzazione presentato in Sezione 4.1.
Capitolo 6. Simulazione 70
Dai dati reali che descrivono la motrice si deduce che il raggio minimo di
sterzata è
Rmin = 11.5 m,
quindi il vincolo che esprime la massima curvatura del veicolo risulta essere
rad
κmax = 0.087 .
m
A questo punto si è in grado di definire il vincolo di sterzatura massima del
veicolo trainante. Dalla formula (3.23) risulta
A = [ 20 10 π/2 0 0 0 0 0 ]T
B = [ 50 −30 −π/2 0 0 0 0 0 ]T .
c1 = [ 40 80 0 0 0 0 ]T
c2 = [ 85 50 −π/2 0 0 0 ]T .
xM 1 yM 1 θM 1 κM 1 κ̇M 1 κ̈M 1
40.022 79.977 0.3755 −0.0352 8.53 × 10−4 9.96 × 10−4
xM 2 yM 2 θM 2 κM 2 κ̇M 2 κ̈M 2
84.951 50.001 −1.5447 −0.0293 −7.78 × 10−4 −3.19 × 10−4
Percorso
100
80
60
40
Y [m]
20
−20
0.03 3
0.02
2
0.01
dK [rad / (ms)]
1
K [rad / m]
0
0
−0.01
−1
−0.02
−0.03 −2
−0.04 −3
0 50 100 150 200 250 0 50 100 150 200 250
S [m] S [m]
0.04
0.03
1
0.02
dK [rad / (ms)]
0.01
K [rad / m]
0 0.5
−0.01
−0.02
0
−0.03
−0.04
−0.05 −0.5
0 50 100 150 200 250 0 50 100 150 200 250
S [m] S [m]
Figura 6.3: Labirinto - κ(s) e κ̇(s) del percorso del veicolo trainante
Veicolo − Sterzatura
0.2
0.15
0.1
0.05
Delta [rad]
−0.05
−0.1
−0.15
−0.2
0 50 100 150 200 250
S [m]
Percorso
60
50
40
30
20
Y [m]
10
−10
−20
−30
3
0.02
0.01
1
dK [rad / (ms)]
K [rad / m]
0 0
−1
−0.01
−2
−0.02
−3
−0.03 −4
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70
S [m] S [m]
Figura 6.6: Parcheggio parallelo BF - κ(s) e κ̇(s) del percorso del rimorchio
0.04
1
0.02
dK [rad / (ms)]
0.5
K [rad / m]
0
−0.02
−0.5
−0.04
−0.06 −1
0 10 20 30 40 50 60 70 0 10 20 30 40 50 60 70
S [m] S [m]
Figura 6.7: Parcheggio parallelo BF - κ(s) e κ̇(s) del percorso del veicolo
trainante
posizione.
L’obiettivo di questo scenario è quindi permettere il parcheggio del veicolo
con rimorchio congiungendo con continuità geometrica del quarto ordine due
tratti di η 4 -spline partendo dallo stato iniziale A e terminando nello stato
finale B con velocità nulla. In particolare, gli stati estesi sono rappresentati
da
Capitolo 6. Simulazione 76
Veicolo − Sterzatura
0.2
0.15
0.1
0.05
Delta [rad]
−0.05
−0.1
−0.15
0 10 20 30 40 50 60 70
S − Ascissa curvilinea
A = [ −22.5 50 π/2 0 0 0 0 0 ]T
B = [ −12 20 π/2 0 0 0 0 0 ]T .
Percorso
30
20
10
0
Y [m]
−10
−20
−30
−40
0.025
2
0.02
0.015 1
dK [rad / (ms)]
K [rad / m]
0.01
0
0.005
0 −1
−0.005
−2
−0.01
−0.015 −3
0 20 40 60 80 100 120 140 160 180 0 20 40 60 80 100 120 140 160 180
S [m] S [m]
Figura 6.10: Parcheggio perp. FB - κ(s) e κ̇(s) del percorso del rimorchio
La Figura 6.12 mostra l’andamento del segnale di controllo δ(s): come eviden-
ziato nel Paragrafo 6.3.1 il cambio di marcia produce una sterzata repentina
del veicolo nel punto di manovra quindi a veicolo fermo.
Capitolo 6. Simulazione 79
0.04 1
0.8
0.03
0.6
0.02
dK [rad / (ms)]
K [rad / m]
0.4
0.01
0.2
0
0
−0.01
−0.2
−0.02 −0.4
−0.03 −0.6
0 20 40 60 80 100 120 140 160 180 0 20 40 60 80 100 120 140 160 180
S [m] S [m]
Figura 6.11: Parcheggio perp. FB - κ(s) e κ̇(s) del percorso del veicolo
trainante
Veicolo − Sterzatura
0.15
0.1
0.05
0
Delta [rad]
−0.05
−0.1
−0.15
−0.2
0 20 40 60 80 100 120 140 160 180
S − Ascissa curvilinea
xM 1 yM 1 θM 1 κM 1 κ̇M 1 κ̈M 1
−24.911 25.010 1.0472 −0.0316 −0.0017 −0.0010
xM 2 yM 2 θM 2 κM 2 κ̇M 2 κ̈M 2
−99.910 −6.501 3.1276 −0.0081 −0.0023 5.58 × 10−4
Capitolo 6. Simulazione 81
Percorso
40
30
20
10
Y [m]
−10
−20
−30
−40
−100 −90 −80 −70 −60 −50 −40 −30 −20 −10 0
X [m]
Figura 6.13: Parcheggio perp. FBF - Percorso del veicolo con rimorchio
4
0.03
3
0.02
2
0.01
dK [rad / (ms)]
1
K [rad / m]
0 0
−1
−0.01
−2
−0.02
−3
−0.03
−4
−0.04 −5
0 50 100 150 200 250 0 50 100 150 200 250
S [m] S [m]
Figura 6.14: Parcheggio perp. FBF - κ(s) e κ̇(s) del percorso del rimorchio
Capitolo 6. Simulazione 82
0.06
1.5
0.04
1
dK [rad / (ms)]
0.02
K [rad / m]
0.5
0
0
−0.02
−0.5
−0.04
−0.06 −1
0 50 100 150 200 250 0 50 100 150 200 250
S [m] S [m]
Figura 6.15: Parcheggio perp. FBF - κ(s) e κ̇(s) del percorso del veicolo
trainante
Veicolo − Sterzatura
0.25
0.2
0.15
0.1
Delta [rad]
0.05
−0.05
−0.1
−0.15
0 50 100 150 200 250
S − Ascissa curvilinea
A = [ −15 −30 0 0 15 0 0 0 ]T
B = [ −5 40 π 0 15 0 0 0 ]T
Percorso
40
30
20
10
Y [m]
−10
−20
−30
−30 −20 −10 0 10 20 30 40 50
X [m]
30
20
10
Y [m]
−10
−20
−30
−30 −20 −10 0 10 20 30 40 50
X [m]
40
38
Y
36
34
32
26 28 30 32 34 36 38 40
X
una per il veicolo e l’altra per il rimorchio, mentre il percorso ottenuto con
Capitolo 6. Simulazione 85
la formula
v1 (t)
v(t) = . (6.1)
cos(θ0 (t) − θ1 (t))
Il segnale v1 (t) scelto per questa simulazione è il segnale costante pari a
10
6
δ [grad]
−2
−4
0 1 2 3 4 5 6 7 8 9 10
t [sec]
v ideale e controllato
18.5
v (t)
n
v (t)
p
18
17.5
17
v [m / s]
16.5
16
15.5
15
14.5
0 1 2 3 4 5 6 7 8 9 10
t [sec]
reale, una pianificazione della velocità del rimorchio come segnale costante
non sarebbe una scelta efficace. In questo lavoro di tesi si è cercato di trovare
una soluzione generale al problema di pianificazione e controllo del moto di
veicoli con rimorchio, non certo di trovare una strategia ottimale per ottene-
re un controllo rispondente a problemi specifici. Si deve però specificare che
la scelta di un profilo di velocità particolare, che risponde a problematiche
specifiche, non preclude la validità della teoria e degli strumenti sviluppati
in questo lavoro.
Conclusioni
88
Conclusioni 89
Riprendendo i concetti della teoria delle curve planari espressi nel Ca-
pitolo 2, l’appendice mostra i coefficienti per le η 4 -spline in modo completo.
In seguito sono riportate le prorietà di cui gode la curva parametrica.
90
Appendice A. η 4 -spline caso generale 91
α(u) := α0 + α1 u + α2 u2 + α3 u3 + α4 u4 + α5 u5 +
+ α6 u6 + α7 u7 + α8 u8 + α9 u9 (A.1)
β(u) := β0 + β1 u + β2 u2 + β3 u3 + β4 u4 + β5 u5 +
+ β6 u6 + β7 u7 + β8 u8 + β9 u9 (A.2)
α0 = xA (A.3)
α1 = η1 cos θA (A.4)
1 1
α2 = η3 cos θA − η12 κA sin θA (A.5)
2 2
1 1 1
α3 = − η1 η3 κA + η13 κ̇A sin θA + η5 cos θA (A.6)
2 6 6
1 1 2 1 4 3 1 4
α4 = − η1 η5 κA + η1 η3 κ̇A + η1 κA + η κ̈A sin θA −
6 4 8 24 1
1 1
− η3 κA sin θA + η7 cos θA (A.7)
8 24
35 5 5
α5 = 126 (xB − xA ) − 70 η1 + η3 + η5 + η7 cos θA +
2 2 24
35 2 5 4 3 5 3 5 4
+ η κA + η1 κA + η1 κ̇A + η κ̈A sin θA +
2 1 8 2 24 1
15 5 5 2 5 2
+ η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA sin θA +
2 6 4 8
21 1
+ −56 η2 + η4 − η6 + η8 cos θB +
2 24
21 2 1 4 3 3 1 4
+ − η2 κB − η2 κB + η2 κ̇B − η κ̈B sin θB +
2 8 24 2
1 1 2 1 2
+ 3 η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB sin θB (A.8)
6 4 8
105 20 5
α6 = − 420 (xB − xA ) + 224 η1 + η3 + η5 + η7 cos θA −
2 3 12
Appendice A. η 4 -spline caso generale 92
105 2 5 4 3 20 3 5 4
− η κA + η1 κA + η κ̇A + η κ̈A sin θA −
2 1 4 3 1 12 1
5 5 2 5 2
− 20 η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA sin θA +
3 2 4
77 23 1
+ 196 η2 − η4 + η6 − η8 cos θB +
2 6 6
77 2 1 4 3 23 3 1 4
+ η κB + η2 κB − η κ̇B + η2 κ̈B sin θB +
2 2 2 6 2 6
23 2 2 1 2
+ − η2 η4 κB + η2 η6 κB + η2 η4 κ̇B + η4 κB sin θB (A.9)
2 3 2
15 5
α7 = 540 (xB − xA ) − 280 η1 + 63 η3 + η5 + η7 cos θA +
2 12
2 5 4 3 15 3 5 4
+ 63 η1 κA + η1 κA + η κ̇A + η κ̈A sin θA +
4 2 1 12 1
45 5 5 2 5 2
+ η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA sin θA +
2 3 2 4
11 1
+ −260 η2 + 53 η4 − η6 + η8 cos θB +
2 4
2 3 4 3 11 3 1 4
+ −53 η2 κB − η2 κB + η κ̇B − η2 κ̈B sin θB +
4 2 2 4
33 3 2 3 2
+ η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB sin θB (A.10)
2 2 4
5
α8 = − 315 (xB − xA ) + 160 η1 + 35 η3 + 4 η5 + η7 cos θA −
24
2 5 4 3 3 5 4
− 35 η1 κA + η1 κA + 4 η1 κ̇A + η κ̈A sin θA −
8 24 1
5 5 2 5 2
− 12 η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA sin θA +
6 4 8
65 7 1
+ 155 η2 − η4 + η6 − η8 cos θB +
2 2 6
65 2 1 4 3 7 3 1 4
+ η κB + η2 κB − η2 κ̇B + η2 κ̈B sin θB +
2 2 2 2 6
21 2 2 1 2
+ − η2 η4 κB + η2 η6 κB + η2 η4 κ̇B + η4 κB sin θB (A.11)
2 3 2
15 5 1
α9 = 70 (xB − xA ) − 35 η1 + η3 + η5 + η7 cos θA +
2 6 24
Appendice A. η 4 -spline caso generale 93
15 2 1 4 3 5 3 1 4
+ η κA + η1 κA + η1 κ̇A + η κ̈A sin θA +
2 1 8 6 24 1
5 1 1 2 1 2
+ η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA sin θA +
2 6 4 8
15 5 1
+ −35 η2 + η4 − η6 + η8 cos θB +
2 6 24
15 2 1 4 3 5 3 1 4
+ − η2 κB − η2 κB + η2 κ̇B − η κ̈B sin θB +
2 8 6 24 2
5 1 1 2 1 2
+ η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB sin θB (A.12)
2 6 4 8
β0 = y A (A.13)
β1 = η1 sin θA (A.14)
1 1
β2 = η3 sin θA − η12 κA cos θA (A.15)
2 2
1 1 1
β3 = η1 η3 κA + η13 κ̇A cos θA + η5 sin θA (A.16)
2 6 6
1 1 2 1 4 3 1 4
β4 = η1 η5 κA + η1 η3 κ̇A + η1 κA + η κ̈A cos θA +
6 4 8 24 1
1 1
+ η3 κA cos θA + η7 sin θA (A.17)
8 24
35 5 5
β5 = 126 (yB − yA ) + 70 η1 + η3 + η5 + η7 sin θA −
2 2 24
35 2 5 4 3 5 3 5 4
− η κA + η1 κA + η1 κ̇A + η κ̈A cos θA −
2 1 8 2 24 1
15 5 5 2 5 2
− η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA cos θA −
2 6 4 8
21 1
− −56 η2 + η4 − η6 + η8 sin θB −
2 24
21 2 1 4 3 3 1 4
− − η2 κB − η2 κB + η2 κ̇B − η κ̈B cos θB −
2 8 24 2
1 1 2 1 2
− 3 η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB cos θB (A.18)
6 4 8
105 20 5
β6 = − 420 (yB − yA ) − 224 η1 + η3 + η5 + η7 sin θA +
2 3 12
Appendice A. η 4 -spline caso generale 94
105 2 5 4 3 20 3 5 4
+ η κA + η1 κA + η κ̇A + η κ̈A cos θA +
2 1 4 3 1 12 1
5 5 2 5 2
+ 20 η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA cos θA −
3 2 4
77 23 1
− 196 η2 − η4 + η6 − η8 sin θB −
2 6 6
77 2 1 4 3 23 3 1 4
− η κB + η2 κB − η κ̇B + η2 κ̈B cos θB −
2 2 2 6 2 6
23 2 2 1 2
− − η2 η4 κB + η2 η6 κB + η2 η4 κ̇B + η4 κB cos θB (A.19)
2 3 2
15 5
β7 = 540 (yB − yA ) + 280 η1 + 63 η3 + η5 + η7 sin θA −
2 12
2 5 4 3 15 3 5 4
− 63 η1 κA + η1 κA + η κ̇A + η κ̈A cos θA −
4 2 1 12 1
45 5 5 2 5 2
− η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA cos θA −
2 3 2 4
11 1
− −260 η2 + 53 η4 − η6 + η8 sin θB −
2 4
2 3 4 3 11 3 1 4
− −53 η2 κB − η2 κB + η κ̇B − η2 κ̈B cos θB −
4 2 2 4
33 3 2 3 2
− η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB cos θB (A.20)
2 2 4
5
β8 = − 315 (yB − yA ) − 160 η1 + 35 η3 + 4 η5 + η7 sin θA +
24
2 5 4 3 3 5 4
+ 35 η1 κA + η1 κA + 4 η1 κ̇A + η κ̈A cos θA +
8 24 1
5 5 2 5 2
+ 12 η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA cos θA −
6 4 8
65 7 1
− 155 η2 − η4 + η6 − η8 sin θB −
2 2 6
65 2 1 4 3 7 3 1 4
− η κB + η2 κB − η2 κ̇B + η2 κ̈B cos θB −
2 2 2 2 6
21 2 2 1 2
− − η2 η4 κB + η2 η6 κB + η2 η4 κ̇B + η4 κB cos θB (A.21)
2 3 2
15 5 1
β9 = 70 (yB − yA ) + 35 η1 + η3 + η5 + η7 sin θA −
2 6 24
Appendice A. η 4 -spline caso generale 95
15 2 1 4 3 5 3 1 4
− η κA + η1 κA + η1 κ̇A + η κ̈A cos θA −
2 1 8 6 24 1
5 1 1 2 1 2
− η1 η3 κA + η1 η5 κA + η1 η3 κ̇A + η3 κA cos θA −
2 6 4 8
15 5 1
− −35 η2 + η4 − η6 + η8 sin θB −
2 6 24
15 2 1 4 3 5 3 1 4
− − η2 κB − η2 κB + η2 κ̇B − η κ̈B cos θB −
2 8 6 24 2
5 1 1 2 1 2
− η2 η4 κB − η2 η6 κB − η2 η4 κ̇B − η4 κB cos θB . (A.22)
2 6 4 8
I termini ηi , con i = 1, ..., 8, possono essere scelti liberamente ed influen-
zano l’andamento del cammino senza violare le condizioni di interpolazione.
Possono essere inseriti in un vettore colonna di dimensione otto
η = [η1 η2 η3 η4 η5 η6 η7 η8 ]T
e le curve parametriche A.1 e A.2 saranno d’ora in poi indicate come p(u, η)
o η 4 -spline.
Proprietà A.1 (completezza). Data ogni curva polinomiale del nono ordine
q(u), u ∈ [0, 1], con q̇(0) 6= 0 e q̇(1) 6= 0, tale che soddisfi un insieme
di condizioni di interpolazione pA , θA , κA , κ̇A , κ̈A e pB , θB , κB , κ̇B , κ̈B , allora
esiste un vettore di parametri η ∈ H tale che p(u, η) coincide con q(u).
97
Appendice B. η 5 -spline caso semplificato 98
come segue:
α(u) := α0 + α1 u + α2 u2 + α3 u3 + α4 u4 + α5 u5 +
+ α6 u6 + α7 u7 + α8 u8 + α9 u9 + α10 u10 + α11 u11 (B.1)
β(u) := β0 + β1 u + β2 u2 + β3 u3 + β4 u4 + β5 u5 +
+ β6 u6 + β7 u7 + β8 u8 + β9 u9 + β10 u10 + β11 u11 . (B.2)
d d2 κ d d2 κ du d d2 κ
1
= =
ds ds2 du ds2 ds du ds2 kṗ(u)k
ovvero
d3 κ d2 κ
d 1
3
(u) = 2
(u) . (B.3)
ds du ds kṗ(u)k
ηi = 0 con i = 3, . . . , 10 (B.5)
... ...
κ A = κ B = 0. (B.6)
p(0) = pA (B.7a)
p(1) = pB
(B.7b)
" #
cos θ
A
ṗ(0) = η1 (B.7c)
sin θA
" #
cos θ
B
ṗ(1) = η2 (B.7d)
sin θB
κ(0) = κA (B.7e)
κ(1) = κB (B.7f)
···
···
d3 κ
...
3
(0) = κ A (B.7g)
ds
3
d κ ...
(1) = κ B (B.7h)
ds 3
" #
cos θ
A
< p̈(0), > = η3 (B.7i)
sin θA
" #
cos θ B
< p̈(1), > = η4 (B.7j)
sin θB
···
···
" #
··
··· cos θ A
< p(0), > = η9 (B.7k)
sin θ
A
··
" #
··· cos θ B
< p(1), sin θ > = η10 (B.7l)
B
con
η1 , η2 > 0, ηi ∈ R con i = 3, . . . , 10.
Appendice B. η 5 -spline caso semplificato 100
α0 = xA (B.8)
α1 = η1 cos θA (B.9)
1
α2 = − η12 κA sin θA (B.10)
2
1
α3 = − η13 κ̇A sin θA (B.11)
6
1 4
η1 3 κ3A + κ̈A sin θA
α4 = − (B.12)
24
19 5 2
α5 = − η κ κ̇A sin θA (B.13)
120 1 A
α6 = 462 (xB − xA ) − 252 η1 cos θA − 210 η2 cos θB +
2 21 4 3 19 5 2 28 3 7 4
+ 63 η1 κA + η κ + η κ κ̇A + η κ̇A + η1 κ̈A sin θA −
8 1 A 20 1 A 3 1 8
2 7 4 3 19 5 2 14 3 7 4
− 42 η2 κB + η2 κB − η κ κ̇B − η κ̇B + η κ̈B sin θB
8 120 2 B 3 2 24 2
(B.14)
α7 = − 1980 (xB − xA ) + 1050 η1 cos θA + 930 η2 cos θB −
2 35 4 3 19 5 2 3 35 4
− 252 η1 κA + η κ + η κ κ̇A + 35 η1 κ̇A + η κ̈A sin θA +
4 1 A 8 1 A 12 1
2 17 4 3 19 5 2 3 17 4
+ 192 η2 κB + η κ − η κ κ̇B − 22 η2 κ̇B + η κ̈B sin θB
4 2 B 24 2 B 12 2
(B.15)
α8 = 3465 (xB − xA ) − 1800 η1 cos θA − 1665 η2 cos θB +
2 105 4 3 19 5 2 3 35 4
+ 420 η1 κA + η κ + η κ κ̇A + 56 η1 κ̇A + η κ̈A sin θA −
8 1 A 6 1 A 8 1
705 2 33 4 3 19 5 2 83 3 11 4
− η κB + η κ − η κ κ̇B − η κ̇B + η κ̈B sin θB
2 2 4 2 B 12 2 B 2 2 4 2
(B.16)
α9 = − 3080 (xB − xA ) + 1575 η1 cos θA + 1505 η2 cos θB −
Appendice B. η 5 -spline caso semplificato 101
2 21 4 3 19 5 2 140 3 7 4
− 360 η1 κA + η κ + η κ κ̇A + η κ̇A + η1 κ̈A sin θA +
2 1 A 8 1 A 3 1 2
2 4 3 19 5 2 235 3 8 4
+ 325 η2 κB + 8 η2 κB − η κ κ̇B − η κ̇B + η2 κ̈B sin θB
12 2 B 6 2 3
(B.17)
α10 = 1386 (xB − xA ) − 700 η1 cos θA − 686 η2 cos θB +
315 2 35 4 3 19 5 2 3 35 4
+ η κA + η κ + η κ κ̇A + 20 η1 κ̇A + η κ̈A sin θA −
2 1 8 1 A 20 1 A 24 1
301 2 31 4 3 19 5 2 37 3 31 4
− η κB + η κ − η κ κ̇B − η κ̇B + η κ̈B sin θB
2 2 8 2 B 24 2 B 2 2 24 2
(B.18)
α11 = − 252 (xB − xA ) + 126 η1 cos θA + 126 η2 cos θB −
2 3 4 3 19 5 2 7 3 1 4
− 28 η1 κA + η1 κA + η κ κ̇A + η1 κ̇A + η1 κ̈A sin θA +
4 120 1 A 2 4
2 3 4 3 19 5 2 7 3 1 4
+ 28 η2 κB + η2 κB − η κ κ̇B − η2 κ̇B + η2 κ̈B sin θB
4 120 2 B 2 4
(B.19)
β0 = yA (B.20)
β1 = η1 sin θA (B.21)
1
β2 = η12 κA cos θA (B.22)
2
1
β3 = η13 κ̇A cos θA (B.23)
6
1 4
η1 3 κ3A + κ̈A cos θA
β4 = (B.24)
24
19 5 2
β5 = η κ κ̇A cos θA (B.25)
120 1 A
β6 = 462 (yB − yA ) − 252 η1 sin θA − 210 η2 sin θB −
2 21 4 3 19 5 2 28 3 7 4
− 63 η1 κA + η κ + η κ κ̇A + η κ̇A + η1 κ̈A cos θA +
8 1 A 20 1 A 3 1 8
2 7 4 3 19 5 2 14 3 7 4
+ 42 η2 κB + η2 κB − η κ κ̇B − η κ̇B + η κ̈B cos θB
8 120 2 B 3 2 24 2
(B.26)
Appendice B. η 5 -spline caso semplificato 102
[1] Kamal Kant and Steven W. Zucker. Toward efficient trajectory planning:
The path-velocity decomposition. The International Journal of Robotics
Research, 5:72–89, September 1986.
[3] Gabriele Lini and Aurelio Piazzi. Time optimal dynamic path inversion
for an automatic guided vehicle. IEEE International Conference on
Decision and Control, pages 5264–5269, 15-17 December 2010.
103
BIBLIOGRAFIA 104
[9] Albero Broggi, Corrado Guarino Lo Bianco, and Aurelio Piazzi. The
ARGO autonomuos vehicle’s vision and control systems. Intelligent
Control and Systems, 1999.
[10] Luca Consolini, Mario Tosques, and Aurelio Piazzi. Path following of
car-like vehicles using dynamic inversion. Int. J. Control, 2003.
[12] Luca Consolini and Mario Tosques. A path-following problem for a class
of non-linear uncertain system. European Control Conference, 2003.