TGViewer
dmgritsan - CTO & Co-founder with AI tools dmgritsan - CTO & Co-founder with AI tools @fullstackmanager · 304 subscribers
Post #86 517
Пришло время поговорить о том, как я обрабатывал данные с датчиков телефона. Не буду тянуть резину и скажу сразу — время круга мне посчитать не удалось. Но тем не менее, мне хочется немного углубиться в то, что именно я делал.

Первый способ которым не удалось посчитать время круга — это через восстановление траектории движения. Это не было для меня сюрпризом, так как с датчиков я получаю ускорение, а это вторая производная от перемещения в пространстве. Т.е. сначала нужно интегрированием восстановить скорость с накоплением ошибки, а потом, проинтегрировав скорость, восстановить координату. Никаких сюрпризов — получилась полная хрень.

Но был и второй способ, в который я верил сильно больше. Дело в том, что картинговая трасса в Пафосе не плоская, а значит на ней есть самая высокая и низкая точки. То есть чтобы узнать время круга достаточно найти время между прохождением через самые высокие или самые низкие точки. Да, это будет не точно то же самое время круга, которое мы получили бы, если бы мерили от стартовой линии, но достаточно неплохое приближение к нему. И свой прогресс по нему точно можно будет отслеживать.

Когда я понял этот хак, в список датчиков, логи с которых должно собирать приложение, я добавил датчик давления. Но, несмотря на то, что я подписался на получение давления каждую миллисекунду, в логе появилась только одна новая строчка:

Data Source: Pressure


То есть Андроид дал мне подписаться на показания, но самого датчика в телефоне не оказалось. Пришлось вернуться к интегрированию ускорений, но на этот раз мне достаточно было найти точки изменения знака у вертикальной скорости. То есть вместо двух интегрирований задача свелась к одному. Увы, это снова ни к чему не привело. На графики скоростей в течение заезда по разным осям можно посмотрять на прикрепленной картинке. И ни одна из скоростей не переходит через ноль с похожей на время круга периодичностью.

При дальнейшем анализе я понял свою главную ошибку. Я тупо брал данные акселерометра, а надо было сначала их сметчить с компасом и гироскопом, чтобы ускорение по оси Z было действительно вертикальным ускорением, а не ускорением вдоль вертикальной оси телефона. Но быстрых ответов, какие взять библиотеки, чтобы сделать этот sensor fusion в пару вызовов функций, ChatGPT мне не подсказал. Стало понятно, что обработка данных с датчиков телефона — это само по себе интересный проект на месяц.

Буду ли я брать такой проект на следующий месяц? Точно нет. После постов про этот проект ко мне в личку пришли друзья и накидали гоночных приложений, которые решают эту задачу с помощью GPS. И только в этот момент я вспомнил, то, о чем писал в прошлом посте. В Москве я катался в крытом картинге и ни на какой GPS рассчитывать не мог, а значит и те приложения для меня не работали. Сейчас же они отлично отвечают на вопрос — какое у меня время круга. А значит решение, которое я смогу найти, никакой дополнительно ценности не принесёт. Так что мы с ChatGPT пока пойдём порешаем другие задачи!
  • 💔 5
  • 👏 4
  • ❤ 3
More from @fullstackmanager
  1. Sep 24, 2026Надоело после того, как Codex что-то доработал, идти в Claude и спрашивать — "Ну, как тебе…
  2. Aug 28, 2026Столкнулся с неожиданным для себя примером того, как многое зависит от контекста, в которо…
  3. Aug 14, 2026Ловите немного пятничной мудрости. Хотите побыть в моменте — начните изучать новый язык. И…
  4. Aug 10, 2026Клод-коду тоже иногда нужно проветриться
  5. Jul 22, 2026Довольно продолжительное время, лет 6–7, я всё делал на AWS. Там есть сервисы на все случа…
  6. Jul 20, 2026Всем привет, я Дима, и я ИИголик. Это осознание пришло ко мне сегодня в районе 4 утра. Да,…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →