Low-cost smoothness Messung

Ich mag ja auch alle Arten von Low Cost 3D-Anwendungen, und finde das Projekt daher - unabhängig von einem Einsatz bei OSM - toll!

Man könnte eine Straßenqualitätskarte erstellen?!
Aber ob das nicht mit den ohnehin in allen smartphones verbauten bewegungssensoren einfacher ginge?

Ja, warum nicht? Dazu müsste halt die Qualität von smoothness passen und die ist bisher, trotz guter Beschreibung, meiner Meinung nach immer noch zu sehr subjektiv.

Du könntest uns ja an deinen Ideen/Gedanken teilhaben lassen, warum du denkst, das es eventuell einfacher ginge. Ich stelle dazu gleich mal folgende Überlegung auf, warum ich denke das dies nicht so einfach ist: Wir beide fahren mit einem Samsung Galaxy S3, am Lenker befestigt Fahrrad … du mit einem 10bar aufgepumpten Rennrad, ich mit einem 3bar aufgepumpten full-suspenion trailbike.

Ich bin zwar nicht gefragt, wenn es Referenzstraßen gäbe, wäre es die Frage, ob man aufgrund dieser Daten via Statistik nichts machen könnte. Notwendig wäre vermutlich, dass diese Auswertung von Seiten von OSM stattfindet und nicht vom Mapper. Denn dein Fahhrad verändert auch seine Vibrationen beim gleichen Übergang. Die Frage ist, ob Gesetzmäßigkeiten dahinterstecken.

Vielleicht könnte man tatsächlich aufgrund von den Beschleunigungssensordaten wenn man eine große Datenmenge hat die “eigenschwingung” durch das individuelle Fahrrad modellieren (und dann vom Signal abziehen), so dass man dann doch Aussagen über die Oberflächenbeschaffenheit treffen kann. Ich würde das aber eher nicht so hoffnungsvoll sehen - ich denke, da sind zuviele Störeinflüsse da, die das Ergebnis dann nicht nutzbar machen. Aber versuchen könnte man es!

