You are on page 1of 9

Accedi

Cerca nel sito

Registrati

HOME

CHI SONO

SMART LIFTING

ARTICOLI

DCSS IL LIBRO

THE BANG PROJECT

CONTATTI

ago 6, 2 anni ago

Kalman? Magari!

Alimentazione

Ok, nel precedente articolo ho tentato di illustrare pregi e difetti degli accelerometri e dei giroscopi per
costruire un semplice inclinometro bidimensionale, che possiamo riassumere cos:

Allenamento

Accelerometri Pregio: inclinazione calcolata con valori istantanei. Difetti: rumorosi, le vibrazioni

Altri autori

interferiscono con la misura, misurano tutte le forze agenti sul wiimote, non solo quella di Gravit.

Bang Project
Giroscopi Pregio: immuni da vibrazioni, poco rumorosi. Difetto: drift che determina una deriva della
misura degli angoli calcolati come somma di tutte le variazioni angolari fino allistante considerato.

Biomeccanica

Mettere insieme i pregi per eliminare i difetti sembra essere lunica strada da percorrere, per questo

DCSS Training

motivo solitamente accelerometri e giroscopi sono usati insieme. Addirittura vengono venduti package
che li contengono entrambi. Il problema : come fonderli insieme?

Flames e polemiche

Le soluzioni che troverete in rete sono le pi disparate, ma alla fine convergono tutte su un algoritmo: il

Riflessioni

filtro di Kalman. E qui iniziano i problemi.


Il filtro di Kalman presuppone la conoscenza di un formalismo matematico complesso, sia come
notazione, sia proprio come concetti. Covarianza, massima verosimiglianza, modelli state-space e cos
via. O uno si studia tutto un corso tipo Teoria dei Sistemi o Controlli Automatici, oppure un bel casino.
Aggiungete il fatto che questa roba si applica a cose tridimensionali e otterrete matrici di rotazione,
quaternioni e cos via. In altre parole, ecco un po di roba che troverete:

Rigenerazione e recupero
Scienze Motorie
Scoliosi
Tecnica degli esercizi

L'atleta vincente
giugno 10th, 2013, 1 anno ago

Ma allora come non farsi male?


novembre 16th, 2013, 1 anno ago

La finestra anabolica, chiudila che fa


freddo!
agosto 31st, 2011, 3 anni ago

Leggendo tutto il materiale che ho razzolato nessuno mi toglie questa sensazione: quando si scrive uno
studio necessario utilizzare notazioni astruse e scrivere in sanscrito o cuneiforme anche le cose
semplici. Apici, pedici, cose assurde per complicare concetti semplici perch altrimenti non

Angoli specifici o generici?


giugno 26th, 2014, 6 mesi ago

scientifico. Non solo, io ho questa impressione: il filtro di Kalman qualcosa di complicato perch basato
su concetti molto complicati.
Di sicuro gli ingegneri non ci capiscono una mazza, e di sicuro anche chi si occupa di biomeccanica non
ferratissimo. Per funziona, e allora dato che funziona, ci appiccichiamo una bella spiegazione

Gli infortuni nel Crossfit


giugno 26th, 2014, 6 mesi ago

teorica da manuale, di quelle classiche che si copiano un po ovunque (ho trovato tesi in cui la parte
teorica identica, lapproccio computazionale del filtro di Kalman, lapproccio algoritmico del filtro di
Kalman, sempre la solita roba con la solita notazione). Ma che avessi trovato due righe di codice schie

Devil's Tablet

schie con esempi funzionanti No, covarianze di qui, probabilit di l

aprile 21st, 2012, 3 anni ago

Allo stesso tempo, sui forum che parlano di accelerometri e giroscopi palese che gli smanettoni
sbattono i denti su cose che non comprendono, mantenendo per il solito atteggiamento da megaesperti
che le sanno tutte ma tutte. Uno chiede mi spiegate il filtro di Kalman? e gi ma semplicissimo,

Personal training, serve?

leggiti questi link e via con link che hanno dellincomprensibile perch si torna a questa roba qua sopra.

gennaio 31st, 2013, 2 anni ago

Perci, tutti parlano del filtro di Kalman, tutti lo usano, ma che ce ne fosse uno che spiega perch
funziona, come funziona, come si realizza.

Il ciclo russo 2.0


luglio 18th, 2011, 3 anni ago

Misuriamo la forza
giugno 26th, 2014, 6 mesi ago

Onde spumeggianti
luglio 15th, 2011, 3 anni ago

Stacco da terra e squilibri posturali


agosto 12th, 2014, 4 mesi ago

Lo squat PDP
maggio 26th, 2012, 3 anni ago

Una (piccola) storia fra le tante, 1


dicembre 21st, 2011, 3 anni ago

Lo squat con le fasce fa male alle


ginocchia
maggio 5th, 2013, 2 anni ago

Questo un bel documento che spiega i concetti di base del filtro di Kalman. Kalman descrisse la sua
teoria nel 1960 e in questo articolo del 1967 gi si diceva che si usavano sistemi troppo complicati per
spiegarlo e notazioni troppo astruse per descriverlo. Perci alla fine il filtro di Kalman diventato un
cult, tutti ne parlano ma che si trovi roba che lo descriva per bene eppure, ragazzi, sono due sputi di
codice alla fine

Il Continuum ripetizioni-serie
novembre 25th, 2011, 3 anni ago

Supercompensazione, 1
luglio 4th, 2013, 1 anno ago

Le capacit condizionali
giugno 25th, 2014, 6 mesi ago

Il metodo di Bosco, 1
luglio 4th, 2014, 5 mesi ago

Effe uguale emmeper, 1


marzo 21st, 2014, 9 mesi ago

Cerca, razzola, scartabella, ecco lUNICO documento intelligente ed interessante che ho trovato su
Internet, e ci sono tantissimi rimandi a questo: un filtro quasi di Kalman realizzato per una piattaforma
a microcontrollore che si chiama Arduino. Di preciso non so cosa sia Arduino, ma questo lunica
spiegazione decente che ho trovato. Per questo scrivo questa roba: continuo a girare la ruota di chi ha
scritto gratuitamente per il prossimo. Anche se questo pezzo non cos ben fatto come loriginale.
Ecco come funziona lalgoritmo che viene proposto, rimaneggiato un po. Vi prego di soffermarvi sul
concetto. Supponiamo di avere un po di accelerometri ed un po di giroscopi.

Ecco gli attori del nostro algoritmo: il pedice i indica listante di tempo attuale, li-esimo di una lunga serie.
Listante precedente pertanto i-1, listante iniziale 0. Indico con la lettera psi la stima dellangolo di
inclinazione. una stima: il risultato di una elaborazione fra langolo calcolato con gli accelerometri, psi

con il pedice A, e quello calcolato con i giroscopi, psi con il pedice G. Nessuno potr mai conoscere
langolo vero, perch se lo conoscessimo non staremmo a parlarne, no?
Dato che gli accelerometri forniscono un valore di inclinazione ad ogni istante, allistante iniziale avremo
questo:

Cio langolo di inclinazione calcolato con i giroscopi e langolo di inclinazione stimato sono pari
allangolo di inclinazione calcolato con gli accelerometri. Sar sbagliato, ma comunque un punto di
partenza ragionevole.

Allistante 1, nel nostro caso dopo un centesimo di secondo, langolo di inclinazione calcolato con i
giroscopi pari allangolo precedente a cui si somma la variazione angolare nellistante considerato, cio
la velocit di rotazione misurata dai giroscopi, omega, moltiplicata per lintervallo di tempo, nominalmente
un centesimo di secondo.
Mi sembra ragionevole, no? Langolo allistante 1 pari a quello precedente a cui si somma quanto
cambiato in un istante.
Ovviamente allistante 1 gli accelerometri permetteranno di calcolare linclinazione a quellistante,
pertanto allistante 1 avr a disposizione:

Bene. Come li sommo insieme per ottenere la stima dellangolo? Ecco come:

Non mi dite che difficile eh Nella parentesi c la differenza fra langolo calcolato con i giroscopi e
quello con gli accelerometri. Ammettiamo di muovere piano il wiimote, questa differenza sar piccola
perch, a parte lerrore dovuto alle vibrazioni ed al rumore, gli accelerometri restituiranno valori simili fra
loro. Se muoviamo velocemente il wiimote, sottoponendolo ad accelerazioni, la differenza sar elevata.
Langolo stimato cos pari allangolo istantaneo dato dagli accelerometri a cui si somma K volte la
differenza fra i due angoli. K il peso che viene dato allerrore fra i due angoli, ed un numero compreso
fra 0 e 1.
Se K vale 0, langolo stimato sar pari a quello dato dagli accelerometri, cio non si terr conto dei
giroscopi, se K vale 1, langolo stimato sar pari a quello dato dai giroscopi, cio non si terr conto degli
accelerometri (provate, scrivete 1 al posto di K, fate le addizioni e le sottrazioni).
Se K compreso fra 0 e 1 allangolo degli accelerometri viene sommata quella che una correzione,
dovuta alla differenza fra le due letture. Pertanto la misura degli accelerometri viene corretta con quella
dei giroscopi!
Ora, in questo algoritmo, K fisso, nel filtro di Kalman il K (che si chiama, guarda un po guadagno di
Kalman o Kalman Gain) viene aggiornato per essere il miglior valore per ottenere la miglior stima.
Per, ragazzi, mi spiace, ma io non ho capito come funziona. E a me non piace lavorare con cose che
non capisco. Preciso: non che non ho capito niente, solo che la derivazione dellaggiornamento del
guadagno di Kalman piena di concetti che non mi sono chiarissimi perch dovrei applicarmici di pi e
non ho tempo. Nellalgoritmo del forum di Arduino, invece, il K fisso, compreso fra 0,83 e 0,95 perch
da prove pratiche funziona.
Riformulo lalgoritmo per un istante generico:

Se andate a vedere come lalgoritmo di un filtro di Kalman monodimensionale, questo ci va molto


vicino. Infatti sul forum di Arduino definito come un Kalman-like filter o un Fixed-Kalman filter, nel senso
che il K non si aggiorna.
Io ho apportato una modifica, che a mio avviso funziona meglio, e lo dico per non essere presuntuoso,
veramente. K il peso da dare alla differenza fra angolo dei giroscopi e angolo degli accelerometri. Ma
quando esiste questa differenza? Ok, quando c il rumore, ma principalmente quando il Wiimote inverte
velocemente il suo movimento.
Perci nella normalit, quando la differenza poca, bene avere un K basso per filtrare il rumore, cio
gli spigoli e le frastagliature, in pratica allangolo dellaccelerazione bene sommare un po di
differenza fra i due angoli, quello degli accelerometri e quello dei giroscopi. La differenza sar infatti
negativa perch langolo dovuto ai giroscopi non varia velocemente, e sar sempre inferiore (in valore
assoluto) a quello dovuto agli accelerometri.
Ma quando il wiimote si muove velocemente, bene avere un K alto, vicino a 1, in modo da scartare
del tutto la misura degli accelerometri e prendere proprio quella dei giroscopi.
Calcolo pertanto la variazione angolare allistante i dovuta agli accelerometri e ai giroscopi:

Per gli accelerometri, si tratta della differenza fra langolo attuale e quello precedente, per i giroscopi il
valore della misura moltiplicato per il tempo, ovviamente
Calcolo la differenza fra questi due angoli in valore assoluto, e con questa calcolo K:

Perci pi questa differenza grande allistante i e pi il wiimote soggetto a forze e la sua misura va
scartata. La funzione f modella quello che ho scritto fino ad ora, me la invento come una semplice
funzione lineare a tratti, cos:

Ecco qua: se la differenza allistante i fra i due angoli pari a 5, K vale sempre 0,95, se sopra i 15, K
pari a 0,99. In pratica la correzione passa da molta a quasi tutta. Come ho scelto questi valori?
Provando, provando, provando.
Mi sembrano quelli pi soddisfacenti, cio guardando a video i dati in tempo reale mi sembrano i valori
che determinano il miglior andamento fra quelli provati. Lo so che non proprio preciso, ma per essere
preciso avrei bisogno di un segnale corretto da confrontare con il mio. Non ce lho e mi arrangio. Per
quello che ottengo plausibile, come vedrete.

Ecco il risultato sul primo esempio del precedente articolo: metto in piedi un wiimote che orizzontale,
poi lo rimetto steso sulla scrivania. Notate come lalgoritmo corregga langolo calcolato con gli
accelerometri: la curva rossa bella liscia, quella blu tutta frastagliata.
Questa una elaborazione in tempo reale: notate anche come il ritardo, il delay tipico dei filtri, sia
veramente minimo, nel senso che la riga rossa sovrapposta a quella della riga blu e non rimane
indietro.
E nel caso della simulazione di squat dinamico come si comporta il filtro?

Anche in questo caso il comportamento eccellente, no? La curva rossa rappresenta bene landamento
dellinclinazione (io lho visto in tempo reale a video e vi dico che cos), non solo vengono eliminati
tutti i picchi spurii, ma anche leffetto nefasto delle forze sul Wiimote!
Per capire quanto funzioni il filtro ho fatto un banale quanto efficace esperimento: ho messo il Wiimote in
verticale su un tavolo liscio e, non facendolo oscillare, lho strusciato avanti ed indietro per 10 cm il pi
velocemente possibile. Un filtro perfetto avrebbe registrato un angolo di inclinazione fisso, di 90,
indipendentemente dalle forze applicate al wiimote, notevoli direi.

A fronte di un angolo calcolato con gli accelerometri che del tutto senza senso, il filtro filtra. Ok, c
una oscillazione di 15, per filtra un segnale assurdo, no? una scatoletta, non un essere umano si
ficcano dentro dei dati, lui spara fuori un risultato.
Ho visto simulazioni con un vero filtro di Kalman e questo simile nel comportamento, come dicono gli
americani, ive not pissed out of the vase, no?

In questo video potete vedere come si comporta il filtro dal vivo. Notate come la barretta si inclina
seguendo il wiimote, il ritardo fra barretta e wiimote il ritardo introdotto dal filtro, e vi posso dire che
rispetto alla versione a K fisso il K variabile determina un comportamento migliore. Poi, non una gara a
chi ce lha pi lungo: per quello che voglio fare io ho trovato una soluzione, mi spiace solo che non sia un
vero filtro di Kalman, lo so che non dormir stanotte e la mia autostima avr un contraccolpo, ma me ne
far una ragione.
Lalgoritmo completo, pertanto, questo:

Come vedete, alla fine sono 4 formule del (beep), si realizza BENISSIMO con Excel e un filtro di Kalman
simile: che non sia riuscito a trovarne uno che a pedate funziona veramente un mistero
Ovviamente, c poi tutta una scrittura di codice aggiuntivo dovuta al fatto che le velocit angolari non
sono in gradi al secondo ma in altre unit, che si parla di Roll, Pitch, Yaw, che c una convenzione dei

segni etc etc, ma questo fa parte del gioco, sono problemi secondari: il cuore dellalgoritmo, come la sua
spiegazione, questa qua.
Non fate gli smanettoni informatici del cazzo, per favore: lo smanettone informatico del cazzo uno che
ha un bel kit di sviluppo per smartphone che gli spara i dati degli accelerometri e dei giroscopi, poi
razzola su Internet per trovare un algoritmo che filtra i dati e rabbercia codice che va alla prima. Per non
ha capito una mazza di quello che sta facendo. Mi raccomando, gli algoritmi sono come i pesi: vanno
compresi battendoci il muso, cio serve quella che si chiama esperienza. E, come sempre,
lesperienza ci si fa non solo smanettando ma anche studiando. Bene battere le dentate, ma perch
batterne pi di quante ne servono?
Adesso c da chiedersi: cosa ci si pu fare con un inclinometro? Ma questo il next step di questo
angosciante BANG Project

Condividi "Kalman? Magari!" via


Tweet

Nessun commento presente.

COMMENTA
Bisogna effettuare il log in per pubblicare un commento.

dic 7, 2 giorni ago

dic 6, 3 giorni ago

dic 5, 4 giorni ago

Never Surrender

Sono forte o no?

Dorando Pietris Effect

Facebook ha

Ripropongo questo

Londra, 1908,

lincredibile capacit

articolo con il

Olimpiadi. Dorando

di invitare al

medesimo titolo

Pietri arriva al

cazzeggio passivo,

perch ha avuto

termine della

nato per questo.

una vita travagliata:

Maratona, Dorando

Si scorrono le notizie con un livello mentale

inizialmente sul vecchio blog, poi anche su

Pietri in testa, entra nello stadio, esausto,

di attenzione vicino alla morte cerebrale,

Scribd quando non era a pagamento,

sbaglia strada, i giudici lo fanno girare nella

ogni tanto un blink e si fruiscono le

pubblicato su Olympians e capitolo del mio

giusta direzione. A 200 metri dal traguardo

informazioni, cio si le

libro. La vecchia versione, che lasc

crolla a terra i giudici lo

0 Comments

6 Comments

2 Comments

dic 4, 5 giorni ago

dic 4, 5 giorni ago

nov 28, 2 settimane ago

La geometria dei muscoli

Vivere senza Facebook

Trocanteri svantaggiosi

Il bodybuilding

Una piccola

Nel precedente

estetica. Chi legge

comunicazione di

articolo sulle misure

questo blog vuole s

servizio che faccio

antropometriche ci

diventare pi forte,

perch ho ricevuto

siamo lasciati con

ma associa alla forza

delle mail (3 per la

un quesito: ok,

anche una estetica. Malgrado tutto,

precisione, non 3000 e nemmeno 30) dove

allaumentare dellaltezza gli arti inferiori

associamo sempre lessere forti allessere

mi si chiede dove sia finito il profilo Smart

crescono proporzionalmente di pi del

belli e uno forte anche uno g

Lifting. Semplicemente lho spento. Era

tronco, ma in fondo che ci frega? Le

fonte di distrazione, lo amme

inserzioni muscolari, cio

3 Comments
10 Comments

4 Comments

Smartlifting
Chi sono

Smart Lifting

Articoli

DCSS Il libro

The BANG Project

Contatti

Copyright 2014 Smartlifting. Grafica a cura di Valerio Treviso. Tutti i diritti riservati: nessuna parte del
presente sito pu essere riprodotta o diffusa con qualsiasi mezzo senza il consenso scritto degli autori.

You might also like