X Спасибо, Ваш голос за продвижение этого комента
в самостоятельный пост в блогах принят.
Модераторы рассмотрят вашу заявку.

Перейти к содержимому


Фотография

Аналог Carv2

Carv2 OpenCarv

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 34

#1 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 18 May 2026 - 12:50

*
Популярное сообщение!

Заинтересовался девайсом Carv2, но цена кусается — $249 + подписка. Появилась идея сделать open-source аналог с нуля.

Что уже есть:

Железо собрано, себестоимость ~2500₽:

  • Seeed XIAO nRF52840 Sense Plus (IMU + BLE встроены)
  • LiPo аккумулятор 402030, 200мАч
  • Пластиковый корпус + тактическая клипса на манжету ботинка

Где купить:

  1. Корпус
  2. Клипса на манжету
  3. Аккумулятор
  4. Датчик

Прошивка написана на Arduino, передаёт по BLE угол закантовки (roll) и наклон вперёд/назад (pitch). Написано базовое Android приложение которое эти углы принимает и отображает.

Что планируется:

Полноценное Android приложение с метриками:

  • Угол закантовки и симметрия лево/право
  • Форма поворота (S vs Z)
  • Стойка — загрузка носка/пятки
  • Длительность транзита
  • Радиус поворота через физику карвинга
  • Ski:IQ — прозрачная оценка на основе физики поворота, не магический алгоритм
  • Тепловая карта спуска по GPS

Репозиторий: https://gitverse.ru/vtsukanov/OpenCarv

  1. README — описание проекта
  2. Прошивка
  3. Прототип UI
  4. Прототип приложения

К сообщению приложил фото датчика + видео работы датчика и приложения. Видео не сомг залить, можно посмотреть здесь https://gitverse.ru/...21135_small.mp4

Прошу покритиковать идею и техническое описание из README. Буду рад советам от тех кто катается и понимает в технике.

Прикрепленные изображения

  • IMG_20260518_121521.jpg
  • IMG_20260518_121546.jpg
  • IMG_20260518_121551.jpg

Сообщение отредактировал P. Richard: 18 May 2026 - 15:35

  • 6

#2 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 18 May 2026 - 16:08

Чешутся руки периодически в похожих местах. Такой пересчет, видимо, только отправная точка в длинном пути. Я б плясал от практики: записанный массив данных + видео проезда, хотя бы пару поворотов... Есть такое?

Думаю в Carv2 нечто подобное, ну может чуть точнее (просится быстрая герц 50-100 GPSка в добавок одна на 2 сапога, есть ли такая?). 

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

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


  • 0

#3 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 18 May 2026 - 16:44

Хорошая идея с видео + данные — именно так и планирую проверять алгоритмы на первом выезде.

По GPS — гражданская точность 3-5 метров делает его бесполезным для анализа отдельных поворотов независимо от частоты обновления. Использую GPS телефона только для макро-данных — скорость, перепад высот, карта спуска.

По датчику смартфона — идея интересная, но телефон в кармане куртки будет болтаться и данные будут шумными. Для надёжных данных о верхней части тела нужна жёсткая фиксация — что-то типа нагрудного крепежа как у пульсометра. Усложняет проект, оставлю на будущее.


  • 0

#4 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 18 May 2026 - 19:14

 

 

По GPS — гражданская точность 3-5 метров делает его бесполезным для анализа отдельных поворотов независимо от частоты обновления. Использую GPS телефона только для макро-данных — скорость, перепад высот, карта спуска.

 

 

Подозреваю, что разных типов "точностей" там много. По факту - телефон в руках на месте дает координаты без дрожания и вполне видит перемещение на шаг. Может реальные координаты и лежат в круге 6 метров, но дельта отслеживается.

Те смартфоны, что у меня были отдают координаты не чаще раза в секунду. GoPro -10 раз. В итоге трек записанный телефоном - ломаная кривая с пропусками поворотов, гопро - отчетливый трек. Не стоит так радикально отказываться.

Вижу, что гироскоп уже показал чудеса. Ожидаемо. Впереди, вангую, много интересного. По моему мнению,  Carv2  - это в первую очередь алгоритмы  выдирания нужных данных из получаемых, железо вторично. В отличии от стелек, но и там, вероятно не все шоколадно.

На лыже может играть как крепление коробочки, так и крепление платы в коробочке.

