roboforum.ru

Технический форум по робототехнике.
Текущее время: 26 ноя 2024, 23:00

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 18 фев 2010, 20:50 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
да, обратная связь есть, предполагается, что пользователь всё видит.

Это проще.

Если в целом на длинном периоде никто никуда не уходит.
То есть все движение происходит примерно вокруг одной неподвижной точки,
то можно просто чуточку фильтровать скорости и ускорения ВЧ фильтром
с разумными постоянными времени.
Ну то есть не надо идеальным интегратором интегрировать.

А кальман - да, в таком случае поможет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 19 фев 2010, 11:52 
Не в сети

Зарегистрирован: 17 фев 2010, 09:50
Сообщения: 5
Откуда: Дзержинск
прог. языки: С/С++
Michael_K писал(а):
Цитата:
да, обратная связь есть, предполагается, что пользователь всё видит.

Это проще.

Если в целом на длинном периоде никто никуда не уходит.
То есть все движение происходит примерно вокруг одной неподвижной точки,
то можно просто чуточку фильтровать скорости и ускорения ВЧ фильтром
с разумными постоянными времени.
Ну то есть не надо идеальным интегратором интегрировать.

А кальман - да, в таком случае поможет.

спасибо. Я думаю я тогда попытаюсь реализовать некое программное подобие этого фильтра.

=DeaD= писал(а):
Имея только аксель и гиро фиг вы сможете нормально мерить скорость, ошибка то не сбрасывается.

Прошу прощение за незнание, любопытства ради спрашиваю :)
а что нужно, чтобы мерять? Ошибка то в любом случае будет. Я так думал, что с приборов снимаются показания, а потом уже аппаратно / программно фильтруются / обрабатываются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 19 фев 2010, 12:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Правильно, снимаются, фильтруются, обрабатываются, но нужна привязка к внешним объектам, чтобы компенсировать ошибки измерения.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 10 мар 2010, 19:04 
Не в сети
Аватара пользователя

Зарегистрирован: 25 апр 2009, 12:03
Сообщения: 169
Откуда: Москва
прог. языки: С
ФИО: Клесник Станислав Владимирович
Вот неплохое описание http://www.navgeocom.ru/gps/kalman/index.htm

_________________
Сон разума рождает чудовищ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 10 мар 2010, 19:06 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Что-то не понял в этом описании - а нафига они такой тупой пример взяли, когда измеряемая модель отсутствует практически? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 10 мар 2010, 19:20 
Не в сети
Аватара пользователя

Зарегистрирован: 25 апр 2009, 12:03
Сообщения: 169
Откуда: Москва
прог. языки: С
ФИО: Клесник Станислав Владимирович
меня интересовал фильтр применительно к гибридной системе позиционирования! там рисунок 6

_________________
Сон разума рождает чудовищ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 10 мар 2010, 19:40 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А ну это не описание хорошее, это хорошие примеры применения :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 26 мар 2010, 08:44 
Не в сети

Зарегистрирован: 26 мар 2010, 08:35
Сообщения: 2
Здравствуйте!
Занимаюсь измерением ровности дороги. На ось автомобиля закрепляется акселерометр. С его помощью измеряем ускорение по оси Z. Скорость движения постоянна. Задача: посчитать высоты микропрофиля дороги (траекторию движения оси автомобиля). В итоге получается каша, а не данные. Провели несколько заездов, микропрофили почти не коррелируют между собой... Может ли применение фильтра Калмана как-то исправить ситуацию? Судя по данным акселерометра. машина то уходит под землю, то взлетает, потому считаю через некоторый промежуток времени, что скорость становится нулевая (через секунду например). Очевидно , что скорость будет нулевая достаточно часто (машина движется вверх-вниз, меняя знак скорости и ускорения) - но, видимо, это очень грубое приближение.
Можете что-нибудь посоветовать в этом случае? буду премного благодарен:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 28 мар 2010, 01:47 
Не в сети
Аватара пользователя

Зарегистрирован: 19 май 2008, 12:04
Сообщения: 50
Откуда: Украина, г. Харьков
прог. языки: C#, C++
Что такое высота микропрофиля дороги? Если это неровности, то тогда по амплитуде вибраций относительно 1g можно судить о неровностях. И Вам не нужно находить высоту дороги, интегрируя ускорение.
Если нужно найти абсолютную высоту дорожного полотна, то тогда используйте фильтр Калмана, у которого будут подаваться на вход информация с датчика высоты (например такой http://www.sparkfun.com/commerce/product_info.php?products_id=8128), который имеет низкую точность, но не накапливает погрешность, + акселерометр (высокая точность, накапливает погрешность).
А задача определения позиции по одному акселерометру недавно возникала, вроде красивого решения не нашли...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 28 мар 2010, 02:05 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Meepo писал(а):
Задача: посчитать высоты микропрофиля дороги (траекторию движения оси автомобиля).

Двойное интегрирование - это совсем плохая операция так как ошибка не просто накапливается а накапливается быстро и сильно :)
Вам нужно определиться с интересующими вас "частотами" (что такое микропрофиль?)
как по скорости, так и по ускорению и использовать не идеальный двойной интегратор,
а фильтры интересующего вас диапазона частот. Тогда результаты будут "получше".

Например, понятно, что сильно низкие частоты (машина едет в гору, потом с горы) - это не микропрофиль
ускорения там небольшие, но времена длинные и после двойного интегрирования это дает дикую ошибку.
И сильно высокие частоты (скажем рисунок протектора или шум шариков ступицы) - это тоже не микропрофиль
(там времена небольшие, но _могут_ быть большие абсолютные ускорения-вибрации, что зашумляет ваш "полезный сигнал")...

Короче, фильтровать, не использовать "интеграторы", и не рассчитывать на хороший результат :pardon:
имхо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 03 апр 2010, 15:00 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Meepo писал(а):
Судя по данным акселерометра. машина то уходит под землю, то взлетает

Так вы введите корректирующую составляющую постоянно смещающую результат измерения к 0, тогда и получите микропрофиль, а иначе вы ошибки накапливаете просто. Там глядишь и график кое-как коррелировать начнет. И расстояние надеюсь не акселерометром меряете, а с колёс снимаете хотя-бы?

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 08 апр 2010, 14:56 
Не в сети

Зарегистрирован: 26 мар 2010, 08:35
Сообщения: 2
=DeaD= писал(а):
И расстояние надеюсь не акселерометром меряете, а с колёс снимаете хотя-бы?

Расстояние пока по GPS (учитывая, что движение с постоянной скоростью).
=DeaD= писал(а):
Так вы введите корректирующую составляющую постоянно смещающую результат измерения к 0, тогда и получите микропрофиль, а иначе вы ошибки накапливаете просто. Там глядишь и график кое-как коррелировать начнет.

Вот я и смещаю результат в 0.
Цитата:
то уходит под землю, то взлетает, потому считаю через некоторый промежуток времени, что скорость становится нулевая (через секунду например)
или как-то еще можно?
Ku6opr писал(а):
Если это неровности, то тогда по амплитуде вибраций относительно 1g можно судить о неровностях

Каша получается не вследствие того, что ошибки накапливаются, а из-за того, что данные СИЛЬНО зашумлены. Те самые амплитуды кажутся вообще случайными. И вот как из них выделить полезный сигнал...
Michael_K писал(а):
Вам нужно определиться с интересующими вас "частотами" (что такое микропрофиль?)
как по скорости, так и по ускорению и использовать не идеальный двойной интегратор,
а фильтры интересующего вас диапазона частот. Тогда результаты будут "получше"

Микропрофиль - относительные отметки по высоте, обычно с шагом 0,125м или 0,25м. Для оценки ровности необходимо выделить длины волн в диапазоне 0.63-100м. Но как из этого получить, какие частоты меня интересуют по скорости и ускорению?

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

И ещё, не знаю, оффтопик или нет, но вопрос такой: цитата из руководства: "Для фильтрации массивов записанных микропрофилей и эталонных массивов нивелирования рекомендуются фильтры четвертого порядка без сдвига фазы." и приведена передаточная характеристика фильтра - функция частоты. Я правильно понимаю, что это означает так называемую свертку в частотной области, т.е. что-то вроде этого http://www.ov4inul.ru/ov4inul1.htm ? Если да, то довольно странно фильтровать эти изначально time-domain данные в frequence-domain. Попробовал, да, действительно сглаживается, но только в области частот, а в области x-координат (пикетов, или как это назвать... в общем, функция Z-отметки от смещения относительно начала участка) получается вообще нечто страшное.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 08 апр 2010, 15:13 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Кальман тут малоприменим. Кальман хорошо работает, когда о системе известно еще что-то,
кроме показаний одного датчика (дополнительные датчики, заданные значения и т.д.)

Meepo писал(а):
Вот я и смещаю результат в 0.
"то уходит под землю, то взлетает, потому считаю через некоторый промежуток времени, что скорость становится нулевая (через секунду например)" или как-то еще можно?


Я же говорю, не пользуйтесь идеальными интеграторами.

Вы считаете что-то вроде "Скорость(1) = Скорость(0) + Ускорение(0)*dT",
А нужно что-то вроде "Скорость(1) = Скорость(0)*K + Ускорение(0)*dT"
Где K меньше единицы. К будет определять постоянную времени этого фильтра.

Это и будет "неидеальный интегратор", он же БИХ-фильтр ВЧ первого порядка.
Он не "периодически обнуляет", он постоянно с заданным коэффициентом "тянет сигнал к нулю".
Точно так же можно делать и фильтры КИХ (они фазы не будут сдвигать) и фильтры более высоких порядков.

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

Чтобы перевести ваши длины (0.63-100м) в частоты, нужно, очевидно, знать скорость, с которой ваша
тестовая машинка едет по дороге. Хотя диапазон очень большой (порядка восьми октав) и хорошо
обработать его будет достаточно сложно.

Что вас смутило в алгоритмах ЦОС, я не понял - частотная характеристика однозначно
переводится во временную для указанного (рабочего) диапазона частот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 08 апр 2010, 15:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
При этом не только скорость по вертикали надо так снимать неидеальным интегратором, но еще и саму высоту.

А расстояние начинайте мерять снимая показания с колёс и подтягивая расстояния снятое с колёс тем же методом к расстоянию снятому с GPS

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Фильтр Калмана
СообщениеДобавлено: 29 апр 2010, 08:27 
Не в сети
Аватара пользователя

Зарегистрирован: 08 фев 2009, 10:13
Сообщения: 700
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий
На первой странице есть ссылка -> http://www.openuav.astroplanes.com/library/docs/kalman_intro.pdf
Вот только она уже несколько дней не работает :( , может у кто-то раньше скачал этот документ?
Если да, то убедительная просьба поделиться.

_________________
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 60 ]  На страницу Пред.  1, 2, 3, 4  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO