Een rit-analyse meldde tientallen keren per minuut een wissel tussen remmen en gas. De rijder deed dat niet. Dit is wat er misging, waarom meer filteren het niet oplost, en welke bron wél klopt.
Gemeten op echte ritten met een stuurgemonteerde iPhone. De cijfers hieronder zijn reproduceerbaar in de werkbank.
Hieronder rijdt een voertuig twintig seconden: even constant, dan afremmen voor een bocht, doorrollen, en weer optrekken. Eén keer gaat de rem eraf en het gas erop — één wissel in twintig seconden, oftewel drie per minuut. De groene lijn is wat er werkelijk gebeurt. De rode lijn is wat een bewegingssensor op de stuurmount registreert. De blauwe lijn is dezelfde beweging, afgeleid uit het snelheidsverloop van de GPS.
Links = streng filteren (traag maar rustig), rechts = nauwelijks filteren (snel maar onrustig).
De simulatie is geijkt op de echte meting: bij Normaal komt het sensorspoor uit op ongeveer 0,06 g ruis en, ná de volledige filterketen, op zo'n twintig wissels per minuut. Dat zijn precies de waarden die op de weg gemeten werden.
De verleiding is om harder te filteren. Dat werkt ook — tot op zekere hoogte. Maar er zit een prijs aan die niemand op de meter ziet staan: hoe strenger je filtert, hoe later je het weet.
Er is nog een reden waarom filteren niet redt wat er te redden valt. De trilling en de beweging die je wilt meten liggen dicht bij elkaar: gemeten wegtrilling piekt rond 5 Hz op gewone wegen, en een rem- of gasactie zit op 0,3 tot 1,5 Hz. Dat scheelt niet genoeg om er een scherp filter tussen te zetten zonder de remactie zelf uit te smeren. En op het punt waar het filter de valse wissels eindelijk kwijt is, ben je trager dan de GPS die je al gratis in je zak had.
Tot hier ging het over trilling. Maar er zit een probleem onder dat geen enkel filter oplost, en dat is fundamenteler: een versnellingsmeter meet de som van zwaartekracht en beweging, en kan die twee niet uit elkaar houden. Kantelt het toestel een paar graden, of loopt de weg omhoog, dan lekt er een stuk zwaartekracht de langsrichting in. Dat ziet er precies zo uit als gas geven.
Een normale remactie in het verkeer zit rond de 2,8 m/s². Drie graden scheefstand levert al 0,51 m/s² op — bijna een vijfde daarvan, uit niets anders dan geometrie. En anders dan trilling middelt dit niet uit: het is een systematische fout die net zo lang blijft staan als de helling duurt.
userAcceleration levert een signaal waar de zwaartekracht uit gehaald is — maar dat is geen meting, het is een schatting. Het systeem leidt de stand van het toestel af uit gyroscoop en versnellingsmeter samen, en trekt de zwaartekracht er dan uit. In een schuddend voertuig is precies die standschatting het eerste wat degradeert. Je krijgt dus een schone lijn te zien die op een gok gebaseerd is, zonder dat er iets in het signaal verraadt hoe goed die gok was.
Bij elkaar verklaart dit waarom dit geen randgeval is maar de normale toestand. Op een dashboard is tijdens het rijden meer dan 2 g aan trilling gemeten, terwijl de remactie die je eruit wilt lezen rond 0,28 g ligt. Het stoorsignaal is dus groter dan het signaal — nog vóór er een graad scheefstand bij komt.
Dit blijft abstract tot je ziet wat er aan de andere kant uit rolt. In de rit-analyse waar dit boven water kwam, kreeg één rotonde deze beoordeling:
Rem-cijfer voor deze bocht: 45 van de 100. Advies: eerder en geleidelijker afbouwen.
Het snelheidsverloop van diezelfde bocht laat iets heel anders zien: van 73 naar 38 km/u, geleidelijk, over meerdere seconden. De werkelijke zwaarste vertraging was −0,15 g — een derde van wat er gemeld werd, en volstrekt normaal. De rijder had niets fout gedaan. Het leerpunt was een meetartefact, en het stond wel netjes met twee decimalen in het rapport.
Dat is de echte schade van dit soort ruis. Niet dat een getal ernaast zit, maar dat het getal een oordeel draagt. Een gebruiker die zo'n advies vertrouwt, gaat zijn rijstijl aanpassen op basis van iets wat nooit gebeurd is. Toen dezelfde analyse op het snelheidsverloop werd overgezet, verdwenen de straffen — en het rem-cijfer over de hele rit ging van 95 naar 100. Er was nooit iets mis met het remmen.
Drie getallen zeggen vrijwel alles over een rit-opname. Vul in wat je logs laten zien; je krijgt een score met de interpretatie erbij.
De drempels volgen de praktijk: onder de 0,05 g ruis is een sensorspoor bruikbaar als aanvulling, daarboven domineert de trilling. Meer dan tien wissels per minuut betekent vrijwel altijd dat je trilling telt in plaats van rijgedrag. En zonder satellietdekking valt de eerlijke tweede bron helemaal weg — dán heb je alleen nog de sensor, met alles wat daarbij hoort.
Er is geen beste sensor; er is een beste sensor per grootheid. De vuistregel die hieruit volgt is oud en heet in de literatuur een complementair filter: laat de trage maar onbevooroordeelde bron de langzame component dragen, en gebruik de snelle maar driftende bron alleen voor het snelle detail. Wie dat omdraait — snelle bron als basis, trage bron als correctie — bouwt precies de fout die hierboven staat.
| Wat je wilt weten | Neem dit | Waarom |
|---|---|---|
| Remt of accelereert hij? | GPS-snelheid, afgeleid | Traag, maar kent geen trilling. Een remactie duurt seconden — daar is één meting per seconde ruim genoeg voor. |
| Hoe hard remt hij? | GPS-snelheid, afgeleid | De piek uit de sensor is bijna altijd een trillingspiek. Het snelheidsverloop liegt hier niet. |
| Schuine stand / bochtkracht | Snelheid × draaisnelheid uit de gyroscoop | Werkt ongeacht hoe het toestel gemonteerd staat, en heeft geen kalibratiestap nodig. |
| Klap, schok, val | Ruwe versnellingsmeter | Precies waar hij goed in is: kortdurende, heftige gebeurtenissen die de GPS volledig mist. |
| Trillingsniveau zelf | Ruwe versnellingsmeter | Wat eerst ruis was, is hier het signaal — bruikbaar als maat voor wegdek en montage. |
| Positie en route | GPS, met koersvalidatie | Een gyroscoop die "bocht" zegt terwijl de koers nauwelijks draait, meet een hobbel. |
userAcceleration is een fusieschatting uit gyroscoop plus versnellingsmeter: Apple, CMDeviceMotion. Over de snelheidsmeting waarschuwt Apple expliciet dat die "alleen ter informatie" is: CLLocation.speed.Wat hier bewust níét staat. Er circuleren percentages over valse remmeldingen bij verzekeringstelematica; die zijn niet terug te voeren op een controleerbare meting en staan er daarom niet in. Hetzelfde geldt voor de precieze vertraging van de snelheidsmeting op een iPhone en voor de vraag of die meting op dopplerverschuiving of op positieverschil gebaseerd is — Apple documenteert het niet, en gissen helpt niemand.