Научная статья на тему 'Исследование алгоритмов фильтрации акселерометров на базе аппаратно-программных средств Arduino'

Исследование алгоритмов фильтрации акселерометров на базе аппаратно-программных средств Arduino Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
840
145
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
мехатроника / корсет / Arduino / «Ардуино» / фильтр Калмана / экспоненциальный фильтр / медианный фильтр / фильтр нижних частот (ФНЧ) / арифметическое скользящее среднее. / mechatronics / corset / Arduino / Kalmanfilter / exponentialfilter / medianfilter / low-pass filter (LPF) / simple moving average.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Евстюхин Н. С., Лысенко А. Ф.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Евстюхин Н. С., Лысенко А. Ф.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

STUDY OF FILTRATION ALGORITHMS OF ACCELEROMETERS BASED ON ARDUINO

The mechatronic corset-reclinator system requires a stabilization system. The paper presents the assembled experimental setup based on Adruino software and hardware complex. The study of algorithms for filtering the signals of accelerometers was conducted. According to the results of the study, there have been identified two filters, attention on which will be focused in the future.

Текст научной работы на тему «Исследование алгоритмов фильтрации акселерометров на базе аппаратно-программных средств Arduino»

г(шУ

i \QQ/ *

УДК 681.5.015.8

ИССЛЕДОВАНИЕ АЛГОРИТМОВ

UDC 681.5.015.8

STUDY OF FILTRATION ALGORITHMS OF

ФИЛЬТРАЦИИ АКСЕЛЕРОМЕТРОВ НА ACCELEROMETERS BASED ON ARDUINO БАЗЕ АППАРАТНО-ПРОГРАММНЫХ СРЕДСТВ ARDUINO

Корсет-реклинатор, будучи мехатронной The mechatronic corset-reclinator system requires системой, требует стабилизации. В рамках a stabilization system. The paper presents the представленной работы была собрана assembled experimental setup based on Adruino экспериментальная установка на базе software and hardware complex. The study of программно-аппаратного комплекса Arduino. algorithms for filtering the signals of Проведено исследование алгоритмов accelerometers was conducted. According to the фильтрации сигналов акселерометров. По results of the study, there have been identified two результатам исследования определены два filters, attention on which will be focused in the фильтра, которые станут объектами future. дальнейших исследований.

Ключевые слова: мехатроника, корсет, Keywords: mechatronics, corset, Arduino, Arduino, «Ардуино», фильтр Калмана, Kalman filter, exponential filter, median filter, экспоненциальный фильтр, медианный фильтр, low-pass filter (LPF), simple moving average. фильтр нижних частот (ФНЧ), арифметическое скользящее среднее.

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

Целью исследования является разработка алгоритмов фильтрации сигналов акселерометра на базе программно-аппаратного комплекса Arduino. Задачи исследования:

— сборка экспериментального стенда;

— написание программы для получения, обработки и вывода на экран данных, полученных с двух плат датчиков;

— поиск ошибок в алгоритмах фильтрования;

— исследование алгоритмов фильтрации сигналов.

Сборка экспериментального стенда. Экспериментальная платформа для создания системы стабилизации собрана на базе программно-аппаратного комплекса Arduino, ввиду ее

Евстюхин Н. С., Лысенко А. Ф.

Донской государственный технический

университет, Ростов-на-Дону, Российская

Федерация

nik74000@yandex.ru

aflysenko@gmail.com

Evstyukhin N. S., Lysenko A. F.

Don State Technical University, Rostov-on-Don, Russian Federation

nik74000@yandex.ru aflysenko@gmail.com

\(Ш))

i \QQ/ *

распространенности, доступности разнообразных датчиков, простоты написания кода и обширной базы библиотек.

Датчики представлены двумя платами GY-521 с распаянными на них МРиб050. Схема подключения датчиков выглядит следующим образом (рис. 1).

Рис. 1. Схема подключения GY-521 к Arduino Uno R3 Назначение контактов подключения датчиков описано в табл. 1.

Таблица 1

Назначение контактов подключения

Контакт подключения Назначение

VCC +5 В

GND Заземление

SCL Линия тактирования (clock line)

SDA Линия данных (data line)

AD0 Переключатель адреса

Контакт А00 используется для переключения адресов (0*68 и 0*69) при одновременной работе двух плат. В рамках эксперимента датчики располагаются в подмышечных впадинах. Полученные таким образом сигналы позволяют понять, как движется туловище при ходьбе и плавных наклонах.

Написание программы. При разработке программы учитывалось получение данных с двух плат датчиков одновременно, т. е. речь идет о написании двух одинаковых программ. На рис. 2 представлены результаты работы программы с предварительными, необработанными данными.

а)

б)

Рис. 2. Сигналы, получаемые: в спокойном положении (а); при взаимодействиях с датчиками (б)

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

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