Если интегрируя угол по данным гироскопа получаем прямо угол закантовки (думаю "самый главный интерес" и уже только его достаточно чтобы заинтересовать многих), то только с акселерометра достать угол будет, возможно, не самой простой задачей. Возможно некое совместное использование данных обоих каналов даст много лучший результат. Нужны реальные данные с устройства полученные на склоне. Летом сойдет и от роликов, но это не точно))

Из кресла видится - по акселерометру определяем момент перекантовки и далее, до следующей перекантовки угол закантовки вычисляем по гироскопу. Чем не вариант.


  • 0

#5 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 19 May 2026 - 09:14

Согласен, был слишком категоричен насчёт GPS. Вы правы — абсолютная точность и точность отслеживания дельты это разные вещи, и 10 Гц GoPro даёт вполне читаемый трек.

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

По GPS — согласно Wikipedia типичная точность 6-8 метров, но дельта между точками отслеживается лучше. Современные смартфоны используют GPS+ГЛОНАСС+Galileo одновременно что улучшает картину. 10 Гц будет достаточно чтобы видеть форму поворотов на треке, пусть и без абсолютной точности координат.

По жёсткости крепления — хорошее замечание, люфт коробочки на манжете и платы внутри коробочки будут давать шум. Надо продумать фиксацию.

Реальные данные со склона — главный приоритет. Чуть позже я планирую на катке попробовать, на коньках проще давить на мысок и пятку чем на роликах


  • 0

#6 бигимотский

бигимотский
  • Лыжебордеры
  • 158 сообщений
  • Город:г Краснодар, Краснодарский край

Отправлено 19 May 2026 - 09:50

Молодец!!! Сообщай как идут дела!!!


  • 0

#7 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 19 May 2026 - 10:26

 

Комплементарный фильтр (акселерометр + гироскоп) уже реализован в прошивке

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

Из ускорений можно, наверно разное остальное достать, но не угол закантовки в повороте.


  • 0

#8 ~MAK

~MAK
  • Лыжебордеры
  • 1451 сообщений

Отправлено 19 May 2026 - 11:03

Гироскоп ведь даст угол закантовки относительно горизонта? Без угла склона в этой точке это бесполезное значение по-моему.


  • 0

#9 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 19 May 2026 - 12:20

Гироскоп ведь даст угол закантовки относительно горизонта? Без угла склона в этой точке это бесполезное значение по-моему.

Это взрослый гироскоп такое даст, он бы и угол склона тоже показал бы, и не только. 

Гироскопы в микросхемах измеряют только скорость поворота, все остальное делает программа.


  • 0

#10 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 20 May 2026 - 10:44

в последней версии прошивки https://gitverse.ru/...r/SkiSensor.ino угол сейчас считается 

  1. Гироскоп + акселерометр через кватернион - вместо atan2 напрямую. Кватернион описывает ориентацию в 3D пространстве.
  2. Автоматическая компенсация дрейфа гироскопа - через оценку bias (TAU_BIAS = 100с). Фильтр сам вычитает накопленный дрейф.
  3. Доверие акселерометру - TAU_ACC = 3с, то есть акселерометр корректирует гироскоп с постоянной времени 3 секунды. Достаточно медленно чтобы не шуметь на кочках, достаточно быстро чтобы не давать дрейфовать.
  4. 50 Гц - LOOP_INTERVAL_MS = 20мс, точное время через millis().
  5. Два режима - нормальный 4 байта и raw 16 байт со всеми данными IMU для отладки.

По сути это решает проблему дрейфа гироскопа - bias оценивается и вычитается непрерывно.
Но вероятней всего я буду я сдатчика получать сырые данные, а на телефоне будет обсчет, но принцип такой же. Если често я немного поковырял carv2 и нашел что они на самом деле используют ИИ - нашел ONNX модель, я думал это просто маркетинг. Не знаю, сначала наврное все равно буду ориентироваться на физику поворота, модель обучать это перебор


Сообщение отредактировал tvv2000: 20 May 2026 - 10:44

  • 0

#11 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 20 May 2026 - 11:47

 угол сейчас считается 

  1. Гироскоп + акселерометр 

Глянул код. Я немного знаком с Си, но не с андроидом. Вы вычисляете ориентацию по акселерометру и вычисляете угол используя эту ориентацию с добавкой гироскопа.

По данным акселерометра найти ориентацию можно только если кроме g нет других ускорений, т.е. в покое или равномерном движении.

В повороте из данных акселерометра нельзя достать ориентацию. Данных акселерометра в расчете углов не должно быть если есть  любое ускорение кроме g. 


  • 0

#12 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 20 May 2026 - 13:59

Вы правы, это известная проблема. В повороте акселерометр видит и гравитацию и центростремительное ускорение вместе - разделить их невозможно без дополнительной информации.

VQF фильтр решает это через TAU_ACC = 3 секунды - акселерометр корректирует гироскоп очень медленно, с постоянной времени 3с. Поворот длится 1-2 секунды, поэтому за время поворота акселерометр практически не влияет на угол - работает в основном гироскоп. Коррекция акселерометром происходит в транзите когда центростремительное ускорение близко к нулю и он снова показывает только гравитацию.

Это не идеальное решение, но рабочий компромисс. Идеально - явно детектировать транзит и делать коррекцию только в этот момент, что и планируем реализовать следующим шагом.


  • 0

#13 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 20 May 2026 - 14:05

Покопался в приложении Carv глубже. ONNX модель которую они используют вероятней всего отвечает только за вычисление Ski:IQ - по сути это классификатор который определяет насколько катание похоже на карвинг/параллельные лыжи.

Это объясняет почему многие жалуются на Ski:IQ - модель обучена на определённом эталонном стиле карвинга. Остальные метрики - угол закантовки, транзит, симметрия - скорее всего считаются отдельно обычными формулами.

Так что подход с прозрачной физическая формула Ski:IQ честнее чем закрытая модель обученная на узком стиле катания и с ИИ особого смысла заморачиваться нет


  • 0

#14 A_J

A_J
    • 2
    • 1
  • Лыжебордеры
  • 308 сообщений
  • Город:Isola 2000, France

Отправлено 20 May 2026 - 17:32

Я не уверен, что вообще реально выписать какую-то осмысленную формулу для Ski:IQ в явном виде. Сила Carv именно  в моделях, которые они обучали годами на собранных данных. Плюс в доступе к этим самым данным от топовых атлетов. 
Формально замерить, насколько человек наклонился в повороте или там, какое на него действовало ускорение - несложно. Но вряд ли даст целостную картинину катания.


  • 0

#15 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 21 May 2026 - 08:58

У меня нет опыта использования Carv2, но Ski:IQ как раз и критикуют за непрозрачность - в отзывах полно "не понимаю почему упал на 15 очков". Модель выдаёт оценку, но не  объяснение. Физические параметры дают противоположное. Например, типичная ошибка у меня - внутренняя лыжа недокантована. Если в логе видно (или подсказках в реальном времени), что на правом повороте левая лыжа стоит под 12°, а правая под 28° - понятно что именно не так и на каком повороте и что поправить. Модель нужна когда не знаешь какие параметры важны и обучаешься на данных. Но если признаки известны из биомеханики, она лишь убирает интерпретируемость. Полезная подсказка - это не "сегодня 74 из 100", а "на левом повороте не дожимаешь внутреннюю".

  • 0

#16 МихаилS

МихаилS
    • 1
    • 1
  • Лыжебордеры
  • 4767 сообщений
  • Город:Москва

Отправлено 21 May 2026 - 12:44

Заинтересовался девайсом Carv2, но цена кусается — $249 + подписка. Появилась идея сделать open-source аналог с нуля.

Что уже есть:

Железо собрано, себестоимость ~2500₽:

  • Seeed XIAO nRF52840 Sense Plus (IMU + BLE встроены)
  • LiPo аккумулятор 402030, 200мАч
  • Пластиковый корпус + тактическая клипса на манжету ботинка

Где купить:

  1. Корпус
  2. Клипса на манжету
  3. Аккумулятор
  4. Датчик

Прошивка написана на Arduino, передаёт по BLE угол закантовки (roll) и наклон вперёд/назад (pitch). Написано базовое Android приложение которое эти углы принимает и отображает.

Что планируется:

Полноценное Android приложение с метриками:

  • Угол закантовки и симметрия лево/право
  • Форма поворота (S vs Z)
  • Стойка — загрузка носка/пятки
  • Длительность транзита
  • Радиус поворота через физику карвинга
  • Ski:IQ — прозрачная оценка на основе физики поворота, не магический алгоритм
  • Тепловая карта спуска по GPS

Репозиторий: https://gitverse.ru/vtsukanov/OpenCarv

  1. README — описание проекта
  2. Прошивка
  3. Прототип UI
  4. Прототип приложения

К сообщению приложил фото датчика + видео работы датчика и приложения. Видео не сомг залить, можно посмотреть здесь https://gitverse.ru/...21135_small.mp4

