IDEA! Smoothness collector application on smartphones

Hi, i got an idea that could greatly increase amount of information about roads surface smoothness in OSM database. IMO this tag is more important than surface, because it simply describes the quality of a road, so it’s very useful for routing. Getting this kind of information by surveying, taking photos, notes etc. is a hard way, but here’s my idea;) Why don’t use nowadays common cellphones with accelerometers? All we need is quite simple application which would make a log files from a sensor data and gps trace simultaneously and then combine them into one useful gpx or osm file with proper tags. But after several considerations and test I discovered some problems to solve. So, to make a correct measurement we need: a phone mount for more accurate result (it should stay in one position during survey); calibration process for every vehicle you want to use; average the signal from at least two axis (maybe one would do the job?); interchangeable procedure for comparable results; a lot of time for testing;)
A calibration procedures example:
Find a road with new asphalt surface (http://wiki.openstreetmap.org/wiki/File:Highway_secondary-photo.jpg) which have to be straight, no turns allowed;). Turn on tracking and drive at least 150m (maybe more, needs testing). Then find a road with a cobblestone surface (these would be great http://wiki.openstreetmap.org/wiki/File:ItalianStones.jpg)) and again turn on tracking and drive 150m. Save data and let the calibration module work this out. In this case we have measurement for smoothness=excellent, which could be relative zero (all signals below are filtered out) and data for smoothness =bad. Right now there are 8 grades for smoothness tag, but not all of them are possible to measure without specialized vehicle, so it wouldn’t be a sin to narrow our interests to 5 best of them:) But it could be still possible to track them, but for application it might be too difficult to recognize them, because of a lot of twist and turns on the road, but I might be terrible wrong;)
I know that there’s a lot of great programmers here and I hope someone will answer :slight_smile: On polish part of forum is a lack of interest, so maybe here i’m gonna find an enthusiast of this idea.
Greetings, and sorry for my english.

Links:
http://wiki.openstreetmap.org/wiki/Key:smoothness
http://taginfo.openstreetmap.org/keys/smoothness#values
http://roads.osm4people.org/ (turn on “Roads with smoothness=”)
https://play.google.com/store/apps/details?id=pearson.accelerometer_toy (android app)

Measuring something resembling smoothness is certainly doable (I’ve done something similar in reverse, making sure that commercial software that uses a phone accelerometer doesn’t get triggered by an uneven road).

There are issues with the smoothness tag itself, in that it’s a very subjective set of values. Actually saying “XYZ application registers below 123 for smoothness=excellent” might actually go some way to make it less subjective. However, there are still going to be a number of problems that you’d need to solve:

o If you’re using a device with just an accelerometer and no magnetometer, you’ll need to keep the phone fixed relative to the direction of travel. If you are using a magnetometer then the maths gets a bit more tricky.

o You’d probably want to have the phone attached to a part of the vehicle that’s not above vehicle suspension or damping. An old-school bicycle is probably a good start - certainly in a bus you’ll get very different “smoothness” values depending on where you’re sitting.

o I’m guessing a bit about the rate at which you’d need to sample the accelerometer to detect “smoothness”, but I suspect that it’s not so high as to flatten the battery after a couple of hours, athough it will affect battery life.

o There are going to be differences between different phones, different OSes and different roads, so getting comparable data from different people in different parts of the country would be tricky. Also, of course, if you cycle through potholes or cycle to avoid them you’ll get very different results!

Why not have a go yourself? You mention Android software, so I’m guessing that you’ve got an Android phone. The Phonegap framework does claim to support accelerometer data:
http://docs.phonegap.com/en/2.1.0/cordova_accelerometer_accelerometer.md.html#Accelerometer

Creating a basic mobile application using something like Phonegap is a little bit more complicated than creating a website, but not much.