= а х + (1 - а) х 5{-1, (1)

где — сглаженный ряд; — входное значение; а — коэффициент фильтра, варьирующийся от 0 до 1.

На рис. 3 представлены графики работы программы при коэффициенте а, равном 0,135. Верхние графики отражают работу фильтра в спокойном положении датчиков, нижние — в активном (при плавных наклонах туловища и ходьбе).

Рис. 3. Графики работы экспоненциального фильтра при а = 0,135

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

Фильтр нижних частот. Фильтр нижних частот (ФНЧ) — электронный фильтр, эффективно пропускающий частотный спектр сигнала ниже некоторой частоты (частоты среза) и подавляющий более высокие частоты [2]:

Р = (1 - К) х Р + К х Р0, (2)

где Р — обработанный фильтром сигнал; Р0 — входное значение; К — коэффициент фильтра, варьирующийся от 0 до 1.

Несмотря на хорошую фильтрацию плавных движений (рис. 4), ФНЧ не позволяет

пш

m

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

Рис. 4. Графики работы ФНЧ при K = 0,05

Скользящее среднее. Простое скользящее среднее, или арифметическое скользящее среднее (англ. simple moving average, англ. SMA), равно среднему арифметическому значений исходной функции за установленный период [1] и вычисляется по формуле [3]:

SMAt = Pt+Pt-1+7Pt-("-1) = ^Г=оЧ-1. (3)

Здесь SMAt — значение простого скользящего среднего в точке t; п — количество значений исходной функции для расчета скользящего среднего (сглаживающий интервал); pt-1 — значение исходной функции в точке t - i. Чем шире сглаживающий интервал, тем более плавным получается график функции.

Полученное значение простой скользящей средней относится к середине выбранного интервала [4], однако традиционно его относят к последней точке интервала [3].

б)

Рис. 5. Графики работы фильтра «Скользящее среднее»: в спокойном состоянии (а), при ходьбе (б)

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

Фильтр Калмана. Фильтр Калмана оценивает вектор состояния динамической системы,

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

Алгоритм работает в два этапа. На этапе прогнозирования фильтр Калмана экстраполирует значения переменных состояния, а также их неопределенности. На втором этапе по данным измерения, полученного с некоторой погрешностью, результат экстраполяции уточняется. Благодаря пошаговой природе алгоритма, он может в реальном времени отслеживать состояние объекта (используя только текущие замеры и информацию о предыдущем состоянии и его неопределенности) [4, 5]:

К„ =

Р- + Я'

хк = хк + Кк (гк — х-), Рк = (1 - Кк) х Р-к,

где Р- — предварительная оценка ковариации ошибки; Я — ковариация шума измерения; хк — оценка сигнала; хк — предварительная оценка сигнала в момент I = 0 (текущее состояние); Кк — усиление Калмана; гк — измеренный сигнал.

Отмечается удовлетворительная фильтрация как спокойных, так и плавных сигналов. При увеличении коэффициента Б ходьба становится менее различимой, проявляется пилообразность сигналов. Предпочтительны значения Б, близкие или равные 0,08 (рис. 6).

Рис. 6. Графики работы фильтра Калмана при Б = 0,08

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

Медианный фильтр показал наилучшее сглаживание сигналов из всех рассмотренных (рис. 7).

Рис. 7. Графики работы медианного фильтра

\(Ш))

I \QQ/ *

Пилообразность отсутствует. Ходьба и плавные движения легко различимы.

Моделирование в V-Rep. Чтобы определить корректность написанного кода фильтров и выводимых величин, в программном пакете V-Rep разработана демонстрационная сцена [7]. Смоделированы движения туловища и рук человека. Стандартные модели, представленные в программе, не соответствовали требованиям, поэтому авторы данной работы использовали модели туловища и рук человека V-Rep «Bill». Их степени свободы полностью удовлетворяют требованиям моделирования, выполняемого в рамках представленного исследования. Готовая сцена показана на рис. 8.

Рис. 8. Готовая сцена в У-Яер

На рис. 9-10 представлены результаты работы сцены. Моделирование проведено успешно, модели полностью отражают реальные параметры наклона туловища. Фильтрация сигналов на базе Агёшпо написана верно и работает в точности, как требовалось.

Рис. 10. Наклон туловища вперед

\(Ш))

i \QQ/ *

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

Экспоненциальный фильтр не дает удовлетворительных результатов. При изменении коэффициентов отмечается значительная пилообразность.

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

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

Рекомендовано интегрирование медианного фильтра в фильтр Калмана для получения наилучших результатов фильтрации сигналов акселерометра и последующего его использования в системе стабилизации мехатронного корсета-реклинатора.

В среде V-Rep была собрана модель человеческого туловища с руками. Написана программа считывания и обработки сигналов, получаемых с последовательного порта Arduino. Проведенное моделирование показало, что фильтрация сигналов акселерометров проходит по плану, а модель в V-Rep соответствует реальному положению тела с минимальными погрешностями.

Библиографический список

1. Грешилов, А. А. Математические методы построения прогнозов / А. А. Грешилов, В. А. Стакун, А. А. Стакун. — Москва : Радио и связь, 1997. — 74 с.

2. Low-pass filters [Электронный ресурс] / EEPower.com [et al.]. — Режим доступа https://www.allaboutcircuits.com/textbook/alternating-current/chpt-8/low-pass-filters/ (дата обращения : 29.06.19).

3. Булашев, С. В. Статистика для трейдеров / С. В. Булашев. — Москва : Спутник+, 2003. — 245 с.

4. Rhudy, M. B. A Kalman filtering tutorial for undergraduate students [Электронный ресурс] // M. B. Rhudy, R. A. Salguero, K. Holappa // International Journal of Computer Science & Engineering Survey. — 2017. — Vol. 8, № 1. — Режим доступа https://www.researchgate.net/publication/314302338_A_Kalman_Filtering_Tutorial_for_Undergraduate_ Students (дата обращения : 29.06.19).

5. Esme, В. Kalman Filter For Dummies [Электронный ресурс] / В. Esme. — Режим доступа: http://bilgin.esme.org/BitsAndBytes/KalmanFilterforDummies (дата обращения : 29.06.19).

6. Median Filter [Электронный ресурс] / R. Fisher [et al.]. — Режим доступа: http://homepages.inf.ed.ac.uk/rbf/HIPR2/median.htm (дата обращения : 29.06.19).

7. V-REP. Virtual robot experimentation platform [Электронный ресурс] / Coppelia Robotics. — Режим доступа: http://coppeliarobotics.com/ (дата обращения : 29.06.19).

i Надоели баннеры? Вы всегда можете отключить рекламу.