Я хорошо осведомлен о существовании this question, но мой будет отличаться. Я также знаю, что с этим подходом могут быть значительные ошибки, но я также хочу понять конфигурацию.Получение траектории от акселерометра и гироскопа (IMU)
У меня есть некоторые основные вопросы, которые я нахожу трудно ответить для себя четко. Существует много информации об акселерометрах и гироскопах, но я до сих пор не нашел объяснения «от первых принципов» некоторых основных свойств.
Итак, у меня есть датчик пластины, который содержит акселерометр и гироскоп. Существует также магнитометр, который я пропускаю сейчас.
- Акселерометр дает информацию за каждый момент времени t о временном векторе ускорения a = (ax, ay, az) в м/с^2 в соответствии с фиксированной системой координат к датчику.
- Гироскоп дает 3D-вектор в град/с, который говорит о временной скорости вращения трех осей (Ox, Oy и Oz). Из этой информации можно получить матрицу вращения, которая соответствует бесконечно малом повороте системы координат (в соответствии с предыдущим моментом). Here есть какое-то объяснение, как получить кватернион, который представляет R.
Итак, мы знаем, что бесконечно малое движение можно рассчитать с учетом, что ускорение является второй производной от положения.
Представьте, что ваш датчик прикреплен к вашей руке или ноге. В первый момент мы можем рассматривать ее точку в трехмерном пространстве как (0,0,0), а начальную систему координат также прилагается в этой физической точке. Таким образом, в течение самого первого временного шага мы будем иметь
г (1) = 0,5 (0) дт^2
где г есть вектор бесконечно малое движение, (0) - вектор ускорения.
В каждом из следующих шагов, которые мы будем использовать расчеты
г (т + 1) = 0,5 (т) дт^2 + v (т) дт + г (т)
где v (т) является вектор скорости, который будет оценен в некотором роде, например, в виде (г (Т) - г (т-1))/дт.
Кроме того, после каждого бесконечно малого движения нам нужно будет учитывать данные с гироскопа. Мы будем использовать матрицу вращения для поворота вектора r (t + 1).
Таким образом, возможно, с огромной ошибкой я получу некоторую траекторию в соответствии с исходной системой координат.
Мои запросы:
- Am I в основном правильно с этим алгоритмом?Если нет, то где я ошибаюсь?
- Я бы очень признателен за некоторые ресурсы с рабочим примером, где первые принципы не пропущены.
- Как следует использовать фильтр Калмана для получения лучшей траектории? Каким образом я передаю все данные ИДУ (акселерометр, гироскоп и магнитометр) в фильтр Калмана?