Мертвый расчет с акселерометром и гироскопом. Возможный?


11

У меня есть 3-осевой акселерометр и 3-осевой гироскоп. Мне было поручено разработать систему мертвых расчетов с использованием этого оборудования.

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

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

У меня также есть шум от акселерометра и гироскопа смещения для учета.

Можно ли это сделать?


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

1
Продвинутая математика - вот что сделает проект возможным. Вам нужно будет использовать кватернионы, фильтр Калмана и схему ZUPT или ZARU. Оттуда, да, вы можете отслеживать это точно в течение нескольких секунд. Я говорю из непосредственного опыта.
Самуил

У меня есть замечательная цитата лорда Кельвина, висящая на стене моего офиса в течение нескольких десятилетий: «Кватернионы пришли из Гамильтона ... и были несмешанным злом для тех, кто касался их любым способом. Вектор - бесполезное выживание ... и никогда не было ни малейшей пользы ни одному существу. "
Скотт Сейдман

@ ScottSeidman Quaternions не так уж плохи, если вы думаете о них с точки зрения вращения вокруг единичных векторов. Тогда вам нужно только немного тригонометрии для преобразования в / из кватернионной формы.
JAB

@JAB, очевидно, они (или какой-то другой подход) необходимы, поскольку вращения не коммутируют, что приводит к довольно интересным нюансам в математике.
Скотт Сейдман

Ответы:


11

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

Что бы ни стоило, наша нейросенсорная система использует практически одинаковые инструменты и не всегда дает правильный ответ! У нас есть 3D-акселерометры (органы отолитов) и 3D-гироскопы (угловые велоситомеры, полукруглые каналы), и все же мы страдаем от всевозможных иллюзий, когда система не может получить правильный «ответ», как иллюзия лифта и окулогравическая иллюзия. Часто эти сбои происходят во время низкочастотных линейных ускорений, которые трудно отличить от гравитации. Было время, когда пилоты носились в океан во время взлета катапульт на авианосцах из-за сильного восприятия высоты тона, вызванного низкочастотным ускорением, связанным с запуском, пока обучающие протоколы не научили их игнорировать это восприятие.

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

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

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

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


Спасибо за этот светлый ответ. Однако это заставляет меня задуматься о нескольких вещах: 1) что вы подразумеваете под низкочастотными ускорениями? 2) Если проблема была уменьшена с трехмерного положения на боковое смещение (игнорируйте Z), это проще? и 3) Как насчет медленного движения в морской воде, где эффект гравитации уменьшается? Любые указатели для чтения материала по этим расчетам будут оценены.
аченну

На самом деле, системы внутренней навигации старого стиля были бы точными с точностью до нескольких миль после долгого полета. Должно быть, они были очень точными. (Они жили в довольно большой коробке.) Технология была разработана в 1950-х годах для руководства МБР.
перестраиваемый

9

Основные проблемы со счетом, которые я обнаружил при выполнении старшего дизайн-проекта, похожего на ваш, заключается в том, что акселерометр измеряет только ускорение. Вы должны интегрировать один раз, чтобы получить скорость плюс константу C. Затем вам нужно снова интегрировать, чтобы получить положение + Cx + D. Это означает, что как только вы вычислите положение по данным акселерометра, вы получите смещение, но у вас также есть ошибка, которая растет линейно со временем. Для датчика MEM, который я использовал, в течение 1 секунды он вычислил себя как минимум в метре от того места, где он был на самом деле. Для того, чтобы это было полезно, вам обычно нужно найти способ обнуления ошибок очень часто, чтобы избежать накопления ошибок. Некоторые проекты могут сделать это, но многие нет.

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


Конечно, ошибка - это квадрат расстояния / времени? Ошибка скорости будет линейной, поэтому смещение на квадрат. Что интересно и не решено, так это то, насколько хороши эти дешевые ускорители.
Настраивается

@Tuntable Надеюсь, у вас есть акселерометр, который не так плох, чтобы у вас было значительное постоянное смещение ускорения. Если у вас есть такой плохой вариант, то да, вы получите квадратную ошибку с расстоянием / временем.
Орта

7

Вам также придется иметь дело с акселерометрами и шумом в гироскопах.

И гравитация не должна вносить ошибок в измерения углов; напротив, вектор гравитации обеспечивает «абсолютную привязку», которая помогает обнулить накопленное смещение углов «тангажа» и «крена».

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

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

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

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

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


4

Краткий ответ «не совсем». Длинный ответ заключается в том, что вы можете сформировать такие утверждения, как «Учитывая мои показания гироскопа, я на 95% уверен, что устройство было повернуто между 28 и 32 градусами с момента моего последнего чтения».

dθ(T)dTзнак равнор(T)
d2п(T)dT2знак равнор(T)
р(T)T

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

Если вы решили продолжить этот путь, вы должны решить несколько вещей:

  • Каков допустимый уровень ошибки? Вы хотите быть на 95% уверены, что он находится в пределах одного градуса через 2 секунды, или вы хотите быть на 80% уверены, что он в пределах 5 градусов через 2 секунды?

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

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

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


Проблема (или одна проблема) заключается в том, что акселерометр чувствителен к более чем p (t). Он также чувствителен к изменениям тета вокруг определенных осей.
Скотт Сейдман

Согласен. Вот почему всегда лучше использовать векторы при выполнении любого анализа многопараметрической системы. Обобщение векторнозначных случайных процессов из случая с одной переменной тривиально по сравнению с остальными вопросами.
SomeEE
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.