Interactieve simulatorBeginner

Robotsensorsimulator voor kalibratie en sensorfusie

Ontdek ruis, bias, drift, kwantisatie, uitvallen, filtering en fusie in een deterministische interactieve robotsensorsimulator.

Categorie
Sensoren
Tijd
60–150 min
Platform
Browser · Microcontroller
Technisch schema: Robotsensorsimulator voor kalibratie en sensorfusieSAMPLE → FILTER → FUSE

01 / Begin hier

Inleiding

Robots handelen op metingen die vertraagd, bevooroordeeld, ruisachtig en onvolledig zijn. Dit project maakt die beperkingen zichtbaar. Vergelijk de werkelijke waarde, de ruwe samples en de gefilterde schatting; wijzig de bemonsteringsomstandigheden; en leer hoe kalibratie de verdere regeling beïnvloedt zonder een educatief model te verwarren met een specifieke sensor.

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.

Bediening

Kies een glad of getrapt werkelijk signaal en stel daarna bemonsteringsfrequentie, kwantisatie, willekeurige ruis, drift, bias, uitvallen en filtergeheugen in. Vergelijk de ruwe gegevens met schattingen op basis van een voortschrijdend gemiddelde, een laagdoorlaatfilter, een mediaanfilter en een complementair filter. Voorinstellingen maken ruisachtig, bevooroordeeld en onbetrouwbaar sensorgedrag reproduceerbaar.

Theorie

Elke sensor heeft een meetbereik, resolutie, nauwkeurigheid, bandbreedte, latentie en uitvalgedrag. De nauwkeurigheid in de datasheet beschrijft slechts een deel van het systeem; montage, temperatuur, ruis op de voeding, elektromagnetische interferentie en oppervlakteeigenschappen bepalen vaak de werkelijke uitkomst.

Fusie werkt wanneer sensoren aanvullende informatie leveren en hun onzekerheid eerlijk wordt weergegeven. Twee bevooroordeelde metingen combineren levert niet automatisch een werkelijke waarde op. Begin met kalibratie, tijdstempels, coördinatenstelsels en controles op gegevenskwaliteit.

Tijdplot die een glad werkelijk signaal vergelijkt met ruisachtige ruwe samples eromheen verspreid en een geschatte waarde na laagdoorlaatfiltering. De gefilterde lijn verwerpt het meeste ruis, maar loopt tijdens de snelle stijging duidelijk achter op de werkelijke waarde.
Een laagdoorlaatfilter ruilt ruis in voor vertraging: het vlakt de ruwe samples af richting de werkelijke waarde, maar de schatting loopt achter zodra het signaal snel verandert. SVG downloaden

Algoritme

  1. Zet op elke sample een tijdstempel en controleer bij de binnenkomst van de meting of de waarde binnen het meetbereik valt.
  2. Reken ruwe eenheden om met de kalibratieschaal, de offset en de asuitlijning.
  3. Verwerp onmogelijke sprongen of markeer ze als ongeldig in plaats van gegevens te verzinnen.
  4. Pas het lichtste filter toe dat aan de ruisvereiste van de rest van het systeem voldoet.
  5. Transformeer metingen naar een gemeenschappelijk stelsel en fuseer ze op basis van bekende onzekerheid.
  6. Log ruwe en verwerkte waarden, zodat storingen reproduceerbaar blijven.

Broncode

Een exponentieel laagdoorlaatfilter is nuttig wanneer de tijdconstante bewust is gekozen:

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

Leg de ruwe sample naast het gefilterde resultaat vast. Anders kan een aantrekkelijke grafiek afknijpen, uitvallen en kalibratiefouten verhullen.

Aannames en hardwareverschillen

Dit lab is een educatief signaalmodel, geen datasheet van een specifieke sensor. Ruis is vooraf gezaaid als Gaussisch of uniform, met een draaiknop die je in jouw hand hebt; een echte IMU- of ToF-sensor voegt temperatuurafhankelijke bias, niet-Gaussische pieken en jitter in de bus-timing toe, die dit model vereenvoudigt. De bemonstering is hier volkomen periodiek, maar op een microcontroller maken looptiming en interruptlatentie tijdstempels essentieel — en daarom vergelijkt elke verwerkingsstand in de bediening de werkelijke waarde, de ruwe samples en de schatting samen. Filtering ziet er op een grafiek aantrekkelijk uit, maar elke extra gladheid voegt vertraging toe die op hardware later als regelvertraging opduikt; dezelfde afweging staat in de tutorial over sensorruis.

Schakelschema

Controleer de busspanning, de eisen aan pull-ups, de adressen en de maximale kabellengte voordat je meerdere sensoren aansluit.

