habrahabr

Тест беговела при помощи трехосевого акселерометра

  • среда, 5 декабря 2018 г. в 00:21:11
https://habr.com/post/431810/
  • DIY или Сделай сам
  • Python
  • Гаджеты
  • Здоровье гика
  • Разработка на Raspberry Pi


Всем привет!

Вопрос физического развития собственных детей всегда актуален. Младшему сыну исполнилось три года, захотелось помимо прогулок подыскать ему занятия со спортивным уклоном. Поскольку он проявляет интерес к различным видам транспорта, выбор естественным образом пал на беговел. А насмотревшись зажигательных видео, как дети постарше трюкачат на беговелах, я решил немного более подробно исследовать вопрос. Вооружившись IMU от Амперки на 10 степеней свободы, Raspberry Zero W с блоком питания и 40 строками кода на Питоне я пошел в беговелошколу. Что из этого вышло — смотрите под катом )

image

Беговелы распространены не так широко, как детские велосипеды или самокаты, но у них есть несколько преимуществ по сравнению с другими видами транспорта. Ребенок может сидеть на седле, как на велосипеде и толкаться двумя ногами попеременно. Это даёт более равномерную нагрузку на обе ноги и на спину. В отличие от самоката, где работает только одна толчковая нога. Дополнительным бонусом является то, что ребенок учится балансировать. То есть дальнейшая пересадка на двухколесный велосипед по идее должна произойти без всяких осложнений.

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



Демпфирование заднего колеса показалось мне особенно важной деталью. Ребенок на беговеле будет неизбежно спрыгивать с бордюров и кататься по неровным дорогам (в России живём). Поэтому наличие демпфера должно по идее снизить нагрузку на спину. В дальнейшем по мере роста профессионализма юного райдера демпфер также позволит делать прыжки и другие подобные трюки.

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

image

Ускорения будем измерять трехосевым акселерометром из состава IMU-сенсора производства Амперки. Использовать для замера ускорений акселерометр сотовых телефонов не получится из-за низкого предела измерений (+-2G). Диапазон измерений по каждой из осей модуля Амперки составляет +-8G, будем надеяться, этого хватит.

IMU-сенсор крепился к раме с помощью держателя Topeak (пришлось временно снять со своего велосипеда), куска оргстекла и нескольких слоев изоленты. Для опроса сенсора использовалcя одноплатник Raspberry Pi Zero W. Небольшой скрипт на Python опрашивал акселерометр с периодом примерно 10 мс:

imu.py
import time
from pytroykaimu import TroykaIMU

imu = TroykaIMU()
imu.accelerometer.set_range('8G')

file_name = ''

print('Введите имя файла (без расширения)')
file_name = str(input ())
file_name = file_name + '.csv'
print('Запись пошла, прерывание Ctrl+C')
t0 = time.time()

imu_array = []

while True:
    try:
        ax, ay, az = imu.accelerometer.read_gxyz()
        gx, gy, gz = imu.gyroscope.read_radians_per_second_xyz()
        imu_array += [time.time(), ax, ay, az, gx, gy, gz]
        time.sleep(0.006)    

    except KeyboardInterrupt:
        
        t1 = time.time()
        lines = int(len(imu_array)/7)
        print(" - Всего строк -", lines, '- записываем файл', file_name)
        
        imu_file = open(file_name, 'w')
        imu_file.write('time,ax,ay,az,gx,gy,gz' + '\n')
        for i in range(lines):
            imu_file.write(str(imu_array[7*i]) + ',' + str(imu_array[7*i+1]) + ',' +
                                         str(imu_array[7*i+2]) + ',' + str(imu_array[7*i+3]) + ',' +
                                         str(imu_array[7*i+4]) + ',' + str(imu_array[7*i+5]) + ',' +
                                         str(imu_array[7*i+6]) + '\n')
        imu_file.close()
        print ('Запись завершена, время записи -', t1 - t0, 'сек')
        break


Питание Raspberry снималось с Power Bank от той же Амперки, а удаленный запуск я делал с сотового с установленным не него терминалом. Одноплатник с блоком питания я запрятал в кейс для сотового телефона, а сам IMU-сенсор прикрепил к подседельному штырю исследуемых беговелов следующим образом:

image

Замеры мы проводили совместно с Евгением Ивановым из школы BegovelMsk в Москве. Беговелошкола для проведения теста любезно предоставила два беговела (Puky LR Ride и Early Rider Trail Runner 14). Эти две модели распространены в беговелошколах, первая — главным образом для трюков, вторая — для беговелогонок. Шины у обеих моделей были накачены до примерно 3,5 атмосфер.

Тест заключался в том, что райдер Артём на тестируемом беговеле спрыгивал с небольшого трамплина:

image

В итоге для каждого прыжка на SD карте Raspberry оседал файл с опросами всех трех осей акселерометра раз в 10 мс. Из каждого файла можно вывести такой график, по вертикальной оси отложены ускорения в G:

image

Графики для похожих прыжков получились довольно сходными, но при этом кривые ускорений для двух исследуемых моделей беговелов отличаются очень сильно. Для упрощения картины на следующем графике отложены только вертикальные составляющие ускорений (для нашего эксперимента это ось Y, деленная на косинус угла отклонения от вертикали). На графике также отмечено время заезда на трамплин (определялось по видео заездов) и время касания пола после прыжка (это максимальный по амплитуде сигнал).

image

Как видим рама беговела (а с ней и ребенок) при прыжке с трамплина испытывает кратковременную ударную нагрузку до 10G! Неожиданно. Я полагал, что нагрузки гораздо ниже. Можно заключить, что падать с бордюров сидя 5-ой точкой на седле беговела не стоит. Иначе удар придется на позвоночник и внутренние органы ребенка. Оптимально было бы перенести эту нагрузку на ноги. Поэтому для модели Puky LR Ride доступна специальная подножка, на которую ребенок при выполнении трюков становится ногами.

image

Какие ещё выводы можно сделать из этих кривых? Примерно следующие:

  1. Демпфер на LR Ride снижает ударную нагрузку на раму беговела примерно на 30% (скорее всего даже больше, поскольку на жесткой раме Trail Runner 14 акселерометр ушел в насыщение). Также характер нарастания нагрузки меняется, он становится более плавным, чем у модели без демпфера.
  2. Демпфер помогает увеличить дальность прыжка, поскольку ребенок может его использовать как своеобразную пружину перед трамплином (обратите внимание на оранжевую кривую перед заездом на трамплин).
  3. Демпфер гасит остаточные колебания рамы беговела, можно заместить, что после прыжка у LR Ride они значительно меньше, чем у Trail Runner 14, как по времени, так и по амплитуде. Это повышает управляемость беговелом и комфорт ездока.

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

image

Спасибо за то, что дочитали до конца и до новых встреч!