Акселерометр датчик движения

Акселерометр датчик движения

Владимир Нимин

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

Акселерометр, также называют G-сенсор. Официальное определение гласит, что это устройство, измеряющее проекцию кажущегося ускорения. А если простым языком, то акселерометр помогает смартфону определить положение в пространстве, а также расстояние перемещения. Основные функции акселерометра:

  • Автоповорот ориентации экрана;
  • Также акселерометр можно настроить так, чтоб он реагировал на жесты и действия. Например, потрясти смартфон или перевернуть экраном вниз, чтоб заглушить вызов;
  • Ещё акселерометр помогает считать шаги и помогает ориентироваться на картах (Google Maps и прочих)

Акселерометр – это громоздкое устройство, внутри которого находится инертная масса, реагирующая на все перемещения. Такой вариант для смартфона не подходил, поэтому придумали чип, имеющий кристаллическую структуру, пьезоэлектрический элемент и сенсор ёмкостного сопротивления. Когда смартфон перемещается/вращается, то пьезоэлектрический элемент выдаёт разряды, а сенсор их интерпретирует, таким образом определяя положение и скорость.

Акселерометр – базовый датчик, который есть в любом, даже самом дешевом, смартфоне. Хотя это на удивление технически сложный продукт. В смартфонах акселерометр понимает движения по 3 осям. Третья нужна для 3D позиционирования. К слову, акселерометр есть и во всех современных автомобилях, но там он обычно двухосевой (ибо автомобиль не крутится в воздухе).

Не все акселерометры одинаковые. Их делают из разных материалов. Соответственно, некоторые более чувствительные, некоторые менее.

Гироскоп – это один самых классных датчиков, о полезности которого для смартфонов долгое время никто не подозревал, пока на сцену не вышел Стив Джобс и не объяснил, как оно должно быть. Посмотрите презентацию этой шикарной функции, и как зал взорвался от восторга.

Не следует путать гироскоп и акселерометр. Эти датчики частично дублируют и дополняют друг друга. Гироскоп также служит для отслеживания положения устройства в пространстве, но он делает это путем определения собственного угла наклона относительно земной поверхности. Это очень важно, так как это означает, что в условиях нулевой гравитации, вы не сможете поиграть в Asphalt 9, используя в качестве управления наклоны устройства. Будьте внимательны!

Гироскоп (в отличие от акселерометра) не может измерять проделанное расстояние, зато гораздо точнее определяет положение в пространстве. Для понимания посмотрите, пожалуйста, видео со Стивом Джобсом выше. Начиная с времени 1:10 Джобс показывает, как определяет положение объекта в пространстве акселерометр и как гироскоп.

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

Датчик приближения (proximity sensor). Как видно из названия, это датчик, который помогает определить наличие перед ним объекта. Самый простой пример – это отключение экрана, когда смартфон подносят к уху. Также датчик приближения исключает фантомные включения экрана, когда смартфон находится в сумке или кармане. Такой датчик может сам или в комбинации с фронтальной камерой отслеживать движения рукой над экраном для выполнения каких-либо функций. Например, пролистывание странички в браузере и тому подобное. Существует множество технологий датчика приближения. Он может работать по типу радара, сонара, эффекта Доплера, есть инфракрасный датчик приближения, а иногда ставят и фотоэлемент.

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

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

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

Датчик Холла – один из самых таинственных датчиков в смартфоне, ибо мало кто знает, зачем он нужен. Датчик, основанный на, так называемом, эффекте Холла, фиксирует магнитное поле и измеряет его напряженность. Говоря языком физики: электроны в проводнике всегда перпендекулярны (угол 90 градусов) направлению магнитного поля. Плотность электронов на разных сторонах проводника будет отличаться, возникает разность потенциалов, которую и фиксирует датчик Холла.

Но в смартфонах используется упрощенный датчик Холла, фиксирующий только наличие магнитного поля.

Обычно датчик Холла нужен для дополнительных аксессуаров. Например, именно он включает экран iPad, когда пользователь снимает магнитный чехол. Кстати, в этой функции датчик приближения вполне может подменить датчик Холла.

Также датчик Холла работает в паре с компасом, делая работу последнего более точной.

Компас (магнитомер) – это очень важный датчик, даже если вы не занимаетесь спортивным ориентированием. Именно компас отвечает за то, что на Google Maps пользователь видит не просто точку, а стрелочку, указывающую в какую-сторону вы смотрите.

Когда компас откалиброван, то отображение направления узкое. Чтобы откалибровать компас, откройте карты Google и крутите смартфон «восьмеркой»:

Барометр – обычно наличием подобного датчика могут похвастаться только флагманы. Барометр ассистирует GPS и помогает определить высоту. Наличие такого датчика полезно, так как на Google Maps уже появляются схемы зданий, и барометр определит на каком этаже вы находитесь. Также барометр используется в приложениях, определяющих физическую активность. Суть такая же: определить, сколько этажей вы прошли.

Датчик влажности – когда-то такой датчик был в Samsung Galaxy Note 4, а потом Samsung от него отказались. Роль очевидная. Датчик определяет уровень влажности.

Датчик сердцебиения/датчик кислорода в крови – ещё один фирменный датчик от Samsung, но он есть и во многих фитнес-браслетах. Работает совместно с LED-вспышкой. Прикладываете палец, LED светит вам свозь палец, а датчик измеряет, как отражаются световые волны. Волны отражаются по-разному в зависимости от пульса: кровеносные сосуды, то сужаются, то расширяются. По этому же принципу работает и функция определения кислорода в крови.

GPS – глобальная система позиционирования. По сути, это даже не датчик, а наличие у смартфона возможности коммуницировать со спутниками благодаря или отдельному, или мульти-чипу, поддерживающему сразу несколько систем. Сейчас у каждой развитой страны, есть своя система спутников. ГЛОНАСС в России, Galileo в Европе, BDS (или BeiDou) в Китае, QZSS (или Quasi-Zenith Satellite System) в Японии. Можно скачать программу GPS Test, которая покажет, какие спутники видит ваш смартфон. Например, на скриншоте ниже отображаются флаги GPS, ГЛОНАСС и Galileo.

GPS прекрасная технология, но медленная (пока там все спутники найдешь и опросишь) и потребляющая много энергии и хорошо работающая на открытой местности, поэтому была придумана ещё A-GPS (Assisted GPS). Принцип основан на том, что пока GPS ищет спутники, смартфон успевает опросить сотовые вышки, Wi-Fi сети, Bluetooth устройства на предмет местонахождения. Таким образом существенно увеличивается время «холодного» старта, а также снижается расход энергии.

Двухдиапазонный GPS. Поддержка этой опции появилась в устройствах начbfz с Android 7 и старше. iPhone так не умеет.

Обычно спутники посылают два сигнала: грубый и точный. Если говорить про GPS, то это каналы L1 и L5, а у Галилео это E1 и Е5. L1 – это грубый канал. В городе любой сигнал достигает до спутника не только напрямую, но и отражаясь от сторонних объектов (например, зданий), то есть к спутнику прилетает сразу несколько сигналов. Соответственно, и возвращается он также не один, и образуется примерная область нахождения, где все вернувшиеся сигналы пересекаются. Ещё есть точный канал L5. Этот канал гораздо меньше подвержен искажением, так как работает по принципу: Первый достигший спутника сигнал и есть верный (ведь он идет по самому короткому пути, а не через отражения), а остальные можно игнорировать.

Читайте также:  Body shape что это такое в фитнесе

Раньше L5 принадлежал только военным и спец объектам, но теперь спутников в небе стало много, и L5-спутников хватит на всех, поэтому было решено поделиться.

Вместо заключения

Счётчик Гейгера – самый неожиданный датчик, правда? Это японская тема. И насколько есть информация в интернете, такой датчик был только в телефоне Sharp Pantone 5, который вышел после аварии на атомной станции Фукусима-1.

Современный смартфон должен иметь на борту: акселерометр, гироскоп, датчик приближения и освещения. Также обязательно наличие компаса. Если без гироскопа можно обойтись, то точка на карте без направления раздражает. A-GPS уже есть во всех смартфонах. Отлично если GPS будет работать в двух диапазонах. Шикарно, если будет барометр.

Алексей Дрожжин

18 октября 2010

Наномир на данный момент является своего рода фронтиром – передним краем науки, который пока еще только покоряют ученые-пионеры. А вот микромир уже достаточно давно освоен и в нем вовсю идет строительство. Пожалуй, самым впечатляющим типом микроструктур, которые создаются людьми, являются MEMS – микроэлектромеханические системы.

Обычно MEMS делят на два типа: сенсоры – измерительные устройства, которые переводят те или иные физические воздействия в электрический сигнал, и актуаторы (исполнительные устройства) – системы, которые занимаются обратной задачей, то есть переводом сигналов в те или иные действия. В этой части статьи поговорим о первой категории MEMS.

Пожалуй, самыми «трендовыми» из MEMS-сенсоров являются датчики движения. Они в последнее время постоянно на слуху: телефоны, коммуникаторы, игровые приставки, фотокамеры и ноутбуки все чаще и чаще снабжаются акселерометрами (датчиками ускорения) и гироскопами (датчиками поворота).

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

Классический гироскоп образца XIX века. Засунуть такой в iPhone или джойстик Wii довольно-таки затруднительно

Впрочем, рассуждать о том, что в реальности полезнее – активные игры на Wii, функция автоматического поворота картинки на iPhone, защита винчестера или возможность снимать фотографии без смазывания – дело неблагодарное. Покупателям нравится и то, и другое, и третье, и четвертое. Поэтому производители в последнее время стараются как можно более плотно использовать датчики движения.

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

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

И места занимает – всего ничего. Для примера, размер корпуса пьезогироскопа Epson XV-8000 составляет 6×4,8×3,3 мм, а трехосного акселерометра LIS302DL производства ST Microelectronics – всего лишь 3x5x0,9 мм. Причем речь именно о размерах готового устройства с корпусом и контактами – сам кристалл еще меньше.

Датчик движения Epson XV-8000. И это далеко не самый компактный MEMS-сенсор

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

Основной принцип работы конденсаторных акселерометров

Это теория. На практике, MEMS-акселерометры устроены таким образом, что отделить друг от друга составные части – грузик, подвес, корпус и обкладки конденсатора – не так-то просто. Собственно, изящество MEMS в том и заключается, что в большинстве случаев в одной детали здесь удается (а вернее, попросту приходится) комбинировать сразу несколько предметов.

Относительно простой, но чрезвычайно миниатюрный и чувствительный MEMS-акселерометр разработки Sandia Labs

Зачастую, современные MEMS-гироскопы устроены идентично акселерометрам. Просто в них значения ускорений по осям пересчитываются в значения углов поворота – конструкция примерно та же, но на выходе другая величина.

Гироскоп L3G4200D производства ST Microelectronics используется в iPhone 4

Тот же STM L3G4200D, фотография с большим увеличением

Однако встречаются и гироскопы, устройство которых "заточено" именно под вращение. Такие MEMS – одни из красивейших.

Еще один гироскоп ST Microelectronics – LYPR540AH

Крупный план STM LYPR540AH. Толщина деталей этой ажурной конструкции – около 3 микрон!

Еще один MEMS-гироскоп

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

Основной принцип работы акселерометров на пьезоэлементах

Есть и более экзотический тип MEMS-акселерометров – термальные датчики ускорения. В них в качестве основного объекта используется горячий пузырек воздуха. При движении пузырек отклоняется от центра системы, это отслеживается датчиками температуры. Чем дальше сместился пузырек – тем больше величина ускорения.

Двухосный термальный акслерометр

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

Устроены они – проще некуда. Принципиально важных элементов в таком микрофоне всего два: это гибкая обкладка – мембрана, и более толстая, неподвижная обкладка. Под воздействием давления воздуха мембрана смещается, изменяется емкость между обкладками – при постоянном заряде изменяется напряжение. Эти данные пересчитываются в амплитуды и частоты звуковой волны.

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

микроэлектромеханический микрофон под микроскопом. Диаметр мембраны чуть больше половины миллиметра

Как и в случае с акселерометрами, здесь может быть использован пьезоэффект — в этом случае под мембраной ставится пьезокристалл. Дальше – как и в случае пьезоакселерометров: давление воздуха передается мембраной на пьезоэлемент, под этим воздействием кристалл вырабатывает ток. Напряжение измеряется и переводится в амплитуду и частоту звука.

Самый миниатюрный MEMS-микрофон компании Akustica (площадь кристалла – 1 кв.мм) теряется рядом со своими более крупными родственниками

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

Но можно выделить одну область, которая является наиболее интересной и наиболее специфичной для датчиков давления, основанных на MEMS-технологии. Это медицина. Здесь размер действительно имеет значение. Если в какой-нибудь трубопровод вполне можно встроить «обычный», макроскопический датчик, то с кровеносным сосудом такой фокус, очевидно, не получится. Тут нужны очень и очень компактные решения.

