Акселерометр что это такое
Перейти к содержимому

Акселерометр что это такое

  • автор:

Значение слова «акселерометр»

Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать Карту слов. Я отлично умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!

Спасибо! Я стал чуточку лучше понимать мир эмоций.

Вопрос: вериги — это что-то нейтральное, положительное или отрицательное?

Нейтральное
Положительное
Отрицательное

Синонимы к слову «акселерометр&raquo

Предложения со словом «акселерометр&raquo

  • Создаёт объект менеджера датчика, и получает всё датчики, имеющиеся в телефоне, типа акселерометра.

Понятия со словом «акселерометр»

Акселеро́метр (лат. accelero — ускоряю и др.-греч. μετρέω «измеряю») — прибор, измеряющий проекцию кажущегося ускорения (разности между истинным ускорением объекта и гравитационным ускорением). Как правило, акселерометр представляет собой чувствительную массу, закреплённую в упругом подвесе. Отклонение массы от её первоначального положения при наличии кажущегося ускорения несёт информацию о величине этого ускорения.

Отправить комментарий

Дополнительно

  • Как правильно пишется слово «акселерометр»
  • Склонение существительного «акселерометр» (изменение по числам и падежам)
  • Разбор по составу слова «акселерометр» (морфемный разбор)
  • Цитаты со словом «акселерометр» (подборка цитат)
  • Перевод слова «акселерометр» и примеры предложений (английский язык)
  • Definition of «accelerometer&raquo at WordTools.ai (английский язык)

Акселерометр

Акселеро́метр (лат. accelero — ускоряю и др.-греч. μετρέω «измеряю») — прибор, измеряющий проекцию кажущегося ускорения (разности между истинным ускорением объекта и гравитационным ускорением). Как правило, акселерометр представляет собой чувствительную массу, закреплённую в упругом подвесе. Отклонение массы от её первоначального положения при наличии кажущегося ускорения несёт информацию о величине этого ускорения.

По конструктивному исполнению акселерометры подразделяются на однокомпонентные, двухкомпонентные, трёхкомпонентные. Соответственно, они позволяют измерять проекции кажущегося ускорения на одну, две и три оси.

Некоторые акселерометры также имеют встроенные системы сбора и обработки данных. Это позволяет создавать завершённые системы для измерения ускорения и вибрации со всеми необходимыми элементами.

Связанные понятия

Гироско́п (от др.-греч. γῦρος «круг» + σκοπέω «смотрю») — устройство, способное реагировать на изменение углов ориентации тела, на котором оно установлено, относительно инерциальной системы отсчета. Простейший пример гироскопа — юла (волчок).

Диспле́й (англ. display «показывать» от лат. displicare «рассеивать, разбрасывать») — электронное устройство, предназначенное для визуального отображения информации. Дисплеем в большинстве случаев можно назвать часть законченного устройства, используемую для отображения цифровой, цифро-буквенной или графической информации электронным способом.

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

Се́нсорный экра́н — устройство ввода и вывода информации, представляющее собой экран, реагирующий на прикосновения к нему.

Да́тчик углово́й ско́рости (ДУС) — устройство, первичный прибор (датчик) для измерения угловой скорости поворота корпуса летательных аппаратов относительно невращающейся инерциальной системы координат. Используется в системах управления различных летательных аппаратов: ракет, самолётов, вертолётов и др. Выходной сигнал устройства обычно электрический, пропорциональный угловой скорости и используется в пилотажных системах летательных аппаратов, в частности, автопилоте, системах стабилизации траектории.

Упоминания в литературе

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

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

Связанные понятия (продолжение)

Датчик угла поворота (сокр. ДУП) — устройство, предназначенное для преобразования угла поворота вращающегося объекта (вала) в цифровые или аналоговые сигналы, позволяющие определить угол его поворота.

