Mityan
Jun 13 2012, 13:23
Кто выполнял, поделитесь, пожалуйста. Хотя бы в общих чертах.
Спасибо.
Цитата(Mityan @ Jun 13 2012, 17:23)

Кто выполнял, поделитесь, пожалуйста. Хотя бы в общих чертах.
Спасибо.
А хотя бы в общих чертах расскажите, что такое ДУС и его интеграл.
Mityan
Jun 13 2012, 14:15
Датчик угловых скоростей. Его еще МЕМС гироскопом называют.
Интегрирование сигнала ДУС по трем осям дает угловое положение объета - курс, крен, тангаж. Да вот беда - ошибка интегрирования накапливается. И хотя наше устройство лежит на столе, как мы видим глазом, все математические данные говорят о том, что оно медленно крутится.
Магнитное поле Земли относительно статично, вращение устройства приводит к изменениям проекций вектора магнитного поля на оси, из которых можно вычислить те же крен, тангаж и курс, но уже без ошибки интегрирования. Но и тут не все так просто. Вот я и решил спросить
MrAlex
Jun 13 2012, 18:06
Фильтр Калмана
Mityan
Jun 14 2012, 13:22
Спасибо за идею. А лично Вы уже проектировали такой, или просто в книжках читали, что обычно на всякую такую ерунду в БИНС калмана натравливают?
MrAlex
Jun 14 2012, 16:04
Принцип рабочий.
Где-то даже открытые проекты попадались.
Еще как вариант метод наименьших квадратов, но там возможны проблемы с обращением матриц.
Mityan
Jun 15 2012, 06:21
Принципы - да, но не совсем понятно, как их реализовывать на практике.
Магнитометр и ДУС показывают, мягко говоря, не совсем одно и то же. Когда я вращаю устройство вокруг оси чувствительности ДУС (допустим, Х, т.е. вращение в плоскости OYZ), его интеграл дает угол поворота. Ровно на тот же угол поворачивается как сам вектор магнитного поля Земли (имеется ввиду в системе отсчета устройства), так и его проекция на плоскость OYZ. Но эта проекция изменяется и при вращении в других плоскостях.
С ДУС еще одно НО: если вращать его по оси, которая не совпадает с осью чувствительности, он показывает меньшую угловую скорость (видимо, проекцию полного вектора угловой скорости на свою ось). В этом случае, например, я совершил полный оборот и положил устройство на место, а интеграл ДУС говорит, что поворот совершен, например, на 250 или сколько там еще градусов вместо 360.
Может быть, дело в том, что мне не хватает данных - вы только не смейтесь, но у меня пока один (одноосевой) ДУС, остальные заказаны, но не прибыли еще.
Известно, что zero-rate level у ДУС плавает, что может дать нам при полностью неподвижном устройстве уход угла поворота в бесконечность ос временем. Его изменения я постоянно отслеживаю и вычитаю, что избавляет нас от данного явления, но остается еще вот что: при вращениях я не могу его отслеживать. Получается: повернул, например, и вернул на место. Выход ДУС показал сначала положительную, затем отрицательную угловую скорости. Суммы этих отсчетов (положительных и отрицательных, т.е. интегралы) не равны, а это приводит к тому, что по математике устройство не вернулось в прежнее угловое положение. Образовалась ступенька, которых со временем также может набежать очень много, что даст большую ошибку.
Вот ее я и хотел корректировать магнитометром. Предполагая, что магнитное поле Земли - достаточно медленно меняющийся параметр по сравнению с маневрами устройства. Но с математикой пока разобраться не могу.
Конечно, вариант сделать алгоритм на логике, т.е. если там по такой-то си поменялось, а по такой-то нет, то этот интеграл ДУС скорректировать на столько-то. Но это очень ненадежно.
Сколько проблем, и на пустом месте. Задача решается инклинометром.
Mityan
Jun 15 2012, 07:11
Не уверен, что это панацея. Как инклинометр ведет себя в движении?
Полно литературы по ИНС, и везде встречаются слова "акселерометр", "гироскоп", "датчик угловых скоростей", "магнитометр". А "инклинометр" встречается редко.
Цитата(Mityan @ Jun 15 2012, 10:11)

Как инклинометр ведет себя в движении?
Абстрактный инклинометр в абстрактном движении — естественно никак.
Цитата(Plain @ Jun 15 2012, 11:28)

