Comments 63
1. Поскольку проект по фану, то главным интересом для меня здесь была железка, без ее существования заниматься всеми остальными 80% было бы не интересно. Можно считать, что она сюда насильно прикручена.
2. Изначально, для оправдания использования отдельного акселерометра, было задумано собирать еще и скорость с колеса (которая была собрана, но проигнорирована на этапе определения качества). Поэтому раз железка уже нужна, то и акселерометр туда же можно было добавить, для возможности например пользоваться смартфоном во время трекинга, без жесткой его фиксации.




Насчет кофе-теста — если стакан достаточно тяжел, можно не расплескать кофе и на плохой дороге, за счет инерции самого стакана колебания кофе будут слабее.
Тест прекрасен, хочется иногда предложить его некоторым водителям автобуса, а иногда и метро. Как раз в метро очень хотелось наличия подобного приложения у большинства пассажиров, чтобы все косяки линии и наплевательское отношение водителя поступали сразу в диспетчерскую метро.
Я, как тоже катальщик на велосипеде, скажу, что большее раздражение вызывает не тряска, а необходимость прикладывать усилия, например езда по песку. Как такое измерить, даже не знаю, на ум приходит сопоставление пульса и скорости движения.
В городской черте песок именно на дорогах бывает обычно только после ремонта, например, канализации до укладки нового асфальта. А вот щебёнкой могут засыпать, а заасфальтировать через полгодика.
С другой стороны, применение приложения можно и расширить — не только город, а и везде, где катаются велосипедисты.
Был случай, катался за городом и уже возвращался, можно было ехать по трассе, но по карте посмотрел и получалось, что срезать через лес было бы выгоднее. А через лес дорога была с песком, причем проходимость снижалась по нарастающей. Возвращаться тоже уже был не вариант — далеко и опять по песку. Вот для таких случаев приложение было бы идеальным помощником.








Вопрос с картой качества дорог в её назначении — прокладка маршрута — понятно. Ремонт дорог — под вопросом, здесь нужны инициативная группа и выход на городские службы. А там бюджет, внесение в планы работ на предстоящий период, собственно ремонт, повторный контроль и т.д. Иногда складывается впечатление, что при наличии у служб актуальной информации об участках дороги, действительно нуждающихся в ремонте, асфальт перестанут закапывать из года в год на одних и тех же местах.


вот пример. важно это им всё отправлять, так как они не физически не могут видеть все проблемы города
Просто отсутствуют как класс отработанная технология и контроль, конкретные технические решения принимает на месте либо прораб, у которого в лучшем случае есть некоторый опыт и смекалка, в худшем — непосредственно Джумшут. В результате гнут бетонные бордюры, делают специальные уклоны на краю тротуара для удобного скольжения по льду под машину и другие дикости, и это никто не контролирует, а подрядчики ни за что не отвечают, переделывают за другие деньги другие джумшуты.
Нет системы. Нужно при приёмке заставлять прораба по готовому пандусу провезти на тачке пять мешков цемента. Если не помогло — подниматься по иерархии — повторить с руководителями подрядчика, контролирующего органа… И всё нормализуется.
А так да, отдельные обращения удовлетворяются.
Но если
1. Лисапедист — не трамвай, он старается объезжать препятствия на дороге. То есть если дорога в целом убита вусмерть, но есть маленькая колея с приличным покрытием — мало кто «ради чистоты собираемых данных» будет систематически ездить по ямам (а ткнуть в условной программе на телефоне кнопку «дорога — хлам» — легко мог бы).
2. Возможна и обратная ситуация, когда дорога вполне себе норм, но локальные обстоятельства вынуждают велосипедиста выбирать «буераки» (например, при объезде группы пешеходов)
3. Само по себе понятие качества тротуаров — весьма относительно. Например, для лясика плитка — вполне себе годное покрытие, но для роллера (который по простоте душевной решит воспользоваться данной картой) — это верная смерть. Для «горника» или фэт-байка мелкие ямки тоже не проблема, но для шоссера — печаль грустная. Кстати, грунтовки тоже могут быть очень разными, но данный девайс в принципе никак не поможет оценить их качество.
4. У всех, конечно, разные навыки и стили катания, и это стоило бы учитывать. То есть карта для девчачьих покатушек «на расслабоне» и нормальной «вкатки» — это очень разные карты.
З.Ы. Когда я жил в Минске, я в среднем вкатывал по 50-70 км в день (пара-тройка часов быстрой езды). Хотя по правде, качество дорог — это последнее, о чём я думал (ибо на лясике все дороги проходимы). Искатаны были все дороги (и лесные тропинки) Цнянки/Зелёного Луга/Уручья, половина парков города, все проспекты, велодорожки и много «просто улиц». Я не про-райдер, но катаю быстро, могу кое-где «перепрыгнуть» препятствие, все типы покрытия (включая снег и гололёд) для меня были норм. Впрочем, чаще всего я принципиально нарушал действующее ПДД, катаясь по дорогам. Однажды даже был привлечён за это к ответственности, с присущей белорусским силовикам неадекватностью (ехал часа в два ночи по пустой освещённой дороге домой (по две широченных полосы в каждую сторону), и навстречу гайцы… Маякнули мне сигнализацией, дескать, вали на тротуар, паря. Но конкретно в тот момент между мной и тротуаром была зелёная зона, а я не люблю без надобности «давить» траву; решил доехать до съезда во двор и там уже (разумеется, временно) съехать на тротуар. ДПСники, видимо, посчитали это личным оскорблением (отказ от мгновенного и бесприкословного подчинения их намёкам), развернулись (через две сплошные и без включения спецсигналов) и, обогнав меня, остановились. И вместо того, чтобы спокойно запрыгнуть на тротуар и «умчать вдаль», я решил всё же пообщаться, объяснив свою позицию. В итоге, второй гаишник гулял вокруг нас где-то с полчаса, а достучаться до человека за ширмой винтика в системе мне так и не удалось (хотя порой казалось, что лёд почти сломлен). С тех пор законные требования гайцов остановиться не замечаю. Для тех водителей, кто
з.з.з.ы ещё раз респект за проект! уверен, получили много удовольствия и знаний при разработке. Если (когда) вернусь в Минск, с удовольствием бы познакомился/покатался бы вместе. Удач! ;)
1. Лисапедист — не трамвай, он старается объезжать препятствия на дороге. То есть если дорога в целом убита вусмерть, но есть маленькая колея с приличным покрытием — мало кто «ради чистоты собираемых данных» будет систематически ездить по ямамА если дорога исполосована траншеями поперёк? Или бордюрами, как в данном случае? В ПДД внести правку, конечно проще и существенно дешевле, чем обустроить велоинфраструктуру, но вариант хоть и оригинальный, но явно не оптимальный.
ткнуть в условной программе на телефоне кнопку «дорога — хлам» — легко мог быОдно дело ткнуть во всю дорогу, на ремонт которой целиком деньги выделят никогда. Совсем другое попытаться создать техническую основу для сбора координат конкретных провалов. Скажем, на ЖД есть специальные вагоны-лаборатории, которые периодически цепляют к составам и логируют состояние перегонов с целью дать конкретные указания путейщикам для замены конкретных шпал или отсыпки щебня. Теоретически такую лабу можно представить для автодороги. А на тротуарах Вы хоть раз видели лабораторию, официальную? То-то же.
2. Возможна и обратная ситуация, когда дорога вполне себе норм, но локальные обстоятельства вынуждают велосипедиста выбирать «буераки» (например, при объезде группы пешеходов)Снова ключевое слово — «инфраструктура», которая теоретически должна подразумевать замкнутую систему велодорожек. Если на велодорожке пешеход — вопрос уже к нему в соответствии с ПДД.
3. Само по себе понятие качества тротуаров — весьма относительно. Например, для лясика плитка — вполне себе годное покрытие, но для роллера (который по простоте душевной решит воспользоваться данной картой) — это верная смерть. Для «горника» или фэт-байка мелкие ямки тоже не проблема, но для шоссера — печаль грустная. Кстати, грунтовки тоже могут быть очень разными, но данный девайс в принципе никак не поможет оценить их качество.Слова не мальчика, но мужа. Автор статьи представил своё средство передвижения и техническое решение под него. Да, жёсткая прицепная тележка на двух небольших колёсах в этом смысле будет универсальнее. Критикуя — предлагайте.
Тут первоначально неверное решение запретить движение по дорогам в случае наличия тротуаров заложило хороший фундамент для последующих проблем, в т.ч. с легализацией моноколёс и прочих самокатов. Теоретически это может повлечь положительные изменения в сквозной проходимости тротуатов — по ним ведь и коляски с детьми возят, и тележки-чемоданы. Но практически такой вариант развития что-то сомнителен — больно дорого переделать все тротуары.
4. На вкус и цвет, конечно, но некоторые не гоняют, а передвигаются из пункта А в пункт Б, и тут чем меньше сюрпризов, тем лучше. Ведь удивительно было бы видеть, скажем, бордюры поперёк шоссе. А главное, есть же опыт стран с развитой велоинфраструктурой и оживлённым велотрафиком.
А если дорога исполосована траншеями поперёк? Или бордюрами, как в данном случае? В ПДД внести правку, конечно проще и существенно дешевле, чем обустроить велоинфраструктуру, но вариант хоть и оригинальный, но явно не оптимальный.
Я не очень понял, как это соотносится с моим комментарием… ))
С велодорожками существенная проблема не только в том, что их надо сделать (и это стоит денег), но и в том, что нужна культура велодвижения, а её в Беларуси (и других постсоветских странах, насколько я могу судить) пока нет. То есть катаясь по велодорожке, вы на ней встретите и роллеров, и мамочек с колясками, и детские лясики и собак и просто пешеходов… И всех этих людей (и животных), конечно, легко понять — дорожка-то удобная, не только ж для
Касательно ремонтов… Эээ… С чего бы нормальную дорогу ремонтировать? Но имхо, тут (в топике) речь немного не о том была (потому что для ремонта дорог уже есть шикарный проект, но только для России пока). Вот вам, кстати, и встречное предложение (запилить подобный проект/сайт для других стран)… Но критики моей как таковой нет, потому что какая может быть критика DIY? Человек реально нормально заморочился, довольно глубоко погрузился в тему. Не думаю, что он всерьёз думает «взлететь» на этом проекте, скорее всё «по фану» делалось… Собственно:
Главным техническим интересом, позволившим ухватиться за эту идею, стала возможность наконец-то сделать какую-нибудь железкуКак я это понял, идея была в том, чтобы (после составления внесения данных в автоматическом режиме) открыл карту и увидел, где лучше проехать. Но в такой реализации это очень недостоверно будет.
Касательно автоматического распознавания качества дорог. ИМХО, тут только системы CV помогут. Ну либо какие-нибудь хитрые эхолоты/лазеры… Ну или городить что-то малоадекватное (для XXI века) типа тележки со множеством колёс в ряд и датчиком на каждом…
Конкретно в Минске в основном тротуары широкие (наследие советских архитекторов, спасибо им за это). И страндартная практика «дорожников» — это просто нарисовать полосы для велосипедистов. Но это не решает проблему, а усугубляет её. На хорошей ровной дороге я вкатываю в среднем 30км/ч. Массы во мне 85 кг. Коэффициенты сцепления и площадь пятна контакта не знаю, но метров 5-8 мне надо точно, чтобы остановиться (и это на сухом асфальте)… Но пешеход, идущий «по ту сторону линии», меня не слышит и не видит, физически ему зайти на велодорожку ничего не мешает, результат бывает предсказуемо печален для всех… Ровно по этой причине я и езжу по проезжей части, там ко «встрече» со мной участники ДД более готовы…
если дорога в целом убита вусмерть, но есть маленькая колея с приличным покрытиемПросто на некоторых дорогах нет даже узкой колеи — например, старая поперечная траншея под трубу/кабель, когда-то заасфальтированная, но провалившаяся, или выскокие бордюры/бетонные блоки/металлические заграждения поперёк дороги.
2. Все так, поэтому краудсорсинг решил бы проблему, механизм мержинга данных разных профилей/пользователей есть
3. Да, поэтому была идея получить некую унверсальную оценку качества. А каждое траспортное средство или наездник уже может выбрать дороги соответственно своим лимитам (весенний шоссер — q = 8-10, летний горожанин — q = 5-10, осенний мтбшник — q = 2-10) Получить такую оценку не так и просто, но идея такая была.
4. Та же идея, что и в 3м пункте
По поводу неадекватности наказания — привлекался не раз, но в этом плане минские по моим впечатлением намного адекватнее местечковых ГАИ (что кстати подтверждает ваш факт про просьбу съехать на тротуар, у меня тоже так было). Меня штрафовали за езду по дороге, но каждый раз в районных цетрах, когда я был навьючен велобаулом на пару дней путешествия и преодолевать бордюры никак не мог был. Один раз даже оштрафовали за выездом из мелкого города, потому что оказалось, что с другой стороны дороги (за встречкой) в низине есть тротуар загородный, который 20 метров, а мне после этого по дороге все равно ехать с автомобилями десятки километров. (обозначен был разноцветно и заметно) Что самое забавное — штрафовал меня начальник ГАИ лично этого города. После этого мои представления о справедливости немного пошатнулись :D
4. У меня именно на веле не очень большой опыт по Беларуси, может, пару тысяч всего… Но как-то с райцентральными гайцами не сталкивался (один раз хотели было привлечь за «без фликера» (стопил куда-то ночью), но были корректно посланы). Впрочем, я давно не был в родных краях, вполне допускаю, что сейчас «местячковые» стали злее… Ну и да, те столичные не просили меня съезать на тротуар, это я так расценил их сигнализацию (они не сразу ко мне кинулись, а сначала коротко маякнули; а потом (вероятно посчитав, что я их проигнорировал), через пару секунд, поехали за мной)…
Но да, в целом в той системе ничтожно мало адекватных людей. Система дрессировала их не предупреждать нарушения, а карать (причём невсегда даже за что-то, просто по факту нашего существования)…
Ну и в том решении, про котрое мы думали и GPS был на плате, подключать к телефону или компу нужно было бы только уже дома.
Но мы только думали, а тут и сделали и проехали весь город.
Думал, что было бы круто, чтобы шеринговые электросамокаты собирали эти данные, такой объем данных нескончаемый был бы. Тем более у них все есть уже нужное на борту, кроме разве что акселерометра, хотя и он возможно в наличии
Но увы, столько работы проделано и всё бестолку.
Самое главное требование к установке — он должен крепиться жестко к раме, чтобы фиксировать все воздействия без амортизации.
Можно поинтересоваться, исследовали ли вы этот вопрос подробнее?
Может проводили тесты с креплением на каретку/вилку/вынос и другие места?
Подробные тесты не проводил, больше на основе предположений о физике этого явления. Первая установка у меня была на багажник, но, из-за вибраций в соединениях, кронштейн оторвал кусок багажника. Кроме того акселерометр ловил много шума во всех плоскостях, хотя должен был преимущественно по вертикали. Думаю, что проще всего действительно провести тест с синей изолентой и смартфоном)
акселерометр ловил много шума во всех плоскостях, хотя должен был преимущественно по вертикали
Неужели при закреплении на дропаутах у вас нет горизонтальных шумов?
Тут наверное стоит уточнить материал рамы — судя по фото, у вас это аллюминий.
Сталь, титан и карбон любят по разному изгибаться, хотя на дропаутах этот эффект наверняка будет малозаметен.
P.S. извиняюсь, промахнулся веткой.
на дропауте они есть, но на багажнике они были одного порядка с данными. Но здесь не очень релевантный пример, думаю основная проблема была в конструкции кронштейна и креплении багажника. Получалось так, что сам багажник вибрирует, вибрирует его часть, к которой крепился кронштейн, вибрирует кронштейн, а уже на нем акселерометр. Все это входит в резонанс и потом получилось как на фотке выше)
Во-первых, bluetooth не очень хороший протокол для сбора реал-тайм даты из-за недетерменированных задержек передачи. Для этой цели я бы рекомендовал радиопередачу, скажем, через LoRa. Как вариант: передача через bluetooth, но синхронизация через LoRa, которая будет передавать отсчеты времени от мастер-устройства через равные промежутки времени, а сенсор добавляет эти синхронизирующие отсчеты в фрейм даты.
Во-вторых, использовать GPS для позиционирования мало — вы могли бы прикрутить фильтр Калмана и интегрировать информацию из трех источников (GPS, скорость, акселерометр).
В-третьих, меня смущает странная обработка сигнала — передача пиков. Теорема Котельникова при правильной настройке акселерометра (частота дискретизации + сглаживающий фильтр) гарантирует, что сохраненный в отсчетах сигнал будет соответствовать измеренному. Ну хорошо, вы хотите сжать сигнал — для этого можно зафитить сигнал на кубический сплайн (= применить аналитическую формулу в замкнутой форме) и сохранять только коэффициенты сплайна, а заодно зафиксировать ошибку сжатия. Насколько же ваш переданный «в пиках» сигнал соответствует измеренному — это большой вопрос, надо подумать на досуге.
Конечно же проект никоим образом не претендует на пример идеальной реализации, каждая из его частей может быть существенно усовершенственна
Да, проблемы с этим, определенно, были, из-за чего был имплементирован алгоритм Кристиана, который предполагает разное время задержек и кое-как справляется с этим. Что касается LoRa, никогда не слышал (да, я тот еще эксперт в электронике). В качестве мастер-устройства для синка времени может в данном случае выступить дефолтное андроид устройство с базовым набором периферии?
Не совсем понял про недостаточность GPS для позиционирования и как связан акселерометр с этим, можно поподробнее?
Пиками я обошелся по двум причинам — одна из которых то, что упрощенный донельзя алгоритм определения качества сегмента использует только экстремумы, без учета формы сигнала. Про проблему пиков не уверен, что вы меня правильно поняли. Основной вопрос был в том, что если передавать все значения измерянные вподряд, то на передачу уходит значительное время, во время которого нет возможности продолжать измерения ускорения из-за синхронной отправки данных. Поэтому высока вероятность упустить важные данные, передавая все вподряд.
Далее, по поводу GPS. У вас есть три источника определения местоположения: GPS (абсолютное позиционирование, но очень неточно), скорость (через интегрирование) и акселерометр (через двойное интегрирование). Эти три источника показаний можно объединить через фильтр Калмана, который при грамотной настройке даст точность местоположения выше, чем каждый из источников, взятых по-отдельности.
По поводу передачи пиков — вы передаете не измеренный сигнал, а искаженный, причем нетрадиционным образом. В связи с этой «нетрадиционностью» я пока не понимаю, какую теорию можно было бы подогнать, чтобы понять, насколько переданный сигнал искажен. Если бы вы подгоняли под ваш сигнал кубический сплайн, то вы бы тоже передавали искаженный сигнал, но в этом случае на вашей стороне было бы понимание насколько этот сигнал искажен.
Тут сознательно остановился на решении с мобильным устройством, этом мне показалось интереснее в данном случае. Поэтому, синхронизация через BT вроде ок решение в моем случае
А, имеется ввиду про ускорение по горизонтали?
Хм, не чувствую уверенности в этой области, но проясните, если можно. Начнем с того, что я не передаю сигнал и не хочу его передавать, так как его форма никак не использутеся, а только максимальные значения. Вот на простом примере для меня чтобы было понятно:
В первоначальной имплементации я каждые 2ms читаю значения ускорения и передаю их по БТ, после чего в данных для оценки качества у меня последовательность некая значений моментальных:
1,7,11,5,-2,-8,-4,0,3 => max = 11, min = -8
Чтобы отправлять меньше данных (принимая во внимание факт, что для алгоритма будут использованы только максимальные значения) мы читаем момнтальные значения быстрее, но отправляем только экстремумы
Для предыдущего примера это будет выглядеть как
11,-8 => max = 11, min = -8
В итоге алгоритм упрощенный даст те же оценки качества, но количество данных намного меньше. Где в моем рассуждении фейл?
Небольшой оффтоп: для чтения потока данных лучше использовать соответствующий режим ADXL 345 непрерывного чтения, там же надо выставить сглаживающий фильтр, соответствующий скорости чтения, чтобы не столкнуться с проблемой альясинга. Например, если на входе будет идти быстрая синусоида, а у вас не стоит входной сглаживающий фильтр, то вы можете принять быструю синусоиду за более медленную синусоиду, как на этой картинке:

В общем да, только отправляю данные и очищаю когда график начинает двигаться в противоположную сторону (место перегиба).
Хм, интересно, не в курсе про разные режимы (точнее знаю про много настроек, но пользовался только частотой и точностью). Да, судя по тому, что я прочитал — проблема альясинга вполне возможна в моем случае. Но в моем случае это не изменит значение качества дороги, так как форма не используется в алгоритме. А непрерывное чтение как происходит, какие механизмы отличные от моего варианта?
Касательно того, что вы используете для оценки тряски минимум и максимум — звучит как-то не очень надежно. У акселерометров даже в покое существует высокочастотный шум. Вы считываете значения каждые 2 мс — но это только один из режимов, взятый произвольно. Значения можно считывать и чаще, и реже, причем если чаще, то минимумы и максимумы просто потонут в возникающем шуме самого датчика. Я допускаю, что эмпирически можно подобрать режим (например, те же каждые 2 мс, но считываемые потоком), в котором максимумы и минимумы позволят оценить тряску, но я бы лучше взял за меру тряски что-то более надежное, например — энергию сигнала. Уверен, что разница между хорошим асфальтом и плохим будет заметная, но вы при этом находитесь в области изученной прикладной инженерии.
Вполне возможно, толком сигнал я не исследовал, хотя изначально предполагал. Объем всего остального функционала меня поглотил, как итог получилось всего по чуть-чуть и ничего доверенного до идеала :) видел много работ, связанных именно с методами определения качества по показаниям акселерометра, но оно так и осталось в мыслях :/
Про 2ms написал условно, я там менял настройки акселерометра, отвечающие за рейт этот, по дефолту было много больше.
А всё-таки про поточное чтение — механизм тот же взаимодействия акселерометром, только устанавливается настройка при ините?
Что касается поточного режима. Микросхемы при включении питания находятся в ждущем режиме, функциональная их часть не получает питания. Когда вы задаете им различные режимы и считываете разовые показания, то функциональная часть микросхемы включается — физически получает питание, затем микросхема ждет, пока устаканятся переходные процессы, и только потом начинает считывать показания. Но это только один (возможный) аспект преимущества поточного режима.
Второй заключается в том, что сэмплы данных в большинстве случаев желательно считывать через равные промежутки времени. Если промежутки времени не равны, то данные искажаются («дрожание времени считывания» или Jitter). Если у микросхемы есть поточный режим, то он и гарантирует равные промежутки времени. А на контроллере для равных промежутков времени считывания еще нужно заморочиться, и то — может неожиданно прилететь другое прерывание, которое внесет задержку.
Третий аспект — поточный режим обычно включает в себя сглаживающий фильтр, который устранит проблемы альясинга.
445 велокилометров по городу. Строим карту качества тротуаров Минска