introduzione alla robotica mobile - lar-deis home … mobile... · unibo-logo outline dalla...
TRANSCRIPT
unibo-logo
Introduzione alla Robotica Mobile
Corso di Robotica Industriale M
Riccardo FalconiClaudio Melchiorri
[email protected]@unibo.it
DEIS - LAR, Universita di BolognaVia Risorgimento, 2
40136 Bologna
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Outline
Dalla robotica fissa alla robotica mobile
Cenni storici
Applicazioni
Sistemi di locomozione
Modellistica di robot mobili
Modellazione dei vincoli
Modello uniciclo
Modello biciclo
Controllo di robot mobili
Problemi elementari
Input-Output state feedback linearization
Navigazione: algoritmi di obstacle avoidance
Odometria
Sistemi Multi-Robot
Cenni
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Dalla Robotica Fissa alla Robotica Mobile
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Dalla Robotica Fissa alla Robotica Mobile
A partire dagli anni ’70, compaiono i primi robot industriali
Utilizzati per sostituire l’uomo in compiti pericolosi o semplici e ripetitivi
Si trattava di compiti da svolgere in loco
Gli ambienti di lavoro iniziarono ad essere modellati in base alle esigenze dicontrollo dei robot
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Dalla Robotica Fissa alla Robotica Mobile
Robotica FissaImita la funzionalita degli arti umanisuperiori
Robotica MobileImita la locomozione degli animali e lerelative problematiche
DefinizioneUn robot mobile e una macchina automatica in grado di muoversi nell’ ambienteche la circonda.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Possibili Applicazioni
Applicazioni Indoor
Pulizia di ambienti estesi
Robotica di servizio per musei, negozi, ecc...
Sorveglianza interna di edifici
Stoccaggio merci in magazzini automatizzati
...
Applicazioni Outdoor
Applicazioni militari
Sminamento
Esplorazione spaziale e subacquea
Protezione civile e sorveglianza boschiva
Agricoltura automatizzata
...
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Cenni Storici
Primi robot mobili a partire dal1940
Razzi V1 - V2 (rozzo autopilotainerziale)
Goliath
Filoguidati
Motori elettrici
Teletank
Carro telecontrollato
500 m di distanzaRiccardo Falconi (University of Bologna) Introduzione alla Robotica Mobile
DEIS - LAR, Universita di BolognaVia Risorgimento, 2/ 107
unibo-logo
Esempi
AGV in impianti automatizzati
Automatic Guided Vehicle (AGV)Electric 80
Usato per la gestione di fine linea diproduzione
Porta i pallet di prodotto stoccato dalmagazzino alle baie di carico camion
In un impianto possono circolare piu di30 AGV contemporaneamente
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
AGV in impianti automatizzati
(Loading AGV prel pallet.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
AGV in impianti automatizzati
(Loading AGV sicurezza.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Uso ospedaliero: Helpmate
Usato negli ospedali per il trasporto dimedicinali e logistica interna
si muove autonomamente
tramite telecamera, usa le lampade alsoffitto come riferimento
Uso domestico: RoombaAspirapolvere per applicazionidomestiche
Grazie ad algoritmi di path planningpulisce la stanza senza bisogno diimpostare mappe
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Robot sottomariniUtilizzati per archeologia sottomarina
Recupero relitti (Titanic)
Ispezione strutture
Monitorizzazione acque
Applicazioni spaziali
Realizzati a partire dal 1965
Altamente autonomi
In grado di lavorare senza supervisione
Dotati di alta ridondanza dei sensori
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Robot agricoli (attesi per il ≈2015)
Robot mobili concepiti per operazioni agricole:
ambienti strutturati (frutteti ad hoc)
vasti territori a cereali
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Robot volanti ad ala fissa
(Loading USAF Special UAV.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Robot volanti ad ala mobile
(Loading UAV fireman.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Esempi
Robot per ambienti ostiliRobot Pioneer
Sviluppato da Stanford University
Scelto per esplorare il sarcofago diChernobyl
Robot modulare consente di montare:
un braccio roboticoun gripperuna telecamera (stereo)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Principi di Locomozione
I concetti presenti in natura sono difficili dareplicare ingegneristicamente
Il rotolamento e il principio di funzionamentopiu efficiente, ma non si trova in natura
La maggior parte dei sistemi si muovono suruote o cingoli
La camminata di un bipede si avvicina alrotolamento
Camminata
Strisciamento Corsa Salto
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Principi di Locomozione
Camminata bipede
Approssima il rotolamento
Rotolamento di un poligono con latopari al passo della persona
Piu il passo e corto, meglio ilrotolamento viene approssimato
I robot che camminano:
si possono adattare meglio a unambiente variabile
sono lenti su superfici piatte
fortememte sovra-attuati
I robot con ruote/cingoli sono:
piu veloci su superfici piatte
sono poco adattabili
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Principi di Locomozione
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Principi di Locomozione
(Loading locomotion.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Principi di Locomozione
(Loading PETMAN Prototype.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modellistica di Robot Mobili
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Robot con Ruote (Wheeled Mobile Robots - WMR)
La ruota e la soluzione meccanicamente piu adatta a molte applicazioniTre ruote sono sufficienti a garantire la stabilita del veicoloQuali ruote usare?Quante ruote usare?
Ruota fissa
Ruota castor
Ruota centrata orientabile
Ruota svedese
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Swedish-Wheel
Si basano sull’idea di poter sfruttarel’attrito anche trasversalmente alladirezione di moto della ruota
(omni directional wheels.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Swedish-Wheel
(Loading Airtrax Omni Directional Drive.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Due ruote
Tre ruote
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Lego inverted pendulum
(Loading Lego Segway.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Quattro ruote
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Esempi con 6 ruote: Shrimp Rover
(Loading Shrimp rover.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Esempi con 6 ruote: NASA ATHLETE Vehicle
(Loading NASA ATHLETE.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Esempi con 6 ruote: NASA ATHLETE Vehicle
(Loading NASA ATHLETE 1.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
WMR: Possibili Configurazioni
Esempi con 6 ruote: NASA ATHLETE Vehicle
(Loading NASA ATHLETE 2.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Spazio delle Configurazioni
Ha dimensione pari al numero di parametri che servono per localizzare inmodo univoco la configurazione di un robot
Dipende strettamente dalla struttura del robot considerato
Analogo allo spazio di giunto
Esempio: uniciclo
X
Y
xr
yr
θr
q = [xr , yr , θr ]T ∈ R
3
Esempio: biciclo
X
Y
xr
yr
θr
φr
q = [xr , yr , θr , φr ]T ∈ R
4
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Vincoli
DefinizioneSi dice vincolo una qualunque condizione imposta ad un sistema materiale cheimpedisce di assumere una generica posizione e/o atto di moto
DefinizioneUn sistema materiale si dice soggetto a vincoli olonomi se tra le coordinate delsistema esistono dei legami espressi da relazioni finite (vincoli di posizione) oppurese tra le coordinate del sistema esistono dei legami espressi da relazionidifferenziabili integrabili finite.
DefinizioneUn vincolo si dice anolonomo se la relazione differenziale tra le coordinate nonriducibile a forma finita.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Vincoli Anolonomi
Ipotesi semplificativa
Ogni ruota rotola senza strisciamento
Ogni ruota introduce un vincolo anolonomo nel sistema in quanto nonconsente una traslazione normale alla direzione di rotolamento
Le ruote limitano la mobilita istantanea del robot, senza in genere ridurre lospazio delle configurazioni (es: parcheggio parallelo)
vt = ψr
vn
θ
ψ
x
y
Se non ci fosse il vincolo:
x = vt cos θ + vn cos(
θ +π
2
)
y = vt sin θ + vn sin(
θ +π
2
)
Poiche non c’e strisciamento in direzione normale vn = 0{
x = vt cos θy = vt sin θ
⇔ tan ∂θ =∂y
∂x⇔
[
x sin θ − y cos θ = 0Vincolo sulla mobilita
]
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Vincoli in Forma Pfaffiana
Per ogni ruota il vincolo puo essere scritto in forma vettoriale: a(q)q = 0
Per N ruote i vincoli possono essere espressi in forma matriciale: A(q)q = 0
Un vincolo che possa essere scritto come A(q)q = 0 e detto vincolo Pfaffiano
Vincoli anolonomi
Non e completamente integrabile
Non puo essere scritto nello spaziodelle configurazioni
Non limitano lo spazio delleconfigurazioni ma la mobilitaistantanea del robot.
Velocita ammissibiliPossono essere generate da una matriceG (q) tale che:
Im(G (q)) = Ker(A(q)), ∀q ∈ C
C = RN spazio
config.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico di un WMR
Formulazione generale
q = G (q)v
Rappresenta le direzioni di moto ammissibili nello spazio delle configurazioni
Lega le velocita nello spazio operativo con le velocita nello spazio delleconfigurazioni
Devono essere affrontati i problemi principali della robotica mobile:
Pianificazione di traiettoriaControllo (di alto livello)Localizzazione...
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Uniciclo
DefinizioneUn uniciclo e un veicolo avente una solo ruota orientabile
La configurazione e descritta da q =
x
y
θ
Vincolo: x sin θ − y cos θ = 0
X
Y
xr
yr
θr
In forma Pfaffiana: A(q)q = 0 con:
{
A(q) = [sin θ,− cos θ, 0]
q = [x , y , θ]T
Ker(A(q)) = span
cos θ
sin θ
0
,
001
= Im(G(q))
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Uniciclo
Modello cinematico uniciclo
q =
cos θsin θ0
v +
001
ω =
cos θ 0sin θ 00 1
[
v
ω
]
v = ψr
ψω
x
y
v : la velocita lineare del punto di contatto tra la ruota e il suolo ed e pari alprodotto tra velocita di rotazione della ruota attorno al suo asse orizzontale eil raggio della stessa
ω: velocita angolare del robot, pari alla velocita di rotazione della ruotaintorno allasse verticale
Agendo su v e ω si puo variare la configurazione del robot
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Uniciclo
L’uniciclo propriamente detto ha gravi problemi dibilanciamento in condizioni statiche
Si usano strutture cinematiche equivalenti e stabili
Modello synchronized drive
Ruote orientabili parallele accoppiate
Stessi ingressi [v , ω]T
[x , y , θ]T posizione di qualsiasi puntoe orientamento robot.
x
y
xr
yr
θr
Modello differential drive
Due ruote comandate separatamente
Una ruota da appoggio
[x , y , θ]T posizione di punto medianoasse ruote e orientamento robot.
x
y
xr
yr
θr
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Uniciclo: Differential Drive
RemarksModello piu diffuso di realizzazione dell’uniciclo(cinematicamente equivalente)
Due ruote coassiali attuate indipendenti
Una o piu ruote castor (o sfere) per stabilita statica
Puo ruotare sul posto ponendo ωR = −ωLx
y
xr
yr
θr
Khepera III
(K-Team, EPFL)Sbot (EPFL) Sentinel (iRobot)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Uniciclo: Differential Drive
Definite
ωR = velocita ruota DxωL = velocita ruota Sxd = interasser = raggio ruota
Modello con ingressi ωR , ωL[
v
ω
]
=
[
r2
r2
rd
− rd
] [
ωR
ωL
]
x
y
xr
yr
d
ωL
ωR
2r
θr
Nello spazio degli stati
q =
x
y
θ
=
cos θ 0sin θ 00 1
[
r2
r2
rd
− rd
] [
ωR
ωL
]
=
r cos θ2
r cos θ2
r sin θd
r sin θd
rd
− rd
[
ωR
ωL
]
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
DefinizioneUn biciclo e un veicolo avente una ruota orientabile e una ruota fissa disposte conassi di rotazione propria ortogonali al piano e assi di precessione paralleli
La configurazione e descritta da
q =
x
y
θφ
C centro di istantanea rotazione
Si considera il caso con trazioneanteriore
X
YC
L
xr
yr
xf
yf θr
φr
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
Sistema soggetto a due vincoli di rotolamento, uno per ogni ruota.
{
xf sin (θr + φr ) − yf cos (θr + φr ) = 0xr sin (θr ) − yr cos (θr ) = 0
Il punto (xf , yf ) rappresenta laposizione cartesiana del punto dicontatto tra il piano e la ruotaanteriore
Le coppie (xr , yr ), (xf , yf ) non fanno parte entrambe contemporaneamente dellaconfigurazione del robot, poiche sono riconducibili l’una all’altra. Infatti:
xf = xr + L cos θryf = yr + L sin θr
xr = xf − L cos θryr = yf − L sin θr
xf sin (θr + φr ) − yf cos (θr + φr ) = 0⇓
xr sin (θr + φr ) − yr cos (θr + φr ) − θr cosφr = 0
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
I vincoli cinematici del biciclo sono quindi:
{
xr sin (θr + φr ) − yr cos (θr + φr ) − θr cosφr = 0xr sin (θr ) − yr cos (θr ) = 0
in forma Pfaffiana
A(q) =
[
sin θr − cos θr 0 0sin(θr + phir ) − cos(θr + phir ) −L cosφr 0
]
Quindi:
Ker(A(q)) = span
cos θr cosφr
sin θr cosφr
1
Lsinφr
0
,
0001
,
= Im(G (q))
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
v : velocita lineare di trazione
ω: velocita angolare del veicolo
X
YC
L
xr
yr
xf
yf θr
φr
q =
cos θr cosφr
sin θr cosφr
1
Lsinφr
0
v +
0001
ω =
cos θr cosφr 0sin θr cosφr 0
1
Lsinφr 0
0 1
[
v
ω
]
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
Il biciclo propriamente detto ha problemi di stabilita in condizioni statiche
Nella pratica si ricorre a strutture cinematicamente equivalenti ma piu stabili daun punto di vista meccanico. Le piu usate sono
Modello car-like
Modello triciclo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
TricicloDue ruote fisse sullasse posteriore e una ruotaorientabile in posizione anteriore
Le ruote fisse sono controllate da un unicomotore che determina la trazione. Un altromotore controlla lorientamento della ruotaanteriore che determina lo sterzo.
Car-LikeDue ruote fisse sullasse posteriore e due ruoteorientabili sullasse anteriore.
Il sistema e controllato da due motori. Unodetermina la trazione (anteriore o posteriore) elaltro lo sterzo.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Modello Cinematico del Biciclo
Il triciclo e l’automobileTriciclo e automobile hanno lo stesso modello cinematico del biciclo
Il punto (xr , yr ) e il punto medio dell’asse posteriore
θr e l’orientamento del veicolo
φ e l’angolo di sterzo
v , ω sono la velocita di trazione e la velocita di sterzo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Uniciclo e Biciclo
La struttura cinematica a uniciclo e a biciclo sono le piu utilizzate e diffusenelle applicazioni (in particolare quelle industriali)
Altre strutture cinematiche sono utilizzate per applicazioni particolari
I modelli cinematici di strutture piu complesse si ottengono tenendo inconsiderazione i vincoli introdotti da ciascuna ruota.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo Single Robot
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Compiti di Moto Elementare
Parcheggio (traferimento point-to-point)
Posizione iniziale
Posizione finale
Inseguimento di Cammini (Trajectory Following)
Posizione iniziale
Posizione finaleParametro s WMR di riferimento
Inseguimento di Traiettorie (Trajectory Tracking)
Posizione iniziale
Posizione finaleParametro t
WMR di riferimento all’istante t
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Schema di Controllo
+
–
Task
Pianificazione Controllo Att. Robot
Model
EndEffector
Am
bie
nte
Sensori(Proprio, Estero)
qd u τ
q
Ferr .
Low-Level Control
High-Level Control
Attuatori (motori DC, motor step-by-step, ...)
End-Effector (attrezzo, pinza, mano)
SensoriPropriocettivi (encoder, giroscopi, ...)Esterocettivi (bumbers, rangefinders (infrarossi, ultrasuoni), laser, visione(mono, stereo), ...)
ControlloBasso livelloAlto livello
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo Basso Livello
ControlloAlto Livello Controllo A
tt. Robot
Modelu τ
Low-Level Control
Concetti fondamentaliControllori PI ad alto guadagno controllano i motori del robot affinche ilrobot si muova secondo il profilo di velocita desiderato
Il controllo a basso livello si occupa solamente di controllare gli attuatori delrobot secondo le istruzioni del controllo ad alto livello
Se i guadagni sono abbastanza alti, il controllo di basso livello rende il robotun sistema puramente cinematico
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo di Alto Livello vs. Basso Livello
Concetti fondamentaliUtilizzando i dati dei sensori, elabora il segnaleda passare al controllore di basso livello
Da questo punto di vista, il robot si comportacome un sistema puramente cinematico
I segnali di controllo sono in velocita
+
–
Task
ControlloAlto Livello qd
err .
High-Level Control
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo di un WMR
Basso livelloControlla i motori per attuarlo
Si riduce a un PI per motore elettrico (sistema lineare)
Non risente dei vincoli introdotti dalle ruote
Problematiche note
Alto livelloDecide il movimento del robot
Deve considerarne il modello cinematico
Soggetto ai vincoli delle ruote
Deve controllare un sistema non lineare (complesso)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione
PianificazioneProblema di determinare una traiettoria nello spazio delle configurazioni perportare il robot da una certa configurazione iniziale ad una certaconfigurazione finale ammissibili
Le configurazioni di partenza e di arrivo devono essere compatibili con ivincoli cinematici del robot (condizioni al contorno)
Ogni punto della traiettoria deve essere compatibile con i vincoli cinematicidel robot
DefinizioneUna traiettoria per un dato robot si definisce inammissible se richiede al robot dicompiere spostamentei incompatibili con i propri vincoli cinematici
Esempio: uniciclo non puo averetraiettorie di traslazione laterale
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione
Si desidera pianificare una traiettoria q(t) per t in [ti , tf ] che porti il robot dauna configurazione iniziale q(ti ) = qi a una configurazione finale q(tf ) = qf
Si assume assenza di ostacoli
s(ti ) = si s(tf ) = sf
La traiettoria q(t) si puo decomporre in
un cammino q(s), condq(s)
ds6= 0,∀s
una legge oraria s = s(t), con si ≤ s ≤ sf ,
con
{
s(ti ) = sis(tf ) = sf
s monotono, ossia s(t) ≥ 0
Tipica scelta per s e l’ascissa curvilinea
lungo il cammino, quindi:
{
si =sf = L
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione
Separazione spazio-temporale della traiettoria q =dq
dt=
dq
dss = q′s
q′ diretto come la tangente al cammino nello spazio delle configurazioni,orientato per s crescenti
s scalare che modula l’intensita
Dalla forma Pfaffiana dei vincoli anolonomi
{
A(q)q = A(q)q′s = 0s > 0, ∀t ∈ [ti , tf ]
⇓
Condizione di ammissibilitageometrica del cammino
A(q)q′
Un cammino ammissibile sara dato da q′ = G (q)u
Ingressi geometrici u: determinano la geometria del camminoFissati u ammissibili, si definisce la legge oraria s(t) per definire con chevelotita deve essere percorso il cammino
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione
ProblemaCome unire la il cammino geometrico di cui sono noti gli ingressi u e la leggeoraria al fine di ottenere gli ingressi di controllo per il robot?
q = G (q)u
u =?
q′ = G (q)u(s)⇓dq
dss = G (q)u(s)s
⇓{
q = G (q)u(s)sq = G (q)u(t)
⇓
u(s)s = u(t)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione
Esempio
Per l’uniciclo, i vincoli anolonomi dati dal rotolamento senza strisciamento delleruote implicano la seguente condizione di ammissibilita per il cammino geometrico:
[sin θ,− cos θ, 0] q′ = x ′ sin θ − y ′ cos θ = 0
La condizione esprime il fatto che la velocita cartesiana deve essere orientatalungo la direzione del moto.
I cammini ammissibili per l’uniciclo sono dati da:
x ′ = v cos θy ′ = v sin θθ′ = ω
Una volta determinati gli ingressi geometrici, gli ingressi cinematici sono datida:
{
v(t) = v s
ω(t) = ωs
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
DefinizioneUn generico sistema dinamico non lineare
x = f (x) + g(x)u
possiede la proprieta di piattezza differenziale (o differential flatness) se esiste uninsieme di uscite y (dette piatte o flat), tali che lo stato x e l’ingresso u delsistema possono essere espressi algebricamente in funzione di y e di un certonumero di sue derivate
x = x(y , y , y , . . . , y (r))u = u(y , y , y , . . . , y (r))
Una volta determinata una traiettoria y nel tempo, risultano determinateanche la traiettoria dello stato x e dell’ingresso u
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
Per uniciclo e biciclo, le coordinate cartesiane sono uscite flat
Modello geometrico dell’uniciclo:
x ′ = v cos θy ′ = v sin θθ′ = ω
v
vx
θ vy
xr
yr
L’orientamento dipende dalla derivata prima delle uscite flat:
θ = θ(x ′, y ′) = arctan(y ′/x ′) + kπ, con k = 0, 1
Le due scelte possibili per θ dipendono dal fatto che lo stesso cammino puoessere percorso a marcia avanti (k = 0) o a marcia indietro (k = 1)
Se l’orientamento iniziale del robot e assegnato, allora k = 0 ∨ k = 1
k = 0 k = π
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
Dal modello cinematico del robot, si ottiene:
v(s) = ±√
x ′(s)2 + y ′(s)2
ω(s) =y ′′(s)x ′(s) − x ′′(s)y ′(s)
x ′(s)2 + y ′(s)2
Una volta definitoil profilo di velocita desiderato, si ottiene:{
v(t) = v(s)s(t)ω(t) = ω(s)s(t)
Dove il segno di s(t) dipende dal senso di marcia scelto
Se un robot mobile ammette uscite piatte y, queste possono essere utilizzateper risolvere i problemi di pianificazione.E possibile usare un qualsiasi schema di interpolazione per pianificare ilcammino di tali uscite in modo da soddisfare le condizioni al contornoL’evoluzione delle altre variabili associate e gli ingressi cinematici si potrannocalcolare algebricamente a partire da y(s)Il cammino nello spazio delle configurazioni generato in tal modo soddisferaautomaticamente i vincoli anolonomi del robot
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
ProblemaPianificare il cammino per un uniciclo che porti il robot da una configurazioneiniziale qi = [xi , yi , θi ] a una configurazione finale qf = [xf , yf , θf ]
SoluzionePoiche x , y sono uscite flat, le sfrutto per pianificare la traiettoria
Suppongo di parametrizzare la curva con un parametro s = [0, 1]
Uso un polinomio cubico:
x(s) = s3xf − (s − 1)3xi + αx(s − 1) + βxs(s − 1)2
=y(s) = s3yf − (s − 1)3yi + αy (s − 1) + βy s(s − 1)2
che soddisfano automaticamente le condizioni al contorno su x , y
x(0) = xi x(1) = xf
y(0) = yi y(1) = yf
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
Poiche l’orientamento dipende punto per punto dai valori di x ′, y ′, devono esseresoddisfatte anche le condizioni al contorno su θ:
x ′(0) = ki cos θi x ′(1) = kf cos θfy ′(0) = ki sin θi y ′(1) = kf sin θf
ki > 0 e kf > 0 sono parametri liberi dello stesso segno
Rappresentano le velocita geometriche all’istante iniziale ed a quello finale
Influenzano il tipo di cammino che si ottiene
Consentono di calcolare i valori di αx , αy , βx , βy . Siano ki = kf = k
[
αx
αy
]
=
[
k cos θf − 3xf
k sin θf − 3yf
] [
βx
βy
]
=
[
k cos θi − 3xi
k sin θi − 3yi
]
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
Parcheggio Parallelo
qi = [0, 0, 0]qf = [0,−5, 0] k = 10, k = 20, k = 30
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Pianificazione Tramite Differential Flatness
Parcheggio: qi =[
5, 5, π3
]T⇒ qf =
[
0, 1, π2
]T
k = 10
−5 0 5 10 15−10
−5
0
5
10
[m]
[m]
0 2 4 6 8 100
0.5
1
1.5
time
m/sec
0 2 4 6 8 10−5
0
5
10
15
time
rad/sec
k = 50
−5 0 5 10 15−10
−5
0
5
10
[m]
[m]
0 2 4 6 8 100
2
4
6
time
m/sec
0 2 4 6 8 10−6
−4
−2
0
time
rad/sec
k = 100
−5 0 5 10 15−10
−5
0
5
10
[m]
[m]
0 2 4 6 8 100
5
10
15
time
m/sec
0 2 4 6 8 10
−3
−2
−1
0
time
rad/sec
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo del Moto
Data una traiettoria o una configurazione desiderata, costruire una legge dicontrollo che porti il robot nella configurazione desiderata o a seguire la traiettoria
Il problema del controllo del moto di un robot mobile viene affrontatoutilizzando il modello cinematico
Si suppone che gli ingressi cinematici agiscano direttamente sulle variabili diconfigurazione
Nel caso dell’uniciclo e del biciclo, gli ingressi di controllo sono v e ω
Nella maggior parte dei robot mobili non e possibile imporre direttamente lacoppia motrice sulle ruote a causa di anelli di controllo a basso livellointegrati nell’architettura hardware o software.
Considereremo principalmente il problema del controllo del robot a uniciclo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Controllo del Moto
Due problematiche differenti
Regolazione di configurazione
Il robot deve raggiungere una configurazione desiderata qd = [xd , yd , θd ]T
a
partire da una configurazione iniziale q0 = [x0, y0, θ0]T.
Problema piu difficile ma generico
Inseguimento di traiettoria
Il robot deve riprodurre asintoticamente una traiettoria cartesiana desiderata[xd(t), yd (t)]
Ta partire da una configurazione iniziale q0 = [x0, y0, θ0]
Tche puo
essere o meno agganciata alla traiettoria:
Trajectory Following se dipende da un parametro s
Trajectory Tracking se dipende dal tempo t
Problema piu facile ma di maggiore interesse pratico
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Inseguimento di Traiettorie - I-O SFL
Idea baseDefinisco un punto b fuori dall’assedelle ruote
Controllo il punto b
Il punto b tira il veicolo
{
xb = xr + b cos θryb = yr + b sin θr
, b 6= 0
X
X
Y
xr
yr
xb
yb θr
b
Il punto b non ha vincoli e puospostarsi istantaneamente in ognidirezione
Il punto b puo spostarsilateralmente rispetto alla direzionedi moto
Si possono definire due ingressi percontrollare vx,b e vy ,b{
xb = vx,b
yb = vy ,b
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Inseguimento di Traiettorie - I-O SFL
xb = xr − b · ω sin θr = v cos θr − b · ω sin θryb = yr + b · ω cos θr = v sin θr + b · ω cos θrθr = ω
, b 6= 0
[
xb
yb
]
=
[
cos θ −b · sin θr
sin θ b · cos θr
] [
v
ω
]
= T (b, θr )
[
v
ω
]
Si dimostra che per b 6= 0, det (T (b, θr )) 6= 0
La matrice T (b, θr ) e sempre invertibile
X
X
Y
xr
yr
xb
yb θr
b
[
v
ω
]
= T (b, θr )−1
[
xb
yb
]
=
[
cos θ sin θr
−1
bsin θ
1
bcos θr
]
[
xb
yb
]
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Inseguimento di Traiettorie - I-O SFL
Dalle relazioni precedenti si ricava il seguente sistema lineare e disaccoppiato suicanali ingressi-uscite
xb = vx,b
yb = vy ,b
θr =1
b(vy ,b cos θr − vx,b sin θr )
La direzione x e la direzione y del puntoB possono essere controllateindipendentemente l’una dall’altratramite gli ingressi vx,b e vy ,b
Data una traiettoria (xd(·), yd (·)) da inseguire, e possibile costruire/trovare vx,b evy ,b che garantiscono l’inseguimento utilizzando queste semplici leggi lineari:
{
xb = vx,b = xd + K1 (xd − xb)yb = vy ,b = yd + K2 (yd − yb)
Dinamica errore
Definendo
{
ex = xd − xb
ey = yd − yb⇒
{
ex + K1ex = 0ey + K2ey = 0
⇔
{
ex → 0ey → 0
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Inseguimento di Traiettorie - I-O SFL
Una volta trovati gli ingressi richiesti peril punto b, si possono trovare gli ingressida dare all’uniciclo per muove il punto b
come desiderato
[
v
ω
]
=
[
cos θ sin θr
−1
bsin θ
1
bcos θr
]
[
xb
yb
]
Esempio: inseguimento di un quadrato
(Loading square example.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione
Interazione con l’ambienteSpesso un robot si trova a doversi muovere in un ambiente in cui sono presentiostacoli (fissi o mobili). Il robot, tramite la conoscenza dell’ambiente e/o tramitel’utilizzo dei sensori a bordo deve riconoscere dove sono gli ostacoli ed evitarli alfine di navigare in maniera sicura (cioe senza collisioni) all’interno dello spazio dilavoro.
qstart
qgoal
Problema della navigazione
Data una configurazione di partenza e una di arrivo note, e il problema di trovareuna percorso libero da collisioni che porti il robot dalla configurazione di partenzaa quella di arrivo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Algoritmo di Braitenberg
Idea Base
Valentino Braitenberg (Bolzano, 1924). Neuropsichiatra.
Una rete neurale semplice elabora i segnali dei sensori posti sul lato destro esinistro del robot e applica il risultato direttamente ai motori
Braitenberg, V. (1984) I veicoli pensanti. Saggio di psicologia sintetica.Garzanti, Milano
Braitenberg, V. (1984) Vehicles: Experiments in synthetic psychology.Cambridge, MA: MIT Press.
+ +
(Loading braitenberg.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm
Gli algoritmi bug si basano sulla possibilita del robot di percepire, tramiteopportuni sensori eterocettivi (bumpers, range finders), la presenza di un ostacoloquando vi sono molto vicini o addirittura quando lo stanno toccando.
Idea baseMuovere il robot in linea retta verso l’obiettivo. Quando si incontra un ostacolo,lo si circumnaviga fino a quando non e possibile muoversi in linea retta versol’obiettivo
Ipotesi semplificative
Robot punto materiale (nessun controllo su orientamento)
Robot dotato di sensore di contatto
Robot ha accesso alla sua posizione e a quella dei punti di partenza e arrivo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 1
Il robot ha due tipi di comportamento tra i quali commuta
m-line: linea che collega in punto a qgoal
Motion to GoalA partire da un leave point, il robot si muove lungo la m-line che connette il leavepoint al goal finche non raggiunge il goal o incontra un ostacolo. Se il robotincontra un ostacolo, il punto di contatto viene detto hit point e ilcomportamento del robot commuta al boundary following.
Boundary Following
A partire da un hit point, il robot circumnaviga l’ostacolo finche non ritorna all’hitpoint. Poi determina il punto piu vicino al goal lungo il perimetro dell’ostacolo e sisposta lungo il perimetro fino a raggiungere quel punto, detto leave point e ilcomportamento del robot commuta al motion to goal.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 1
Caso standard
Inizializzazione qL0 = qstart
All’inizio il sistema si trova in un leave
point
qLi = leave point i-esimo
qHi = hit point i-esimo
Caso senza soluzioneSe la linea che collega il leave point i-esimocon il goal intereseca l’ostacolo i-esimo, alloranon esiste nessun percorso che consenta diraggiungere il goal. In tal caso l’algoritmo losegnala
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 1
Input: Un robot con un sensore di contattoOutput: Un percorso fino a qgoal o una conclusione che tale percorso non esiste
0 : i=1; qL0 = qstart ;
1 : while True do
2 : repeat
3 : Da qLi−1, muoviti verso qgoal
4 : until qgoal e raggiunto or si tocca un ostacolo a qHi
5 : if qgoal e raggiunto then
6 : Exit7 : end if
8 : repeat
9 : Segui il bordo dellostacolo.10: until qgoal e raggiunto or ci si ritrova a qH
i
11: Determina il punto qLi
sul perimetro che e alla minima distanza da qgoal .
12: vai a qHi
.
13: if la m-line che passa da qLi
interseca lostacolo su cui si trova qHi
then
14: Concludi che qgoal non e raggiungibile15: Exit16: end if
17: i=i+118: end while
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 2
Come per il Bug1, il robot commuta tra due comportamenti
Motion to GoalBoundary Following
Per il Bug2, la m-line e fissa, generalmente e il segmento che collega qstart aqgoal
Ulteriore modifica e il tangent bug algorithm in:
Kamon I., Rivlin E., Rimon, E., A new range-sensor based globally convergent
navigation algorithm for mobile robots, IEEE International Conference on Roboticsand Automation, 1996
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 2
Caso standard
Inizializzazione qL0 = qstart
L’inizio il sistema si trova in un leave
point
qLi = leave point i-esimo
qHi = hit point i-esimo
Caso senza soluzioneSe durante il boundary following il robotincontra di nuovo il punto da cui e partitosulla m-line allora non esiste nessun percorsoche consenta di raggiungere il goal. In talcaso l’algoritmo lo segnala
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug Algorithm 2
Input: Un robot con un sensore di contattoOutput: Un percorso fino a qgoal o una conclusione che tale percorso non esiste
0 : i=1; qL0 = qstart ;
1 : while True do
2 : repeat
3 : Da qLi−1, muoviti verso qgoal lungo m-line
4 : until qgoal e raggiunto or si tocca un ostacolo a qHi
5 : Gira a Sx o Dx8 : repeat
9 : Segui il bordo dell’ostacolo.10: until qgoal e raggiunto or ci si ritrova a qH
ior
11: la m-line e raggiunta di nuovo in un punto tale che:12: -1- m 6= qH
i% il robot non ha raggiunto hit point
14: -2- d(m, qgoal ) < d(m, qHi
)15: -3- Se il robot si muove verso qgoal non collide con l’ostacolo
16: Si ponga qLi+1 = m 17: i=i+1
18: end while
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Bug 1 o Bug 2 ?
A prima vista sembra che Bug2 sia meglio di Bug1 (non comporta unacircumnavigazione completa degli ostacoli)
Questo non e sempre vero e dipende dal tipo di ostacoli
Bug2 e meglio di Bug1 Bug1 e meglio di Bug2
Bug 1
Ricerca esaustiva del leave point
Funziona meglio su ostacoli complessi
Bug 2
Ricerca opportunistica del leave point
Funziona meglio su ostacoli semplici
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali
Attraverso i Bug algorithm si possono considerare solo robot planari e non l’interospazio delle configurazioni
Attraverso la pianificazione basata su campi potenziali e possibile pianificare il motoanche per sistemi con variabili di configurazione di dimensione elevata
Come gli algoritmi bug, consentono di generare il percorso incrementalmente,cambiandolo man mano che un ostacolo e percepito
Funzione potenziale
U : Rm → R
Gradiente di U
∇U(q) =
[
∂U
∂q1(q) . . .
∂U
∂qn
(q)
]T
q = [q1, q2]
U(q) =1
2qTq
∇U(q) = [q1, q2]
U(q) equivale a una funzione energia sullo spazio delle configurazioni
∇U(·) rappresenta la forza indotta dalla presenza del potenziale
∇U(q) punta verso la direzione in cui U cresce.
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali
Discesa del gradiente (gradient descent)
Le funzioni potenziali sono come dei paesaggi in cui il robot e immerso
Si muove spostandosi da un punto in alto a un punto piu in basso.
Segue un percorso in discesa (gradiente negato della funzione potenziale)
q
U(q)
q(t) = −∇U(q)qstart
MinimoLocale
MinimoGlobale
qstart
qgoal
Il robot si muove immerso in un campo dato dalla somma di tutti quelli presentinell’ambiente
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali
Come si crea il potenziale per guidare il robot da qstart a qgoal evitando gli
ostacoli?
Potenziale attrattivo
Uatt(q) Ha il minimo in qgoal
Il suo ruolo e di attirare il robot verso l’obiettivo
Potenziale repulsivo
Urep =∑Nobst
i=1 Urepi(q)
Dato dalla somma dei potenziali repulsivi perogni ostacolo
Ha il ruolo di allontanare il robot dagli ostacoli
Legge di controllo
q(t) = −∇U(q), dove: U(q) = Uatt(q) + Urep(q)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali
Potenziale attrattivo
Monotonicamente crescente con ∆(q, qgoal)
Robot attirato in ∆(q, qgoal)
qgoal minimo isolato: no punti critici
Possibile scelta
Uatt =1
2Ka∆(q, qgoal) ∇Uatt =
1
2Ka∇∆2(q, qgoal) = Ka(q − qgoal)
Quando il robot e lontano, si avvicina velocemente
Quando il robot e vicino, si avvicina lentamente
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali
Potenziale repulsivo
Somma di potenziali repulsivi, ognuno associato ad un ostacolo
La forsa repulsiva deve crescere quando il robot si avvicina
La forza repulsiva deve essere nulla oltre a una certa soglia
Possibile scelta
Urepi(q) =
1
2Kri
(
1
di (q)−
1
q∗
)2
di (q) ≤ q∗
0 di (q) > q∗
∇Urepi(q) =
Kri
(
1
q∗
−1
di (q)
)2
∇di (q) di (q) ≤ q∗
0 di (q) > q∗
Se di (q) = 0, allora ∇Urep(q) → ∞
Minimi locali
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Navigazione: Campi Potenziali e Minimi Locali
L’algoritmo basato sulla discesa del gradiente puo rimanere bloccato in un minimo
locale, dove potenziale attrattivo e repulsivo si equilibrano
qstart qgoal
Non e un metodo di pianificazionecompleto
Salvo casi particolari i minimi localisono sempre presenti
Generalmente con ostacoli convessisi possono evitare
Possibili soluzioni
Algoritmo best first
Algoritmo best first randomizzato
Funzioni di navigazione
Aggiunta di rumore
Algoritmo escape window
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
DefinizioneL’odometria e la tecnica per stimare la posizione di un veicolo su ruote basandosisu informazioni provenienti da sensori che misurano lo spazio percorso da alcunedelle ruote e l’angolo di sterzo (se presente)
Ogni controllore in retroazione richiede la conoscenza dello stato del robot(posizione assoluta)
Gli encoder incrementali sulle ruote ne misurano la rotazione, ma nonl’assetto del robot in un sistem di riferimento fisso assoluto
Serve una procedura di localizzazione ( stima in tempo reale della posizione)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Ipotesi
Uniciclo comandato con v e ω
x = v cos θy = v sin θ
θ = ω
Comandi costanti durante ogni intervallo di campionamento (generalmenteverificato se controllo digitale)
All’istante tk sia nota q(tk) = qk
Comandi vk = v(tk), ωk = ω(tk) applicati in t ∈ [ tk , tk+1)
Intervallo si campionamento Ts = tk+1 − tk
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Metodo di Eulero
xk+1 = xk + vkTs cos θkyk+1 = yk + vkTs sin θkθk+1 = θk + ωkTs
Errore nel calcolo di xk+1, yk+1: si considera θk come se fosse costante int ∈ [ tk , tk+1)
Metodo corretto per tratti rettilinei
L’errore cala al calare di Ts
θk+1 = θk + ωkTs e esatta
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Metodo di Runge-Kutta del II ordine
xk+1 = xk + vkTs cos
(
θk +ωkTs
2
)
yk+1 = yk + vkTs sin
(
θk +ωkTs
2
)
θk+1 = θk + ωkTs
Errore ridotto: nel calcolo di xk+1, yk+1 si usa il valore medio di θk .
L’errore cala al calare di Ts
θk+1 = θk + ωkTs e esatta
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Ricostruzione esatta
xk+1 = xk +vk
ωk
(sin θk+1 − sin θk)
yk+1 = yk −vk
ωk
(cos θk+1 − cos θk)
θk+1 = θk + ωkTs
R =vk
ωk
raggio di curvatura istantaneo a t = tk
Soluzione basata su considerazioni geometriche
Per il caso rettilineo ωk = 0 → R = ∞, le equazioni degenerano nelleanaloghe per la’lgotimo di Eulero e quello di Runge-Kutta
implementativamente, il caso ωk = 0 va gestito con condizionale
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Eulero
qk
qk+1
∆s
∆θ
R
Runge-Kutta
qk
qk+1
∆s
∆θ
R
Metodo esatto
qk
qk+1
∆θ
R
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Ci si e basati sui valori comandati vk , ωk , che non e detto siano quellirealmente applicati (non idealita sistema di attuazione)
Conviene ricostuire vk , ωk dai valori letti dai sensori propriocettivi
siano ∆φr , ∆φl le rotazioni misurate dagli endocer incrementali in Ts
Siano ∆s, ∆θ la lunghezza del tratto elementare di percorso e la variazionetotale di orientamento lungo tale tratto
∆s =r
2(∆φr + ∆φl)
∆θ =r
d(∆φr − ∆φl)
Dal fatto che vkTs = ∆s e ωkTs = ∆θ, e possibile ricostuire i valori dicomando effettivamente
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Localizzazione Odometrica
Problemi connessi con l’odometriaBasata esclusivamente su sensori propriocettivi
Stima poco attendibile su lunghe distanze
Errore che si accumula (deriva) indipendentemente dal metodo diintegrazione scelto
Sorgente di errore:
slittamento ruotepessima calibrazione parametri cinematici (es: d e r)errore numerico del metodo sceltorealizzazione cinematica del robot (trazione differenziale e meglio di quellasincronizzata)
SoluzioneAffiancare alla odometria piu metodi per la localizzazione attiva:
sensori esterocettivi di prossimita (laser) e mappa
implementazione SLAM
...
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot
Sistemi Bio-inspired
DefinizioneSwarm: termine per indicare il comportamento di uninsieme di agenti (animali)
stessa taglia
perseguire il medesimo obiettivo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot: Classificazione
Basata sulla tipologia degli agenti
Sciame Eterogeneo Sciame Omogeneo
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot: Classificazione
Basata sull’architettura di controlloCentralizzata
Decentralizzata
Gerarchica
Ibrida
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot: Reynold’s Boids
Esempio di algoritmo decentralizzato per comportamenti complessi con semplici regole
Alignment Cohesion Separation
Simulazione preda-predatore
(Loading schools of fish 2x.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot
(Loading Swarmbots cooperative transport 2x.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot
(Loading Swarmbots finding path 2x.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Sistemi Multi Robot
Paradigmi di coordinazione
Potential social field
Behavioral control
CooperativeCompetitiveNull-Space Based
Graph-Theory e Consensus
Ant-Colony
PSO
...
ProblemiEsplorazione
Connettivita
Manipolazione multirobot
...
(Loading e-puck.avi)
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107
unibo-logo
Bibliografia
Sciavicco, Siciliano, Villani, Oriolo, Robotica, McGraw Hill, 2009
J.C. Latombe, Robot Motion Planning. Kluwer Academic Publishers, Boston,MA, 1991.
Roland Siegwart, Introduction to Autonomous Mobile Robots, The Mit Press,2004
Siciliano, Khatib, Oussama, Handbook of Robotics, Springer, 2008
Riccardo Falconi (University of Bologna) Introduzione alla Robotica MobileDEIS - LAR, Universita di BolognaVia Risorgimento, 2
/ 107