scaricare

Transcript

scaricare
ROBOTICA AVANZATA
ROBOT MOBILI
Vincoli anolonomi
Modello cinematico
Pianificazione
Controllo del moto
Localizzazione odometrica
Prof. Bruno SICILIANO
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
ROBOT MOBILI
• I problemi fondamentali della robotica mobile
⋆ localizzazione (dove sono?)
⋆ pianificazione del percorso e della traiettoria (come
raggiungo l’obiettivo?)
⋆ controllo del moto (come faccio a muovermi?)
• Saper risolvere simultaneamente i tre problemi di sopra in
ambienti
⋆ incerti
⋆ non strutturati
⋆ dinamici
⇓
Autonomia
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Architettura deliberativa
• Percezione
⋆ propriocettiva: posizione, orientamento, velocità del robot
stesso
⋆ esterocettiva: posizione relativa di ostacoli, altri robot,
persone
• ampia gamma di sensori
⋆ propriocettivi: encoders, inertial navigation systems (INS),
global positioning systems (GPS)
⋆ esterocettivi: range finders, videocamere, sensori tattili,
sensori di prossimità
ROBOTICA AVANZATA
Altre architetture
• architettura reattiva
⋆ non pensare, (re-)agisci
• architettura ibrida
⋆ pensa e agisci simultaneamente
• architettura comportamentale
⋆ pensa alla modalità di azione
Prof. Bruno SICILIANO
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
VINCOLI ANOLONOMI
• Vincoli cinematici che limitano la mobilità locale
⋆ non impediscono di raggiungere qualsiasi punto dello spazio
delle configurazioni (in assenza di ostacoli)
q∈C
⋆ localmente q ∈ IRn (lo spazio delle configurazioni è una
varietà topologica (manifold))
• Vincoli olonomi (integrabili)
hi (q) = 0
i = 1, . . . , k < n
⋆ la dimensione dello spazio delle configurazioni si riduce
• Vincoli cinematici
ai (q, q̇) = 0
i = 1, . . . , k < n
⋆ limitano i moti istantanei ammissibili
⋆ forma Pfaffiana (lineare nelle velocità)
aTi (q)q̇ = 0
ai : C 7→ IRn
i = 1, . . . , k < n
di classe C ∞
o in forma matriciale
AT (q)q̇ = 0
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Se un sistema meccanico è soggetto a vincoli olonomi allora è
soggetto anche a vincoli cinematici (in forma Pfaffiana)
hi (q) = 0 ⇒
∂hi (q)
dhi (q)
=
q̇ = 0
dt
∂q
i = 1, . . . , k
• Il viceversa è vero solo se il vincolo cinematico è integrabile,
altrimenti esso di dice anolonomo
⋆ condizione di integrabilità per un singolo vincolo Pfaffiano
∃h(q) :
∂h
= γ(q)aT (q)
∂q
con fattore di integrazione γ(q) 6= 0, e quindi
h(q) = c
superficie di livello di dimensione n − 1
perdita di accessibilità dello spazio delle configurazioni
⇓
vincolo olonomo
• I vincoli anolonomi non riducono la dimensione dello spazio
delle configurazioni però limitano la mobilità del sistema
⋆ sono ammissibili solo le velocità nel N (aT (q))
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Esempio
r
?
• Disco che rotola senza strisciare
⋆ coordinate generalizzate
q = [x
y
θ ]T
⋆ vincolo cinematico (puro rotolamento)
ẋ sin θ − ẏ cos θ = [ sin θ
−cos θ
0 ] q̇ = 0
la velocità lineare del punto di contatto non può avere
componenti lungo la direzione normale al piano sagittale
la velocità di rotazione del disco intorno all’asse verticale è
libera
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
r
R7
RW
?
• non c’è perdità di accessibilità
• il disco può essere condotto da una qualunque configurazione
qi = [ xi yi θi ]T a una qualunque configurazione qf =
[ xf yf θf ]T senza violare il vincolo con la sequenza di tre
manovre
⋆ ruoto il disco intorno all’asse verticale in modo che l’asse
sagittale passi per il punto (xf , yf )
⋆ rotolo il disco fino a raggiungere (xf , yf )
⋆ ruoto attorno all’asse verticale fino a che θ = θf
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Condizioni di integrabilità
• Per stabilire se il vincolo è olonomo o anolonomo, occorre
stabilire se esso è integrabile o no
• Condizione necessaria e sufficiente affinché un singolo vincolo
Pfaffiano
aT (q)q̇ =
n
X
aj (q)q̇j = 0
j=1
sia integrabile, è l’esistenza di una funzione scalare h(q) e un
fattore di integrazione γ(q) 6= 0 tali che
γ(q)aj (q) =
∂h(q)
∂qj
j = 1, . . . , n
• Una condizione equivalente che non contiene la funzione
incognita h(q) si ottiene applicando il teorema di Schwarz
sulle derivate seconde
∂(γaj )
∂(γak )
=
∂qj
∂qk
j, k = 1, . . . , n, j 6= k
⋆ basta osservare che, per il suddetto teorema
∂(γaj )
∂2h
∂2h
∂(γak )
=
=
=
∂qk
∂qk qj
∂qj qk
∂qj
• Nel caso di vincoli Pfaffiani multipli, useremo un diverso
approccio
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Esempio
• Si consideri il vincolo cinematico di puro rotolamento del disco
su un piano orizzontale
ẋ sin θ − ẏ cos θ = [ sin θ
−cos θ
0 ][ ẋ
ẏ
θ̇ ]T = 0
⋆ applicando la condizione di integrabilità
∂γ
∂γ
= −cos θ
∂y
∂x
∂γ
= γsin θ
cos θ
∂θ
∂γ
sin θ
= −γcos θ
∂θ
sin θ
⋆ quadrando e sommando le ultime due risulta
cui
∂γ
∂θ
= ±γ, per
γcos θ = γsin θ
γsin θ = −γcos θ
che ha come unica soluzione γ = 0 e quindi il vincolo non
è integrabile per cui è anolonomo
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
MODELLO CINEMATICO
• Consideriamo un sistema di k vincoli Pfaffiani
AT (q)q̇ = 0
⋆ le velocità ammissibili sono quelle che appartengono al
N (AT (q)) che ha dimensione n − k, una cui base sia
{ g1 (q), . . . , gn−k (q) }
⋆ dunque le velocità ammissibili sono tali che
q̇ =
m
X
gj (q)uj = G(q)u
m=n−k
j=1
• Tale equazione può essere vista come quella di un sistema
dinamico non lineare del primo ordine con stato q ∈ IRn e
ingresso di controllo u ∈ IRm
⋆ le soluzioni del sistema sono le traiettorie q(t) eseguite dal
sistema meccanico vincolato
⋆ esistono infinite scelte possibili per G(q) e può accadere
che u non abbia il significato degli ingressi di controllo
q̇ = G(q)u
modello cinematico
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Si può dimostrare che l’anolonomia dei vincoli cinematici è
equivalente alla controllabilità del modello cinematico (sistema
non lineare)
q̇ = G(q)u
⋆ se il sistema è controllabile vuol dire che comunque date
due configurazioni qi e qf in C, esiste sempre un ingresso
u(t) che porta da qi a qf , cioè esiste una traiettoria q(t)
che unisce qi e qf rispettando i vincoli
⋆ se il sistema non è controllabile vuol dire che i vincoli
cinematici riducono l’accessibilità di C a seconda della
dimensione ν del sottospazio di accessibilità
⇒
m<ν<n
vincoli parzialmente integrabili
⇓
sistema meccanico anolonomo
m=ν
⇒
vincoli completamente integrabili
⇓
sistema meccanico olonomo
• Lo studio della controllabilità dei sistemi non lineari in generale
esula dai limiti di questo corso
⋆ nel caso di un singolo vincolo cinematico la condizione di
integrabilità coincide con quella di involutività della
∆ = span{g1 , . . . , gn−1 }
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Uniciclo
r
K
4
F1
Fn
?
• È un veicolo con una sola ruota che rotola senza strisciare
⋆ coordinate generalizzate: q = [ x y
θ ]T
⋆ vincolo cinematico di puro rotolamento
ẋ sin θ − ẏ cos θ = [ sin θ
−cos θ
0 ]q̇ = 0
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Modello cinematico
⋆ lo spazio nullo della matrice (vettore riga) AT (q) ha per
base g1 (q) e g2 (q) colonne della matrice


cos θ 0
G(q) = [ g1 (q) g2 (q) ] =  sin θ 0 
0
1
⋆ le velocità si possono quindi scrivere come combinazione
lineare di tali colonne
  

 
ẋ
0
cos θ
 ẏ  =  sin θ  v +  0  ω
1
0
θ̇
v è la velocità lineare del punto di contatto
ω è la velocità angolare del robot (rotazione intorno all’asse
verticale)
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• I robot reali non hanno mai una sola ruota per problemi di
stabilità meccanica
⋆ veicolo a trazione differenziale
r(ωR − ωL )
r(ωR + ωL )
ω=
2
d
r è il raggio delle ruote
d è la distanza tra i centri delle ruote
il punto medio dell’asse delle ruote è il punto di coordinate
(x, y)
θ è l’orientamento delle ruote e quindi del veicolo
v=
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Biciclo
*
r
g
f
?
• È un veicolo avente una ruota orientabile e una ruota fissa
⋆ coordinate generalizzate: q = [ x y
θ
φ ]T
(x, y): coordinate cartesiane del punto di contatto tra la ruota
posteriore e il suolo
θ: orientamento del veicolo rispetto all’asse x
φ: angolo di sterzo della ruota anteriore rispetto al veicolo
• Due vincoli cinematici di puro rotolamento, uno per ogni ruota
ẋf sin (θ + φ) − ẏf cos (θ + φ) = 0
ẋ sin θ − ẏ cos θ = 0
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
⋆ posizione cartesiana del centro della ruota anteriore
xf = x + ℓ cos θ
yf = y + ℓ sin θ
ℓ: distanza tra le ruote
ẋ sin (θ + φ) − ẏ cos (θ + φ) − ℓ θ̇ cos φ = 0
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Vincoli Pfaffiani
sin θ
AT (q) =
sin (θ + φ)
−cos θ
0
−cos (θ + φ) −ℓ cos φ
0
0
⋆ rango costante k = 2 ⇒ velocità ammissibili come
combinazione lineare di una base del N (AT (q)) (n − k =
2)
  

 
ẋ
cos θ cos φ
0
 ẏ   sin θ cos φ 