Ультракомпактный и высокоточный датчики давления на фоне одноцентовой монеты (по размеру она примерно эквивалентна нынешним русским 50 копейкам)

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

Прототип щипцов для микрохирургии глаза. Размеры головки щипцов – порядка 1,5х1,5 миллиметра. Толщина губ – несколько десятков микрон. Человеческий волос этими щипцами подцепить не получится – он для них слишком толстый

Что ж, разговор о MEMS-сенсорах мы на этом завершим. Впереди у нас еще более интересная и захватывающая тема: MEMS-актуаторы. Печатающие головки струйных принтеров, микрозеркальные матрицы, элементы оптико-волоконных сетей и многое другое. Обещаем: скучно не будет!

Отслеживание движений тела человека — это задача, которая с переменным успехом решается уже не одну тысячу лет. Когда-то я читал историю об одном древнегреческом ораторе Демосфене, у которого была нехорошая привычка поднимать плечо до уха, если он нервничал. Чтобы избавиться от этого, во время ежедневных тренировок он вешал над плечом свой меч, который очень неприятно колол, если плечо поднималось. В итоге оратор стал настолько знаменитым, что про него даже есть статья в Википедии.

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

Очень часто отслеживание движений требуется во время спортивных тренировок. Например, можно найти патент US3820783, в котором описывается тренажерное устройство, которое одновременно направляет спортсмена и не дает ему двигаться неправильно.

Схема установки из патента US 3820783

Регистрация движения с помощью видеосъемки

В середине 70-х годов появились системы, которые обрабатывали видеозапись движений, сделанную с нескольких точек. В результате появлялась математическая модель того или иного движения. Если посмотреть видео о том, как снимался фильм «Властелин колец», можно увидеть интересные эпизоды съемок движений Горлума. Двигался на самом деле человек в специальном костюме, а потом с помощью умного математического аппарата и программного обеспечения получился симпатичный лысенький персонаж.

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

  • видеосъемку нужно вести с нескольких ракурсов;
  • зачастую требуется размещение маркеров на теле;
  • необходимо дорогостоящее аппаратное обеспечение (видеокамеры);
  • нужны хорошие вычислительные мощности и соответствующий программный продукт для преобразования видео в модель движения человека;
  • человек не может двигаться свободно на большие расстояния, иначе он неминуемо выйдет за пределы зоны видеосъемки;
  • кроме объекта измерения нужен коллектив специалистов, то есть записать движение тела на утренней пробежке рядовому пользователю наврядли удастся.

Измерение движений очень полезная штука не только в спорте. Применяется она также в промышленном проектировании — при разработке автомобилей, конвейеров, швейных машинок и многого другого. Такие системы уже существуют, например у фирмы Siemens — Jack (Human Simulation and Ergonomics). Как узнать, будет ли удобно водителю наживать кнопку включения кондиционера в проектируемом автомобиле? Можно, конечно, изготовить автомобиль, посадить человека и проверить. Но гораздо проще посадить виртуального человека в виртуальный автомобиль. Виртуальный автомобиль уже есть, так как все современные чертежные системы предусматривают разработку 3D моделей. Осталось только привязать движения модели человека к движениям его реального прототипа. Это можно сделать с помощью все той же видеофиксации движений или с помощью способа, о котором речь пойдет ниже.

Умная одежда

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

Оказывается, наука и техника уже предоставляют такие возможности. Конечно, речь пока не идет об умной повседневной одежде, но уже есть специальные костюмы, состоящие из носимых датчиков, которые на весьма неплохом уровне записывают движения тела. Такие костюмы делает фирма XSENS. Стоят они недешево, но по мере того как в каждой семье появляются десятки единиц вычислительной техники, дешевеют микросхемы и все больше становится интеллектуальных портативных систем. Мы семимильными шагами идем к светлому будущему. Не вдаваясь глубоко в технические подробности попробую рассказать, как же происходит запись движений, опишу работу и принцип действия основных узлов системы измерения движений на основе электронно-механических датчиков.

По мере развития микроэлектроники появляются различные миниатюрные датчики. Отдельная группа таких датчиков называется МЭМС – микро электромеханические сенсоры. Для измерения движений применяются датчики ускорения – акселерометры и датчики угловой скорости – гироскопы. Акселерометр представляет собой миниатюрный чувствительный элемент изменяющий свои свойства под действием ускорения. Это может быть пьезоэлектрический сенсор или элемент переменной емкости – конденсатор с подвижной обкладкой. Пьезоэлектрический сенсор вырабатывает небольшое напряжение на своих электродах, которое может быть измерено и пересчитано в ускорение. Похожим образом обстоят дела с емкостью переменного конденсатора.

МЭМС гироскоп чаще всего использует в конструкции действие силы Кориолиса, которая отклоняет вибрирующую пластинку, величина отклонения регистрируется и преобразуется в угловую скорость.

Как мы знаем из курса физики и математики, любой вектор может быть разложен на составляющие вектора. Так, например, ускорение и скорость раскладываются на взаимно-перпендикулярные составляющие: X, Y, Z. Чувствительные элементы МЭМС измеряют ускорение и скорость отдельно вдоль каждого из этих векторов.

Важно отметить, что сейчас встречаются микросхемы, которые содержат в себе сразу несколько МЭМС датчиков.

Например, микросхема МЭМС акселерометра производит измерение ускорения сразу по трем осям x, y, z. Это же касается и микросхем гироскопов, которые могут измерять угловую скорость сразу по всем трем осям. Встречаются даже микросхемы, которые одновременно измеряют и ускорение и скорость. Такие датчики называют шестикоординатными.

МЭМС — контроллер

МЭМС датчики, как правило, оснащаются встроенным контроллером, который производит расчет ускорения или угловой скорости, обеспечивает цифровую фильтрацию и конфигурирование микросхемы.

Данные внутри контроллера хранятся в специальных ячейках памяти, называемых регистрами. Они представлены в формате integer со знаком. Единица измерения, как правило, g [ускорение свободного падения – 9,8 м/c2] для акселерометров и рад/с [радиан в секунду] для гироскопов. Описание формата данных, адреса регистров, единицы измерения, диапазоны измерения и другие параметры всегда приведены в документации на соответствующую микросхему.

Также контроллер обеспечивает связь МЭМС датчика с внешним миром по одному из распространенных интерфейсов. Как правило, это SPI или I2C. SPI — это интерфейс с двумя линиями данных и одной линией тактирования. I2C — это интерфейс с одной линией данных и одной линией тактирования. Нам в принципе нужно знать только, что передавать данные от МЭМС датчика легко и приятно, для этого есть стандартизованные распространённые интерфейсы и готовые библиотеки.

Компьютер, планшет или смартфон не имеют доступных для пользователя интерфейсов SPI или I2C, поэтому, чтобы подключить датчик к ним, необходимо еще какое-нибудь согласующее устройство. Это может быть, например, микроконтроллер, соединенный с радиопередатчиком стандарта Bluetooth. На буферный микроконтроллер, как правило, возлагаются обязанности по предварительной обработке данных, для того чтобы снизить нагрузку на канал связи.

Вообще говоря, выбор канала связи — это отдельная большая задача. Конечно, этот канал желательно должен быть беспроводным, но какую из беспроводных технологий выбрать? Стандарты связи диапазона 2,4ГГц, такие как Bluetooth или WiFi, хороши тем, что поддерживаются большинством пользовательских устройств. Но с другой стороны они ограничивают дальность связи из-за малой длины волны. Конечно, есть радиомодули Bluetooth с заявленной дальностью около километра, но не будем обольщаться, ведь законы физики никто не отменял, и такую дальность можно получить только при условиях прямой видимости и достаточной высоты датчики над поверхностью земли. Важно определиться с моделью измерения и обработки данных. Одно дело, когда все вычисления производятся на смартфоне, который лежит в кармане у человека, и совсем другое дело, когда вычислительная машина стоит на расстоянии десятков метров на столе у тренера/оператора. Это больше вопрос маркетинга и выбора целевой аудитории комплекса измерения движений. Отмечу только, что в любом случае задача передать данные по назначению может быть решена и для этого есть специализированные аппаратно — программные решения.

Модель тела человека

Пусть данные все-таки дошли по назначению и начинается их обработка. Для проведения расчетов и визуализации движений нам просто необходима математическая модель тела человека. Такая модель должна безусловно учитывать различные длины рук, ног, обхваты талии, груди, то есть различные антропометрические особенности людей. Возможно, такая модель должна также учитывать внутреннее строение организма. Чем сложнее модель, тем труднее, дороже и дольше ее создание. Я лично считаю что модель должна содержать только те элементы, на которые можно надеть чувствительный элемент. То есть если речь идет о руке, то целесообразно составлять ее модель из следующих частей:

  • плечо;
  • предплечье;
  • кисть;
  • пальцы;

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


Конус, как элемент модели тела человека


Полная модель тела человека составленная из конусов

Согласитесь, что модель выглядит довольно узнаваемо. Эта модель была построена в среде Microsoft XNA, для отрисовки конуса использованы библиотеки Primitives3D, найденные на просторах интернета. Для расстановки элементов модели используется математический аппарат матричных вычислений среды XNA.

Немного о вычислениях

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


Структура матрицы в среде XNA

Элементы, выделенные красным цветом, отвечают за поворот, элементы выделенные синим за перемещение, а черные элементы нужны для соблюдения размерности 4х4. Чтобы создать матрицу перемещения, используется метод:

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

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

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

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

q = [W,X,Y,Z],
где W – это косинус половинного угла поворота; X,Y,Z – координаты оси поворота.

Кватернион предпочтительнее матриц поворота, так как матрица содержит 16 чисел, а кватернион только 4, что очевидно экономит время передачи данных и не так сильно загружает канал связи.

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

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

Осталось дело за малым, преобразовать ускорение и угловую скорость в кватернионы. Математический аппарат, который производит такие преобразования составляет святую святых фирм производящих системы измерения движений. Этот аппарат в целом известен, в интернете можно найти даже исходные коды (Open source IMU and AHRS algorithms), но как обычно все сложности кроются в деталях. Поэтому не удивляйтесь, если измерения движения будут содержать ошибки положения. Это связано с ошибками в показаниях датчиков, которые интегрируются и значительно влияют на результат. Также свою долю неточностей вносят ошибки расположения датчиков на теле человека. Неплохое решение предоставляет фирма производитель МЭМС-чипов Invensense, они производят микросхемы, в которые можно загрузить ими же поставляемую библиотеку производящую вычисления. В ранних версиях библиотека представляла собой коды, написанные на С, которые выполнялись на стороннем микроконтроллере. Теперь библиотека – это массив шестнадцатеричных чисел, которые нужно загрузить в микросхему МЭМС после подачи на нее питания. Подобное решение предоставляют и другие фирмы, например Microchip.

После того, как мы рассчитали положение части тела и выразили его в виде кватерниона, необходимо из показаний, относящихся к отдельным частям тела, составить общую модель. Тут-то и пригодится среда XNA и код Primitives3D. Используемая библиотека Primitives3D для перемещения или поворота использует данные в матричном представлении. Поэтому чтобы преобразовать полученные от датчиков кватернионы необходимо воспользоваться встроенной в XNA функцией:

где qi – это кватернион от датчика.

Затем нужно обязательно перенести повернутую часть тела из начала координат в соответствующую точку, где она должна находится, предплечье например «крепится» к локтю. Хотя вы уже видели на картинке полностью «собранное» тело, чтобы оно всегда было в правильном положении после прихода каждого нового кватерниона положение тела нужно рассчитывать заново. Это связано с тем, что библиотека расчета кватернионов выдает кватернион, который связывает положение тела в нулевой момент времени с текущим моментом. Чтобы произвести перенос части тела нужно всего лишь перемножить две матрицы:

Матрица fBaseWorldi постоянно корректируется, потому что если переместилось плечо, то соответственно переместится и локоть. Поэтому в программе после прихода кватерниона для какой-либо части тела следует произвести расчет матриц fBaseWorldi для всех других связанных с нею частей тела. Теги:

  • 3d модели
  • роботы
  • xna
  • мэмс
  • гироскоп
  • акселерометр

Добавить метки Хабы:

  • Разработка игр
Ссылка на основную публикацию
Айдолы кореи девушки
Россиянка Светлана Юдина, переехавшая с Сахалина в Южную Корею, стала первым кей-поп-идолом из России, выступающим на сцене сольно. Правда, там...
Th1 th2 иммунный ответ
Т-хелперы (от англ. helper — помощник) — T-лимфоциты, главной функцией которых является усиление адаптивного иммунного ответа. Активируют Т-киллеры, B-лимфоциты, моноциты,...
Thenx программа тренировок
Основанная безумно талантливым калистеник спортсменом Крисом Херией, программы тренировки Thenx, это больше чем тренировки с собственным весом. Thenx расположен в...
Айронмен лимит времени
Если Вас заинтересовал триатлон, то значит Вы либо бывший спортсмен, не желающий расставаться со спортом, либо человек с амбициями ;)...
Adblock detector