Я пытаюсь отследить части тела относительно туловища человека. Я вижу довольно много вопросов об использовании MEMS-акселерометров и гироскопов для точного расчета, и они подтверждают мои подозрения, что различные факторы сильно ограничивают их полезность для такого рода приложений, но я пытаюсь уточнить эти ограничения:
Что именно эти пределы?
Другие ответы касались того, почему существуют эти ограничения. Естественно, спецификации частей в рассматриваемой системе и то, что считается «приемлемой ошибкой» для системы, изменят и точные пределы, но есть ли единый порядок во времени или расстояние, на которое я могу рассчитывать, что мертвый расчет сработает? Я хорошо знаю, что на больших расстояниях (несколько ярдов или около того) ошибка становится слишком большой для большинства практических целей, но как насчет нескольких футов?
Что я могу сделать, чтобы улучшить эти ограничения?
В настоящее время я смотрю на использование акселерометра и гироскопа. Какие еще датчики можно добавить в систему, чтобы повысить частоту появления ошибок? Я знаю, что на больших расстояниях можно использовать GPS, но я сомневаюсь, что любой GPS-навигатор для бытовой электроники имеет достаточно хорошее разрешение, чтобы помочь в моем случае.
Кроме того, по общему мнению, единственный способ улучшить эти пределы за рамками усовершенствованных датчиков - это предоставить ссылку, не подверженную ошибкам. Некоторые системы решают эту проблему, используя камеры и маркеры. Какие контрольные точки могут предоставить переносные / носимые устройства?
Я видел использование радиоволн для точного измерения больших расстояний, но я не могу сказать, может ли такая система быть точной в таком небольшом масштабе (с точки зрения измеренного расстояния) с использованием готовых компонентов.
Ответы:
Источники ошибок включают в себя смещение нуля (смещение) и ошибки масштаба (которые имеют тенденцию изменяться медленно) и шум. Цены на датчики MEMS варьируются от менее чем 10 долларов США до более чем 1000 долларов США, а величина погрешности охватывает широкий диапазон, в зависимости от качества датчика.
Большая проблема заключается в том, что обычно требуется интегрирование, чтобы получить от значения датчика (ускорение, угловая скорость) до желаемого значения (положение, угол). Все источники ошибок составлены - растут со временем - при интеграции. Ценность данных для точного расчета со временем затухает, поскольку дешевые датчики дают вам не более нескольких минут полезных данных, а высокопроизводительные датчики работают в течение, возможно, нескольких часов.
Как вы уже обнаружили, лучший способ избавиться от растущих интегрированных ошибок - это объединить данные датчика с другими независимыми источниками данных, которые не имеют таких же ошибок. Например, GPS может дать вам абсолютное значение положения, которое не длится долго, но имеет относительно большой компонент «шум». Вы можете использовать эти данные для оценки ошибок смещения и масштаба ваших акселерометров, что позволяет вам исправлять их в режиме реального времени. Это также позволяет вам отменить "случайную прогулку", вызванную шумом датчика. Фильтр Калмана - это один из распространенных методов, используемых для моделирования системы (включая термины ошибок датчиков) и объединения данных вместе для получения оптимальной оценки состояния системы в любой момент времени.
Другим примером является использование «вектора силы тяжести», измеряемого акселерометрами, для устранения углового дрейфа гироскопов. Хитрость заключается в том, чтобы точно знать, когда у вас есть действительный вектор гравитации; система не ускоряется ни в каком направлении. Различные эвристики (например, «нулевое обновление») используются для достижения этой цели. Магнитометр также можно использовать для измерения погрешностей гироскопа, даже если вы не знаете абсолютное направление магнитного поля - если вы можете считать его постоянным.
Оптическое зондирование - это еще один способ получения бездрейфовой оценки скорости, угла или положения, но для обработки изображения, которая требуется, может потребоваться много циклов ЦП (или ПЛИС), а разработка такой системы довольно сложна.
источник
Вы спросили, что еще можно добавить. 3-осевой магнитометр должен быть полезным. Магнитное поле Земли имеет тенденцию перемещаться значительно медленнее, чем средний пользователь (к счастью).
Посмотрите на сказочный MPU6000 / 6050
Одна версия обеспечивает интерфейс SPI & IIC, а другая - только IIC.
Он содержит 3-осевой гироскоп + 3-осевой акселерометр плюс входы, позволяющие интегрировать сигнал с внешнего 3-осевого магнитометра.
Микросхема содержит «цифровой процессор движения», который объединяет сигналы от матрицы датчиков 3 x 3. Я еще не освоил точную предоставленную функциональность, но намерение состоит в том, чтобы обработать 3 отдельных источника сигнала в полезную систему анализа движения
Паспорт здесь
IC стоит около $ 10/1 от Digikey, а оценочная плата составляет около $ 50 + от производителя. Или вы можете купить полную плату из Китая - они продаются здесь примерно за 6 долларов США в розницу в 1-х - IC и PCB в сборе.
Я до сих пор не понял, как это происходит, или они реальны, или ... Я получил один вчера, но не смогу поиграть с ним некоторое время. («Клыки» сильно различаются по величине, от очень маленьких до иногда превышающих большие, увы). В Интернете есть ряд статей об их использовании, например, с Arduinos.
Насколько точен?
Вероятно, это много обсуждается в сети.
Если я правильно прочитал таблицу данных (и это не тот тип устройства, с которым я слишком хорошо знаком), то в
Таблице 6.1 на стр. 12 показано, что гироскоп имеет максимальный дрейф +/- 20 градусов / секунду при 25 ° C и столько же снова - Диапазон температур от 40 до + 85С. Предполагая фактическую скорость 20 градусов / секунду, это один полный оборот за 18 секунд. Однако и магнитометр, и акселерометр обеспечивают доступ к внешним опорным векторам (сила тяжести и магнитное поле Земли), и сигналы от них можно использовать для получения кратковременной и долгосрочной скорости дрейфа гироскопа и компенсации. Это вполне может быть частью того, что делает их «процессор движения».
Ошибка акселерометра обычно составляет +/- 5%.
Я ожидаю (и, возможно, очень ошибаюсь), что использование акселерометра и магнитометра для подстройки ошибок дрейфа гироскопа к нулю в более длительной перспективе позволит вам использовать гироскопические сигналы для навигации от секунд до минут. GPS также обеспечивает сигналы скорости, и комбинация положения GP и скорости с устройством 9DOF очень полезна.
Wooly: Выше звучит более шероховато, чем хотелось бы. Я ожидаю, что узнаю об этом в ближайшие несколько недель. Мне было бы интересно услышать, что вы узнаете, и если я узнаю полезные вещи, постараюсь сообщить о них.
,
В зависимости от вашего приложения вы можете временно разместить эталонный GPS и приемник в удобном месте. Это может быть чрезвычайно компактно - GPS + аккумулятор + TX. После сдачи на хранение он знает, где он находится, и может передавать исправления в зависимости от того, где система говорит, что это так. Использование одного и того же спутникового созвездия - это, вероятно, хорошая идея. Если пользователь и эталонный GPS находятся в одной и той же точке, когда они вносятся, тем лучше, но эти системы имеют тенденцию работать, даже если они всегда пространственно разделены.
Не зная, в чем дело, трудно сказать. Но относительное разрешение выборки по GPS, как правило, намного превосходит то, что достигается за минуты или часы. Я провел тесты, где я проехал по городскому маршруту и составил координаты GPS, а затем повторил упражнение несколько часов спустя. Два пути были в некоторых случаях на расстоянии нескольких метров, но когда, скажем, ехал по прямой вдоль городской улицы, участок представлял собой прямую линию с «шумом» по обе стороны от прямой, возможно, менее метра. (Это было несколько лет назад - это легко попробовать самим. Я только что записал данные с последовательного GPS-выхода RS232 (обычно 4800 бод) и в этом случае построил их в Excel в виде графика XY.
Дифференциальный GPS может использоваться, когда местный стационарный приемник с фиксированным местоположением обеспечивает исправление ошибок в зависимости от того, где он знает, и где система теперь говорит, что это так. Существует много поставщиков таких систем, но концепция проста и достаточно проста для реализации, если на жесткий бюджет.
источник
Что-то, что еще не охвачено в этих ответах, - это ваше конкретное приложение, которое на самом деле было рассмотрено, по крайней мере, дюжину раз очень умными людьми. Двумя ключевыми словами здесь являются обратная кинематика и фильтры Калмана.
К настоящему времени должно быть ясно, каков источник ошибок для вашего приложения и как их исправить. Но при работе с датчиками, которые по существу привязаны к человеку, вы можете уменьшить диапазон пространственных и угловых положений ваших датчиков, применяя обратную кинематику к уравнению. Это в основном означает, что вы отслеживаете относительное положение как можно большего количества суставов на теле и применяете кинематическую модель человеческого тела к нему. Например, длина рук людей не меняется с течением времени, и при этом их диапазон движения заметно не меняется. Кости не сгибаются (при нормальных обстоятельствах). Все это может быть использовано для ограничения вашего положения датчика.
Другое решение - использовать как можно больше ортогональных датчиков. Ортогональный в смысле: использование принципиально разных принципов измерения. Используя как можно больше входных сигналов от датчиков, вы можете использовать так называемый фильтр Калмана для максимально точной работы с учетом данных о ваших датчиках. Однако фильтры Калмана - это не волшебная сущность, которая дает лучший ответ. Это математические модели, которые нужно настраивать и модифицировать в соответствии с вашим конкретным приложением, и заставить их работать нормально может быть довольно сложно. Но это позволяет вам окольным путём комбинировать иные данные, которые очень сложно соотносить с датчиками. Входные данные для фильтров этого типа могут быть любыми: датчики положения, ускорения и скорости, а также, например, датчики света, которые могут добавлять информацию, реагируя на источники света, видимые под определенными углами.
Несколько «мощных перчаток» с этим принципом работы (кинематика + фильтры Калмана) были продемонстрированы как компаниями, так и университетами. Самый последний из тех, что я видел в TU, - Эйндховен использовал MPU6050 на гибких подложках, вплетенных в перчатку, а также некоторые поддерживающие датчики (я думаю, что на данный момент это всего лишь веб-камеры), все они подавались в большой фильтр Калмана с питанием от Matlab. Работает с точностью до 1 мм.
источник
Основная проблема
Эту проблему можно решить, изучив краткосрочную динамику ошибок в инерциальной навигационной системе. Это подробно описано во многих текстах , но вот короткая версия "без уравнения".
Инерциальная навигация работает следующим образом:
Точно знаю свое начальное положение, скорость и положение (т. Е. Тангаж и крен).
Используйте новое рассчитанное вами положение, чтобы математически повернуть показания акселерометра, чтобы он находился на одном уровне с землей.
Вычтите гравитацию из показаний акселерометра нового уровня.
Повторите шаги 2-6 столько, сколько хотите.
Кроме того, это смещение будет накапливаться в ориентации, что приведет к неправильному выравниванию акселерометров, что приведет к выравниванию ускорения в неправильном направлении, которое затем будет интегрировано в неправильное направление - три уровня ошибок.
Это означает, что ошибки гироскопа приводят к росту ошибок положения с кубом времени .
По той же логике ошибка акселерометра приводит к росту ошибок положения с квадратом времени .
Благодаря этому вы получите всего несколько секунд полезной (чистой) инерциальной навигации от датчиков MEMS для мобильных телефонов.
Даже если у вас очень хорошие инерционные датчики, скажем, летательные аппараты, вы все равно существенно ограничены до десяти минут (чистой) инерциальной навигации. Причина в шаге 3 - гравитация меняется с высотой. Получите неправильный рост, и ваша гравитация будет неправильной, из-за чего ваш рост будет неправильным, из-за чего ваша гравитация станет более неправильной и так далее - экспоненциальная ошибка роста. Таким образом, даже «чистая» инерциальная навигационная система, подобная тем, которые встречаются в военных самолетах, обычно имеет нечто вроде барометрического высотомера. Источник .
Решения
Есть и исследовательские и коммерческие продукты, которые могут сделать это.
Концептуально, это работает как стереозрение - у вас есть известная базовая линия между камерами и разный угол для каждого маркера, если смотреть с каждой камеры. Исходя из этого, 3D-положение каждой метки может быть вычислено (относительно камеры). Это может работать лучше с большим количеством камер.
Используя дешевое оборудование, может быть полезен Decawave UWB (10см или около того). Вам нужно будет придумать свои собственные алгоритмы.
Рядом с телом система GPS будет бороться. Получение GPS на уровне см зависит от непрерывного отслеживания фазы (очень, очень слабых) сигналов GPS, что чрезвычайно сложно, если антенна находится рядом с телом, а тело движется! Для систем L1 only - независимо от того, являются они дешевыми или дорогими, - отслеживание должно быть очень долгим (10 минут и более) и, следовательно, нецелесообразно для этой проблемы. Иногда может работать двухчастотный приемник , но на самом деле это недешево (тысячи долларов).
источник