0
 =
u
+

  u2
1
 θ̇ 
sin φ/ℓ
0
0
1
φ̇
• La ruota anteriore è orientabile ⇒ u2 = ω velocità angolare di
sterzo
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Trazione anteriore: u1 = v (velocità lineare di trazione)
⋆ modello cinematico
  
 

ẋ
0
cos θ cos φ
 ẏ   sin θ cos φ 
0
 =
v
+
  ω = g1 (q)v + g2 (q)ω

 θ̇ 
0
sin φ/ℓ
1
0
φ̇

cos θ sin φ
 sin θ sin φ 
g3 (q) = [g1 , g2 ](q) = 

−cos φ/ℓ
0


−sin θ/ℓ
 cos θ/ℓ 
g4 (q) = [g1 , g3 ](q) = 

0
0

entrambi linearmente indipendenti da g1 (q) e g2 (q)
⇓
dim ∆A = dim ∆3 = dim span{g1 , g2 , g3 , g4 } = 4
⋆ il biciclo a trazione anteriore è controllabile con grado di
anolonomia κ = 3
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Trazione posteriore: u1 = v/cos φ (velocità lineare di trazione)
⋆ modello cinematico (φ 6= ±π/2)
  

 
ẋ
0
cos θ
 ẏ   sin θ 
0
 =
v
+

 ω
 θ̇ 
0
tan φ/ℓ
1
0
φ̇

0


0




1
g3 (q) = [g1 , g2 ](q) = 

−
 ℓ cos 2 φ 
0

sin θ 
−
 ℓ cos 2 φ 


 cos θ 

g4 (q) = [g1 , g3 ](q) = 
 ℓ cos 2 φ 




0
0

