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
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.
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.
- 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.
Algoritmo
- Assegna un timestamp e controlla l’intervallo di ogni campione al momento dell’acquisizione.
- Converti le unità grezze usando scala, offset e allineamento degli assi di calibrazione.
- Scarta salti impossibili o segnalali come non validi invece di inventare dati.
- Applica il filtro più leggero che soddisfa il requisito di rumore a valle.
- Trasforma le misurazioni in un sistema comune e fondile usando l’incertezza nota.
- 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.
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.