Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D La Corte in Rete
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Alberto Finzi » 5.Robotica Probabilistica - Filtri Bayesiani (parte seconda)


Robotica Probabilistica: Azioni

  • Spesso il mondo è dinamico
    • Azioni (del robot o di altri agenti)
    • Tempo
  • Come introdurre queste azioni?
  • Azioni Tipiche: girare ruote, manipolare oggetti, etc.
  • Sensori imprecisi
  • Azioni aumentano l’incertezza

Interazione Robot-Ambiente


Modellare le Azioni

Per incorporare il risultato di una azione u nel “belief”, si usa un pdf condizionale

P(x|u,x’)

pdf eseguendo u cambia lo stato da x’ a x.

Esempio Transizioni di Stato

P(x|u,x’) con u = “chiudi la porta”:

Se la porta è aperta, “chiudi la porta” ha successo nel 90% dei casi.


Integrando Risultato Azioni

Continuo:

P(u|x)=\int P(x|u,x')P(x')dx'

Discreto:

P(x|u)=\sum P(x|u,x')P(x')

Esempio

P(closed|u)=\sum P(closed|u,x')P(x')

=P(closed|u,open)P(open)+P(closed|u, closed)P(closed)

=\frac 9{10}\frac 5 8 +\frac 1 1 *\frac 3 8 = \frac{15}{16}

P(open|u)=\sum P(open|u,x')P(x')

=P(open|u, open)P(open)+P(open, u, closed)P(closed)

=\frac 1{10}\frac 5 8 +\frac 0 1 *\frac  3 8 = \frac 1 {16}
=1-P(closed|u)

Stato del Robot

Stato: Tutte le variabili x salienti per l’evoluzione del sistema dinamico

  • Posa: Localizzazione e Orientazione rispetto ad un sistema di coordinate assoluto (include la configurazione nel caso di manipolatori).
  • Stato dinamico: Velocità del robot e delle sue componenti/giunti.
  • Locazione di Features degli oggetti nell’ambiente (landmarks).
  • Uno stato xt è completo se l’insieme delle variabili selezionate consente la migliore previsione.

Stato del Robot

Si lavora però con stato incompleto.

Assunzione Markoviana: la previsione migliore si può fare a partire dallo stato attuale (lo stato passato non aggiunge nulla).

Stato ibrido: variabili continue e discrete.
Tempo discreto: Xt+1, Xt

Filtro Bayesiano

Dati:
Flusso di osservazioni z e azioni u:

d_t=\{u_1, z_1, ..., u_t, z_t\}

Modello del sensore P(z|x).
Modello delle Azioni P(x|u,x’).
Prior probabilità dello stato del sistema P(x).

Desiderta

Stima dello stato X del sistema dinamico il posterior dello stato è il Belief:

Bel(x_t)=P(x_t|u_1, z_1, ..., u_t, z_t)

Filtro Bayesiano

Notazione

Osservazioni

z_{t1:t_2}=z_{t1}, z_{t1+1}, z_{t1+2},...,z_{t2}

Azioni

u_{t1:t_2}=u_{t1}, u_{t1+1}, u_{t1+2},...,u_{t2}

Assunzione di Markov

Assunzioni

  • Mondo statico
  • Rumore indipendente
  • Modello perfetto, non errori di approssimazione

Probabilità di misura

p(z_t|x_{0:t}, z_{1:t}, u_{1:t})=p(z_t|x_t)

Transizione di stato

p(x_t|x_{1:t}, z_{1:t}, u_{1:t})=p(x_t|x_{t-1}, u_t)

Indipendenza condizionata


Belief

Il robot deve dedurre la sua posizione dalle misure.

Si distingue stato reale e stato stimato

  • Bel(xt) = p(xt | z1:t , u1:t)

probablità di xt date le misure z1:t e le azioni u1:t.

  • Bel’(xt) = p(xt | z1:t-1 , u1:t)

predizione (stima dello stato prima dell’ultima osservazione).

  • Calcolo di Bel(xt) da Bel’(xt) è la correzione o aggiornamento di misura.

Filtro Bayesiano: derivazione

{Bel(x_t)=P(x_t|u_{1:t},z_{1:t})}

Bayes =\eta P(z_t|x_t, u_{1:t}, z_{1:t-1})P(x_t|u_{1:t}, z_{1:t-1})

Markov = \eta P (z_t|x_t)P(x_t|u_{1:t}, z_{1:t-1}})

Total prob. = \eta P(z_t|x_t)\int P(x_t|u_{1:t}, z_{1:t-1}, x_{t-1})P(x_{t-1}|u_{1:t}z_{1:t-1})dx_{t-1}

Markov = \eta P(z_t|x_t)\int P(x_t|u_{t}, x_{t-1})P(x_{t-1}|u_{1:t}z_{1:t-1})dx_{t-1}

Markov = \eta P(z_t|x_t)\int P(x_t|u_{t}, x_{t-1})P(x_{t-1}|u_{1:t}z_{1:t-1})dx_{t-1}
(Omissione di ut) = \eta P(z_t|x_t)\int P(x_t|u_t, x_{t-1})Bel (x_{t-1})dx_{t-1}

Filtro Bayesiano

Algoritmo per il calcolo del Belief: Filtro Bayesiano

Algoritmo ricorsivo: Bel(xt) calcolato da Bel(xt-1), ut, zt

for all xt

Bel' (x_t)=\int P(x_t|u_t, x_{t-1})Bel (x_{t-1})dx_{t-1}~~~\text{predizione}

Bel (x_t)=\eta P(z_t|x_t)Bel' (x_{t-1})~~~~~~~~~~~~~~~~~~~~~~\text{misura}

endFor
return Bel(xt)

Algoritmo

Bayes Filter Algorithm

Bel (x_t)=\eta P(z_t|x_t)\int P(x_t|u_t, x_{t-1})Bel (x_{t-1})dx_{t-1}

  1. Algoritmo Filtro_Bayes( Bel(x),d ):
  2. η=0
  3. If d perceptual data z then
  4. For all x do
  5. Bel'(n)=P(z|x)Bel(x)
  6. \eta=\eta+Bel'(x)
  7. For all x do
  8. Bel'(x)=\eta^{-1}Bel' (x)
  9. else if d action data item u then
  10. For all x do
  11. Bel' (x)=\int P(x|u,x')Bel (x')dx'
  12. Return Bel’(x)

Filtro Bayesiano

Per il calcolo:

  • occorre il Belif iniziale: Bel(x0);
  • se conosco prob 1 sullo stato iniziale (Delta Dirac);
  • se non conosco allora distribuzione uniforme sul dominio di x0;
  • altrimenti altra distribuzione.

Tipologia di Filtri Bayesiani

Bel (x_t)=\eta P(z_t|x_t)\int P(x_t|u_t, x_{t-1})Bel(x_{t-1})dx_{t-1}

  • Filtro di Kalman
  • Particle Filter
  • Hidden Markov Model
  • Dynamic Bayesian Network
  • Partially Observable Markov Decision Processes (POMDPs)

Tipologia di Filtri Bayesiani

Tutti i filtri richiedono:

  1. Belief iniziale: P(x0)
  2. Probabilità di misura: P(zt | xt)
  3. Transizione di stato: P(xt | ut, xt-1)

Assunzione Markoviana

Violazione dell’assunzione markoviana

  1. Dinamiche non modellate dell’ambiente.
  2. Modello probabilistico non accurato.
  3. Rappresentazione probabilistiche approssimate.
  4. Variabili di controllo con influenze multiple.

Però l’assunzione markoviana è robusta.

Filtri Bayesiani: Problema di Localizzazione e Mapping

Localizzazione: P(Xt | M, u1:t, z1:t)

Stima della posizione data la Mappa

Mapping: P(Mt | Xt, u1:t, z1:t)

Sima della mappa data la posizione

SLAM: P(Xt, Mt | u1:t, z1:t)

Stima di mappa e posizione

Riassunto

  • La legge di Bayes permette di calcolare le probabilità condizionate inverse.
  • Data l’assunzione di Markov, si può combinare l’evidenza in modo efficiente con l’update recursivo Bayesian.
  • I Filtri Bayesiani permettono di stimare lo stato di un sistema dinamico.
  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion

Fatal error: Call to undefined function federicaDebug() in /usr/local/apache/htdocs/html/footer.php on line 93