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