Simulatore interattivoPrincipiante

Simulatore di sensori robotici: calibrazione e fusione

Esplora rumore, bias, deriva, quantizzazione, perdita di campioni, filtraggio e fusione in un simulatore di sensori robotici interattivo e deterministico.

Categoria
Sensori
Tempo
60–150 min
Piattaforma
Browser · Microcontroller
Schema tecnico: Simulatore di sensori robotici: calibrazione e fusioneSAMPLE → FILTER → FUSE

01 / Inizia qui

Introduzione

I robot agiscono su misurazioni ritardate, distorte, rumorose e incomplete. Questo progetto rende visibili quei limiti. Confronta verità, campioni grezzi e stime filtrate; cambia le condizioni di campionamento; e impara come la calibrazione influenza il controllo a valle senza scambiare un modello didattico per un sensore specifico.

Live lab / Deterministic measurement model

Robot sensor simulator

Compare a known signal with noisy absolute readings and a filtered estimate. Change one error source at a time to see what calibration can—and cannot—fix.

Browser native
This simulator compares truth, absolute samples, and the selected estimate over time. Use the controls below to run it, or read the theory and algorithm after this lab.

The main plot compares solid truth, individual absolute-sensor samples, and the thicker dashed estimate. The lower band shows signed estimation error around zero; gaps mark dropped absolute samples.

Simulation

Paused. Press Start or Step to collect samples.

Measurement
Reliability & filtering
Truth
—
Absolute
—
Estimate
—
Error
—
RMSE
—
Dropped
0

Keyboard: focus the plot, then use Space to run/pause, N to step, R to reset, and F for full screen.

Controlli

Scegli un segnale vero liscio o a gradini, poi regola frequenza di campionamento, quantizzazione, rumore casuale, deriva, bias, perdita di campioni e memoria del filtro. Confronta i dati grezzi con le stime a media mobile, passa-basso, mediana e complementare. I preset rendono riproducibili i comportamenti rumorosi, distorti e inaffidabili dei sensori.

Teoria

Ogni sensore ha un intervallo di misura, una risoluzione, un’accuratezza, una banda, una latenza e un comportamento in caso di guasto. L’accuratezza del datasheet descrive solo una parte del sistema; montaggio, temperatura, rumore dell’alimentazione, interferenze elettromagnetiche e proprietà delle superfici dominano spesso i risultati reali.

La fusione funziona quando i sensori forniscono informazioni complementari e la loro incertezza è rappresentata in modo onesto. Combinare due misurazioni distorte non crea automaticamente la verità. Inizia con calibrazione, timestamp, sistemi di riferimento e controlli sulla qualità dei dati.

Grafico temporale che confronta un segnale vero liscio, campioni grezzi rumorosi dispersi intorno a esso e una stima filtrata passa-basso. La linea filtrata rifiuta la maggior parte del rumore, ma ritarda visibilmente rispetto alla verità durante la salita rapida.
Un filtro passa-basso scambia rumore con ritardo: attenua i campioni grezzi verso la verità, ma la stima resta indietro ogni volta che il segnale cambia rapidamente. Scarica SVG

Algoritmo

  1. Assegna un timestamp e controlla l’intervallo di ogni campione al momento dell’acquisizione.
  2. Converti le unità grezze usando scala, offset e allineamento degli assi di calibrazione.
  3. Scarta salti impossibili o segnalali come non validi invece di inventare dati.
  4. Applica il filtro più leggero che soddisfa il requisito di rumore a valle.
  5. Trasforma le misurazioni in un sistema comune e fondile usando l’incertezza nota.
  6. Registra i valori grezzi ed elaborati perché i guasti restino riproducibili.

Codice sorgente

Un filtro passa-basso esponenziale è utile quando la sua costante di tempo viene scelta deliberatamente:

class LowPass:
    def __init__(self, alpha):
        self.alpha = alpha
        self.value = None

    def update(self, sample):
        if self.value is None:
            self.value = sample
        else:
            self.value += self.alpha * (sample - self.value)
        return self.value

Registra il campione greggio accanto al risultato filtrato. Altrimenti un grafico accattivante può nascondere clipping, perdita di campioni ed errori di calibrazione.

Ipotesi e differenze hardware

Questo laboratorio è un modello didattico di segnale, non il datasheet di un sensore specifico. Il rumore è gaussiano o uniforme con un selettore controllato da te; una vera IMU o un sensore ToF aggiunge bias dipendente dalla temperatura, picchi non gaussiani e jitter dei tempi del bus che questo modello semplifica. Qui il campionamento è perfettamente periodico, ma su un microcontrollore il timing del ciclo e la latenza degli interrupt rendono essenziali i timestamp: ecco perché ogni modalità di elaborazione nei controllori confronta il segnale reale, i campioni grezzi e la stima insieme. Il filtraggio sembra attraente su un grafico, eppure ogni attenuazione aggiunge ritardo che apparirà in seguito come ritardo di controllo sull’hardware; lo stesso compromesso è trattato nel tutorial sul rumore dei sensori.