Blokschema van een gemengde sensorbus. Een analoge sensor bereikt de controller via een ADC, I²C-sensoren delen de SDA- en SCL-lijnen, en een SPI-sensor gebruikt chip-select-, klok- en datalijnen. De controller schrijft een logbestand met tijdstempels.
Verschillende sensorbussen komen samen op één controller, die elke sample van een tijdstempel voorziet zodat ruwe en verwerkte waarden reproduceerbaar blijven. SVG downloaden

Begeleide experimenten

De draaiknoppen in dit lab bestaan om elke sensorfout bewust op te wekken en te zien welk gereedschap hem verhelpt. Eén keer zo’n test uitvoeren is meer waard dan een hele bibliotheek lezen.

1. Bewijs dat filteren een bias niet kan verhelpen

Zet de ruis op nul en de bias op een duidelijke offset. Probeer nu om de beurt elk filter — voortschrijdend gemiddelde, laagdoorlaat, mediaan. Geen van alle verplaatsen de schatting naar de werkelijke waarde, want ze dempen alle drie de variatie en een bias varieert niet.

Zet daarna de bias op nul en de ruis hoog en zie dezelfde filters goed werken. Dit is het belangrijkste onderscheid in sensorwerk: ruis, bias en drift lijken op elkaar in een grafiek en vergen drie verschillende oplossingen, en meer filtering geneest nooit een bias.

2. Zie een gemiddelde een piek uitsmeren die een mediaan verwerpt

Zet uitvallen of pieken aan en vergelijk een voortschrijdend gemiddelde met een mediaan over hetzelfde venster.

Filter Wat één afwijkende waarde doet
Voortschrijdend gemiddelde over 5 Verschuift de schatting voor vijf opeenvolgende samples
Mediaan van 5 Draagt helemaal niets bij

Ruis van ultrasone en time-of-flight-sensoren is niet Gaussisch — het bestaat uit sporadische wilde waarden bovenop een verder stabiel signaal. Dat is precies het geval waarop een gemiddelde het slechtst presteert.

3. Meet wat de vertraging je kost

Schakel over op het getrapte werkelijke signaal en verlaag de alpha van het filter (of verleng het venster). De schatting wordt gladder en komt later beschikbaar. Lees de vertraging bij elke instelling op de grafiek af:

Filterinstelling Typische vertraging Bij 0,3 m/s is dat
Mediaan van 3 ~1 sample 3 mm
Voortschrijdend gemiddelde over 10 ~4,5 samples 14 mm
Laagdoorlaat, α = 0,1 ~9 samples 27 mm
Laagdoorlaat, α = 0,02 ~49 samples 147 mm

De laatste rij levert een prachtig glad spoor op en stuurt een robot naar waar het obstakel 15 cm geleden stond. Controleer de vertraging altijd in eenheden die voor de robot betekenis hebben, niet in samples — dit is de meest voorkomende manier waarop een goedbedoeld filter een robot slechter maakt.

4. Zie wat fusie wel en niet kan

Maak één bron ruisachtig maar onbevooroordeeld en de andere glad maar driftend, en zie hoe de complementaire schatting het goede deel van elk overneemt. Geef daarna beide bronnen dezelfde bias en zie de gefusieerde schatting die exact overnemen.

Fusie benut onderling onafhankelijke fouten. Een common-mode-fout (een fout die alle sensoren op dezelfde manier treft) blijft ongemoeid, en daarom komt kalibratie vóór fusie en niet erna.

Wat je moet zien

Configuratie Ruw Beste filter Waarom
Gaussische ruis, geen bias Verdeelt symmetrisch om de werkelijke waarde Voortschrijdend gemiddelde of laagdoorlaatfilter Ruis middelt naar de werkelijke waarde
Sporadische pieken Vrijwel goed, zelden wilde waarden Mediaan Verwerpt afwijkers volledig
Constante offset Strak maar fout Geen — kalibreer Filtering kan de offset niet zien
Langzame drift Start goed, loopt weg Geen — herbereken of fuseer Heeft een absolute referentie nodig
Uitvallen Gaten Mediaan, plus de laatste goede waarde vasthouden Een verzonnen waarde is erger dan een gemarkeerd gat
Gekwantiseerd Landt op discrete stappen Geen — dit is jouw resolutie Tussen stappen filteren voegt vertraging toe, geen informatie

Naar de hardware

Dit lab Een echte sensor
De bemonstering is volkomen periodiek Looptiming en interruptlatentie maken tijdstempels essentieel
Ruis is vooraf gezaaid als Gaussisch of uniform Niet-Gaussische pieken, en bias die meebeweegt met de temperatuur
De werkelijke waarde is beschikbaar ter vergelijking Je hebt geen werkelijke waarde — en daarom kalibreert je tegen een bekende invoer
Uitvallen zijn expliciet Een uitval kan eruitzien als een plausibele waarde
Eén sensor tegelijk Meerdere bussen, meerdere bemonsteringsfrequenties en uitlijnproblemen ertussen

De praktische procedure voor een echte sensor is kort: houd hem stil tegen een bekende invoer, log enkele duizenden samples met tijdstempels en teken zowel de tijdreeks als een histogram. Het histogram is het deel dat mensen overslaan en het meest informatieve — Gaussische ruis vormt een klokvorm, afwijkers vormen een klok met een paar punten ver in de staarten, en die twee hebben verschillende filters nodig. De volledige methode staat in sensorruis, bias en filtering.

Hardwarechecklist

Componenten

  • Microcontroller of single-boardcomputer
  • Eén of meer digitale of analoge sensoren
  • Bekende kalibratiereferenties
  • Stabiele, geregelde voeding en de juiste logische niveaus
  • Logverbinding voor reproduceerbare experimenten

Verken de graaf

Waar deze simulator wordt gebruikt

De projecten, leerroutes en tutorials die op dit lab voortbouwen.

Verder bouwen

Hulpmiddelen downloaden

Gebruik deze naslag op de pagina terwijl je het project doorwerkt. Downloadbare projectpakketten komen er pas bij nadat hun broncode en versie zijn gepubliceerd.

Veelgestelde vragen

Veelgestelde vragen

Is een gladder signaal altijd een beter signaal?

Nee. Sterke filtering kan nuttige beweging verwijderen en vertraging introduceren. Kies een filter op basis van het ruispectrum, de vereiste reactietijd en de beslissingen die de meting gebruiken.

Wat is het verschil tussen bias en ruis?

Bias is een reproduceerbare offset ten opzichte van de werkelijke waarde, terwijl ruis tussen samples varieert. Kalibratie kan de bias schatten; middelen of filteren kunnen willekeurige ruis verminderen, maar een onbekende bias niet betrouwbaar verwijderen.

Wat is sensordrift en hoe verschilt het van bias?

Bias is een vaste offset die je één keer meet en aftrekt. Drift is een langzame verandering van die offset in de tijd, meestal door temperatuur of veroudering van componenten, waardoor een kalibratie die bij het opstarten is gemaakt langzaam niet meer met de werkelijkheid overeenkomt. Drift is de reden waarom langdurige metingen periodiek opnieuw gekalibreerd moeten worden of een referentie nodig hebben waartegen de schatter kan corrigeren.

Welk filter moet ik gebruiken: voortschrijdend gemiddelde, laagdoorlaat of mediaan?

Een voortschrijdend gemiddelde en een exponentieel laagdoorlaatfilter dempen allebei Gaussische ruis en ruilen daarbij reactiesnelheid in voor gladheid via hun venster of tijdconstante. Een mediaanfilter is beter in het verwijderen van sporadische pieken en uitvallen, omdat enkele slechte samples de middelste waarde niet verplaatsen. Kies het lichtste filter dat aan de vereiste van de rest van het systeem voldoet, in plaats van het er het gladst uitziende.

Hoeveel vertraging voegt filtering toe?

Elk gladheidsfilter loopt achter op het werkelijke signaal, en meer gladheid betekent meer vertraging: een laagdoorlaatfilter met een lange tijdconstante verwerpt meer ruis, maar loopt verder achter op snelle veranderingen. Teken de gefilterde schatting altijd naast de ruwe samples en de werkelijke waarde, zodat de vertraging zichtbaar is voordat je erop vertrouwt in een regelkring.

Wat is sensorfusie en wanneer helpt het echt?

Fusie combineert meerdere sensoren tot één schatting, en het helpt alleen wanneer de sensoren aanvullende informatie leveren en hun onzekerheid eerlijk wordt weergegeven. Twee bevooroordeelde metingen combineren levert geen werkelijke waarde op. Een complementair filter vertrouwt bijvoorbeeld op de ene sensor bij hoge frequenties en op de andere bij lage frequenties; begin met kalibratie, tijdstempels en coördinatenstelsels voordat je gaat fuseren.

Waarom moet elke sample een tijdstempel hebben?

Samples komen zelden met een volkomen vast interval binnen, en fusie en filtering nemen aan dat je weet wanneer elke waarde is gemeten. Tijdstempels laten je jitter detecteren, gegevens van verschillende sensoren uitlijnen en verouderde metingen verwerpen. Door ruwe waarden naast verwerkte waarden te loggen blijven storingen zoals afknijpen, uitvallen en kalibratiefouten reproduceerbaar.

Verder lezen

Bronnen

Gezaghebbende bronnen om dieper te gaan dan het afgebakende leermodel van deze simulator.