Тачпа́д, се́нсорная пане́ль (англ. touchpad: touch — касаться, pad — подушечка) — указательное (координатное) устройство ввода, предназначенное для управления курсором и отдачи различных команд компьютеру, телефону или другому электронному оборудованию. Ввод осуществляется путём прикосновения одним или несколькими пальцами руки к поверхности тачпада.

Звёздный датчик (англ. star tracker) — прибор в составе космического аппарата, предназначенный для определения ориентации. Является чувствительным элементом системы ориентации космического аппарата.

Пульт ДУ (ПДУ, пульт дистанционного управления; RCU, англ. remote control unit) — электронное устройство для удалённого (дистанционного) управления устройством на расстоянии.

Трекбол (англ. trackball, произносится /ˈtrækˌbɔːl/) — ручное указательное устройство ввода информации для компьютера. Аналогично мыши по принципу действия и по функциям: позволяет вводить информацию об относительном перемещении путём вращения рукой закреплённого в корпусе шара и подавать команды нажатиями на кнопки.

Та́ймер (англ. timer Подробнее: Электронный индикатор

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

Инфракрасный канал — канал передачи данных, не требующий для своего функционирования проводных соединений. В компьютерной технике обычно используется для связи компьютеров с периферийными устройствами (интерфейс IrDA).

Система отслеживания движений головы (жарг. трекер, от англ. to track «отслеживать») — устройство ввода информации для персонального компьютера, преобразующее движения головы пользователя в координаты.

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

Инклинометр (от лат. inclino — наклоняю и …метр) — прибор, предназначенный для измерения угла наклона различных объектов относительно гравитационного поля Земли. Помимо собственно величины угла наклона, может измеряться его направление — азимут.

Исполни́тельное устро́йство (исполнительный элемент, актуа́тор, актюа́тор) — функциональный элемент системы автоматического управления, который воздействует на объект изменяя поток энергии или материалов, которые поступают на объект. Большинство исполнительных устройств имеют механический или электрический выход.Состоит из двух функциональных блоков: исполнительного устройства (если исполнительное устройство механическое, то его часто называют исполнительный механизм) и регулирующего органа, например.

Часы реального времени (ЧРВ, RTC — англ. Real Time Clock) — электронная схема, предназначенная для учёта хронометрических данных (текущее время, дата, день недели и др.), представляет собой систему из автономного источника питания и учитывающего устройства. Чаще всего часы реального времени встречаются в вычислительных машинах, хотя на самом деле ЧРВ присутствуют практически во всех электронных устройствах, которые должны хранить время.

Светово́е перо́ (англ. light pen) — один из инструментов ввода графических данных в компьютер, разновидность манипуляторов.

Ка́рта па́мяти (иногда неправильно флеш-ка́рта) — компактное электронное запоминающее устройство, используемое для хранения цифровой информации. Современные карты памяти изготавливаются на основе флеш-памяти, хотя принципиально могут использоваться и другие технологии. Карты памяти широко используются в электронных устройствах, включая цифровые фотоаппараты, сотовые телефоны, ноутбуки, портативные цифровые аудиопроигрыватели.

Монито́р — устройство, предназначенное для воспроизведения видеосигнала и визуального отображения информации, полученной от компьютера. Принципиальное отличие от телевизора заключается в отсутствии встроенного тюнера, предназначенного для приёма высокочастотных сигналов эфирного (наземного) телевещания. Кроме того, в большинстве мониторов отсутствует звуковоспроизводящий тракт и громкоговорители.

Магнито́метр — (от гр. μαγνητό — магнит + гр. μετρεω измеряю), прибор для измерения характеристик магнитного поля и магнитных свойств материалов. В зависимости от измеряемой величины различают приборы для измерения напряжённости поля (эрстедметры), направления поля (инклинаторы и деклинаторы), градиента поля (градиентометры), магнитной индукции (тесламетры), магнитного потока (веберметры, или флюксметры), коэрцитивной силы (коэрцитиметры), магнитной проницаемости (мю-метры), магнитной восприимчивости.

Ша́говый электродви́гатель — это синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора.

Цифровой проигрыватель (музыкальный плеер, от англ. player, в некоторых случаях «MP3-плеер») — устройство, которое хранит, организовывает и воспроизводит музыкальные/мультимедийные файлы, сохранённые в цифровом виде, на собственную флеш-память, карту памяти, флешку или лазерный диск, в отличие от аналоговых аудиоплееров, которые проигрывают музыку с аналоговых носителей, таких носителей, как пластинки, компакт-кассеты и т. п.

Зарядное устройство (ЗУ; разг. зарядка) — электронное устройство для заряда электрических аккумуляторов энергией внешнего источника; как правило, — от сети переменного тока.

Датчик движения (англ. motion sensor) — сигнализатор, фиксирующий перемещение объектов и используемый для контроля за окружающей обстановкой или автоматического запуска требуемых действий в ответ на перемещение объектов.

Показывающее устройство (англ. indicating device) — совокупность элементов средства измерений, которые обеспечивают визуальное восприятие значений измеряемой величины или связанных с ней величин.

Запомина́ющее устро́йство (ЗУ) — устройство, предназначенное для записи и хранения данных. В основе работы запоминающего устройства может лежать любой физический эффект, обеспечивающий приведение системы к двум или более устойчивым состояниям. Устройство, реализующее компьютерную память.

Карта расширения (от англ. expansion card) — вид компьютерных комплектующих: печатная плата, которую устанавливают в слот расширения материнской платы компьютерной системы с целью добавления дополнительных функций. Платы расширения, необходимые для подключения внешних устройств, могут также называться адаптерами или контроллерами этих устройств.

Беспроводная технология Bluetooth с низким энергопотреблением (англ. Bluetooth Low Energy, Bluetooth LE, BLE, представленная также как Bluetooth Smart) — выпущенная в декабре 2009 года версия спецификации ядра беспроводной технологии Bluetooth, наиболее существенным достоинством которой является сверхмалое пиковое энергопотребление, среднее энергопотребление и энергопотребление в режиме простоя.

Индикатор на лобовом стекле (ИЛС; англ. head-up display, HUD) — устройство отображения информации, предназначенное для отображения символьной и графической информации на лобовом стекле, на фоне закабинной обстановки. Применяется в автомобилях и летательных аппаратах (навигационно-пилотажная и специальная информация).

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

Моноблок (греч. μονος — один) — тип исполнения техники, объединяющий несколько устройств в одном корпусе, применяется для уменьшения занимаемой оборудованием площади, упрощения сборки конечным пользователем, придания эстетического вида.

Наголовный дисплей (англ. Head-mounted display), также распространены вариант шлем виртуальной реальности и очки виртуальной реальности — устройство, позволяющее частично погрузиться в мир виртуальной реальности, создающее зрительный и акустический эффект присутствия в заданном управляющим устройством (компьютером) пространстве. Представляет собой конструкцию, надеваемую на голову, снабженную видеоэкраном и акустической системой.

Курсовертикаль — прибор, поставляющий данные об углах между географической системой координат (ГСК) и связанной системой координат (ССК), начальная точка которой совпадает с начальной точкой ГСК, а оси соответствуют, как правило — Y — продольной оси, Z — вертикальной, X — перпендикулярной им боковой оси транспортного средства, на котором установлена курсовертикаль.

Стереодиспле́й — устройство, предназначенное для отображения информации (дисплей) и создающее у зрителя иллюзию наличия у отображаемых объектов реального объёма и иллюзию частичного или полного погружения в сцену за счёт стереоскопического эффекта.

Бесконтактный датчик, также сенсорный выключатель (англ. proximity sensor) — позиционный выключатель, срабатывающий без механического соприкосновения с подвижной частью (машины). Позиционный выключатель — автоматический выключатель цепей управления, механизм управления которого приводится в действие при достижении подвижной частью машины заданного положения.Отсутствие механического контакта между воздействующим объектом и чувствительным элементом обеспечивает ряд специфических свойств устройства.

Позиционный трекинг (англ. positional tracking) — одна из технологий виртуальной реальности, лежащая в основе взаимодействия человека с виртуальным миром. Предназначена для определения позиции и ориентации реального объекта (например, руки, головы или специального устройства) в виртуальной среде с помощью нескольких степеней свободы. Как правило, трёх координат его расположения (x, y, z) и трёх углов, задающих его ориентацию в пространстве («крен», «тангаж», «рыскание» или углы Эйлера). Определение.

Шагоме́р или педо́метр — механический, электронно-механический или электронный измерительный прибор для подсчёта количества сделанных шагов (или пар шагов) при ходьбе или беге. Нередко функция шагомера вводится в другие портативные устройства, такие как часы, музыкальные плееры и мобильные телефоны.

Полётный контроллер — электронное устройство, управляющее полётом летательного аппарата. Термин применяется к беспилотным летательным аппаратам, в том числе и авиамоделям. Применительно к пилотируемым летательным аппаратам обычно употребляется термин автопилот. Чаще всего термин полётный контроллер относится к управляющим устройствам мультикоптеров.

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

Энергонезависимая память (англ. Non Volatile Random Access Memory; NVRAM) — разновидность запоминающих устройств с произвольным доступом, которые способны хранить данные при отсутствии электрического питания. Может состоять из модуля SRAM, соединённого со своей собственной батарейкой. В другом случае SRAM может действовать в связке с EEPROM, например, флеш-памятью.

Акселерометр = полунавигатор

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

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

Из физики вращательного движения известно, что при вращении по окружности образуется центробежное ускорение. Его модуль определяется формулой (1)

Тут омега — это угловая скорость вращения Земли. T= 24 часа = 86400 секунд

из (1) и (2) получается (3)

Угол между вектором центробежной силы и силой гравитации равен (2)

Для вычисления модуля вектора суммарного ускорения g можно прибегнуть к формуле модуля суммы векторов. Это можно сделать по теореме косинусов.

Квадрат модуля силы тяжести примем равным

именно результат формулы (6) покажет акселерометр

упростив получается формула (8). Предположим что R и T константы.


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

Эту формул (8) можно вообще даже не вычислять, а раcсчитать на фазе компиляции прошивки для каждого градуса и хранить Look Up таблицу в ROM памяти микроконтроллера (секция .rodata).

import math import matplotlib.pyplot as plt import numpy as np T=86400 ; Gg=9.82; pi = math.pi print(pi) R=6356863 phi_deg = np.arange(0,90,1) phi_rad=np.deg2rad(phi_deg) r=R*np.cos(phi_rad) omera = (2*pi/T) a = r*(omera**2) sqrt_arg = Gg**2 +(a**2) - 2*a*Gg*np.cos(2*pi-phi_rad) g1 = np.sqrt(sqrt_arg) #plt.axis([0,90,-0.1,10.1]) plt.title('gravity at different latitudes') plt.grid(True) plt.xlabel('latitude (phi) [deg]') plt.ylabel('Total G [m/c^2]') plt.plot(phi_deg,g1,'r') #plt.plot(phi_deg,a,'b') plt.legend(['g','a'], loc=2) plt.show() 

Задача определения широты сводится к тому, что надо научиться измерять ускорение свободного падания с точностью (9.82-9.78)/90.0 = 0.0004444444444444547 m/c^2. То есть интерес представляют четверные цифры после запятой! Где бы мы не ходили по Земле с акселерометром наши показания в теории будут отличаться только на +/-0.040 m/c^2

Существуют ли такие MEMS акселерометры, которые показывают ускорение с точностью 4 цифры после запятой?

Вот например реальный дешевый MEMS акселерометр LIS3DH за 300 RUR обладает максимальной чувствительностью +/- 0.001g = 0.00982 m/c^2 на разряд. Это значит, что акселерометром LIS3DH можно вычислить широту с точностью +/- 22 градуса. Маловато.
Вот обзор еще нескольких MEMS акселерометров

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

К счастью Земля вращается достаточно медленно. Более того Земля еще и замедляется в своем вращении вокруг своей оси. Это вызвано тем, что Луна вызывает приливы и океаны тем самым тормозят Землю.

Поэтому эффектом неоднородности притяжения вдоль меридианов можно пользоваться пока не поздно.

Достоинства навигации по акселерометру:

++1 Измерение широты происходит мгновенно. Это если измерять g MEMS акселерометром.

Недостатки навигации по акселерометру:

—1 измерительный прибор должен быть статичным

—2 акселерометр должен быть точным и чувствительным.

—3 невозможно измерять координаты акселерометром в море из-за волн.

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

Вывод

Чтобы говорить о измерении широты акселерометром надо акселерометр с точностью 4 цифры после запятой и такие акселерометры есть (IIS2ICLX).

На пороге дополненной реальности: к чему готовиться разработчикам (часть 2 из 3)

Это продолжение (см. часть 1) стенограммы одноименного доклада с конференции ADD-2010.

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

Gyroscope

Итак, первый сенсор — гироскоп.

Вы знаете, что в телефоне есть гироскоп, и вам нужно написать программу, которая обрабатывает с него данные. Сразу вспоминаются какие гироскопы? — ну какие-то такие:

Сильно раскрученное тяжелое тело, на мягких шарнирных подвесах, оно сохраняет, как бы вы не крутили тот предмет, к которому оно подвешено, он сохраняет свое направление, и вы можете померить два угла отклонения относительно локальной системы координат, и понять, как ваше устройство ориентировано. Значит, вроде как, вам должны приходить углы:

  • крен (или тангаж);
  • рыскание;
  • и вот так угол атаки.

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

Понимающий смех в зале

Все дело в том, что вот как выглядит гироскоп, который стоит внутри всех мобильных и тому подобных устройств:

Вот у меня сейчас здесь [показывает WiiMote+WiiMotionPlus, используемый как устройство для презентации] работает, и то, что я показываю — это данные с гироскопа, чтобы указка бегала.

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

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

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

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

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

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

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

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

Accelerometer

Надо с этим что-то делать, в принципе углы можно мерять при помощи акселерометра. Более того, в начале только при помощи его и пытались мерять эти углы.

Что такое акселерометр? Это какой-то грузик, грубо говоря, закрепленный на пружинках, и по отклонению этого грузика, по равновесному положению, мы понимаем, какая сила действует, и мы измеряем это ускорение.

Вот как выглядит этот акселерометр:

На самом деле, что получается меряет акселерометр? У вас есть ускорение свободного падения, есть какое-то собственное ускорение, устройство можно с ускорением двигать.
Соответственно, акселерометр измеряет вот этот вектор, причем в проекции на локальную систему координат устройства:

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

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

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

Проблема акселерометра в чем основная? В том, что он дико шумит. Причем шумит на высоких частотах.

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

  • Первый — это некая магия, которая называется фильтр Калмана.
  • Второй — это так называемый, complimentary filter, на русском точный аналог, это «альфа-бета фильтр».

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

Его используют, например, в самолетах, но там, все физические характеристики самолета давно и хорошо изучены, из-за его аэродинамических и прочих характеристик. Какие же характеристики у телефона, к тому же попавшего в чью-то руку? Его там будут круто крутить, это совершенно странные штуки…

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

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

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

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

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

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

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

Но на самом деле, это не очень такая визуализация, ибо не очень понятно, какие здесь параметры, очень все сильно зависит от параметров. Видно, что этот «альфа-бета», он например, более плавный, может из-за того, что там коэффициент подобран не очень здорово, «Калман» вроде более четкий…

Так вот, этот фильтр, «Калмановский», он зародился в радиолокации, в обработке радиолокационных сигналов, потому что там, вы посылаете волну, она к вам обратно приходит и вы по времени задержки измеряете расстояние, а по эффекту Допплера, который «ви-и-и-у», измеряете скорость. Почти как у нас, только у нас углы, но то же самое, т.е. есть величина и производная величины, замерянные в один момент времени. И дальше там надо максимально эффективно отфильтровать шум, «Калман» придуман для этого. У меня мама занималась всю свою жизнь вторичной обработкой радиолокационных сигналов. Я, уже когда со всем этим разобрался, реализовал этот complimentary filter, спросил у нее:
— А как вы фильтровали? Ты разбираешься в фильтре Кальмана? Можешь мне его объяснить?
— Ой, да, у нас там отдельный институт в Жуковском или еще где-то работал над этими фильтрами Калмана, все защитили кучу диссертаций…
— А как вы подбирали параметры?
— Ну так, чисто экспериментально, на глазок, кое-как…
— Хм, интересно. А другие фильтры, попроще, не пробовали применять?
И тут она мне выдала:
— Ну да, мы под конец использовали простейший «альфа-бета» фильтр, он работает примерно также, а вычислительно намного проще.
Там еще советские вычислительные машины стояли, и этот фильтр Калмана был очень вычислительно дорогой.

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

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

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

Чтобы это рассчитать, у нас есть всего лишь два вектора… разбивается это на самом деле на три случая:

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

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

Т.е. вот, все равно такая вот получается засада.

Magnetic Compass

И тут приходит нам на помощь магнитный компас. Если вы заметили, то многие устройства раньше им не комплектовались, то сейчас они стали бурно в него впихивать, казалось бы — зачем он?

Все помнят, что у нас магнитное поле опоясывает Землю, соответственно мы можем мерить напряженность магнитного поля, и у нас появляется вектор, дополнительный и ортогональный ускорению свободного падения!

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

Вот казалось бы такая простая задачка, но столько геморроя.

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

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

Cameras

Давайте перейдем к камерам…

А почему они не используют уровень, обычный?

Только как его в мобильник запихнуть? Почему бы не использовать обычный гироскоп — раскрутил его и все (сарказм detected).

А уровень можно маленький сделать…

Ну это будет один угол относительно горизонта. И тоже будет сильно фонить, в принципе, вам акселерометр тоже самое и дает, то же самое, что и уровень, если задуматься. Акселерометр это по сути уровень и есть.

… дрифт… тоже может дать, вращение вокруг оси…

Нет, не очень понятно. Уровень никак не отследит это.

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

Намного интересней и инновационней это как раз обработка видеоизображений, которые мы получаем с камер.

To be continued
Благодарности

Еще раз хочу поблагодарить Стаса Фомина (belonesox) за расшифровку стенограммы. Стас, кроме всего прочего, является бессменным председателем Программного Комитета конференций серии Application Developer Days и, на мой взгляд, сделал для этой конференции значительно больше, чем ее непосредственные организаторы, хотя не получает за это ни копейки. Например, на ближайшую конференцию в Питер Стас собрался везти на своем горбу из Москвы кучу дополнительного оборудования (доп. проекторы, мониторы, видео-камеры, всяческие переходники чтобы подключить любой ноутбук к любому проектору или плазме и т.д.) — и всё это ради того, чтобы ему самому не было стыдно за конференцию, к созданию которой он имеет самое непосредственное отношение.

Если вам нравится данный материал, поблагодарите belonesox кармой или/и посетите одно из мероприятий, в организации которого Стас принимает участие.

  • дополненная реальность
  • Augumented Reality
  • акселерометр
  • гироскоп
  • магнитный компас
  • фильтр Калмана
  • альфа-бета фильтр

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *