IMU sensor fusion в реальном времени с малой задержкой для точных систем позиционирования в помещениях
Краткое резюме
С IMU sensor fusion в реальном времени с малой задержкой вы можете получить:
- Частота обновления координат до 500 Гц
- 5-25 мс задержка – в зависимости от типа движения мобильного объекта и настроек
- 3D-трекинг. Трекинг в 1D и 2D, конечно, тоже поддерживается 🙂
- В настоящее время поддерживается только IA. Поддержка NIA и MF NIA также появится
- Для определения положения и направления требуется конфигурация Paired Beacons (парные маяки) и двухпроводное соединение между мобильными маяками
- Функциональность включается лицензией MMSW0021: Realtime Ultrasound + IMU sensor fusion
Практические подсказки и советы
Определите, какой именно IMU sensor fusion вам нужен
Прежде всего выберите один из нескольких вариантов IMU sensor fusion. Помните: вам нужен не сам по себе IMU sensor fusion. Вам нужно то, что он даёт: более высокая частота обновления координат, меньшая задержка, большая устойчивость к кратковременным перекрытиям, более высокая точность. IMU sensor fusion – один из способов этого добиться, но не единственный:
- MMSW0009: Ultrasound + IMU sensor fusion (post-processing) и Быстрая система позиционирования в помещениях: sensor fusion IMU и ультразвука – если вам достаточно постобработки, используйте её. По точности и устойчивости она всегда будет лучше, чем MMSW0021: Realtime Ultrasound + IMU sensor fusion, потому что при постобработке у IMU sensor fusion больше данных и она может принимать лучшие решения при объединении. Работает как с конфигурацией Paired Beacons, так и без неё
- MMSW0017: High update rate extrapolation – используйте, если у вас мобильные объекты с относительно предсказуемым движением: машины для картинга, конькобежцы-скоростники и подобные. Конечно, при аварии движение перестанет быть предсказуемым, и алгоритм будет испытывать трудности. Но большую часть времени вы получите очень хороший трекинг с практически нулевой или даже отрицательной задержкой (экстраполяция/прогнозирование). Работает как с конфигурацией Paired Beacons, так и без неё
- MMSW0021: Realtime Ultrasound + IMU sensor fusion – ключевое преимущество этого варианта – малая задержка данных о положении. Из всех алгоритмов IMU sensor fusion это ветвь, в наибольшей степени соответствующая общепринятому смыслу этого словосочетания. Сейчас она требует конфигурацию Paired Beacons для мобильных маяков (hedge) и работает только в IA
- IMU sensor fusion для определения направления. Это настоящий IMU sensor fusion, но только для угловых данных, а не для положения. Требуется конфигурация Paired Beacons. Вы получаете очень высокое угловое разрешение, определяемое гироскопом, без дрейфа гироскопа, поскольку данные объединены (sensor fusion) и постоянно корректируются конфигурацией Paired Beacons. Конфигурация Paired Beacons для мобильных маяков обязательна. Чтобы получить это по протоколу Marvelmind, никакие дополнительные лицензии не нужны. Для NMEA: MMSW0002: Heading packet GPHDT for NMEA0183. Для uBlox: MMSW0003: UBX (u-blox) protocol for PX4
- Возможно, IMU sensor fusion вам вообще не нужен, и правильные настройки обеспечат достаточно высокую частоту обновления и достаточно малую задержку:
Поддерживаются только новые маяки с -4 или более поздней версией в названии
Сейчас поддерживаются следующие мобильные маяки:
- Super-Beacons-4
- Industrial Super-Beacons-4
- Industrial-RX-4 с Omni
- Industrial-RX-4 с Horn
Более новые аппаратные версии этих и других мобильных маяков, вероятно, будут поддерживать MMSW0021: Realtime Ultrasound + IMU sensor fusion.
Во избежание сомнений:
- Super-Beacons, Super-Beacons-2, Super-Beacons-3, Industrial Super-Beacons-2 и -3, Industrial-RX-2 и -3 и другие более ранние устройства не поддерживают MMSW0021: Realtime Ultrasound + IMU sensor fusion в качестве мобильных устройств
- Однако для стационарных маяков ограничений нет, и их легко использовать в качестве стационарных маяков, если они могут работать стационарными маяками в IA. Например, Industrial-RX не может быть стационарным маяком в IA, поскольку у него вообще нет ультразвуковых преобразователей и он не может излучать ультразвук. Это не связано с данной функцией, но не следует забывать об основных требованиях архитектуры. Даже очень ранние Beacons HW v4.9 можно использовать в качестве стационарных маяков
Требуется конфигурация Paired Beacons
В настоящее время функция MMSW0021: Realtime Ultrasound + IMU sensor fusion работает только с конфигурацией Paired Beacons для мобильных маяков. Почему? – потому что нет практического способа с достаточной точностью определить направление одиночного мобильного маяка (по оси рыскания, yaw) в статике.
Да, определить направление по рысканию можно, когда мобильный объект уже движется, зафиксироваться на нём, отслеживать и корректировать дрейф. Мы успешно делаем это в решении Marvelmind для дронов DJI:
Однако это накладывает дополнительные требования на начальное расположение мобильного объекта относительно системы координат или на начальные 0,5-1 м движения – пока не произойдёт фиксация направления по оси рыскания. В некоторых случаях это слишком большое ограничение. В других случаях это удачное решение, и не нужно носить с собой два мобильных маяка. Такой подвариант функции MMSW0021: Realtime Ultrasound + IMU sensor fusion скоро появится. Он, вероятно, будет менее надёжным, чем базовый подвариант с конфигурацией Paired Beacons, поскольку, вообще говоря, данных будет меньше. Но в некоторых случаях он оказывается серьёзным подспорьем, потому что у пользователя может просто не хватить места для конфигурации Paired Beacons, которая требует базы между мобильными маяками не менее 20-30 см.
Paired Beacons - требуются два базовых провода между мобильными маяками
Для конфигурации Paired Beacons мобильные маяки должны быть соединены двумя проводами:
- UART TX ведомого (slave) маяка (справа) должен быть подключён к выводу UART RX на внешних контактах 4×4 (или аналогичных у других маяков) ведущего (master) Super-Beacon
- Земли (GND) обоих маяков также должны быть соединены
Подробнее о конфигурации Paired Beacons см. в руководстве по эксплуатации (Operating Manual).
Взаимное расположение мобильных маяков имеет значение
- Рекомендуется база между микрофонами (или центрами) маяков не менее 20-30 см. Меньшие расстояния тоже могут работать, но устойчивость будет постепенно снижаться
- Ведущий (master) маяк должен находиться слева в паре
- USB-разъём Super-Beacon или 7-контактный разъём Industrial-маяка должен находиться сзади пары. Можно развернуть маяки, но тогда необходимо изменить настройки
- Оси показаны для Super-Beacon. Для Industrial Super-Beacon они не показаны (рисунок может быть обновлён позже). Однако они, вероятно, отличаются, поскольку расположение микросхемы IMU на платах различается
Подключение к устройствам пользователя и способы избежать дополнительной задержки
Поскольку главное преимущество функции MMSW0021: Realtime Ultrasound + IMU sensor fusion – малая задержка данных о положении, крайне важно чётко понимать, как получать эти данные и не вносить дополнительную задержку из-за интерфейсов или операционных систем:
- Обычный UART ведущего (master) мобильного маяка (hedge или hedgehog) через контакты 4×4 Super-Beacon или контакты внутри 7-контактного разъёма данных промышленных (Industrial) маяков – лучший и самый простой способ получить данные о положении с малой задержкой без заметной дополнительной задержки
- Через USB от ведущего (master) hedge (дополнительная задержка ~ 1 мс + задержка USB-драйвера (зависит от ОС)). Главная проблема – непредсказуемость задержки ОС и её джиттер. Дополнительную задержку трудно оценить: от незаметной до существенной. Возможный джиттер задержки из-за неконтролируемых задержек ОС – ещё один повод для беспокойства. Однако на практике эти опасения могут быть преувеличены, и тогда такое подключение даже проще, чем провода от UART (см. выше), поскольку используется USB
- Через USB/UART дополнительного Modem HW v 5.1 со специальной прошивкой в архитектуре Split Modem (с разделённым модемом) (дополнительная задержка: ~ 1 мс по радио на скорости 500 кбит/с + задержка UART/USB (см. выше)). Это лучший способ получить данные с малой задержкой на стороне модема, а не на стороне мобильных маяков, когда нужно отслеживать объект с высокой частотой обновления координат и малой задержкой
- Через UDP из Dashboard при подключении ведущего (master) hedge по USB (дополнительная задержка ~ 1 мс + задержка USB-драйвера + задержка передачи по UDP (обычно 3…50 мс в зависимости от вашей сети))
- Через REST или MQTT из Dashboard при подключении ведущего (master) hedge по USB (дополнительная задержка ~ 1 мс + задержка USB-драйвера + задержка передачи по REST/MQTT). Общую дополнительную задержку также трудно оценить. Но этот способ тоже поддерживается
- Через UDP/REST/MQTT/лог из Dashboard при использовании Modem HW v 5.1 со специальной прошивкой в архитектуре Split Modem (дополнительная задержка такая же, как при подключении hedge к Dashboard, + ~ 1 мс по радио на скорости 500 кбит/с)
- Через лог-файл в Dashboard при подключении ведущего (master) hedge по USB (для постобработки – задержка неприменима)
Это не серьёзное практическое ограничение, но текущий предел ускорения мобильных маяков составляет 16 g, что намного выше того, что обычные мобильные объекты испытывают в реальной жизни, если только не врезаются во что-то твёрдое. Впрочем, когда они врезаются во что-то настолько твёрдое, IMU sensor fusion или внезапная потеря идеального трекинга из-за превышения ускорения, вероятно, и так не главная проблема. Тем не менее помните об этом верхнем пределе. Если ваши требования предполагают более высокое ускорение или у вас есть другие опасения, не стесняйтесь присылать нам свой запрос на info@marvelmind.com.
Настройки Dashboard
С функцией MMSW0021: Realtime Ultrasound + IMU sensor fusion связано много настроек. Помните: эта функция только для опытных пользователей. Если вы новичок, действуйте пошагово, начиная с простейших конфигураций; сначала добейтесь безупречного трекинга и только после того, как познакомитесь с системой, начинайте использовать эту функцию: Пошаговый подход и его важность для успеха.
Что же такое IMU sensor fusion? ...
Есть несколько ключевых моментов, которые стоит помнить, когда мы говорим об IMU sensor fusion для точных систем позиционирования в помещениях:
- Sensor fusion по определению означает более одного источника данных в попытке объединить лучшее из объединяемых миров, например: IMU + ультразвуковое позиционирование в помещениях, или IMU + ультразвуковая IPS + одометрия, или IMU + ультразвуковая IPS + визуальные данные … – есть много потенциальных источников для объединения
- Мы не рассматриваем подход sensor fusion как «единый алгоритм, который правит всеми» – это дерево решений с множеством ветвей sensor fusion, и IMU + ультразвук – лишь один из многих вариантов. Текущая реализация – тоже одна из ветвей. Новые ветви/варианты IMU sensor fusion ещё появятся. Пользователи должны чётко различать их, чтобы выбрать лучший для конкретного сценария, поскольку всегда приходится идти на компромиссы
Когда мы говорим об IMU sensor fusion (3D-акселерометр + 3D-гироскоп), мы обычно имеем в виду объединение данных IMU с данными ультразвуковой системы позиционирования в помещениях, где берётся лучшее из обоих миров и объединяется.
Часто это включает и другие источники данных: Paired Beacons для определения положения + направления, одометрию и тем или иным способом встроенную модель мобильного объекта.
Обратите внимание: мы обычно не объединяем данные с магнитометрами, поскольку ориентируемся на решения для помещений, а магнитометры внутри помещений могут работать плохо из-за сильных искажений магнитного поля Земли ферромагнитными материалами вокруг и больших токов, создающих собственные магнитные поля, которые накладываются на магнитное поле Земли. Такая проблема существует не всегда. Однако в целом мы не можем полагаться на магнитометры. Поэтому мы используем конфигурацию Paired Beacons для определения положения + направления: Boxie 2 – краткое видео о вождении.
Тем не менее мы не исключаем магнитометры полностью. В некоторых случаях GNSS недоступна, но магнитное поле Земли доступно, и магнитометры можно использовать. В этом случае это внешняя плата, подключаемая к Super-Beacon-4 или Industrial Super-Beacon-4 через разъём расширения 4×4, как правило, по I2C или SPI либо иным способом. Запросите такой вариант, если конфигурация Paired Beacons не подходит для вашего случая.
Трудно отслеживать что угодно с помощью датчика IMU, не имея представления о том, что именно мы отслеживаем. Некоторые знания об объекте практически необходимы: «вилочные погрузчики не летают», «вилы погрузчика могут перемещаться в 3D», «быстрых 3D-манёвров можно ожидать от гоночного дрона или лыжника, выступающего в хафпайпе, но маловероятно от доставочного робота, ездящего в 2D» и т.д. Поэтому настроек много. Возможно, слишком много. Мы сделали несколько профилей, чтобы вам не приходилось слишком глубоко вникать, но при желании у вас есть почти бесконечные возможности управления системой IMU sensor fusion.
Выбирайте цели разумно и реалистично
Также очень важно чётко понимать, чего именно вы хотите добиться с помощью sensor fusion. IMU sensor fusion – очень мощное решение. Тем не менее приходится идти на компромиссы, и не всё можно получить одновременно. Придётся выбирать среди обычных кандидатов: точность, частота обновления, задержка, стабильность, устойчивость, гибкость, сложность, цена и тому подобное.
Итак, чего именно вы хотите достичь с помощью sensor fusion?
- Высокой частоты обновления?
- Малой задержки?
- Более высокой точности данных позиционирования?
- Большей устойчивости к перекрытиям или источникам шума, которые могут приводить к скачкам?
Это одна из главных причин, по которой sensor fusion – не универсальное решение для всех, а дерево решений, и внутри ветвей этого дерева существуют разные профили, ориентированные на конкретные потребности.
Малая задержка и высокая частота обновления
Повышенная устойчивость к кратковременным перекрытиям и шуму
Сама природа sensor fusion обеспечивает повышенную устойчивость к скачкам координат из-за кратковременных перекрытий или шума. Сравните трекинг только на основе ультразвука и трекинг после sensor fusion.
IMU sensor fusion слишком хороша. В чём подвох?...
IMU sensor fusion с малой задержкой действительно очень мощная функция, дающая очень впечатляющие результаты. Однако пользователи должны также чётко понимать требования:
- Это сложная функция с множеством настроек. Поэтому она предназначена для опытных пользователей. Если вы застряли или не уверены, всегда обращайтесь через info@marvelmind.com. Мы объединили настройки в профили, чтобы вам ничего не приходилось настраивать – вам даже не нужно включать функцию. Она включится автоматически, как только вы приобретёте лицензию. Но в профиле Advanced настроек очень много, поэтому вы можете настроить систему под вашу конкретную модель мобильного маяка настолько точно, насколько захотите, и тем самым добиться максимально хороших результатов
- Требуется конфигурация Paired Beacons. Другие варианты (с одним маяком, но с некоторыми дополнительными требованиями к начальному расположению) или версия с внешним магнитометром возможны и скоро появятся. Текущий вариант, он же рекомендуемый, – самый устойчивый из всех
- IMU sensor fusion многое предполагает и угадывает (прогнозирует), поскольку по определению подхода реального времени работает с неполными и непроверенными данными. Поэтому, если ультразвуковой трекинг плохой, IMU sensor fusion может не исправить, а усилить проблему. При более коротких скачках или кратковременных перекрытиях она улучшает общий трекинг, эффективно поглощая или игнорируя такие скачки ультразвукового трекинга
В целом, несмотря на все наши предостережения, это очень мощная функция, которая значительно улучшает характеристики трекинга сразу по нескольким направлениям: задержка, частота обновления, устойчивость и даже точность.
Несколько (противоречащих друг другу) целей = несколько ветвей IMU sensor fusion
Высокую частоту обновления координат получить легко. Малую задержку, естественно, получить трудно:
- Высокой частоты обновления координат можно добиться несколькими способами, начиная с базовой интерполяции – без потери точности, поскольку объекты и так достаточно инерционны. Это наш базовый Realtime Player, который уже встроен в Dashboard. Если объекты слишком манёвренные для имеющейся реальной частоты обновления ультразвуковых координат, то интерполяция, конечно, не сработает, и нужно что-то более сложное, например IMU sensor fusion в реальном времени – главная тема этой страницы
- Можно использовать постобработку IMU sensor fusion, которая доступна у нас уже несколько лет. Это настоящий sensor fusion. Он возвращает действительно высокую частоту обновления, не «срезая углы». Но задержка будет относительно высокой. Часто это лучшее и рекомендуемое решение для всего, что отслеживается и не требует немедленной реакции на положение, например, для спорта. Можно отслеживать впечатляющие спортивные сальто. Сальто длится долю секунды. Но результат трекинга доступен через 1-2 секунды. Или вы обучаете свою очень скоростную гоночную машину оптимально проходить повороты. Сначала записываете ручное вождение – точный трекинг с постобработкой IMU sensor fusion, затем включаете в цикл обучение с помощью ИИ. Не критично, получите ли вы данные о положении через 10 мс или через 10 секунд. Пока это не 10 часов, обычно всё в порядке
- В некоторых случаях, например, для машин для картинга, объекты достаточно хорошо известны – их инерция, стиль вождения, максимальная скорость и т.д. – и эту информацию можно косвенно заложить в модель. При достаточно высокой исходной частоте чисто ультразвуковых данных позиционирования в помещении можно экстраполировать или прогнозировать данные о положении с нулевой или даже отрицательной задержкой – в конце концов, это прогноз. Это работает не для всех типов мобильных объектов, например, для людей на складе – они слишком манёвренны и непредсказуемы, – но очень хорошо работает для широкого класса достаточно инерционных мобильных объектов. Используйте его, если это ваш случай. Это простая и надёжная система. Не нужно излишне усложнять: MMSW0017: High update rate extrapolation
- IMU sensor fusion для положения + направления основан на Paired Beacons и находится на более простой стороне спектра IMU sensor fusion, поскольку устраняет дрейф по рысканию, но не занимается положением. Это настоящий IMU sensor fusion с чрезвычайно высоким угловым разрешением и без угловых дрейфов или скачков. Угол берётся из гироскопа со всеми его преимуществами – высоким разрешением, низким шумом, очень высокой частотой обновления, – а дрейф гироскопа по рысканию устраняется конфигурацией Paired Beacons. Дрейф по тангажу и крену устраняется по данным 3D-акселерометра
- А вершина всех вариантов – Realtime Ultrasound + IMU sensor fusion: это самая продвинутая и самая сложная версия объединения, и вся сложность проистекает из требования малой задержки
Проблемы, которые нужно преодолеть при sensor fusion
Sensor fusion нацелен на преодоление недостатков отдельных источников данных, например:
- Ультразвуковая система позиционирования в помещениях – положение не дрейфует; система выдаёт данные о положении очень высокой точности; но она может быть подвержена высокому уровню акустического шума или скачкам из-за перекрытий
- IMU (3D-акселерометр + 3D-гироскоп) обеспечивает невероятное угловое разрешение, т.е. изменение направления можно измерять с чрезвычайно высоким разрешением; скачков нет, потому что у акселерометров и гироскопов очень низкий шум, и они могут давать точность позиционирования на уровне микрометров – не миллиметров, а именно микрометров. Однако IMU дрейфует, причём очень быстро – за доли секунды или единицы секунд для обычных MEMS-датчиков, применяемых в современной электронике: вы очень хорошо знаете кратковременное изменение угла, но не знаете сам угол (имею в виду ось Z – все остальные углы определяются тривиально с помощью акселерометра); можно использовать двойное интегрирование данных акселерометра, но акселерометры далеки от нулевого смещения и т.д., и за доли секунды или единицы секунд накопленная ошибка положения становится выше, чем у ультразвуковой системы позиционирования в помещениях. Так что IMU врёт. Поэтому не должно быть розовых ожиданий от чисто инерциальных систем позиционирования в помещениях. Пока фундаментальная физика не изменится радикально, они либо невозможны, либо крайне неточны по сравнению с ультразвуковой системой позиционирования в помещениях
Почему малую задержку трудно получить (и даже измерить)
Если можете использовать постобработку IMU sensor fusion – используйте её. Она всегда будет точнее и надёжнее, чем IMU sensor fusion в реальном времени:
- При постобработке можно учесть больше данных, потому что их доступно больше – вы накапливаете их долго, а затем используете – выше достоверность и устойчивость к скачкам из-за перекрытий, шума или других помех
- Больше учитываемых данных – выше точность, выше достоверность и выше устойчивость
При IMU sensor fusion в реальном времени у вас просто нет привилегии иметь больше данных. Чтобы накопить больше данных, нужно больше времени. Больше времени = выше задержка. Выше задержка – это постобработка IMU sensor fusion. Работает блестяще, но позже.
При IMU sensor fusion в реальном времени с малой задержкой у вас есть:
- Исторические ультразвуковые данные о положении. Типичная частота обновления 4-20 Гц, т.е. средняя задержка относительно последнего ультразвукового обновления положения = 1/(частота обновления) = 1/20.. 1/4 с = 50 … 250 мс, что приемлемо для большинства реальных промышленных применений. Однако если использовать только исторические данные, IMU не нужен – можно положиться на гораздо более простой и часто более надёжный подход на основе экстраполяции, который прекрасно работает для некоторых типов мобильных объектов, но только для некоторых
- У вас есть последнее ультразвуковое обновление положения. Это здорово, но никаким данным нельзя доверять на 100 %. При этом у вас пока недостаточно информации – пока! – чтобы проверить, было ли внезапное изменение положения, измеренного ультразвуком, реальным (например, потому что наш мобильный объект ударило чем-то сильным и тяжёлым) или это был просто скачок из-за шума или перекрытия. Но вы не можете быть уверены, потому что у вас нет дополнительных данных для проверки. Когда они появляются, использовать их уже поздно, так как есть новые данные, а старые просто устарели – нужно постоянно спешить вперёд. Так что да, мы используем их – косвенно – для коррекции правил, допущений, весов, но с их помощью нельзя проверить данные сейчас, потому что этих проверочных данных сейчас у нас быть не может
- Необработанные данные IMU. Это очень помогает: если вы думаете, что произошло внезапное изменение положения, то это означает и внезапное изменение скорости, т.е. большое ускорение, и IMU легко может обнаружить, что на самом деле скачка не было. Это решает часть проблем … – ладно, это был фантом/скачок/перекрытие или что-то в этом роде. IMU показывает, например, отсутствие резкого ускорения, которое объяснило бы скачок положения. Значит, мы можем исключить, что измеренное по ультразвуку положение верно. Оно неверно. Но какое же верно? – это сложный вопрос. Здесь и начинаются трудности. Что делать с необработанными данными IMU, чтобы рассчитать положение на основе IMU? … – тривиальное двойное интегрирование ускорения? – так просто?! – не совсем: идеально перпендикулярный чип IMU, лежащий на поверхности, покажет весьма заметное ускорение по X, Y – прочитайте необработанные данные и измерьте, потому что идеальных чипов не бывает. Калибровка? – помогает и рекомендуется. Она очень полезна. Но с учётом того, что двойное интегрирование даёт ошибку, растущую пропорционально квадрату времени, выигрыш от лучшей калибровки буквально недолговечен. Вместо 1/4 секунды вы можете держаться в пределах точности ±2 см в течение 1, 2, 5 секунд! Но на этом всё. После этого времени неисключённая ошибка интегрирования начнёт преобладать, и нужен недрейфующий источник данных, чтобы компенсировать дрейф: оптическое позиционирование, UWB, одометрия, ультразвуковая система позиционирования Marvelmind или, лучше, их комбинация. Это и есть настоящий sensor fusion. И именно это мы делаем, добавляя алгоритмы самопроверки и самоверификации, которыми управляет единая мантра: ни одному из отдельных источников нельзя доверять. Но при эффективном объединении они становятся очень достоверным, очень надёжным и очень точным источником данных о положении в помещениях


