Абстрактный инклинометр в абстрактном движении — естественно никак.
Ну... не совсем. Абстрактный инклинометр покажет вектор эффективной силы тяжести - настоящую гравитацию и все ускорения.
Mityan
Jun 15 2012, 08:26
Для тех, кто занимается этими датчиками - а значит, в какой-то степени и ИНС тоже - прошу глянуть мой вопрос по математике кватернионов в соответствующем разделе:
http://electronix.ru/forum/index.php?showtopic=103697
Да не поможет здесь никакая математика. Гораздо эффективнее просто локализовать ошибку примитивным способом — поставить с десяток гироскопов в разных плоскостях. А для нуля горизонта без датчика гравитации не обойтись, и компас таковым однозначно не является.
Mityan
Jun 18 2012, 06:38
Тут на форумах кто-то приводил ссылку на статью каких-то китайцев про MEMS gyroscope array. Но мне пока разрешен только один (ну, 3 одноосевых). Идея такая: допустим, время маневров устройства относительно мало по сравнению с временем существенного изменения вектора В (маг. поля З.), поэтому можно, сравнив путешествие этого вектора с интегралом ДУС, последний скорректировать (убрать ступеньку).\
А китайцы пишут, что при размножении датчиков точность улучшается пропорционально sqrt(N), поэтому для существенного улучшения их необходимо слишком много, особенно дешевых.
Цитата(Mityan @ Jun 18 2012, 09:38)

при размножении
Это ни разу не равно сказанному мною.
Калибровка состоит в том, что при физическом нуле каждый из датчиков покажет свой фактический ноль.
MrAlex
Jun 18 2012, 09:02
Вы бы уже озвучили желаемую точность выходной информации. Если сравнимо с точностью встроенных в смартфоны девайсов, сгодится аппнот любой фирмы занимающейся производством датчиков. Поищите,я где-то здесь уже выкладывал ссылки.
Mityan
Jun 18 2012, 11:41
А что за датчик гравитации?
Не инклинометр, случайно, он же - акселерометр?
Точность озвучить не могу, потому как не знаю. Допустим, 3 градуса за все время. А какое время? Не знаю, ну, может часа два.
Я вижу, что когда лежит на столе - все нормально. Именно для такого режима в смартфоне и предназначено. А в движении его электронный компас не может правильно работать.
blackfin
Jun 18 2012, 11:50
Цитата(Mityan @ Jun 18 2012, 15:41)

Точность озвучить не могу, потому как не знаю. Допустим, 3 градуса за все время. А какое время? Не знаю, ну, может часа два.
Допустим, инерциальные датчики с точностью 6°/час, например:
ADIS16480 или
G200 стОят немалых денег.. С чего бы это?
MrAlex
Jun 18 2012, 14:01
Цитата(Mityan @ Jun 18 2012, 15:41)

А в движении его электронный компас не может правильно работать.
Может. И не только в движении, но и в полете.
MrAlex
Jun 18 2012, 15:22
ADIS16480 тоже с использованием Калмана решение считает.
Цитата(MrAlex @ Jun 13 2012, 22:06)

Фильтр Калмана
Фильтр Калмана - это всего лишь фильтр и ничего более.
Поясните, пожалуйста, каким образом он (ФК) может корректировать интеграл ДУС с привлечением магнитометра?
MrAlex
Jun 18 2012, 16:51
Цитата(MrAlex @ Jun 18 2012, 20:51)

Лучше попытайтесь объяснить своими словами, тогда вам будут понятнее ваши ошибки.
MrAlex
Jun 18 2012, 17:14
Цитата(SDFF @ Jun 18 2012, 20:56)

Лучше попытайтесь объяснить своими словами, тогда вам будут понятнее ваши ошибки.
java script:add_smilie(":)","smid_41") Своими словами я это пересказывал ровно 10 лет назад на защите.
Читайте. На английском больше информации.
В айборн левел страпдоун систем размер матрицы состояния доходит до нескольких десятков, что позволяет компенсировать не только дрейфы, но и масштабные ошибки и неортогональности, равно как и получать уточненные навигационные параметры.
Цитата(MrAlex @ Jun 18 2012, 21:14)

java script:add_smilie(":)","smid_41") Своими словами я это пересказывал ровно 10 лет назад на защите.
Читайте. На английском больше информации.
В айборн левел страпдоун систем размер матрицы состояния доходит до нескольких десятков, что позволяет компенсировать не только дрейфы, но и масштабные ошибки и неортогональности, равно как и получать уточненные навигационные параметры.
Если говорить без поминания всяких матриц, то фильтр Калмана неплохо работает, например, при фильтрации измерений параметров движения объектов, падающих на голову измерителям по баллистической траектории, спутников, вращающихся по достаточно хорошо известным и повторяющимся траекториям орбит, ослика, ходящего по кругу с о стабильной скоростью и с радиусом, фиксированным веревкой, то есть там, где параметры движения достаточно хорошо известны.
Если параметры движения плохо предсказуемы, то ФК, в лучшем случае, бесполезен. Это же элементарно.
MrAlex
Jun 18 2012, 17:30
Цитата(SDFF @ Jun 18 2012, 21:20)

Если параметры движения плохо предсказуемы, то ФК, в лучшем случае, бесполезен. Это же элементарно.
При наличии адекватной модели ФК позволяет оценивать даже параметры явно не наблюдаемые, основываясь только на статистической информации. Так же как и увязывать несколько измерений одной величины из нескольких источников.
Цитата(MrAlex @ Jun 18 2012, 21:30)

При наличии адекватной модели ФК позволяет оценивать даже параметры явно не наблюдаемые, основываясь только на статистической информации. Так же как и увязывать несколько измерений одной величины из нескольких источников.
Еще раз, где вы возьмёте адекватную модель? Практическим людям не шашечки адекватных книжных моделей, а ехать надо, вернее мерить, как они пишут,”курс, крен, тангаж”. Предложите им адекватную модель.
MrAlex
Jun 18 2012, 18:13
Цитата(SDFF @ Jun 18 2012, 21:38)

Еще раз, где вы возьмёте адекватную модель? Практическим людям не шашечки адекватных книжных моделей, а ехать надо, вернее мерить, как они пишут,”курс, крен, тангаж”. Предложите им адекватную модель.
Например для тех кто спешит:
http://cache.freescale.com/files/sensors/d...T=DocumentationДоступное описание даже с кусками кода.
Цитата(MrAlex @ Jun 18 2012, 22:13)

Например для тех кто спешит:
http://cache.freescale.com/files/sensors/d...T=DocumentationДоступное описание даже с кусками кода.
Так, и где там “фильтр Калмана” и адекватная модель для него? Пальцем, если можно, покажите.
MrAlex
Jun 18 2012, 19:15
Так же по теме в картинках
http://ugorka.ivakorin.ru/viewtopic.php?f=19&t=707Некоторое время назад еще существовал openuav, наверняка еще исходники найти можно при желаниии.
Опять же игрушка с открытым исходным кодом
http://www.pololu.com/catalog/product/1255
Mityan
Jun 22 2012, 11:43
Я прошу прощения, что возвращаюсь.
Вот все-таки что нужно делать в следующей ситуации (уже описывал выше, но не заостряя внимание):
Вектор угловой скорости раскладывается по базису аналогично всем другим векторам. В результате проекции на оси чувствительности меньше его полной длины. Например, вращение происходит в плоскости, перпендикулярной 0XY под углом 45 град к осям X,Y. Тогда угловая скорость вдоль каждой из осей будет равна 1/sqrt(2), что при полном обороте даст по 255 градусов поворота по каждой оси (после интегрирования). Нонсенс! Что делать?
Масштабировать, разделив на косинус?
MrAlex
Jun 22 2012, 12:33
Цитата(Mityan @ Jun 22 2012, 15:43)

Я прошу прощения, что возвращаюсь.
Вот все-таки что нужно делать в следующей ситуации (уже описывал выше, но не заостряя внимание):
Вектор угловой скорости раскладывается по базису аналогично всем другим векторам. В результате проекции на оси чувствительности меньше его полной длины. Например, вращение происходит в плоскости, перпендикулярной 0XY под углом 45 град к осям X,Y. Тогда угловая скорость вдоль каждой из осей будет равна 1/sqrt(2), что при полном обороте даст по 255 градусов поворота по каждой оси (после интегрирования). Нонсенс! Что делать?
Масштабировать, разделив на косинус?
А ничего делать не нужно.
Общее количество движения будет правильным.
Mityan
Jun 27 2012, 10:02
Заметил, что магнитометр обладает инерционностью. Изменения его вектора приблизительно на полсекунды отстают от действительных движений. Поэтому, наверное, кроме логического алгоритма - если горизонтальная составляющая вернулась в исходное положение, то обнулять интеграл ДУСа - иного нет.
я смог достичь повышения точности (примерно в 100 раз уменьшился дрифт, и в 10 раз точность измерения Элеровких углов), поставив 8 раз по 3Д магнетометру, 3Д акселометру, и 3Д гироскопу, разбросав из более менее равномерно внутри коробки (кубик 10см). А результаты пришлось от температуры табулировать, и пересчитывать значения с пары акселлометров на значение в гироскопе, и, понятно, все в наименьшие квадраты. Реально 9 арм еле-еле с этой задачей справляется, у меня результаты с хорошей точностью сыпятся только с задержкой в 10секунд. Бюджет только компонент почти дошел до штуки бакс. Так что думайте сами, стоит ли оно Вам.
А зачем все-таки вам магнитометры 8 раз?
(напомню, что с этого вопроса начинался топик).
Я тут на матлабе накропал алгоритмик. Учитывая, что по крену-тангажу аппарат стремится всегда выровняться, обрабатываю сигнал одного единственного дешевого ДУСа (ENC-03R) без использования чего бы то ни было, так, что, когда качаю девайс туда-сюда в разные стороны с разной амплитудой и скоростью и возвращаю на место в исходное положение, интеграл ДУСа тоже возвращается на место (с ошибкой редко когда до 10 градусов). По крайней мере, самопроизвольных уплывов в бесконечность нет уже.
Правда, не знаю, заработает ли это на реальном аппарате, скоро будем пробовать, постараюсь отчитаться потом.
Так ответьте, если можно, про магнитометры.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.