Про современных актёров кино...
Кина Будет в ВК: https://vk.com/kinabudet
E-Learning. Часть 20. Киберпанк, который мы заслужили
Доброго всем времени суток, продолжаю серию постов про образовательную робототехнику. Здесь я описываю результаты и просто ход выполнения своей научной работы.
Кратко: разрабатываю специальную робо-накидку на одежду, которая сможет оцифровывать часть двигательных навыков мастеров своего дела и передавать это тем, кто только учится.
О чем этот пост: о том как анализировал данные с МЭМС сенсоров с целью уменьшения объема передаваемой информации (сохраняя качество естественно).
Задачи:
1) Собрать данные при разных движениях пальца (3 точки съема).
1.1) В состоянии покоя.
1.2) В состоянии, когда движется только верхняя фаланга пальца.
1.3) В состоянии, когда движутся две верхних фаланги пальца.
1.4) В состоянии, когда зафиксирована только одна верхняя фаланга пальца.
1.5) Во всех возможных движениях пальца.
2) Получить слепок взаимных корреляций (степени взаимосвязи) для всех потоков данных в состоянии покоя сенсоров.
3) Получить слепок взаимосвязей для остальных четырех случаев.
4) Сделать выводы о том, какие данные о пальце можно не передавать, сохранив при этом их качество.
Зачем это надо?
Да очень просто. Всего будет 96 потоков данных. В ходе сборки прототипа перчатки выяснил, что предполагаемая итоговая частота будет порядка 100 Гц. Если сократить передаваемый поток в два раза, то частота возрастет уже не в те самые два раза, а в три-четыре. Почему? Потому, что основной тормоз, который портит нам жизнь в микроконтроллере - это формирование UDP пакета, потом на стороне приема мы работаем с байт строкой, которую переводим в int. Если какие-то данные сильно зависимы между собой (в идеале 1 к 1), то мы можем просто из пары взять одно число и ничего не потеряем.
В остальных значимых случаях мы можем по-хитрому комбинировать весовые коэффициенты. Например, средняя фаланга пальцев очень сильно завязана на первую и третью флангу. Т.е. движения второй фаланги можно описать через соседние. (пока это предположение, которое нам стоит еще проверить и мы не будем рассматривать пограничные случае, когда пальцы выгибают в обратную неестественную сторону).
Как проходил сбор:
1) Записали в журнал эксперимента какие движения нужны. Подумали какие из них важны.
2) Собрать тестовый прототип для пальца на 3 точки съема (использую дефолтные платы, а не свои. свои позже покажу).
3) Подготовить видео камеру для записи движений.
4) Произвести запись в течение 100 секунд (это эффективное время использования сенсоров из прошлого поста )
5) Попарно сравнить между собой.
5.1) В форме графика.
5.2) В форме тепловой карты.
6) Найти значимые зависимости.
В данном случае мы будем говорить именно о зависимостях, а не просто о корреляции. Это связано с тем, что значения на сенсорах связаны очевидной объединяющим фактором между собой, а именно пальцем. Другое дело, что пока не ясно в какой степени зависимость линейна. Это важно.
Все видео прикреплять не буду. Покажу часть, где палец движется по всем доступных траекториям (без ограничений).
Кручу, верчу, собрать данные для анализа хочу.
Итого, какие данные насобирал? Кому интересно - можете покопаться в сырых данных на предмет независимой проверки. Так же по запросу вышлю остальные видео, если надо будет удостовериться как собирались все данные.
Обозначения:
Первая буква тип сенсора. Либо g - гироскоп, либо a - акселерометр.
Вторая буква - это название оси. x, y, z. Это еще со школы все знают (надеюсь).
После символа "земля" (_) стоит номер платы. 4 - верхняя фаланга, 5 - средняя фаланга, 17 - нижняя фаланга.
Сначала покажу красивые графики, поразглядывать можно по ссылке выше в хорошем качестве.
Есть или нет взаимосвязи понять достаточно просто. Если видим вытянутую палку под 45 градусов "в горку слева-направо", то есть неплохая вероятность из зависимости. Если "c горки", то она обратно-зависима. Если график похож на волосатый киви (в смысле плюс-минус овальной формы), то связи нет. Если это данные по диагонаиь... то нам в данном случае это не интересно.
Ну и посмотрим на тепловую карту (другое представление того же самого анализа).
Там где рука просто лежала - в идеале должно быть все черным, так как сенсоры не связаны между собой никакими воздействиями, это аналогично тому, что они просто без моей руки где-то лежат. Чем белее данные (желательно с теплым оттенком) тем нам интереснее ибо именно про эти квадратики и говорилось в начале.
Давайте начнем с неожиданностей:
1) На графике с простоем есть зависимости. Точнее мы то знаем, что это не так, значит просто корреляция. И что более удивительно, так это то, что она находит на достаточно высоком пороге более 0.7 порой. Больше всего этим грешит гироскоп. С чем это связано, я пока не знаю. Есть предположения, которые надо проверять. Возможно это связано просто с проклятием множественного эксперимента, когда по закону больших чисел так совпало (и это упрек дизайну моего эксперимента, что надо собрать не 1 серию выборки на ~75 000 значений, а больше). Надо собрать данные с истинно независимых трех сенсоров того же объема, чтобы проверить этот эффект. Возможно это несовершенства самого сенсора. И это значит, что мой любимый Бош немного наврал про независимость данных по каждой оси и внутри все не так идеально. Надо проверять.
2) На графике абсолютной свободы есть сильные отрицательные корреляции. С чем это связано я пока не могу предположить. Возможно это опять же несовершенство дизайна эксперимента. Например, когда двигаешь рукой, то за счет того, что сенсоры зафиксированы на поверхности кожи, а не вживлены в фалангу пальца, то они как бы немного скользят вперед-назад, в зависимости от степени сгиба пальца. Т.е. сам сенсор немного "плавает" по фаланге пальца. Это надо будет потом отдельно исследовать. (Уровень значимости, что котики ведут себя как жидкости).
Что хорошего можно увидеть:
1) В целом GX всех фаланг стойко показывает связь от эксперимента к эксперименту.
2) AY тоже.
3) GY и AX тоже можно докрутить (хотя и не так красиво линейно).
Что еще?
Для акселерометра ось z можно тоже не передавать. Совместно с другими двумя осями все равно можно получить только значения угла поворота для двух осей (это мы в прошлый раз рассматривали). Т.е. используем его значения на самом микроконтроллере для функции atan2 и все. Итого минус еще три потока передачи данных на палец.
Пишите в комментариях, про что еще хотели бы почитать. Я учитываю обратную связь от Вас.
Всем спасибо.
Захват движения: велоцирапторы из фильма «Мир Юрского периода»
Devil May Cry 3 - захват движений (motion capture)
Собственно в очередной раз перепроходил легендарную серию DMC, уже в лице HD collection, и наткнулся на этот ролик в галерее. Очень впечатляюще для игры начала 2005 года, особенно то что еще и все трюки делали сами и переносили в игру.
Ждем и надеемся на DMC 5. Кто еще не в курсе, было несколько "утечек" и актеры играющие Dante и Nero (DMC4) постили это фото в 2016 году, то есть игра предположительно находится в производстве уже несколько лет.
В Питере шаверма и мосты, в Казани эчпочмаки и казан. А что в других городах?
Мы постарались сделать каждый город, с которого начинается еженедельный заед в нашей новой игре, по-настоящему уникальным. Оценить можно на странице совместной игры Torero и Пикабу.
Реклама АО «Кордиант», ИНН 7601001509