Schema elettrico

Conferma tensione del bus, requisiti delle resistenze di pull-up, indirizzi e lunghezza massima del cavo prima di collegare più sensori.

Diagramma a blocchi di un bus misto di sensori. Un sensore analogico raggiunge il controllore tramite un ADC, i sensori I²C condividono le linee SDA e SCL e un sensore SPI usa le linee di chip-select, clock e dati. Il controllore scrive un registro con timestamp.
Bus di sensori diversi convergono su un controllore, che assegna un timestamp a ogni campione in modo che i valori grezzi ed elaborati restino riproducibili. Scarica SVG

Esperimenti guidati

I selettori di questo laboratorio esistono per farti produrre deliberatamente ogni guasto del sensore e poi vedere quale strumento lo corregge. Farlo una sola volta vale più di molte letture.

1. Dimostra che il filtraggio non può correggere un bias

Imposta il rumore a zero e il bias a uno scostamento evidente. Prova ora ogni filtro a turno: media mobile, passa-basso e mediana. Nessuno sposta la stima verso la verità, perché tutti e tre attenuano la variazione e un bias non varia.

Poi imposta il bias a zero e il rumore alto e osserva gli stessi filtri funzionare bene. Questa è la distinzione più utile nel lavoro con i sensori: rumore, bias e deriva sembrano uguali su un grafico e richiedono tre correzioni diverse; più filtraggio non cura mai un bias.

2. Osserva una media che offusca un picco che la mediana rifiuta

Attiva la perdita di campioni o i picchi e confronta una media mobile con una mediana della stessa finestra.

Filtro Cosa fa un outlier
Media mobile di 5 Sposta la stima per cinque campioni consecutivi
Mediana di 5 Non contribuisce affatto

Il rumore dei sensori ultrasonori e a tempo di volo non è gaussiano: presenta occasionali valori anomali contro un segnale altrimenti stabile. È esattamente il caso peggiore per una media.

3. Misura quanto ti costa il ritardo

Passa al segnale vero a gradini e abbassa alpha del filtro, oppure allunga la finestra. La stima diventa più liscia e arriva più tardi. Leggi il ritardo dal grafico per ogni impostazione:

Impostazione del filtro Ritardo tipico A 0.3 m/s significa
Mediana di 3 ~1 campione 3 mm
Media mobile di 10 ~4.5 campioni 14 mm
Passa-basso, α = 0.1 ~9 campioni 27 mm
Passa-basso, α = 0.02 ~49 campioni 147 mm

L’ultima riga produce una traccia bellamente liscia e fa sterzare un robot verso la posizione in cui si trovava l’ostacolo 15 cm fa. Controlla sempre il ritardo nelle unità che contano per il robot, non in campioni: è il modo più comune in cui un filtro ben intenzionato peggiora un robot.

4. Osserva cosa può e cosa non può fare la fusione

Imposta una fonte rumorosa ma non distorta e l’altra liscia ma derivante, e osserva la stima complementare prendere la parte buona di ciascuna. Assegna poi lo stesso bias a entrambe le fonti e osserva la stima fusa ereditarli esattamente.

La fusione sfrutta errori indipendenti. Un errore in modo comune sopravvive indisturbato: ecco perché la calibrazione viene prima della fusione, non dopo.

Cosa devi osservare

Configurazione Grezzo Filtro migliore Perché
Rumore gaussiano, nessun bias Si disperde simmetricamente Media mobile o passa-basso Il rumore si media verso la verità
Picchi occasionali Quasi buono, rari valori anomali Mediana Rifiuta direttamente gli outlier
Scostamento costante Stretto ma sbagliato Nessuno: calibra Il filtraggio non vede lo scostamento
Deriva lenta Inizia giusto, si allontana Nessuno: ricalibra o fondi Serve un riferimento assoluto
Perdita di campioni Lacune Mediana, più conserva l’ultimo valore valido Un valore inventato è peggio di una lacuna contrassegnata
Quantizzato Atterra su gradini discreti Nessuno: è la tua risoluzione Filtrare tra i gradini aggiunge ritardo, non informazioni

Passaggio all’hardware

