Smoothness-Ermittlung über Vibrationsmessung mit Smartphone und Fahrrad
Posted by Supaplex030 on 10 July 2020 in German (Deutsch).Die Qualität von Straßenoberflächen ist ein wichtiger Faktor, insbesondere um gezielt Routen danach auszurichten. Wer auf einem Rennrad oder Inline Skates unterwegs ist oder einen Kinderwagen über sanft schaukelnde Oberflächen schieben will, wird sich freuen, wenn Routing-Algorithmen (oder die User selbst) auf Informationen zur Oberflächenbeschaffenheit zurückgreifen können. Schlechte Oberflächen wie Kopfsteinpflaster sind für einige Verkehrsmittel unpassierbar und auch beispielsweise mit einem normalen Stadtrad muss die Geschwindigkeit an solchen Stellen oft erheblich reduziert werden.
Zur Bewertung der Oberflächenbeschaffenheit gibt es in OSM – neben surface für den Fahrbahnbelag selbst – den Schlüssel smoothness, der jedoch oft mehr oder weniger nach subjektiven Kriterien vergeben wird. Ein Autofahrer wird hier beispielsweise etwas andere Maßstäbe anlegen als eine Rennradfahrerin. Dabei besitzen fast alle Mapper ein Smartphone und könnten damit auf ein hochpräzises Sensorium als Entscheidungshilfe für die Kategorisierung zurückgreifen, wenn sie es an einem Fahrzeug fixieren und die Vibrationen aufzeichnen. Ob das funktioniert, habe ich auf einem Abendspaziergang mit dem Fahrrad getestet.
Voraussetzung ist ein Beschleunigungssensor/Accelerometer, wie es eigentlich jedes aktuelle Smartphone an Bord haben müsste. Ich habe meins (ein aktuelles 300-Euro-Mittelklasse-Gerät) mit einer flexiblen Silikon-Halterung am Lenker befestigt und bin eine Teststrecke mit verschiedenen Oberflächen abgefahren. Die Vibrationen habe ich mit der erstbesten App, die ich zur Aufzeichnung des Beschleunigungssensors gefunden habe, mitgeschnitten. Die Silikonhalterung führt vermutlich dazu, dass die Vibrationen verstärkt werden und damit differenziertere Ergebnisse ermittelt werden. Die (absolute) Beschleunigung in X-, Y- und Z-Richtung habe ich zu einem Mittelwert zusammengefasst, der Grundlage für die folgenden Ergebnisse ist.
Das Ergebnis
Die Oberflächen besitzen – in Abhängigkeit von ihrer Oberflächenebenheit – auf jeden Fall ein eindeutiges „Vibrationsprofil“: Exzellente Fahrbahnen weisen sehr niedrige Vibrationswerte mit einer sehr niedrigen Varianz auf, gute Fahrbahnen lassen sich durch höhere Varianzen klar abgrenzen. Bei mittelmäßigen Oberfllächen steigen sowohl Vibrationen als auch Varianz spürbar an. Auf schlechten Oberflächen (in meinem Fall mehrere Kopfsteinpflasterabschnitte) steigen die Werte noch einmal sprunghaft an. Beispielhaft die Ergebnisse für ausgewählte Streckenabschnitte:
surface | smoothness | Median [m/s²] | St.-Abw. | Vibration | Varianz |
asphalt | excellent | 0,674 | 0,317 | sehr niedrig | sehr niedrig |
asphalt | excellent/good | 0,742 | 0,77 | sehr niedrig | niedrig |
paving_stones | good | 1,03 | 0,633 | eher niedrig | niedrig |
asphalt | good | 1,075 | 0,869 | niedrig | eher moderat |
compacted | intermediate | 1,577 | 1,011 | moderat | eher hoch |
sett | bad | 6,554 | 4,036 | sehr hoch | sehr hoch |
Werden die aufgezeichneten Vibrationen visualisiert, lassen sich die verschiedenen Oberflächenprofile eindeutig voneinander unterscheiden:
Was folgt daraus?
Die Messung von Vibrationen mit einem Smartphone-Sensor ergibt hervorragende Ergebnisse, um die Ebenheit von Oberflächen (objektiv) klassifizieren zu können. Die Ergebnisse könnten Mappern damit als Entscheidungshilfe zur smoothness-Kartierung dienen. Beachtet werden sollte dabei meiner Meinung nach Folgendes:
-
Vermutlich ermittelt jeder Mapper mit seinem Gerät und seiner Halterungstechnik eigene Größenordnungen, innerhalb derer die Vibrationswerte schwanken. Um die Werte „automatisiert“ zu erfassen, braucht es also eine individuelle Eichung am eigenen Halterungs- und Fahrstil.
-
Die Fixierung des Geräts am Fahrzeug (ideal: Fahrrad) muss ebenso konstant gehalten werden wie der Fahrstil bzw. die Geschwindigkeit (wird ein Streckenabschnitt langsamer befahren, ergeben sich andere Werte als bei schneller Fahrt).
-
Ich habe die Test-Streckenabschnitte einzeln aufgezeichnet und – um Manipulationen durch die Bedienung des Geräts auszuschließen (Hand am Smartphone, teils Geschwindigkeitsreduzierung) – jeweils am Anfang und am Ende Werte aus der Auswertung ausgeschlossen. Die Aufzeichnung könnte aber – besonders bei längeren Fahrten – auch parallel zu einem GPS-Track mitlaufen. Aus der Aufzeichnung ergibt sich das Intervall, wie oft ein einzelner Beschleunigungswert aufgezeichnet wurde, was sich mit dem GPS-Track (Ort und Zeit) vergleichen lassen müsste.
-
Am Ende sollte dennoch immer die Mapperin/der Mapper entscheiden, insbesondere um weitere qualitative Merkmale zu berücksichtigen. Eine ebene Fahrbahn, die jedoch regelmäßig kurz durch starke Wurzelschäden durchbrochen wird, könnte beispielsweise eher geringe Vibrationswerte aufweisen (aber auch eine höhere Varianz).
-
Bei Gelegenheit versuche ich weitere Teststrecken aufzunehmen, um solche Faktoren ebenso beurteilen zu können wie beispielsweise den Einfluss des Fahrbahnbelags (z.B. sehr schlechter Asphalt, Fahrbahnen mit sehr gut versiegeltem Kopfsteinpflaster…). Im Idealfall kann ich numerische Klassen bilden, um die smoothness-Werte abzubilden.
Zum Abschluss noch eine radfahrbasierte Klassifizierungshilfe für die Bewertung der Oberflächenqualität/Ebenheit einer Fahrbahn, die ich kürzlich im Zuge von Überlegungen zu einem erweiterten Radwegeschema aufgestellt habe – ganz ohne Smartphone:
-
excellent: Glatter, unbeschädigter Asphalt mit sehr guten Rolleigenschaften und ohne spürbare Vibrationen (Faustregel: Perfekt zum Inlineskates fahren).
-
good: Asphalt (oder andere glatte versiegelte Oberfläche) mit höchstens kleineren Schäden oder Rissen, die kaum spürbare Verwerfungen hervorrufen. Insbesondere ohne Wurzelschäden o.ä. (Faustregel: Perfekt zum Rennrad fahren).
-
intermediate: Im allgemeinen gut befahrbare Oberfläche, auf der aber kleinere Verwerfungen spürbar sind: Beispielsweise Pflastersteine/Kleinpflaster mit geringen Zwischenräumen, Asphalt mit kleineren, seltenen Wurzelschäden, gut verfestigter Boden oder sehr gut (!) versiegeltes Kopfsteinpflaster (Faustregel: Perfekt zum Fahren mit einem Stadtrad).
-
bad: Deutlich spürbare Verwerfungen oder “Rütteln”, z.B. auf üblichem Kopfsteinpflaster, aufgrund zahlreicher Wurzelschäden/Schlaglöcher oder auf unbefestigten Wegen mit Pfützenlöchern oder ähnlichem. Nicht mehr zum Rennradfahren geeignet, signifikanter Geschwindigkeitsverlust (Faustregel: Beim nächsten Mal kaufe ich mir ein Fahrrad mit besserer Federung - oder gleich ein Mountain Bike)
-
very_bad: Starke Verwerfungen oder Schäden, nicht mehr zum Radfahren mit City- oder Trekkingrad geeignet bzw. nur mit erheblichem Geschwindigkeitsverlust (Faustregel: Wege, nach deren Befahrung ich dem zuständigen Baustadtrat eine E-Mail schreibe – und wirklich ein Mountain Bike brauche)
Discussion
Comment from Sanderd17 on 10 July 2020 at 10:57
I’m sorry to write in English, my German is good enough to read it, but I make too many mistakes when writing.
This is a very interesting experiment. But I wonder to what extend the speed has an impact on the feel. Belgian cycle races are famous for their cobblestones. And the trick to ride on cobblestones is to ride fast enough (which is why it makes great races, as all riders need to keep pushing during the cobblestone sections).
I would guess that the frequency of the vibration also impacts the smoothness. If the frequency is low, you would still consider it smooth. But if the frequency is very high, it turns into some sort of buzzing feel. But when the frequency is in between, it becomes very unsmooth.
A slow rider might ride at 14km/h (4m/s). If you take an estimated cobblestone size of 15cm, you get a frequency of 4/0.15 = 26Hz. A practiced rider might ride at 36km/h (10m/s). And this would result in 60Hz vibrations. At that point, it becomes a nice buzzzing feeling.
Also, when expressing vibrations, it’s typically done in amplitude (or displacement) and frequency. But this has a curious relationship to acceleration (which can be easily measured with G-sensors).
Comment from Supaplex030 on 10 July 2020 at 17:33
Thanks for your comments! In my first sample I rode the same cobblestone street for two times: With a speed of arround 15-17km/h I got a acceleration median of 6.2 m/s², with arround 7 km/h it was only 4.6 m/s². So the speed is very important (although it’s clear that both values represent a “bad” smoothness). For automatic measurement purposes a constant speed seems necessary (or an speed based post-measurement normalisation).
Comment from kartonage on 11 July 2020 at 09:13
Wenn ich über sowas nachdenke, dann kommt mir immer mein eigener Fahrstil in den Sinn. Gerade auf den typischen Gehwegradwegen versuche ich um jeden Preis so zu fahren, dass möglichst wenig Vibrationen bei mir ankommen. Dadurch ergibt sich in der Regel eine sehr variable Fahrweise im Bezug auf den Untergrund (ständiges Wechseln zwischen den “Spuren” etc). Ganz generell sind viele Wege nicht nur in der Länge von unterschiedlicher smoothness sondern auch schon in ihrer Breite (Wurzelausschlag nur auf der Seite mit Bäumen, allgemeine Abnutzung, lockere Steine auf einer Seite, etc). Das kann natürlich dazu führen, dass die Fülle der Werte starke Unterschiede aufzeigt wenn man nur eine abstrahierte Linie ansprechen möchte. Im Sinne der Nachvollziehbarkeit müsste man hier eigentlich starre Linien abfahren bzw. bei mehren Fahrten vielleicht Mittelpunkt- und Seitenabfahrten untersuchen. Hast du versucht hier starr dem selben Weg zu folgen oder eher realistisch unterschiedlich zu fahren?
Ich weiß nicht ob du dabei warst als wir ein bisschen von dem DataCycle-Meetup erzählt hatten bei dem das Oldenburger Projekt vorgestellt wurde bei dem eine Vielzahl an Radfahrern mit recht klobigen Geräten umhergeschickt wurden wo unter anderem auch die Erschütterung getestet werden sollte (ECOSense mit Namen). Die Abschlussveranstaltung dazu steht noch im August aus, könnte dich auch interessieren.
Comment from Supaplex030 on 11 July 2020 at 19:57
Interessant, nein, das Oldenburger Projekt kannte ich noch nicht. Die hier beschriebene Vibrationsmessung war mehr oder weniger eine spontane Idee an einem freien Abend, ohne dass ich mich theoretisch tiefer damit befasst habe - ich war eher neugierig, ob das überhaupt sinnvoll durchführbar ist. Da das aber offenbar der Fall ist, sind Probleme wie die Spurführung auf jeden Fall etwas, was man bei weiterer Anwendung beachten sollte! In meinem Fall habe ich nur eine gepflasterte Straße mit verschiedenen Geschwindigkeiten (etwa auf der gleichen Straßenseite) befahren, um einen Eindruck der geschwindigkeitsabhängigen Unterschiede zu bekommen (siehe Kommentar oben). Meiner Meinung nach wäre für Messungen die Mittellinie empfehlenswert (bzw. die belagsunabhängige “Ideallinie” je nach Fahrzeug, z.B. mit einem Fahrrad im rechten Fahrbahn-/Radwegbereich etc.), da ich den allgemeinen Straßenzustand wiedergeben möchte, vielleicht auch nicht von jedem Verkehrsteilnehmer einen Schlingerkurs erwarten kann bzw. diese Fälle dann auch gern mit einer penalty im Routing belegen würde… Der Einfluss von unregelmäßigen Erschütterungen (wie Wurzelschäden) stellt wohl generell eine Herausforderung dar, auf die ich hier gar nicht eingegangen bin. Selbst wenn man diese numerisch (mit einer Kategorisierung z.B. nach Median, Varianz und/oder bestimmten Quantilwerten) gut abbilden kann, bleibt die Frage, wie man z.B. eine sehr gute Fahrbahn mit gelegentlichen oder sogar nur seitenweisen Wurzelschäden mit dem OSM-Schema abbildet…
Comment from Protoxenus on 26 July 2020 at 17:35
So, wie du nach deinen Messungen die Oberfläche beurteilst, mache ich das auch, aber ohne technische Hilfsmittel. Kannst du vielleicht noch verraten, welches Software du benutzt hast? Ich könnte mir vorstellen, Phyphox dafür zu verwenden. Für die Auswertung (Korrelation der Messdaten mit dem Standort) müsste ich mir noch etwas überlegen. Gruß Protoxenus
Comment from westnordost on 27 July 2020 at 00:40
Someone proposed to use this information for StreetComplete - for adding or helping to determine the smoothness of roads.
https://github.com/westnordost/StreetComplete/issues/1630
In a nutshell If the average vibration-level was recorded en masse (just like GPX tracks are), such information could be made available via an API to find possible mistakes in smoothness taggings to which STreetcomplete users could be sent for re-survey
It might be possible to removing the factor of that different speeds produce different levels of vibrations by dividing the vibration level through the speed.
Comment from aharvey on 27 July 2020 at 05:14
Which app did you use? It would be nice if OSMTracker for Android https://github.com/labexp/osmtracker-android supported logging a vibration value with each GPS location.
Comment from Supaplex030 on 27 July 2020 at 14:53
@Protoxenus @aharvey: Since this was only an experiment and my first attempt to this topic, I used the first app I found. There are definitely better ways to record! My app was called “Accelerometer Analyzer”. It can record movement data rudimentarily and outputs it in a text format, which I then processed in LibreOffice Calc.
Linking the GPS path and movement data should actually be possible as long as the movement data is recorded in a reliably constant interval. So you could subsequently correlate GPS time stamp and movement data. Of course, an app that records both directly together would be ideal.
@westnordost: One could also standardize the “vibration behavior” of each individual contributing user on the basis of their total tracks/measurements. In comparison with the data of other users or already recorded smoothness values, one could determine an individual value for over- or underestimation. But this requires that every user is always on the same bike / vehicle and always with the same smartphone holder etc. (and have already covered and measured certain tracks with different surfaces).
Comment from gileri on 27 July 2020 at 18:47
Thank you for this useful experiment !
Comment from Eisenspleiszer on 28 July 2020 at 20:33
Schon einige Zeit versuche ich mich mit der einheitlichen Erfassung und Bewertung der Oberflächenbeschaffenheit von Straßen, Rad- und Fußwegen. So richtig zufrieden war ich mit dem Vorgehen und den daraus erzielten Ergebnissen nicht. Meine Versuche habe ich hier angedeutet.
Irgendwann vor drei bis fünf Jahren bin ich auf das Cyface Projekt der TU Dresden gestoßen und habe auch etwas mit den Sensoren meines Telefons experimentiert. Im Gegensatz zu den Versuchen von Supaplex030 waren meine Ergebnisse auch hier nicht optimal und ich habe es nicht wirklich weiter verfolgt. Es lag wohl am ehesten an meinen nicht ausreichenden Kenntnissen in der Programmierung von Android.
Meine damalige Anfrage zur Nutzung der Daten aus der CyFase-App blieben unbeantwortet und Phyphox kannte ich nicht.
Heute ist das ganz anders. Der Export der erfasste Daten aus CyFase ist dokumentiert und lädt zum experimentieren ein. Ob ich aber wirklich Daten für die Cyface GmbH erfassen möchte, damit diese die verkaufen kann, habe ich noch nicht entschieden. Das mit der App für das Stadtradeln auch die Eigenschaften der Oberfläche für die Cyface GmbH erfasst werden, hat schon etwas Geschmäckle.
Links: TU Dresden, CyFase, Datenexport aus CyFase, Stadtradeln
Comment from JIDB on 2 March 2021 at 18:36
Danke für die interessante Idee. Gelesen hatte ich es zwar schon, als es in WeeklyOSM erwähnt wurde, ich komme aber erst heute dazu, ein Kommentar hinterzulassen und zwar, weil ich vor kurzem auf einem Artikel gestoßen bin, dass die Hochschule in Karlsruhe was ähnliches auch versucht hat und das hat mir an diesem Blog-Eintrag erinnert.
Leider steht nur wenig auf der Webseite: unter https://www.hs-karlsruhe.de/iums/aktuelles erwähnt der Eintrag vom 17.02.2021, dass sie am 9. und 10. März einen Vortrag mit dem Titel „Validierung von Klassifizierungsmethoden zu Bestimmung der Straßenqualität mithilfe Mobiler Smartphone Sensorik“ halten werden.
Comment from Supaplex030 on 2 March 2021 at 20:59
@JIDB: Danke für diesen spannenden Hinweis! Hoffentlich veröffentlicht die Hochschule noch etwas frei zugängliches dazu – die Teilnahme an der Konferenz ist leider kostenpflichtig und im erwähnten Magazin “Straßenverkehrstechnik” bin ich auch nicht fündig geworden: https://www.strassenverkehrstechnik-online.de/strassenverkehrstechnik/heftarchiv/svt-01-2021.html.
Comment from westnordost on 7 May 2021 at 14:32
International roughness index (IRI)
Ich bin durch Zufall noch einmal auf dieses Thema gestoßen. IRI ist ein internationaler Standard für Messung der Straßen-Unebenheit.
Gemessen wird er offenbar vor allem mit speziell ausgestatteten Autos bei denen Sensoren an der Hinterradachse befestigt sind. Allerdings wird im Wikipedia-Artikel auch erwähnt, dass man grundsätzlich auch andere Methoden verwenden kann, z.B. Messen der Erschütterung (genannt RTRRMS - Response-Type Road Roughness Measuring Systems), also letztlich deine Methode.
Diese müssten dann natürlich entsprechend kalibriert werden, damit sie möglichst die gleichen Werte ausgeben wie ein entsprechend ausgestattetes Auto. Mindestens dazu notwendig wäre, an IRI-Daten zu kommen wo man selbst quasi mit deiner App und eigenem Fahrrad hinkommt um es abzugleichen. Aber wenn man diese Daten hätte, könnte man (z.B. in der Wiki, oder auf GitHub) ein entsprechendes Verzeichnis von Kalibrationen erstellen. Wenn man diese Kalibration dann jeweils anwendet, könnte man erreichen, mehr oder weniger genau, dass deine App ICI-Daten ausspuckt. Das wäre doch ziemlich krass oder?
Hier noch ein Artikel generell zu Methoden die Oberflächenunebenheit zu messen: https://pavementinteractive.org/reference-desk/pavement-management/pavement-evaluation/roughness/
Comment from Supaplex030 on 7 May 2021 at 18:46
Oh, sehr interessant! Danke für die Ergänzung (und den Hinweis auf diese Skalen im Wiki). Zumindest IRI scheint mir von der Klassifikation her auch gar nicht so weit entfernt vom smoothness-Gebrauch in OSM.
Allerdings stelle ich mir die Kallibrierung für den “Hobbygebrauch” relativ schwierig vor, selbst wenn man an genormte IRI-Daten für Teststraßen kommen sollte. Denn wenn ich an das hier beschriebene Experiment zurückdenke (was wie erwähnt eine fixe Idee an einem freien Abend war), gibt es ziemlich viele Faktoren, die man während der Messung konstant halten muss, vor allem was das Fahrverhalten/Geschwindigkeit, aber auch die Befestigung des Sensors/des Smartphones angeht. Aber gut, wer gezielt Oberflächenqualitäten auf diese Weise erfassen will, der wird das schon hinbekommen…
Genial wäre tatsächlich eine Plattform, auf der man solche Erschütterungsprofile vergleichbar und als OpenData sammeln könnte (Plugin für Mapillary und Co :), dann kann man einerseits aus dem Vergleich der Strecken eines einzelnen Users sein persönliches Profil kalibrieren, andererseits mehrere Werte für die gleiche Strecke von verschiedenen Befahrungen oder Usern mitteln. In Summe sollte dann doch eigentlich ein guter Eindruck der Oberflächenqualitäten erkennbar sein… Offenbar gibt es ja bereits Anwendungen in dieser Richtung (siehe andere Kommentare oben), aber nicht als offene Plattform. Vielleicht tut sich ja mittelfristig noch was – immerhin sind die Sensoren in handelsüblichen Smartphones auch noch nicht ewig so gut, dass sie sich für solche Anwendungen eignen…