Всем привет.

На днях занялся написанием простенькой программы для отслеживания ям на дорогах, которая использует встроенный в смартфон акселерометр (датчик ускорений в пространстве, если кто не знает).

В результате получилось следущее:
Приложение под андроид собирает данные о положении на планете земля, время и показания акселерометра. Всё это пишется во внутреннее хранилище и потом может быть отправлено по сети.

Сервер на NodeJS принимает данные, конвертирует их в удобный json и затем отдаёт любому желающему (да да, безопасностью тут и не пахнет)

Страничка, которую нам любезно предоставляет сервак, отображает всё полученное на гуглокартах.

Итак, отдал телефончик в добрые руки, подождал с часик и получил следущее:
Машина + Смартфон с акселерометром + ямы
Немного приближаемся, и вот мы уже можем рассмотреть концентрацию ям на дорогах своего города.
Машина + Смартфон с акселерометром + ямы
Как известно, акселерометр измеряет по трём осям: X,Y,Z. Сответветсвенно, на карте тоже 3 типа кружочков, радиус которых зависит от ускорения в момент времени.
Машина + Смартфон с акселерометром + ямы
Смартфон лежал горизонтально, носом по курсу движения (если можно так сказать). Так что жёлтые круги отвечают за движение вверх-вниз, красные - вперёд, назад, зелёные - влево, вправо.

Вот, к примеру, участок ужасной загородной дороги:
Машина + Смартфон с акселерометром + ямы
Машина + Смартфон с акселерометром + ямы
Машина + Смартфон с акселерометром + ямы
Из всего этого видно, что данная невероятная технология довольво чётко работает. (добавить бы пару фильтров, и было бы вообще прекрасно)

Вот очень контрастный пример того, как выглядит неотремонтированная дорога:
Машина + Смартфон с акселерометром + ямы
В будущем надеюсь сделать глобальную карту, более точные алгоритмы распознавания ям, публикацию в Google Play и всё такое прочее.

Кажется, что это может быть полезно миру, до скорого :)