Was auch gehen könnte wäre das mittels Structure from Motion-Algorithmen zu machen, also on-the-fly ein 3D-Modell errechnen zu lassen. Ginge aus normalen RGB-Bildern, aber auch mit RGBD-Sensoren wie der Kinect und einer Prozessierung wie KinFu o.ä. hintendran (http://codewelt.com/kinect3dscan )

Bezüglich der Messung mit Beschleunigungssensor:
Ja, theoretisch könnte man das Fahrrad modellieren, problematisch aus Ingenieurwissenschaftlicher Sicht hierbei ist, dass das System ein wenig zeitvariant (Luft geht langsam aus dem Reifen raus oder wird manchmal wieder aufgepumpt), aber vor Allem nichtlinear ist (z.B. ist das Signal beim Überfahren eines rechteckförmigen Objektes mit 1cm Höhe und Länge nicht genau das Signal beim Überfahren eines rechteckigen Objektes mit -1cm Höhe und 1cm Länge mit umgekehrtem Vorzeichen). Dies liegt hauptsächlich am Rad selbst, wenn der Raddurchmesser gegen Null gehen würde, wäre die Messung linearer… :slight_smile: . Dazu kommt der Störeinfluss Mensch beim Radfahren und evtl Vibrationen durch die Mechanik, die Geschwindigkeit spielt ebenfalls eine Rolle. Für grobe subjektive Messungen (eben oder uneben) könnte so etwas tauglich, für quantitative Messgrößen eher untauglich sein.

Bezüglich der Straßenqualitätskarte noch einige Gedanken:
Je nach Definition der Straßenqualität müsste man die gesamte Breite der Straße erfassen können, bei einer superebenen Straße könnten ja auch tiefe Schlaglöcher irgendwo sein, die man z.B. mit dem Rad umfahren würde. Spurrillen fallen mir hierzu auch ein. Der Link von Pfad-Finder

zeigt rechts auf dem dritten Bild von oben ein Messsystem das das kann. Für OSM-Zwecke vielleicht etwas überdimensioniert… :slight_smile:

Sollte mit einem Raspberry machbar sein…über die Kamera eine Seiten/Mittelstreifenerkennung + Beschleunigersensor dazu… :roll_eyes: :sunglasses:

Das mit Beschleunigersensor hatte ich mir vor Jahren mal ausgedacht…aber damals gabs noch keine günstigen Mini-PCs die ohne dicken Bleiakku ausgekommen wären :wink: Den Sensor hatte ich an der vorderen Federgabe und nicht am Fahrrad geplant (!!!). Man will ja die Bodenbeschaffenheit und nicht das Rütteln des Fahrrads erfassen - was vor allem bei einem vollgefederten Fahrrad am Rahmen total sinnlos wäre, da dieser schon beim Kurbeln losrüttelt :roll_eyes: An der Federgabel, mit entsprechender Kalibrierung, sollte man ganz genau Asphalt, Schotter, Waldweg, “schlechter” Feldweg und “Offroad” erfassen können. Je länger die Federgabel, desto genauer das Ergebnis.
Auf die Idee kam ich, als ich vor etwa drei oder vier Jahren mein damals erstes Smartphone am Rahmen als Actioncam befestigt habe. Die Kamera war vorne Am rahmen und hat die Federgabel mit im Blickfeld gehabt. Da hat man deutlich die Unterschiede zwischen den Bodenblägen und der dazu gehörigen Federbewegung gesehen :slight_smile:

Mittels Photogrammertrie könnte man sogar durch seitliche Kameraaufnahmen die Umgebung aufnehmen - ala Streetview, aber halt in 3D. Zwei aufeinanderfolgende Bilder können zu einem 3D-Modell umgerechnet werden. Durch die Einschränkung der Auflösung (Full HD) könnte die Erkennung auf vielleicht 10-20 Meter gut funktionieren - oder man schießt halt Fotos mit bis zu 5 Megapixeln, was dann allerdings auch länger für die Berechnung braucht. Ob ein Haus da ist (sogar mit Anfang und Ende), Bäume (Wald) usw… Wenns nur nicht so kompliziert wäre zu programmieren :wink:

Aktueller Raspberry mit Quadcore kostet 38 €. Die Kamera dazu um 20 €. Display gibts ab 15 € (2-5"). Android geht auch drauf, falls man es als GPS-Navi/Logger mit Standard-Apps nutzen will, ohne jetzt was zu basteln/programmieren zu müssen.
Beschleunigersensor-Module gibts ab 8…10 €.

Dann vergiss aber nicht, noch die Wegbreite zu erfassen. Sollte doch eigentlich noch einfacher sein oder? :slight_smile:

Die habe ich da extra nicht erwähnt…weil: wann hat man den lenker denn absolut gerade und parallel zur Fahrbahn? :wink:
Normal wackelts hin und her…das kann man nie im leben erfassen… :confused: Einfacher geht das über Luftbilder - hier weiß man die Auflösung bzw. die größe eines Pixels.

Moin,

eine homogene Fläche kann man mit einem nummerischen Wert für die Rauheit sicherlich gut beschreiben.
Für Inline-Skater mag die Rauheit auch eine Rolle spielen.
Wichtiger für alle Nutzer ist es aber, ob eine Straße oder ein Platz Schlaglöcher, Risse, Spurrillen, schlechte
Flickstellen, hochstehende Schachtdeckel, abgesackte Gullys oder ähnliche Schäden haben.
Solche Schäden sind mit einem einzelnen Wert für einen Straßenabschnitt schwer zu beschreiben.
Erst wenn man ein praktikables Datenmodell auch für Oberflächenschäden hat, mach es m. E. Sinn sich mit
objektiven Messverfahren zu beschäftigen.

Eine interessantes Idee ist die Triangulation mit einem günstigen Linienlaser trotzdem :slight_smile:

Das was ich da meinte bezog sich eher auf den Strassenbelag und nicht die “Güte”. Mit einem Beschleunigersensor könnte man automatisch erfassen auf was für einem Belag man fährt. Und das Metergenau :slight_smile:

Na, wenn man ein 3D-Modell mittels SfM erzeugt, dann kriegt man schon die ganze Breite des Weges, auch wenn man mehrere schräge Bilder aufnimmt. Das Problem ist da aber die absolute Skalierung: du kriegst eine maßstabslose Punktwolke/3D-Mesh da raus, wenn du nicht irgendwie extern den Maßstab in dein Modell einbringst. Und das würde low-cost über eine Kinect gehen (die liefert eine Punktwolke mit Koordinaten in Metern), high-cost mit nem Laserscanner.

Hallo zusammen,

bezüglich der Sensordatenauswertung für Straßenqualität gibt es schon einige Arbeiten. Im Zusammenhang mit OSM eher weniger.
Wir hatten vor einiger Zeit auch mal Versuche mit einem Smartphone auf einem Fahrrad gemacht:
http://dl.acm.org/citation.cfm?id=2533828.2533839

Im Vorfeld haben wir erste Messungen mit einem Smartphone im Auto durchgeführt (bei Interesse gerne weiteres per PN).
Für eine grobe Klassifikation (smoothness tag) reicht es in der Regel aus. Der Vorteil der Smartphone Lösung ist, dass man keine Sensoren zusammenbasteln muss
und so Daten einfach crowdsourcen könnte (bzw. ist es dann auch für technisch weniger affine Mapper möglich Daten zu erheben).

Rauhigkeitsmessungen per Laser sind in dem Bereich jedoch durchaus üblich und je nach Sensorqualität und Rahmenbedingungen kann man damit sicher auch
gute oder sogar bessere Ergebnisse und kann dann bspw. auch Aussagen über den surface Tag treffen.

Vielleicht ist der Bewegungssensor in den Smartphone doch ein guter Ansatz zumindest bei so einer groben Einteilung wie bei smoothness. Habe mir gerade die Bilder, die ich in einem Park für Mapillary gemacht habe angeschaut und je schlechter der Untergrund desto unschärfer die Fotos. Man bräuchte aber eine Kalibrierung die jeder vor Ort mit seinem Rad durchführen könnte, damit die Unterschiede in Reifendimension und Druck ausgeglichen werden. Vielleicht eine Messstrecke über Kopfsteipflaster, guten und schlechten Asphalt.

Handy ist schlecht, weil:

  • die Halterung selbst wie verrückt wackeln kann. Auch nur ein wenig reicht, um aus einer Asphaltstrasse einen Schotterweg zu machen. Die Verwacklung kann auch mit der Zeit zunehmen, weshalb eine Kalibrierung nach Tagen odre Wochen hin wäre.
    In einer Handy-Rahmen-Tasche ist es das selbe. Da kann das Handy sogar noch hin und her rutschen, wenn Gelände gröber wird

  • das Handy das Wackeln des Fahrrads aufnimmt und nicht die Fahrbahn. Bei Fahrrädern mit Hinterradfederung wird zusätzlich bei langsamen Fahrten das Wackeln durch Treten mit aufgenommen und falsch intepretiert

  • das Wackeln des Lenkrads verfälscht zusätzlich - vor allem wenn man langsam fährt, bewegt man den Lenker ständig immer ein Stück hin und her

Die sinnvollste Stelle am Fahrrad ist immernoch die Federgabel. Das untere Teil natürlich, welches dem Boden folgt. Dort misst man nur die senkrechte Achse :slight_smile:

Im Auto ist das natürlich anders. Das ganze Auto wackelt “gleichmäßig”. Das Handy kann nicht wie am Lenker wackeln, da die Federund des Autos schon gut ausbügelt und mehr Masse dahinter steckt.

Wenn man eine app hat ähnlich mapilary und halt einstellt ob man mit dem auto oder Citybike oder mountainbike unterwegs ist kann man das ja filtern und bei auswertungen berücksichtigen.

Ich denke wenn die sache zu komplitziert wird wird es keiner machen.

Ich denke auch, dass es für eine Anwendung möglichst einfach sein muss.

Die Anmerkungen von AlphaRay kann ich nachvollziehen. Daran haben wir anfangs auch gedacht und dann einfach mal gemacht.

Wichtig ist, wie signifikant sich die Signale der einzelnen Oberflächen unterscheiden. Vieles kann man filtern.
Es kommt natürlich auf die Halterung an und auf die Hardware usw. . Die Frage ist hier aber eher, welches Ergebnis ist erstmal ausreichend.
Das Wackeln des Lenkers etc. kann man rausfiltern, so dass man die Beschleunigung orthogonal zum Boden als Richtwert nehmen kann
(s. das Paper, was ich beim letzten Post verlinkt habe).

Stimme ich zu. Ist aber eher unpraktikabel sein Smartphone dort zu befestigen.

Bei Fahrrädern mit Federung sind die Daten eher schlechter, da die Federung ja (gewollt)
die Unebenheiten ausgleicht (glättet). Beim Auto ist das übrigens auch so. Da kommt bspw. noch dazu, dass der Motor ein Rauschen verursacht
(abhängig von Drehzahl und Lage des Smartphones).

Da fängts ja schon an: Mindestanforderung wäre eine “feste” Halterung. Handy in der Tasche, mit Gummi irgendwo befestigt oder in einer Handytasche am Rahmen befestigt geht schon mal gar nicht, da hier das Handy zusätzlich gefedert wird.

Dann müsste man eine gemischte Teststrecke fahren und einfach mal die Beschleunigung auf allen Achsen parallel zu GPS mit sagen wir 2 - 10 Messwerten pro Sekunde aufzeichnen. Die Messung selbst müsste hunderte male pro Sekund erfolgen und dann schon geglättet bzw. gemittelt werden.
Ich habe das ganze schon hinter mir, da ich vor einigen Jahren mittels 3-achsen-Beschleuniger einen Schlafphasenwecker programmiert habe, der in die Matratze eingebaut wurde. Da hatte ich noch etwas mehr Zeit und Langeweile als heute :smiley:

Danach müsste man sich die Werte parallel zu Satbildern anschauen und versuchen den/die Unterschiede zwischen den Bodenbelägen festzustellen.

Das wäre nur die Vorarbeit bzw. Grobtest inwieweit man mit dem Handy die Bodenbeschaffenheit bestimmen kann.

Danach müsste man einen Lernmodus einbauen. D.h. User X fährt mit Handy Y mit Halterung Z durch die Gegend, wobei er bei “?” auf dem Display + akustische Meldung dann den Bodenbelag auswählt. Die App könne hier absteigend nach Wahrscheinlichkeit schon die Böden auflisten.
Nachdem er den gewählt hat, versucht die Software einen Min/Max Wert der Vibrationen zu ermitteln und lernt dadurch. Weicht der Belag länger als 1…3 Sekunden um xx Prozent ab, dann wird geschaut, ob der Belag bereits bekannt ist. Ansonsten wieder Fragezeichen anzeigen und User auswählen lassen. Bis dann die App alle Bodenbelänge gelernt hat.

Optimalste App dafür: OSM Tracker

Das ist für die ganzen Low-Cost-Sachen sowieso immer Der Richtige Weg™.

Hallo,

war in letzter Zeit etwas verhindert aber würde als Threadersteller nochmal die Idee mit dem Beschleunigungssensor aufgreifen und zusammenfassen. Mit den ganzen Ideen bin ich nun auch der Meinung dass das vernünftig funktionieren kann.

pro:

  • im Smartphone verbaut, keine externen Aufbauten notwendig, cost=0
  • Daten können während dem GPS-Loggen aufgenommen werden und sind daher automatisch georeferenziert
  • theoretisch auch auf Inline-Skates möglich, damit könnte man Zwischenstufen zwischen smoothness=good und smoothness=excellent bestimmen, falls es dafür einen tag gäbe

contra:

  • Kalibrierung nötig, je nach Montage
  • besser als smoothness=good kann man prinzipbedingt nicht messen, da Unebenheiten << Raddurchmesser nicht auffallen werden.
  • grobe Zustandsfehler (Schlaglöcher) werden nicht erfasst
  • Vergleichbarkeit zwischen Werten im Auto und auf dem Rad ist schwierig

den GPX-Track könnte man mit dem gemessenen Wert (z.B. 1s-RMS-Wert des Wechselanteils der Beschleunigung in die Richtung der Erdanziehungskraft) einfärben. Damit lässt sich dann später beim Nachbereiten besser einordnen wo die Strecken mit unterschiedlicher Beschaffenheit beginnen oder Enden.

Weitere Idee: Messung des Wechselanteils des Reifendrucks (am Rad). Es gibt ja fürs Auto Funk-Reifendrucksensoren. eventuell könnte man die modifizieren und die Messbandbreite auf ca. 100Hz erhöhen.
Vorteile: Federgabel stört nicht mehr, Smartphone kann am Lenker montiert sein
Nachteile: MTB-Profil bringt wohl geschwindigkeitsabhängige Störungen auf das Signal, niedriger Reifendruck senkt die obere Grenzfrequenz.

oder: externer Beschleunigungssensor mit Bluetooth-Schnittstelle für Rohdaten oder per Mikrocontroller bereits aufbereitete Daten, die ans Smartphone gesendet werden. Mechanisch kann das dann starr an der Gabel befestigt werden.

Stereometrie mit zwei Kameras klingt interessant, vor allem auch für Mapillary. Es müssen ja auch keine 25fps sein, ein Bild mit hoher Auflösung mit Berechnung alle 2s würde schon gut reichen. Reicht da echt schon ein Raspberry und 2x die Raspberry-Kamera?