linearmente indipendenti da g1 (q) e g2 (q).
⋆ il biciclo a trazione posteriore è controllabile con grado di
anolonomia κ = 3
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Veicoli cinematicamente equivalenti (meccanicamente bilanciati)
⋆ triciclo
⋆ automobile
⋆ stessi modelli cinematici (trazione anteriore o posteriore)
(x, y): coordinate cartesiane del punto medio dell’asse
posteriore
θ: orientamento del veicolo
φ: angolo di sterzo
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
PIANIFICAZIONE
• Separazione cammino-legge oraria
t ∈ [ti , tf ]
q(t)
q(ti ) = qi
q(tf ) = qf
q(s), s ∈ [0, L] :
q(0) = qi ,
⋆ cammino
dq(s)
6= 0
ds
q(L) = qf
∀s
⋆ legge oraria
s(t),
s(ti ) = 0,
s(tf ) = L
ṡ(t) ≥ 0, t ∈ [ti , tf ]
• la velocità nello spazio delle configurazioni è allora parallela
alla tangente al cammino
q̇ =
dq
dq
=
ṡ = q ′ ṡ
dt
ds
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• I vincoli anolonomi cui è soggetto il robot mobile sono allora
AT (q)q̇ = AT (q)q ′ ṡ = 0
⇓ se ṡ(t) > 0
⋆ ammissibilità geometrica
AT (q)q ′ = 0
∀s
• Il cammino q(s) è la soluzione del sistema dinamico non lineare
q ′ = G(q)ũ
⋆ ũ sono gli ingressi geometrici
u(t) = ũ(s)ṡ(t)
⋆ assegnati gli ingressi geometrici, il cammino è univocamente
determinato
• Come fare a determinare gli ingressi geometrici tali che il
corrispondente cammino soddisfi il vincolo di anolonomia?
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Uscite piatte
• I modelli cinematici di molti robot mobili (tra cui uniciclo e
biciclo) godono della proprietà di piattezza differenziale
ẋ = f (x) + G(x)u
⋆ esiste un insieme di uscite y tali che lo stato e gli ingressi
sono esprimibili algebricamente in funzione di tale uscita e
un certo numero di sue derivate
x = x(y, ẏ, ÿ, . . . , y (r) )
u = u(y, ẏ, ÿ, . . . , y (r) )
• Per l’uniciclo e il biciclo le uscite piatte sono proprio la
posizione (x, y) nel piano cartesiano
⋆ per l’uniciclo i cammini geometricamente ammissibili sono
le soluzioni del sistema
x′ = cos θṽ
y ′ = sin θṽ
θ′ = ω̃
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Dato un cammino cartesiano (x(s), y(s)) lo stato ad esso
associato è q(s) = [ x(s) y(s) θ(s) ]T , dove
θ(s) = Atan2(y ′ (s), x′ (s)) + kπ
k = 0, 1
⋆ k = 0 corrisponde alla marcia in avanti
⋆ k = 1 corrisponde alla marcia indietro
• Gli ingressi geometrici sono facilmente ottenibili algebricamente
p
ṽ(s) = ± ((x′ (s))2 + (y ′ (s))2
y ′′ (s)x′ (s) − x′′ (s)y ′ (s)
ω̃(s) =
(x′ (s))2 + (y ′ (s))2
• Casi particolari
⋆ la scelta del segno di ṽ(s) è legata al senso di marcia
⋆ se per qualche s̄ risulta x′ (s̄) = y ′ (s̄) = 0 l’orientamento
e la velocità angolare vanno calcolati per continuità (come
limite per s → s̄− )
⋆ se il cammino degenera in un punto θ e ω̃ non sono
ricostruibili
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Pianificazione di cammini mediante polinomi
cartesiani
• Se il modello cinematico di un robot mobile ammette uscite
piatte
⋆ si pianifica il cammino per tali uscite
⋆ dal modello cinematico si ricavano (algebricamente) il
cammino per lo stato e i corrispondenti ingressi geometrici
⋆ questa procedura garantisce che il cammino nello spazio
delle configurazioni q(s) soddisfi i vincoli anolonomi
• Pianificazione per un uniciclo
⋆ configurazione iniziale qi = q(0) = [ xi
yi
θi ]T
⋆ configurazione finale qf = q(1) = [ xf
yf
θf ]T
⋆ (x, y) sono uscite piatte ⇒ è sufficiente interpolare con
due polinomi (cubici) x(s) e y(s) i valori iniziali e finali
x(s) = s3 xf − (s − 1)3 xi + αx s2 (s − 1) + βx s(s − 1)2
y(s) = s3 yf − (s − 1)3 yi + αy s2 (s − 1) + βy s(s − 1)2
⋆ per soddisfare le condizioni al contorno sull’orientamento
x′ (0) = ki cos θi
x′ (1) = kf cos θf
y ′ (0) = ki sin θi
y ′ (1) = kf sin θf
con ki e kf parametri liberi
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
⋆ ponendo per esempio ki = kf = k > 0 si ottiene
αx
αy
kcos θf − 3xf
=
ksin θf − 3yf
βx
βy
kcos θi + 3xi
=
ksin θi + 3yi
⋆ il cammino dell’orientamento e gli ingressi geometrici
vengono determinati dal modello cinematico come visto
⋆ il valore di k influenza la forma del cammino pianificato
manovra di parcheggio parallelo
RW
>P@
>P@
RW
R7
R7
>P@
k = 10
>P@
k = 20
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Pianificazione di traiettorie
• Le tecniche viste finora potrebbero essere applicate anche
considerando la variabile s come la variabile temporale s = t
⋆ la durata della traiettoria è stabilita a priori tf − ti = sf − si
⋆ se le velocità calcolate eccedono i limiti ammissibili per il
robot
|v(t)| < vmax
|ω(t)| < ωmax
∀t
allora occorrerebbe aumentare la durata e quindi ripianificare il cammino
• Adottando invece la separazione tra cammino e legge oraria, è
sufficiente scalare uniformemente la traiettoria
ds 1
ds dτ
= ṽ(s)
dτ dt
dτ T
ds 1
ds dτ
= ω̃(s)
ω(t) = ω̃(s)ṡ(t) = ω̃(s)
dτ dt
dτ T
v(t) = ṽ(s)ṡ(t) = ṽ(s)
con τ = t/T e T = tf − ti sufficientemente alto in modo
da rispettare i limiti di velocità
• La legge oraria s(t) si può ricavare con i metodi già visti per la
pianificazione di traiettorie per i robot manipolatori
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
CONTROLLO DEL MOTO
Rw0D
RQ
€
0
RQw0D
R(
• I problemi di controllo del moto sono i due classici
⋆ inseguimento di traiettoria (sinistra)
⋆ regolazione di configurazione (destra)
• Il primo è quello più rilevante in pratica
⋆ permette di gestire la presenza di ostacoli
• Gli ingressi di controllo sono quasi sempre le velocità e non le
forze generalizzate
⋆ disponibilità di anelli di controllo di basso livello già
integrati nell’architettura hw/sw del robot
⋆ uso del modello cinematico per risolvere il problema del
controllo del moto
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
Inseguimento di traiettorie
• Traiettoria desiderata ammissibile
ẋd = vd cos θd
ẏd = vd sin θd
θ̇d = ωd
⋆ uso degli schemi di pianificazione studiati (uscite piatte)
xd (t), yd (t)
⇓
θd = Atan2(ẏd (t), ẋd (t)) + kπ
q
vd (t) = ± ẋ2d (t) + ẏd2 (t)
ωd (t) =
k = 0, 1
ÿd (t)ẋd (t) − ẍd (t)ẏd (t)
ẋ2d (t) + ẏd2 (t)
• Definizione dell’errore di inseguimento



e1
cos θ
e =  e2  =  −sin θ
e3
0
sin θ
cos θ
0




0
xd − x
xd − x
0   yd − y  = Rz (θ)  yd − y 
1
θd − θ
θd − θ
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Considerando il modello cinematico dell’uniciclo, si ottiene la
dinamica dell’errore
ė1 = vd cos e3 − v + e2 ω
ė2 = vd sin e3 − e1 ω
ė3 = ωd − ω
⋆ trasformazione (invertibile) degli ingressi
v = vd cos e3 − u1
ω = ωd − u2
⋆ dinamica dell’errore

0
ė =  −ωd
0
ωd
0
0
 



0
0
1 −e2 u
0  e+ sin e3  vd + 0 e1  1
u2
0
0
0
1
⋆ primo termine lineare tempo-variante
⋆ secondo e terzo termine non lineari
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Controllo via linearizzazione
⋆ linearizzando attorno all’origine e = 0

0
ė =  −ωd
0

ωd
0
0


0
1 0 u
vd  e +  0 0  1
u2
0 1
0
⋆ legge di controllo (in retroazione) lineare nello stato
u1 = −k1 e1
u2 = −k2 e2 − k3 e3
⋆ sistema a ciclo chiuso

−k1
ė = A(t)e =  −ωd
0
ωd
0
−k2

0
vd  e
−k3
⋆ il polinomio caratteristico è
p(λ) = λ(λ + k1 )(λ + k3 ) + ωd2 (λ + k3 ) + vd k2 (λ + k1 )
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
⋆ se ωd e vd sono costanti il sistema a ciclo chiuso è stabile
scegliendo
k1 = k3 = 2ζa
a2 − ωd2
k2 =
vd
infatti
p(λ) = (λ + 2ζa)(λ2 + 2ζaλ + a2 )
⋆ e quindi l’origine e = 0 è localmente asintoticamente
stabile
⋆ si noti come k2 → ∞ quando vd → 0
⇓
⋆ traiettorie cartesiane persistenti
⋆ gli ingressi di controllo in velocità vanno cosı̀ ricostruiti
v = vd cos e3 − u1
ω = ωd − u2
che tendono ai riferimenti quando l’errore tende a zero
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Controllo non lineare
⋆ dinamica dell’errore di inseguimento
ė1 = e2 ω + u1
ė2 = vd sin e3 − e1 ω
ė3 = u2
⋆ legge di controllo non lineare
u1 = −k1 (vd , ωd )e1
sin e3
e2 − k3 (vd , ωd )e3
u2 = −k2 vd
e3
nell’ipotesi che
k1 (·, ·) > 0, k3 (·, ·) > 0 limitate e con derivate limitate
k2 > 0 costante
vd , ωd limitate e con derivate limitate e non entrambi nulle
⋆ l’errore di inseguimento converge globalmente a zero
• Dimostrazione basata sul lemma di Barbalat . . .
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Linearizzazione ingresso–uscita
⋆ nuove uscite: posizione di un punto B lungo l’asse sagittale
a distanza |b| 6= 0 dal punto di contatto della ruota
y1 = x + bcos θ
y2 = y + bsin θ
⋆ dinamica delle uscite
ẏ1
ẏ2
=
cos θ
sin θ
v
v
−bsin θ
= T (θ)
ω
ω
bcos θ
con T (θ) invertibile (det(T (θ)) = b 6= 0)
⋆ controllo linearizzante
u
v
= T −1 (θ) 1
u2
ω
⋆ sistema a ciclo chiuso
ẏ1 = u1
ẏ2 = u2
u2 cos θ − u1 sin θ
θ̇ =
rimane non controllata
b
⋆ legge di controllo lineare per portare l’errore a zero
u1 = ẏ1d + k1 (y1d − y1 )
u2 = ẏ2d + k2 (y2d − y2 )
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Simulazione: traiettoria circolare e controllo via linearizzazione
xd (t) = xc + Rcos (ωd t)
yd (t) = yc + Rsin (ωd t)
HUURUHFDUWHVLDQR
>P@
>P@
>P@
>V@
• Simulazione: traiettoria a otto e controllo non lineare
xd (t) = xc + R1 sin (2ωd t)
yd (t) = yc + R2 sin (ωd t)
>P@
>P@
HUURUHFDUWHVLDQR
>P@
>V@
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• Simulazione: traiettoria quadrata e controllo con linearizzazione
ingresso-uscita (b = 0.2)
>PV@
>P@
YHORFLWjOLQHDUH
>V@
YHORFLWjDQJRODUH
>UDGV@
>P@
>V@
• Simulazione: traiettoria quadrata e controllo con linearizzazione
ingresso-uscita (b = 0.75)
YHORFLWjOLQHDUH
>PV@
YHORFLWjDQJRODUH
>UDGV@
>P@
>P@
>V@
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
LOCALIZZAZIONE ODOMETRICA
• Gli algoritmi di controllo del moto richiedono la misura della
configurazione del robot mobile (posizione e orientamento in
un sistema di riferimento fisso)
⋆ gli encoder montati sulle ruote forniscono solo la rotazione
di queste ultime
⋆ occorre un sistema di stima della posizione assoluta del
robot mobile (localizzazione)
• Localizzazione passiva (dead reckoning)
⋆ si integra numericamente il modello cinematico assumendo
che le velocità siano costanti nell’intervallo di campionamento
metodo di Eulero in avanti
xk+1 = xk + vk Ts cos θk
yk+1 = yk + vk Ts sin θk
θk+1 = θk + ωk Ts
metodo di Runge-Kutta
xk+1
yk+1
θk+1
ωk Ts
= xk + vk Ts cos θk +
2
ωk Ts
= yk + vk Ts sin θk +
2
= θk + ωk Ts
ROBOTICA AVANZATA
Prof. Bruno SICILIANO
• È bene non usare gli ingressi di riferimento ma usare misure da
sensori propriocettivi
vk Ts = ∆s
ωk Ts = ∆θ
⋆ per un veicolo a trazione differenziale
∆s =
r
(∆φR + ∆φL )
2
∆θ =
r
(∆φR − ∆φL )
d
⋆ è necessario conoscere la configurazione iniziale
⋆ fenomeno della deriva per errori numerici di integrazione
⋆ slittamento delle ruote, raggi delle ruote non noti
perfettamente
R>Ld
R>Ld
R>Ld
X
X
X
p
R>
p
p
R>
R>
• Localizzazione attiva
⋆ uso di sensori esterocettivi per la correzione della stima
ottenuta tramite la localizzazione odometrica
⋆ tecniche di fusione sensoriale (stima Bayesiana)