Questo laboratorio Un sensore reale
Il campionamento è perfettamente periodico Il timing del ciclo e la latenza degli interrupt rendono essenziali i timestamp
Il rumore è gaussiano o uniforme generato in modo controllato Picchi non gaussiani e bias che varia con la temperatura
La verità è disponibile per il confronto Non hai la verità: per questo calibri rispetto a un ingresso noto
La perdita di campioni è esplicita Una perdita di campioni può sembrare un valore plausibile
Un sensore alla volta Più bus, più frequenze e problemi di allineamento tra loro

La procedura pratica per un sensore reale è breve: tienilo fermo contro un ingresso noto, registra qualche migliaio di campioni con timestamp e traccia sia la serie temporale sia un istogramma. L’istogramma è la parte che le persone saltano ed è la più informativa: il rumore gaussiano produce una campana, gli outlier producono una campana con alcuni punti lontanissimi nelle code e questi due casi richiedono filtri diversi. Il metodo completo è in rumore, bias e filtraggio dei sensori.

Checklist hardware

Componenti

  • Microcontrollore o computer a scheda singola
  • Uno o più sensori digitali o analogici
  • Riferimenti di calibrazione noti
  • Alimentazione regolata stabile e livelli logici corretti
  • Connessione di registrazione per esperimenti riproducibili

Esplora il grafo

Dove si usa questo simulatore

I progetti, i percorsi di apprendimento e i tutorial che si basano su questo laboratorio.

Continua a costruire

Scarica le risorse

Usa questi riferimenti nella pagina mentre lavori al progetto. I pacchetti di progetto scaricabili verranno aggiunti solo dopo la pubblicazione del loro codice sorgente e della loro versione.

Domande comuni

Domande frequenti

Un segnale più liscio è sempre un segnale migliore?

No. Un filtraggio forte può rimuovere movimento utile e introdurre ritardo. Scegli il filtro in base allo spettro del rumore, al tempo di risposta richiesto e alle decisioni che consumeranno la misurazione.

Qual è la differenza tra bias e rumore?

Il bias è uno scostamento ripetibile dal valore vero, mentre il rumore varia tra un campione e l'altro. La calibrazione può stimare il bias; la media o il filtraggio possono ridurre il rumore casuale, ma non rimuovere in modo affidabile un bias sconosciuto.

Che cos'è la deriva di un sensore e come differisce dal bias?

Il bias è uno scostamento fisso che puoi misurare una volta e sottrarre. La deriva è un cambiamento lento di quello scostamento nel tempo, di solito dovuto alla temperatura o all'invecchiamento dei componenti, così una calibrazione acquisita all'avvio smette gradualmente di corrispondere alla realtà. La deriva è il motivo per cui le esecuzioni lunghe richiedono ricalibrazioni periodiche o un riferimento rispetto al quale lo stimatore possa correggersi.

Quale filtro devo usare: media mobile, passa-basso o mediano?

Una media mobile e un passa-basso esponenziale attenuano entrambi il rumore di tipo gaussiano, scambiando reattività con fluidità attraverso la rispettiva finestra o costante di tempo. Un filtro mediano è migliore per rimuovere picchi isolati e perdita di campioni, perché pochi campioni errati non spostano il valore centrale. Scegli il filtro più leggero che soddisfa il requisito a valle, non quello dall'aspetto più liscio.

Quanto ritardo aggiunge il filtraggio?

Ogni filtro di attenuazione ritarda il segnale vero e più attenuazione significa più ritardo: un passa-basso con una costante di tempo lunga rifiuta più rumore ma si allontana maggiormente dai cambiamenti rapidi. Traccia sempre la stima filtrata insieme ai campioni grezzi e alla verità, così il ritardo è visibile prima di farvi affidamento in un ciclo di controllo.

Che cos'è la fusione dei sensori e quando aiuta davvero?

La fusione combina più sensori in una sola stima e aiuta solo quando i sensori forniscono informazioni complementari e la loro incertezza è rappresentata in modo onesto. Combinare due misurazioni distorte non crea la verità. Un filtro complementare, per esempio, si fida di un sensore alle alte frequenze e di un altro alle basse frequenze; inizia con calibrazione, timestamp e sistemi di riferimento prima di fondere i dati.

Perché ogni campione dovrebbe avere un timestamp?

I campioni arrivano raramente a intervalli perfettamente costanti, e fusione e filtraggio presuppongono che tu sappia quando è stata misurata ogni valore. I timestamp permettono di rilevare il jitter, allineare i dati di sensori diversi e scartare letture obsolete. Registrare i valori grezzi accanto a quelli elaborati mantiene riproducibili guasti come clipping, perdita di campioni ed errori di calibrazione.

Per approfondire

Fonti

Fonti autorevoli per andare oltre il modello didattico, volutamente limitato, di questo simulatore.