Модуль imu что это
Inertial measurement unit — терминология
Виды инерциальных модулей
IMU (inertial measurement unit)
Первое, с чего бы хотелось начать, это самое распространенное и обобщенное название – IMU (inertial measurement unit). По-русски – инерциальный измерительный блок, то есть набор чувствительных элементов (гироскопов и акселерометров), фиксирующих инерциальные воздействия. По сути, все инерциальные системы и модули включают в себя IMU, так как это прежде всего элементная база.
VRU (vertical reference unit)
Второе – это VRU (vertical reference unit), инерциальный модуль, имеющий микроконтроллер и алгоритмы, считающие ориентацию. Может применятся для стабилизации какого-то аппарата, робота, антенны и т.д.
AHRS (Attitude Heading Reference System)
Третье – это AHRS (Attitude Heading Reference System). К IMU добавляется магнитометр и алгоритмы ориентации. Таким образом, устройство считает ориентацию и магнитный курс, основываясь на данных магнитометра.
GNSS/INS (Inertial navigation system)
Ну и GNSS/INS (инерциальная навигационная система). К данному классу устройств относятся полноценные навигационные системы. Добавляется один или два ГНСС приемника и навигационные алгоритмы, выдающие готовое решение – истинный курс, который вычисляется основываясь на данных со спутника. Система определяет скорость, местоположение и ориентацию – все это возможно, благодаря более мощному вычислителю (микроконтроллеру).
Различия между инерциальными устройствами (IMU->VRU->AHRS->INS)
Inertial measurement unit от Лаборатории Микроприборов
Линейка ГКВ на данный момент включает в себя 5 продуктов: ГКВ 5/10, ГКВ 6/11, ГКВ 12.
Компании-разработчики редко сортируют продукцию строго по категориям, представленным на схеме. Как правило, современные инерциальные модули имеют смешанные типы. К примеру, часто встречается IMU+магнитометр без алгоритмов, VRU в чистом виде редко попадается на рынке, но настоящим бриллиантом и вершиной здесь считаются полноценные решения INS: они включают в себя много корректоров — магнитометр, барометр, ГНСС. ИНС обладают большими вычислительными мощностями, эти системы универсальны, так как посредством адаптированного встроенного ПО могут выполнять большое количество задач и применяться во многих отраслях.
Inertial navigation system серии ГКВ
ГКВ 5/10 – это инерциальные навигационные системы, которые не имеют встроенного ГНСС приемника. По задумке они ориентированы на проекты, в которых используется внешний ГНСС модуль. Таким образом, данные ГНСС поступают в ГКВ, обрабатываются в совокупности с инерциальными данными, информацией с барометра, прочих корректоров и на выходе мы получаем истинный курс, готовое навигационное и позиционное решение.
IMU-сенсор 10-DOF v2: инструкция, схемы и примеры использования
Используйте IMU-сенсор (от англ. Inertial Measurement Unit — Инерционное измерительное устройство) для определения положение вашего девайса в пространстве.
Видеообзор
Принцип работы
IMU-модуль на 10 степеней свободы включает в себя четыре отдельных сенсора:
Показания акселерометра, гироскопа и магнитометра можно использовать как входные данные для фильтра Маджвика, Махони или Калмана, для определения положение вашего девайса в пространстве через кватернионы.
Кватернионы «сильный» инструмент для выполнения вычислений по ориентации объекта в пространстве, но им не хватает наглядности. Поэтому полученные кватернионы из фильтра удобнее представить в самолётных углах Эйлера: Pitch, Roll и Yaw
В фильтре Маджвика реализовано два варианта определение ориентации объекта в пространстве.
В связи с искажениями от внешних магнитных полей, откалибруйте магнитометр для работы в режиме электронного компаса.
Пример работы для Arduino и XOD
В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии Arduino, например, Uno.
На аппаратном уровне инерционный модуль общается с управляющей электроникой по шине I²C. Но не переживайте о битах и байтах: используйте библиотеку TroykaIMU и на выходе получите готовы данные.
Схема устройства
Подключите IMU-сенсор к пинам питания и шины I²C — SDA и SCL на платформе Uno. Для коммуникации используйте соединительные провода «мама-папа»
Для быстрой сборки и отладки устройства возьмите плату расширения Troyka Shield, которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте трёхпроводной шлейф «мама-мама», который идёт в комплекте с датчиком.
С Troyka Slot Shield провода не понадобятся вовсе.
Вывод показателей сенсоров
В качестве примера выведем в Serial-порт следующие данные:
Ориентация объекта без азимута
Определим ориентацию объекта в пространстве без учёта направления на север. Для этого показания акселерометра и гироскопа используем как входные данные для фильтра Маджвика. На выходе получим кватернион, который для наглядности пересчитаем в самолётные углы Эйлера.
Ориентация объекта c азимутом
Определим ориентацию объекта в пространстве с учётом направления на север. Для этого показания акселерометра, гироскопа и компаса используем как входные данные для фильтра Маджвика. На выходе получим кватернионы, которые для наглядности пересчитаем в самолётные углы Эйлера.
Визуальное отображение объекта в пространстве
Для наглядности приведём пример отображение IMU-сенсора в пространстве в виде самолёта. Для запуска примера необходимо прошить платформу Arduino кодом ниже и настроить графическую среду Processing.
IMU-сенсор на 10 степеней свободы v1 (Troyka-модуль)
«Где я?» — такой вопрос хотя бы раз задавал себе каждый. Опытный моряк смог бы определить это по звёздам. А вот вашему квадрокоптеру или мобильному роботу для верного ответа необходим целый набор измерительных устройств. IMU-сенсор на 10 степеней свободы поможет вашему умному устройству найти себя!
Для решения этой задачи мы расположили на плате 4 микросхемы от STMicroelectronics:
Каждая микросхема имеет встроенный датчик температуры. Это позволит добиться точной работы датчиков даже в экстремальных условиях. Общение модуля с управляющей электроникой, такой как Arduino, происходит по протоколу I²C / TWI. А это значит, что для подключения вам понадобится всего два контакта.
Мы поместили на модуль регулятор напряжения и специальный I²C-буфер. Поэтому вы смело можете использовать его с управляющей электроникой напряжением 3,3…5 В.
Подключение
Подключение этого Troyka-модуля отличается от стандартного: он имеет два трёхконтактных разъёма. Один разъём используется для подачи напряжения. Другой — для подключения к шине I²C. Два трёхпроводных шлейфа для подключения включены в комплект.
При подключении к Arduino будет крайне удобно использовать Troyka Shield.
Возьмите Troyka Slot Shield и избавьтесь от проводов — два комплекта ножек надёжно фиксируют модуль на шилде.
Также модуль физически совместим с breadboard’ом.
Новые инерциальные датчики IMU семейства iSensor
Введение
Датчики ускорения и гироскопы, выпускаемые фирмой Analog Devices, хорошо известны в России. Эти приборы созданы с помощью технологии iMEMS, позволяющей изготавливать микромеханические устройства и электронные схемы на одном кристалле, в ходе единого технологического процесса.
Эти датчики обладают компактными размерами и низким энергопотреблением. Их себестоимость, а значит, и цена, стремительно снижается. Благодаря этому приборы iMEMS находят применение в портативных устройствах с батарейным питанием, что позволяет воплотить инженерные идеи, которые невозможно было реализовать с помощью доступных ранее датчиков. Гироскопы и акселерометры в течение последнего десятилетия стали привычным элементом в автомобильных системах управления движением, безопасности и навигации. Сейчас стремительно расширяется применение таких датчиков в портативной, в том числе потребительской электронике: в фотоаппаратах и видеокамерах для стабилизации изображения, в летающих авиамоделях и беспилотных летательных аппаратах для управления динамикой полета и стабилизации, в смартфонах, сотовых телефонах, карманных компьютерах и игровых телевизионных приставках в качестве элемента интерфейса управления. Так, например, датчики фирмы Analog Devices применены в популярной игровой консоли Nintendo Wii.
В настоящее время фирма Analog Devices сфокусировала значительные ресурсы на разработке линейки высококачественных многоосевых датчиков инерциальной навигации семейства ADIS16xxx. Эта линейка приборов включает в себя индивидуальные датчики, а также приборы, объединяемые под названием «Инерциальные измерительные модули» (Inertial Measurement Units, IMUs).
В данной статье мы познакомим читателей с новой продукцией в данной области. Но прежде чем мы перейдем к рассмотрению конкретных представителей данного семейства, хотелось бы дать некоторые пояснения по принципам их работы и применения.
Некоторые пояснения и советы для инженеров, применяющих датчики iMEMS
Акселерометры и инклинометры
Акселерометры, входящие в состав модулей IMU, как и остальные акселерометры, выпускаемые фирмой Analog Devices, могут применяться для измерения ускорения, ударов, вибрации и т. п. Они также используются в качестве измерителей угла наклона (инклинометров): в этом случае полученный с датчика сигнал пропорционален величине проекции вектора силы тяжести на ось чувствительности. Другими словами, сигнал на выходе инклинометра пропорционален синусу угла наклона, если за нулевой угол принять то положение, при котором ось чувствительности акселерометра горизонтальна. Если инклинометр работает при малых углах наклона (скажем, порядка не более ±5°, рис. 1), то ускорение прямо пропорционально углу наклона, и пересчет величины измеренного сигнала в угол наклона сводится к умножению на постоянный коэффициент. При б0льшем наклоне для пересчета сигнала ускорения в угол наклона придется воспользоваться аппроксимирующим полиномом или применить табличный способ пересчета — в общем, так или иначе реализовать вычисление арксинуса. При вертикальном расположении оси чувствительности характеристика инклинометра становится слишком пологой (график на рис. 1 в области 80-90°). Поэтому если предполагается, что инклинометр будет работать в широких диапазонах угла наклона относительно горизонта, лучше использовать двух-осевой акселерометр. Впрочем, существуют приборы ADIS16201 и ADIS16203, в которых вышеупомянутые проблемы решены и которые автоматически производят вычисления и выдают цифровой код, соответствующий углу наклона. При этом единица младшего разряда кода соответствует углу 0,025°. Это двухосевые приборы. Но если объект может наклоняться в любую сторону, необходимо использовать трехосевой прибор.
Датчики линейного ускорения реагируют на линейное ускорение своего корпуса по отношению к свободно падающему телу и используются для измерения этого кажущегося ускорения основания, на котором они установлены. Таким образом, на чувствительный элемент прибора действует сумма сил, вызванных притяжением Земли, и динамической составляющей движения основания.
В службу технической поддержки Analog Devices довольно регулярно приходят запросы, подобные следующим: «Нам нужен такой акселерометр, чтобы реагировал только на динамическое ускорение и не реагировал на силу тяжести» или «Мы собираемся использовать акселерометр в качестве инклинометра, и нам надо, чтобы он не реагировал на тряску и вибрацию». Важно понимать, что сам по себе датчик не обеспечивает решение каждой упомянутой задачи. Отделить ускорение основания от ускорения силы тяжести можно путем построения измерительного модуля, включающего помимо акселерометров датчики угловых перемещений основания, обеспечивающих определение ориентации корпуса в пространстве. Алгоритмы работы таких модулей рассматриваются в специальной литературе по системам инерциальной навигации.
При использовании акселерометра в качестве инклинометра необходимо использование алгоритмов обработки, обеспечивающих фильтрацию шумовой составляющей сигнала. Это могут быть различные фильтры низких и высоких частот, как аналоговые, так и цифровые, а также механическое демпфирование чувствительного элемента инклинометра.
Гироскопы
Гироскопы фирмы Analog Devices устроены таким образом, чтобы реагировать на вращение, но игнорировать линейное ускорение. Компенсация линейного ускорения осуществляется простым инженерным решением: в качестве датчика используются две одинаковые микромеханические колебательные системы — две рамки, возбуждаемые в противофазе. Эти рамки колеблются с частотой порядка 14 кГц.
При вращении всего прибора на колеблющиеся рамки действует сила Кориолиса, сдвигающая их в противоположных направлениях. Но при воздействии на прибор линейного ускорения обе рамки сдвигаются в одном направлении. В измерительной дифференциальной схеме синфазные сигналы складываются, а противофазные вычитаются. Это позволяет отличить угловую скорость от линейного ускорения.
Обращаем ваше внимание, что гироскопы Analog Devices на выходе дают сигнал скорости вращения (аналоговый или в модулях IMU — цифровой). То есть при постоянном равномерном вращении прибор будет выдавать постоянный сигнал (или код), плюс, разумеется, некоторый небольшой шум.
Так как гироскопы Analog Devices являются датчиками угловой скорости, они не могут непосредственно выдавать сигнал угла, направления, азимута. Для получения такого сигнала необходимо интегрировать сигнал угловой скорости. Ошибка при интегрировании накапливается довольно быстро, но тем не менее датчики угловой скорости широко применяются в таких приложениях, конечно, если есть возможность «обнулять» такой гирокомпас достаточно часто, не реже чем раз в несколько минут. Среди примеров применения можно назвать поддержку навигацион-ных систем GPS или ГЛОНАСС, установленных на автомобилях. В случае потери сигнала со спутника система GPS/GLONASS теряет возможность отслеживания местоположения. Однако в такой системе можно применить датчик угловой скорости с интегрированием сигнала и, исходя из текущего значения угла и пройденного автомобилем расстояния, обеспечивать достаточно точное позиционирование в течение нескольких минут, до возобновления приема сигнала со спутников.
Датчики-модули семейства IMU
Датчики семейства IMU (таблица) представляют собой гибридные модули размером 23·23·23 мм с разъемом на небольшом гибком шлейфе. Эти модули сочетают в себе три ортогонально расположенных датчика угловой скорости и три датчика ускорения и позиционируются как «инерциальные датчики с 6 степенями свободы». Все приборы семейства IMU имеют высокую степень интеграции и расширенные функциональные возможности: дополнительные встроенные аналого-цифровые и цифро-аналоговые преобразователи, средства термокомпенсации, в том числе встроенные датчики температуры с цифровым выходом. Имеются также встроенные средства автотестирования и калибровки.
Таблица. Характеристики датчиков семейства IMU
Наиболее высоко интегрированные приборы ADIS16400 и ADIS16405 оснащены также датчиками магнитного поля, и эти приборы можно использовать в качестве магнитных компасов. Датчики обладают пониженным уровнем шумов. Обмен данными и управление осуществляется посредством интерфейса SPI.
Эти новые датчики будут, пожалуй, особенно интересны тем, кто занимается стабилизацией платформ, но, в общем, они могут применяться везде, где требуется анализ движения, управление динамикой движения и навигация.
Семейство сейчас очень успешно применяют в устройствах, где сочетается инерциальная навигация с системами GPS или ГЛОНАСС: в сельскохозяйственной технике, строительной, горнодобывающей, картографическом оборудовании, логистике и управлении. Эти приборы применяются как для сохранения навигации при пропадании сигнала со спутника, так и для коррекции положения антенны.
В пределах семейства ADIS1636x датчики совместимы друг с другом, что упрощает процесс выбора оптимального из нескольких предлагаемых вариантов.
Далее мы рассмотрим наиболее интересные приборы.
ADIS16362
Рис. 2. Структурная схема типичного инерциального датчика IMU с 6 степенями свободы.
ADIS16400
ADIS16400 — функционально законченный инерциальный датчик (рис. 3), включающий в себя трехосевой гироскоп с диапазонами ±75, ±150 и ±300 °/с; трехосевой акселерометр с диапазоном ±18g; трехосевой магнитометр с диапазоном ±2,5 Гс и внутренний датчик температуры. Прибор обеспечивает 14-разрядные данные угловой скорости, ускорения и магнитного поля по всем трем осям и 12-разрядные данные температуры, напряжения питания и напряжения на дополнительном аналоговом входе. Дополнительный ЦАП обеспечивает выходное напряжение с 12-разрядным разрешением и полной шкалой 3,3 В. Устройство полностью калибровано по чувствительности, смещению, ортогональности осей и линейности. Датчик имеет также функции автотестирования, управления питанием и может подавать сигналы оповещения. Обмен данными и управление осуществляется посредством интерфейса SPI.
Рис. 3. Структурная схема инерциального датчика со встроенным магнитометром
ADIS16367
Заключение
Помимо упомянутых в статье приборов, фирма Analog Devices планирует в ближайшее время начать предоставлять образцы ADIS16385. Это прибор с очень высокой стабильностью смещения гироскопа (в 4 раза лучше по сравнению с остальными представителями семейства).
В 2010 году планируется начать выпуск еще нескольких улучшенных приборов этой серии.
Чтобы более обстоятельно познакомиться с гироскопами и акселерометрами фирмы Analog Devices, а также с их техническими описаниями, рекомендуем воспользоваться ссылкой [4].
IMU-сенсор на 9 степеней свободы (Trema-модуль V2.0)
Общие сведения:
Видео:
Спецификация:
Все модули линейки «Trema» выполнены в одном формате
Подключение:
Модуль удобно подключать 3 способами, в зависимости от ситуации:
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.
Модуль можно подключить к любому из I2C входов Trema Set Shield.
Используя 4-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Питание:
Входное напряжение питания 3,3 В, или 5 В постоянного тока, подаётся на выводы Vcc и GND модуля.
Подробнее о модуле:
Специально для Trema-модуля IMU 9 DOF нами разработана библиотека iarduino_Position_BMX055, которая значительно упрощает процесс получения данных с модуля.
Библиотека способна работать как со всеми датчиками сразу, так и по отдельности. В библиотеке имеются функции аппаратного самотестирования и калибровки датчиков, есть возможность выбора диапазонов измерений, частоты обновлений и единиц измерений выводимых данных. В библиотеку интегрированы фильтры Маджвика (по умолчанию) и Махони (можно выбрать).
Подробнее про установку библиотеки читайте в нашей инструкции..
Дополнительная информация по работе с модулем:
Показания всех датчиков можно использовать как входные данные для фильтра Маджвика, Махони, Калмана, или др., для получения кватернионов абсолютной ориентации устройства, из которых рассчитываются углы Эйлера («крен», «курс» и «тангаж»). Некоторые фильтры позволяют получать кватернионы используя данные только первых двух датчиков (без магнитометра), из которых так же можно рассчитать углы Эйлера, но угол «курс» будет не истинным, а рассчитанным, он будет указывать не на север, а на изначальное направление датчика.
Примеры:
Самотестирование всех датчиков модуля:
Во время самотестирования модуль должен находиться в неподвижном состоянии. Если все датчики модуля работают и их показания не выходят за допустимые пределы, то в мониторе последовательного порта появится надпись «Аппаратное самотестирование всех датчиков успешно пройдено!».
Определение положения модуля в пространстве:
Если в начале данного скетча объявить константу BMX055_DISABLE_BMM, то библиотека не будет работать с магнитометром. В таком случае углы Эйлера будут получены только от акселерометра и гироскопа, при этом угол «курс» будет указывать не на север, а на то направление, куда был ориентирован модуль при старте:
Код данного скетча отличается от предыдущего только наличием строки #define BMX055_DISABLE_BMM, в начале скетча.
Получение данных с каждого датчика по отдельности в одном скетче:
В этом скетче мы создали 3 объекта (sensorA, sensorG и sensorM), указав каждому объекту работать со своим датчиком. Далее для каждого объекта была вызвана функция read(), которая сохранила данные в переменных (axisX, axisY, axisZ и temp) для своего объекта.
Получение данных с акселерометра:
Этот скетч выводит только данные углового ускорения по осям XYZ в монитор последовательного порта. Данный скетч идентичен предыдущему, за исключением того, что в нём исключены все строки в которых присутствовали объекты sensorG и sensorM (объявленные для работы с гироскопом и магнитометром). Аналогичным образом можно вывести показания только гироскопа, или только магнитометра.
Получение данных с акселерометра с увеличением его диапазона измерений:
Код данного скетча отличается от предыдущего только тем, что в конце кода setup вызываются функции setScale() и setFastOffset (), устанавливающие новый диапазон измерений и калибровку. Чем шире установленный диапазон измерений, тем меньше точность показаний. Калибровка должна производится при неподвижном датчике. Аналогичным образом можно изменить диапазон измерений гироскопа (см. описании функции setScale).
Получение кватернионов для программ визуализации:
Данный скетч использовался в видеообзоре.
Описание основных функций библиотеки:
Подключение библиотеки:
При создании объекта требуется указать, с каким датчиком (или датчиками) он будет работать. Все функции и методы созданного объекта будут применяться только к тому датчику (датчикам) для которого он был создан.
Допускается создание объекта с одним из 4 параметров:
Если требуется работать с разными датчиками по отдельности, допускается создание нескольких объектов.
Освобождение памяти:
При использовании данной библиотеки можно освободить память за счёт отключения кода неиспользуемых датчиков модуля. Это нужно делать только если у Вас не хватает памяти программ. Память освобождается если объявить в начале скетча следующие константы: