Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    Filtro di kalman per imbranati

    Duuunqueee, in un esame di modelli probabilistici per le decisioni è uscito fuori questo dannato filtro di kalman (anche nella sua versione estesa per trattare valori non lineari linearizzandoli).

    Il punto è che a spanne ho capito cosa fa, ma non ho capito minimamente su cosa si basano i calcoli che stanno dietro. Mi servirebbe un how-to moooolto ma molto semplice che motivi tali calcoli per sommi capi (senza scendere eccessivamente nei dettagli).

    La questione è che dagli appunti della lezione non sono riuscito a capirlo e su internet sto trovando materiale ancora più complesso da capire. Se qualcuno ha sottomano qualche articolo semplice da consigliare benvenga
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Moderatore di Windows e software L'avatar di URANIO
    Registrato dal
    Dec 1999
    residenza
    Casalpusterlengo (LO)
    Messaggi
    1,255
    Fico, per che esame è?
    ogni volta che leggo queste cose mi rammarico di non aver continuato dopo la triennale, ma so che ci avrei messo molto.

    Io cmq posso aiutarti con una veloce ricerca su google
    Forse l'hai già visto, ma sembra spiegarlo abbastanza terraterra
    http://www.unipa.it/~laura.giarre/kalman_app.pdf
    (anche se poi mi perdo quando spiega il filtro vero e proprio)

  3. #3
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    provo io.

    Il filtro di kalman è un oggetto usato per prevedere o meglio ancora, stimare lo stato di un sistema. L'ho sempre fatto in teoria dei sistemi quindi te lo spiego così

    Avendo quindi tu un qualsiasi sistema F caratterizzato dalla sua bella funzione di trasferimento o meglio ancora, sistema di equazioni differenziali in variabili di stato, il filtro, conoscendo queste equazioni e mandandogli in pasto l'ingresso e l'uscita del sistema reale, è in grado di produrre una stima delle sue variabili di stato.

    Ha numerose applicazioni, che vanno dai controlli automatici, al calcolo della posizione di un ricevitore gps, alle traiettorie di veivoli senza pilota, al controllo d'assetto di un satellite, e al sistema di allunaggio del LEM


    Si compone di due stadi: predizione e correzione. Nello stadio di predizione, conoscendo lo stato precedente, e l'input e l'output corrente, si calcola la funzione di trasferimento nel punto per determinare il valore aggiornato delle variabili di stato. Lo stadio di correzione fondamentalmente corregge questo valore facendo la differenza delle uscite fra il valore calcolato dallo stadio di predizione e il valore vero appena misurato. Lo stadio di correzione serve per tenere conto degli inevitabili errori o disturbi presenti sul sistema.

    Il filtro di kalman esteso fa la stessa cosa, ma essendo il sistema non lineare, lo linearizza calcolando lo jacobiano nel punto. Computazionalmente è molto intenso e presenta alcuni problemi. Oggi gli si preferisce il filtro di kalman unscented, che non linearizza il sistema, ma ragiona sulle distribuzioni probabilistiche dell'errore, linearizzando quelle.


    Il filtro di kalman ha bisogno che il sistema sia totalmente osservabile (teoria dei sistemi per la definizione di osservabilità ) e converge sempre, qualunque sia il punto di partenza (certo se parte lontano ci mette di più a convergere). Per convergenza intendo il fatto che lo stato stimato dal filtro, per t (tempo) che tende ad infinito la stima tende al valore vero.

    I filtri non lineari (esteso ed unscented) non ti danno garanzie sulla convergenza e quindi è fondamentale scegliere lo stato iniziale con cura.


    In genere si usano questi filtri con sistemi ad alta dinamica, ovvero con sistemi il cui stato cambia rapidamente. Come può essere ad esempio la posizione e la traiettoria di un aereo o un ricevitore gps montato su un automobile.



    Spero sia chiaro

  4. #4
    Originariamente inviato da kuarl
    provo io.

    Il filtro di kalman è un oggetto usato per prevedere o meglio ancora, stimare lo stato di un sistema. L'ho sempre fatto in teoria dei sistemi quindi te lo spiego così

    Avendo quindi tu un qualsiasi sistema F caratterizzato dalla sua bella funzione di trasferimento o meglio ancora, sistema di equazioni differenziali in variabili di stato, il filtro, conoscendo queste equazioni e mandandogli in pasto l'ingresso e l'uscita del sistema reale, è in grado di produrre una stima delle sue variabili di stato.

    Ha numerose applicazioni, che vanno dai controlli automatici, al calcolo della posizione di un ricevitore gps, alle traiettorie di veivoli senza pilota, al controllo d'assetto di un satellite, e al sistema di allunaggio del LEM


    Si compone di due stadi: predizione e correzione. Nello stadio di predizione, conoscendo lo stato precedente, e l'input e l'output corrente, si calcola la funzione di trasferimento nel punto per determinare il valore aggiornato delle variabili di stato. Lo stadio di correzione fondamentalmente corregge questo valore facendo la differenza delle uscite fra il valore calcolato dallo stadio di predizione e il valore vero appena misurato. Lo stadio di correzione serve per tenere conto degli inevitabili errori o disturbi presenti sul sistema.

    Il filtro di kalman esteso fa la stessa cosa, ma essendo il sistema non lineare, lo linearizza calcolando lo jacobiano nel punto. Computazionalmente è molto intenso e presenta alcuni problemi. Oggi gli si preferisce il filtro di kalman unscented, che non linearizza il sistema, ma ragiona sulle distribuzioni probabilistiche dell'errore, linearizzando quelle.


    Il filtro di kalman ha bisogno che il sistema sia totalmente osservabile (teoria dei sistemi per la definizione di osservabilità ) e converge sempre, qualunque sia il punto di partenza (certo se parte lontano ci mette di più a convergere). Per convergenza intendo il fatto che lo stato stimato dal filtro, per t (tempo) che tende ad infinito la stima tende al valore vero.

    I filtri non lineari (esteso ed unscented) non ti danno garanzie sulla convergenza e quindi è fondamentale scegliere lo stato iniziale con cura.


    In genere si usano questi filtri con sistemi ad alta dinamica, ovvero con sistemi il cui stato cambia rapidamente. Come può essere ad esempio la posizione e la traiettoria di un aereo o un ricevitore gps montato su un automobile.



    Spero sia chiaro
    Si questa cosa l'avevo capita, a parte che essendo proprio terra terra su questa cosa non ho ben capito la differenza tra sistema lineare e non lineare.

    Quello che mi sfugge e cosa sono "i vari numeretti" nella formula (quella fatta con le matrici).

    Ad esempio su queste slide ce l'algoritmo delle due versioni del filtro (esteso e non):
    https://dl.dropboxusercontent.com/u/...man%281%29.pdf

    rispettivamente a pagina 15 (kf algoritmo) e pagina 20 (ekf algoritmo).
    Tutto quello che ho capito è che in entrambi gli algoritmi le prime due righe sono la previsione del nuovo stato basandosi solo su quelli precedenti, la terza riga calcola K che è una misura di peso ma non ho capito per cosa, e le ultime 2 righe invece fanno la correzione della predizione sapendo le misure.

    Ma cosa significhino i numeretti (meglio dire lettere va ) dentro proprio non l'ho capito e mi servirebbe qualche indicazione in più.

    Come anche ho capito che parliamo di media e varianza perchè stiamo utilizzando una distribuzione normale, ma per fare cosa? Cioè stiamo dicendo che la funzione di misura e quella di transizione sono due distribuzioni normali?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  5. #5
    Originariamente inviato da URANIO
    Fico, per che esame è?
    ogni volta che leggo queste cose mi rammarico di non aver continuato dopo la triennale, ma so che ci avrei messo molto.

    Io cmq posso aiutarti con una veloce ricerca su google
    Forse l'hai già visto, ma sembra spiegarlo abbastanza terraterra
    http://www.unipa.it/~laura.giarre/kalman_app.pdf
    (anche se poi mi perdo quando spiega il filtro vero e proprio)
    Ti ringrazio per l'aiuto, quelle slide le avevo trovate anch'io ma spiegando le formule in maniera diversa mi stavano creando solo una gran confusione. Il problema delle cose matematiche è anche quello, che se iniziano ad usare simboli differenti, o modi differenti di spiegarle, sembra quasi che parlino di due cose diverse
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    una cosa importante che non ho detto riguardo al filtro è come si progetta

    Nella progettazione del filtro oltre alle equazioni in variabili di stato ti serve fare anche un analisi dell'errore che insiste sul sistema. L'errore si considera bianco (additive white gaussian noise), che significa che si modella come una variabile gaussiana. Devi quindi fare un analisi statistica di questi errori per determinarne i parametri.

    Slide 15:
    si lavora a tempo discreto, quindi invece di equazioni differenziali parliamo di equazioni alle differenze. In ogni caso nella 16 si capisce meglio.

    Normalmente un sistema in variabili di stato lo si modella con questa notazione:
    dx = Ax + Bu
    y = Cx + Du

    con x stato, u ingresso e y uscita. A, B, C e D sono matrici in quanto il sistema è lineare e determinano il comportamento del sistema. Non so' se hai nozioni di teoria dei sistemi in variabili di stato

    Nella slide 16, se ho ben capito:
    [list=a][*] mu è la variabile da stimare, quindi non nota (la x)[*] Z è l'uscita (la y di sopra)[*] R è la covarianza del rumore sullo stato (serve per determinare la forma della campana di una gaussiana)[*] Q è la covarianza del rumore sull'uscita[*] K è il guadagno di kalman, la formula viene data e la sua dimostrazione è complicata. Devi solo sapere che cambia ad ogni istante e serve per pesare l'azione correttiva dello stadio di correzione.[/list=a]

    nel filtro esteso invece di A, B, C e D hai i rispettivi jacobiani.

    In ogni caso queste slide fanno cagare, quelle di uranio sono meglio

  7. #7
    Originariamente inviato da kuarl
    una cosa importante che non ho detto riguardo al filtro è come si progetta

    Nella progettazione del filtro oltre alle equazioni in variabili di stato ti serve fare anche un analisi dell'errore che insiste sul sistema. L'errore si considera bianco (additive white gaussian noise), che significa che si modella come una variabile gaussiana. Devi quindi fare un analisi statistica di questi errori per determinarne i parametri.

    Slide 15:
    si lavora a tempo discreto, quindi invece di equazioni differenziali parliamo di equazioni alle differenze. In ogni caso nella 16 si capisce meglio.

    Normalmente un sistema in variabili di stato lo si modella con questa notazione:
    dx = Ax + Bu
    y = Cx + Du

    con x stato, u ingresso e y uscita. A, B, C e D sono matrici in quanto il sistema è lineare e determinano il comportamento del sistema. Non so' se hai nozioni di teoria dei sistemi in variabili di stato

    Nella slide 16, se ho ben capito:
    [list=a][*] mu è la variabile da stimare, quindi non nota (la x)[*] Z è l'uscita (la y di sopra)[*] R è la covarianza del rumore sullo stato (serve per determinare la forma della campana di una gaussiana)[*] Q è la covarianza del rumore sull'uscita[*] K è il guadagno di kalman, la formula viene data e la sua dimostrazione è complicata. Devi solo sapere che cambia ad ogni istante e serve per pesare l'azione correttiva dello stadio di correzione.[/list=a]

    nel filtro esteso invece di A, B, C e D hai i rispettivi jacobiani.

    In ogni caso queste slide fanno cagare, quelle di uranio sono meglio
    I corrispettivi jacobiani di preciso che sono?

    Quindi è l'errore che viene rappresentato tramite la distribuzione normale?
    Quindi abbiamo l'equazione di tansizioen di stato, l'equazione di misura ed in più una distribuzione normale che ci dice come l'errore (sulla misura giusto?) influisce sul sistema?

    In quello non lineare è quindi l'errore a non essere lineare e questo "jacobini" serve per linearizzarlo? puoi spiegare un pò meglio questa parte?

    Quelle slide ahimè sono le slide del corso, solo che tu che hai conoscenza di che si parla riesci ad interpretarle meglio, a me almeno prima della tua interpretazione sembravano numeri buttati li a casaccio. Conta che non ho la minima idea di cosa sia un filtro, anzi se hai una definizione "semplice" da allegare te ne sarei grato. Che poi cosa filtra? l'errore sulla misura?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  8. #8
    Giusto per complicare le cose ci è stato dato un esercizio in cui dover caratterizzare il filtro di kalman (già poco chiaro) su un esercizio di robotica argomento di cui sappiamo zero. Questo perchè pur essendo un corso di modelli probabilistici queste lezioni è venuto a tenerle un altro professore (di percezione robotica) e fa tutti questi esempi in ambito robotico.

    Ora l'esercizio che ci ha dato da fare è questo (ho meglio una sua variante):
    https://dl.dropboxusercontent.com/u/...edTracking.pdf

    In pratica dice che abbiamo un corpo piatto in un piano. La posizione di questo corpo la possiamo avere da 2 punti più un angolo di orientamento.
    Ci ha anche dato una matrice di rototraslazione (una matrice 3x3) di cui non ho capito che cappero ci facciamo.

    Ha detto di suppore di avere una telecamera come sensore e che dobbiamo trasformare i punti immagine in punti di posizione reali nel robot (anche qui non ho capito come).

    Quello che ci chiede di fare è quindi di caratterizzare il filtro di Kalman su questo esempio, quindi equazione di transizione di stato, equazione di misura e non so che altro serve.

    Ora tutte le volte che ho provato a chiedergli qualcosa mi ha praticamente complicato ancora di più la vita con esempi robotici assurdi (per me che non ne so nulla di robotica). Qualcuno può indirizzarmi sulla retta via?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  9. #9
    Premesso che non so nulla di filtri di Kalman:
    Originariamente inviato da Neptune
    I corrispettivi jacobiani di preciso che sono?
    È la matrice delle derivate parziali, in sostanza i gradienti di ciascuna delle componenti della trasformazione messi uno sopra l'altro.
    In quello non lineare è quindi l'errore a non essere lineare e questo "jacobini" serve per linearizzarlo? puoi spiegare un pò meglio questa parte?
    Vedila come una formula di Taylor in più dimensioni arrestata al primo ordine... in generale quando fai mestieri di quel tipo con le derivate parziali stai facendo un'approssimazione lineare locale (sempre valida in un intorno sufficientemente piccolo nel momento in cui la funzione in esame è differenziabile - in effetti, il fatto che un'approssimazione lineare locale sia valida è esattamente il punto della differenziabilità).
    Ci ha anche dato una matrice di rototraslazione (una matrice 3x3) di cui non ho capito che cappero ci facciamo.
    Ti serve per passare da un sistema di riferimento ruotato/traslato ad un altro. L'idea è che se nel sistema di riferimento O hai un vettore v, questo nel sistema di riferimento O' sarà rappresentato dal vettore v' = Rv+a', dove R è la matrice di rotazione e a' è il vettore di traslazione (infatti le rototraslazioni sono trasformazioni affini).



    ... ma la matematica ad informatica la insegnano?
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Originariamente inviato da MItaly
    ... ma la matematica ad informatica la insegnano?
    ..in alcuni corsi anche analisi 3
    *** 300.000 BRIGANTI ***
    Tempo fa qualcuno diceva che gli italiani sono meglio di chi li governa, ma la verità è che sono peggio...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.