Прошу покритиковать идею и техническое описание из README. Буду рад советам от тех кто катается и понимает в технике.

Это здорово что Вы этим занялись. Задача на мой взгляд  очень сложная. Поэтому пожелаю успеха, пусть получится!
Я сам делаю что-то подобное  но идеологически другое  - https://forum.ski.ru...#entry4193098 .Это проще, но как одну из возможностей я попытался реализовать общий тест карвингового поворота (а-ля Carv), с вычислением некоторой итоговой оценки, но не справился пока - все таки использовать телефон как единственный сенсор и неудобно и недостаточно.

Но в любом случае мне близко и интересно то что делаете Вы. Так что возможно буду задавать вопросы.

 

Пока первый: Вы пишете про контроль стойки (загрузка носка пятки).  А это вообще возможно без использования сенсорной стельки? Я начинал с использования самодельной стельки из 4-х пленочных резистивных датчиков, нахлебался и плюнул. Разработчики Carv тоже отказались от стельки во второй версии. Но по моему мнению с отказом от стельки возможность контролировать продольную центровку пропала. Или считаете есть какие-то возможности делать это только инерциальными датчиками на голени?


Сообщение отредактировал МихаилS: 21 May 2026 - 12:44

  • 0

#17 Снеголог

Снеголог
    • 3
    • 2
    • 2
  • Лыжебордеры
  • 2884 сообщений
  • Город:Санкт-Петербург

Отправлено 21 May 2026 - 13:41

вообще в иделае должен быть комплект - стельки для контроля нажатия, датчики для контроля геометрии.


  • 0

#18 МихаилS

МихаилS
    • 1
    • 1
  • Лыжебордеры
  • 4767 сообщений
  • Город:Москва

Отправлено 21 May 2026 - 14:11

вообще в иделае должен быть комплект - стельки для контроля нажатия, датчики для контроля геометрии.

Согласен. Но мой вопрос был - возможно ли только инерциальными датчиками ловить перецентровку, причем достаточно точно и надежно чтобы она участвовала в расчете итоговой оценки.

На мой взгляд нет, но возможно я не прав.


Сообщение отредактировал МихаилS: 21 May 2026 - 14:20

  • 0

#19 rusl32

rusl32
  • Лыжебордеры
  • 39 сообщений
  • Город:gegshxfnrf

Отправлено 21 May 2026 - 14:47

Согласен. Но мой вопрос был - возможно ли только инерциальными датчиками ловить перецентровку, причем достаточно точно и надежно чтобы она участвовала в расчете итоговой оценки.

На мой взгляд нет, но возможно я не прав.

Я такого же мнения. Жесткость ботинок разная, силы прилагаемые лыжниками разной комплекции в сравнимых условиях разные, дельта изменения угла маленькая. Да и лыжник вместе с лыжами поворачивает (пусть плоскости не совпадают но проекции могут быть). Все это скорее непреодолимо для прямого измерения.

Да и стелька не панацея - нога взаимодействует с ботинком сильно на большей площади, не только по стопе. Особенно в голенище.

Было бы любопытно поковырять реальные данные акселерометра и гироскопа с ботинка, посмотреть что оттуда реально достать. Цеплял гопро к ботинку, она, интернеты говорят, тож телеметрию пишет, но так и не нашел готового способа достать её.

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


  • 0

#20 tvv2000

tvv2000
  • Лыжебордеры
  • 58 сообщений

Отправлено 21 May 2026 - 15:01

Вы правы, что со стелькой это точнее. Но для нашей конкретной задачи - был ли перенос ЦТ вперёд в начале поворота - стелька избыточна. Перенос ЦТ вперёд и загрузка носка - это одно движение, просто измеренное в разных точках. Стелька фиксирует следствие (давление под носком), IMU на голени фиксирует причину (голень давит в язык - угол изгиба ботинка растёт). Для детекции было / не было движение вперёд разница несущественна.
Будет считаться pitch-угол голени в момент начала поворота. Если в этот момент pitch > порога - перенос был. Это не абсолютное давление, но как сигнал вы не успели перенести вес должно работаеть. Абсолютное распределение давление носок/пятка нам действительно недоступно - и мы на это не претендуем. Но задачу "контроль начала поворота" это решает без стельки.
Возможно с помощью стельки они еще смотрели на правильность работы стоп при закантовке, но мне кажется это лишнее, тем более от стелек они отказались, возможно они просто не выдерживали нагрузки и выходили из строя
 
 

  • 0




Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных