Ориентация от акселерометра, гироскопа и показаний магнитометра
Тулбокс Navigation Toolbox / Расположение Мультидатчика / Фильтры Навигации
Sensor Fusion and Tracking Toolbox / Расположение Мультидатчика / Фильтры Навигации
AHRS
Блок Simulink® плавит акселерометр, магнитометр и данные о датчике гироскопа, чтобы оценить ориентацию устройства.
Accel
— Показания акселерометра в системе координат корпуса датчика (m/s2)Показания акселерометра в системе координат корпуса датчика в m/s2 в виде N-by-3 матрица действительных скаляров. N является количеством выборок и тремя столбцами Accel
представляйте [x
y
z] измерения, соответственно.
Типы данных: single
| double
Gyro
— Показания гироскопа в системе координат корпуса датчика (rad/s)Показания гироскопа в системе координат корпуса датчика в rad/s в виде N-by-3 матрица действительных скаляров. N является количеством выборок и тремя столбцами Gyro
представляйте [x
y
z] измерения, соответственно.
Типы данных: single
| double
Mag
— Показания магнитометра в системе координат корпуса датчика (µT)Показания магнитометра в системе координат корпуса датчика в µT в виде N-by-3 матрица действительных скаляров. N является количеством выборок и тремя столбцами magReadings
представляйте [x
y
z] измерения, соответственно.
Типы данных: single
| double
Orientation
— Ориентация системы координат тела датчика относительно системы координат навигацииОриентация системы координат тела датчика относительно системы координат навигации, возвратитесь как M-by-4 массив скаляров или 3 3 M массивом матриц вращения. Каждая строка N-by-4 массив принята, чтобы быть этими четырьмя элементами массива quaternion
. Количество входных выборок, N и параметра Decimation Factor определяет выходной размер M.
Типы данных: single
| double
Angular Velocity
— Скорость вращения в системе координат корпуса датчика (rad/s) Скорость вращения со смещением гироскопа, удаленным в системе координат корпуса датчика в rad/s, возвращенном как M-by-3 массив действительных скаляров. Количество входных выборок, N и параметра Decimation Factor определяет выходной размер M.
Типы данных: single
| double
Reference frame
— Система координат навигацииNED
(значение по умолчанию) | ENU
Система координат навигации в виде NED
(Северо-восток вниз) или ENU
(Восточный Север).
Decimation factor
— Фактор децимации
(значение по умолчанию) | положительное целое числоФактор децимации, которым можно уменьшать входную скорость передачи данных датчика в виде положительного целого числа.
Количество строк входных параметров – Accel, Gyro, и Mag – должно быть кратным фактору децимации.
Типы данных: single
| double
Initial process noise
— Начальный шум процессаahrsfilter.defaultProcessNoise
(значение по умолчанию) | 12 12 матрица действительного скаляраНачальный шум процесса в виде 12 12 матрицы действительных скаляров. Значение по умолчанию, ahrsfilter.defaultProcessNoise
, 12 12 диагональная матрица как:
Columns 1 through 6 0.000006092348396 0 0 0 0 0 0 0.000006092348396 0 0 0 0 0 0 0.000006092348396 0 0 0 0 0 0 0.000076154354947 0 0 0 0 0 0 0.000076154354947 0 0 0 0 0 0 0.000076154354947 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Columns 7 through 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.009623610000000 0 0 0 0 0 0 0.009623610000000 0 0 0 0 0 0 0.009623610000000 0 0 0 0 0 0 0.600000000000000 0 0 0 0 0 0 0.600000000000000 0 0 0 0 0 0 0.600000000000000
Типы данных: single
| double
Orientation format
— Выходной формат ориентации'quaternion'
(значение по умолчанию) | 'Rotation matrix'
Выведите формат ориентации в виде 'quaternion'
или 'Rotation matrix'
:
'quaternion'
– Выходом является M-by-4 массив действительных скаляров. Каждая строка массива представляет четыре компонента quaternion
.
'Rotation matrix'
– Выход является 3 3 M матрицей вращения.
Выходной размер M зависит от входной размерности N и параметр Decimation Factor.
Типы данных: char |
string
Simulate using
— Тип симуляции, чтобы запуститьсяInterpreted Execution
(значение по умолчанию) | Code Generation
Interpreted execution
— Симулируйте модель с помощью интерпретатора MATLAB®. Эта опция сокращает время запуска. В Interpreted execution
режим, можно отладить исходный код блока.
Code generation
— Симулируйте модель с помощью сгенерированного кода C. В первый раз, когда вы запускаете симуляцию, Simulink генерирует код С для блока. Код С снова используется для последующих симуляций, пока модель не изменяется. Эта опция требует дополнительного времени запуска.
Accelerometer noise ((m/s2)2)
— Отклонение акселерометра сигнализирует о шуме ((m/s2) 2)
(значение по умолчанию) | положительный действительный скалярОтклонение акселерометра сигнализирует о шуме в (m/s2) 2 в виде положительного действительного скаляра.
Типы данных: single
| double
Gyroscope noise ((rad/s)2)
— Отклонение гироскопа сигнализирует о шуме ((rad/s) 2)9.1385e-5
(значение по умолчанию) | положительный действительный скалярОтклонение гироскопа сигнализирует о шуме в (rad/s) 2 в виде положительного действительного скаляра.
Типы данных: single
| double
Magnetometer noise (μT2)
— Отклонение магнитометра сигнализирует о шуме (μT2)
(значение по умолчанию) | положительный действительный скалярОтклонение магнитометра сигнализирует о шуме в μT2 в виде положительного действительного скаляра.
Типы данных: single
| double
Gyroscope drift noise (rad/s)
— Отклонение дрейфа смещения гироскопа ((rad/s) 2)3.0462e-13
(значение по умолчанию) | положительный действительный скалярОтклонение смещения гироскопа дрейфует в (rad/s) 2 в виде положительного действительного скаляра.
Типы данных: single
| double
Linear acceleration noise ((m/s2)2)
— Отклонение линейного ускоряющего шума (m/s2) 2
(значение по умолчанию) | положительный действительный скалярОтклонение линейного ускоряющего шума в (m/s2) 2 в виде положительного действительного скаляра. Линейное ускорение моделируется как отфильтрованный lowpass белый шумовой процесс.
Типы данных: single
| double
Magnetic disturbance noise (μT2)
— Отклонение магнитного шума воздействия (μT2)
(значение по умолчанию) | действительная конечная положительная скалярная величинаОтклонение магнитного шума воздействия в μT2 в виде действительной конечной положительной скалярной величины.
Типы данных: single
| double
Linear acceleration decay factor
— Фактор затухания для линейного ускоряющего дрейфа
(значение по умолчанию) | скаляр в области значений [0,1)Фактор затухания для линейного ускорения дрейфует в виде скаляра в области значений [0,1). Если линейное ускорение изменяется быстро, установите этот параметр на нижнее значение. Если линейное ускорение медленно изменяется, установите этот параметр на более высокое значение. Линейный ускоряющий дрейф моделируется как отфильтрованный lowpass белый шумовой процесс.
Типы данных: single
| double
Magnetic disturbance decay factor
— Фактор затухания для магнитного воздействия
(значение по умолчанию) | положительная скалярная величина в области значений [0,1]Фактор затухания для магнитного воздействия в виде положительной скалярной величины в области значений [0,1]. Магнитное воздействие моделируется как первый порядок процесс Маркова.
Типы данных: single
| double
Magnetic field strength (μT)
— Сила магнитного поля (μT)
(значение по умолчанию) | действительная положительная скалярная величинаСила магнитного поля в μT в виде действительной положительной скалярной величины. Сила магнитного поля является оценкой силы магнитного поля Земли в текущем местоположении.
Типы данных: single
| double
Примечание: следующий алгоритм только применяется к системе координат NED.
Блок AHRS использует структуру Фильтра Калмана с девятью осями, описанную в [1]. Алгоритм пытается отследить ошибки в ориентации, смещении гироскопа, линейном ускорении и магнитном воздействии, чтобы вывести итоговую ориентацию и скорость вращения. Вместо того, чтобы отследить ориентацию непосредственно, косвенный Фильтр Калмана моделирует ошибочный процесс, x, с рекурсивным обновлением:
где x k 12 1 вектор, состоящий из:
θk – Вектор ошибок ориентации 3 на 1, в градусах, во время k
bk – Нуль гироскопа 3 на 1 угловой вектор смещения уровня, в градусе/с, во время k
ak – Ускоряющий вектор ошибок 3 на 1 измеряется в системе координат датчика, в g, во время k
dk – Магнитный вектор ошибок воздействия 3 на 1 измеряется в системе координат датчика, в µT, во время k
и где w k является 12 1 аддитивным шумовым вектором, и F k является моделью изменения состояния.
Поскольку x k задан как ошибочный процесс, априорная оценка всегда является нулем, и поэтому модель изменения состояния, F k, является нулем. Это понимание приводит к следующему сокращению стандарта уравнения Кальмана:
Стандарт уравнения Кальмана:
Уравнения Кальмана использовали в этом алгоритме:
где:
xk − – предсказанный (априорно) утверждают оценку; ошибочный процесс
Pk − – предсказанный (априорно) оценивают ковариацию
yk – инновации
Sk – инновационная ковариация
Kk – Усиление Кальмана
xk + – обновленный (по опыту) утверждает оценку
Pk + – обновленный (по опыту) оценивает ковариацию
k представляет итерацию, верхний индекс + представляет по опыту оценка, и верхний индекс − представляет априорную оценку.
Графические и следующие шаги описывают одну основанную на системе координат итерацию через алгоритм.
Перед первой итерацией, accelReadings
, gyroReadings
, и magReadings
входные параметры разделяются на блоки в DecimationFactor
- 3 системы координат. Для каждого фрагмента алгоритм использует актуальнейшие показания акселерометра и магнитометра, соответствующие фрагменту показаний гироскопа.
Идите через алгоритм для объяснения каждого этапа подробного обзора.
Ускорение моделей алгоритма и угловое изменение как линейные процессы.
Ориентация для текущей системы координат предсказана первой оценкой углового изменения от предыдущей системы координат:
где N является фактором децимации, заданным фактором Децимации, и fs является частотой дискретизации.
Угловое изменение преобразовано в кватернионы с помощью rotvec
quaternion
синтаксис конструкции:
Предыдущая оценка ориентации обновляется путем вращения его ΔQ:
Во время первой итерации оценка ориентации, q −, инициализируется ecompass
.
Вектор силы тяжести интерпретирован как третий столбец кватерниона, q −, в матричной форме вращения:
Вторая оценка вектора силы тяжести сделана путем вычитания затухшей линейной ускоряющей оценки предыдущей итерации от показаний акселерометра:
Магнитный вектор земли оценивается путем вращения магнитной векторной оценки от предыдущей итерации априорной оценкой ориентации в матричной форме вращения:
Ошибочная модель комбинирует два различия:
Различие между силой тяжести оценивает от показаний акселерометра и оценки силы тяжести от показаний гироскопа:
Различие между магнитной векторной оценкой от показаний гироскопа и магнитной векторной оценкой от магнитометра:
Магнитометр правильные оценки ошибка в магнитной векторной оценке и обнаруживает магнитный затор.
Магнитная ошибка воздействия вычисляется умножением матриц усиления Кальмана, сопоставленного с магнитным вектором с сигналом ошибки:
Усиление Кальмана, K, является усилением Кальмана, вычисленным в текущей итерации.
Магнитный затор определяется путем проверки, что степень обнаруженного магнитного воздействия меньше чем или равна четыре раза степени ожидаемой силы магнитного поля:
ExpectedMagneticFieldStrength является свойством ahrsfilter
.
Уравнения Кальмана используют оценку силы тяжести, выведенную из показаний гироскопа, g, магнитной векторной оценки, выведенной из показаний гироскопа, mGyro и наблюдения за ошибочным процессом, z, чтобы обновить коэффициент усиления Кальмана и посреднические ковариационные матрицы. Усиление Кальмана применяется к сигналу ошибки, z, чтобы вывести по опыту ошибочная оценка, x +.
Модель наблюдения сопоставляет 1 3 наблюдаемые состояния, g и mGyro, в 6 12 истинное состояние, H.
Модель наблюдения создается как:
где g x, g y и g z является x - y - и z - элементы вектора силы тяжести, оцененного от априорной ориентации, соответственно. m x, m y и m z является x - y - и z - элементы магнитного вектора, оцененного от априорной ориентации, соответственно. κ является константой, определенной свойствами фактора Частоты дискретизации и Децимации: κ = Decimation factor
/Sample rate
.
Инновационная ковариация 6 6, матрица раньше отслеживала изменчивость в измерениях. Инновационная ковариационная матрица вычисляется как:
где
H является матрицей модели наблюдения
P − является предсказанной (априорной) оценкой ковариации модели наблюдения, вычисленной в предыдущей итерации
R является ковариацией шума модели наблюдения, вычисленного как:
где
и
Ошибочная оценочная ковариация 12 12, матрица раньше отслеживала изменчивость в состоянии.
Ошибочная оценочная ковариационная матрица обновляется как:
где K является усилением Кальмана, H является матрицей измерения, и P − является ошибочной оценочной ковариацией, вычисленной во время предыдущей итерации.
Ошибочная оценочная ковариация 12 12, матрица раньше отслеживала изменчивость в состоянии. Априорная ошибочная оценочная ковариация, P−, установлена в ковариацию шума процесса, Q, определенный во время предыдущей итерации. Q вычисляется в зависимости от по опыту ошибочная оценочная ковариация, P+. При вычислении Q это принято, что условия взаимной корреляции незначительны по сравнению с условиями автокорреляции и обнуляются:
где
P + – является обновленным (по опыту) ошибочная оценочная ковариация
κ – Фактор децимации разделен на частоту дискретизации.
β – Шум дрейфа гироскопа.
η – Шум гироскопа.
ν – Линейный ускоряющий фактор затухания.
ξ – Линейный ускоряющий шум.
σ – Магнитный фактор затухания воздействия.
γ – Магнитный шум воздействия.
Матрица усиления Кальмана 12 6, матрица раньше взвешивала инновации. В этом алгоритме инновации интерпретированы как ошибочный процесс, z.
Матрица усиления Кальмана создается как:
где
P − – предсказанная ошибочная ковариация
H модель наблюдения
S инновационная ковариация
Следующая ошибочная оценка определяется путем объединения матрицы усиления Кальмана с ошибкой в силе тяжести векторные и магнитные векторные оценки:
Если магнитный затор обнаруживается в текущей итерации, магнитный векторный сигнал ошибки проигнорирован, и, следующая ошибочная оценка вычисляется как:
Оценка ориентации обновляется путем умножения предыдущей оценки ошибкой:
Линейная ускоряющая оценка обновляется путем затухания линейной ускоряющей оценки от предыдущей итерации и вычитания ошибки:
где
ν – Линейный ускоряющий фактор затухания
Оценка смещения гироскопа обновляется путем вычитания ошибки смещения гироскопа из смещения гироскопа от предыдущей итерации:
Оценить скорость вращения, систему координат gyroReadings
усреднены и смещение гироскопа, вычисленное в предыдущей итерации, вычтено:
где N является фактором децимации, заданным DecimationFactor
свойство.
Оценка смещения гироскопа инициализируется к нулям для первой итерации.
Если магнитный затор не был обнаружен в текущей итерации, магнитная векторная оценка, m, обновляется с помощью a posteriori магнитная ошибка воздействия и ориентация a posteriori.
Магнитная ошибка воздействия преобразована в систему координат навигации:
Магнитная ошибка воздействия в системе координат навигации вычтена из предыдущей магнитной векторной оценки и затем интерпретирована как наклон:
Наклон преобразован в ограниченную магнитную векторную оценку для следующей итерации:
[1] Fusion Датчика С открытым исходным кодом. https://github.com/memsindustrygroup/Open-Source-Sensor-Fusion/tree/master/docs
[2] Roetenberg, D., Х.Дж. Линдж, C.T.M. Baten и П.Х. Велтинк. "Компенсация Магнитных Воздействий Улучшает Инерционное и Магнитное Обнаружение Ориентации Сегмента Человеческого тела". Транзакции IEEE в Нейронных Системах и Разработке Реабилитации. Издание 13. Выпуск 3, 2005, стр 395-405.
ahrsfilter
| ecompass
| gpsSensor
| imufilter
| imuSensor
| quaternion
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.