Back to page
sales@firstlinesoftware.com
firstlinesoftware.ru

Использование MEMS-сенсоров для расчета числа шагов пользователя

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

Рассмотрим возможные способы решения более подробно.  MEMS-сенсоры для шагомеров.

Еще в Древнем Риме для измерения расстояний использовался прибор, изобретенный Марком Витрувием. Этот прибор представлял собой тележку, к оси которой была подсоединена система зубчатых колес, через каждую милю в коробку падал камень, по числу которых и определялся пройденный путь. Современные гаджеты не имеют такого колеса, так что измерять пройденный путь и число шагов они могут лишь косвенно. Единственный способ сделать это — использование данных MEMS (Microelectromechanical systems) датчиков, гироскопов или акселерометров. Методы различных производителей имеют свои закрытые know how, но общий принцип остается неизменным: расчет осуществляется благодаря колебаниям устройства при ходьбе. Рассмотрим один из способов решения этой задачи на примере обработки данных датчика LIS331DLH компании STMicroelectronics.

Исходные данные
Датчик LIS331DLH представляет собой 3х-осевой акселерометр, позволяющий получать данные по 3м осям (x, y и z). Для примера рассмотрим график данных, получаемых с оси Х акселерометра, при ходьбе пользователя:

Снимок-экрана-2014-02-11-в-15.36.41-1024x219

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

Снимок-экрана-2014-02-11-в-15.56.23-copy

Нетрудно заметить, что даже в таком идеальном случае, линия не является абсолютно прямой.

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

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

Снимок-экрана-2014-02-11-в-15.46.45-copy-1024x229

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

В качестве еще одного примера реализации можно привести другой метод — вычисление угла между векторами ускорения текущего и предыдущего значений. Т.к. данные с акселерометра приходят в равные моменты времени, по углу между двумя значениями можно судить об угловой скорости наклона устройства. Угол между векторами расчитывается по известной формуле:
Снимок-экрана-2014-02-11-в-16.12.53

Очевидно, что неподвижному устройству (разница углов = 0) соответствует значение 1 на оси графика, чем больше отклонение, тем больше изменение угла. Эти данные неплохо кореллируют с шагами пользователя, как можно видеть на следующем графике:

Снимок-экрана-2014-02-11-в-16.08.57-1024x242

Однако следует заметить большую чувствительность алгоритма к шумам, что видно в некоей «раздробленности» пиков.

Возможные модификации алгоритмов
Очевидно, каждый алгоритм не является идеальным. На качество распознавания числа шагов влияет большое число как известных (например, шум акселерометра), так и трудно предсказуемых параметров. Даже место расположения носимого устройства (на руке, в кармане одежды, брюк и пр) сильно влияет на получаемые результаты. Для примера можно сказать, что все из протестированных программ-шагомеров для смартфонов iOS и Android дали различные показатели, аналогичная ситуация была и со специализированными устройствами (Nike, Fitbit и др).

Существует несколько способов улучшения получаемых данных:

Что касается «железа», то для улучшения качества работы могут использоваться датчики большей точности (например, хорошие результаты дают MPU-6000, специально созданные для смартфонов и носимых устройств), но к сожалению, для устройств уже выпущенных на рынок, изменение их аппаратные характеристики уже невозможно.

Интересно отметить решение от Apple — использование отдельного motion-сопроцессора Apple M7. Все алгоритмы, подобные вышеописанным, имеют один недостаток: они требуют постоянной работы приложения для подсчета данных, что при работе на смартфоне негативно сказывается как на расходе батареи, так и на общей загрузке ОС. Поэтому инженеры Apple пошли по вполне логичному пути — вынесению подобных расчетов в отдельный ARM Cortex-M3-совместимый сопроцессор, который может самостоятельно вычислять, хранить и обрабатывать данные, выдавая их приложению по необходимому запросу. Данные этого процессора доступны для разработчиков iOS с помощью Core Motion Framework. Пользователю доступны такие функции, как Motion Activity (определение вида движения — ходьба, бег, движение в автомобиле) и Step Counter (подсчет числа шагов), причем пользователь может не только видеть текущие данные, но и запросить данные за определенные периоды времени.

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

Дмитрий Елисеев


About Us

First Line Software is a premier provider of custom software development, technology enablement services and value-add consulting in big data engineering, digitalization, intellectual integration, industrial Internet, and IoT, digital media and marketing, and enterprise content management as well as healthcare IT.

Headquartered in the US, First Line employs 500+ staff globally. First Line team and company culture is centered around subject matter expertise, technical excellence, consulting capabilities and proven methodologies, with a strong focus on Agile and Intellectual Integration.

The company has been recognized with multiple annual rankings and awards by the International Association of Outsourcing Professionals (IAOP), Global Services, CorporateLiveWire, Insights Success and CNews. We were the first to be awarded the Scrum Capability Medallion by Scrum, Inc. Most recently, research firm Gartner included FirstLine in their first ever Market Guide for Technology Integrators (2014) and the Cool Vendor in Applications Services 2015 Report. We are active members in Object Management Group and Industrial Internet Consortium. FLS is also an EPiServer Premium Solutions Partner.