roboforum.ru

Технический форум по робототехнике.

Фильтр Калмана

Re: Фильтр Калмана

Ku6opr » 30 июн 2009, 02:09

Какой физический смысл ненулевых значений кроме как на диагонали в матрице ковариантностей?

Зависимости между значениями (параметрами) состояния системы в данный момент.
Матрица ковариации на каждой итерации подстраивается, пытаясь отразить действительную ковариацию параметров
Есть ли где-то обоснование не сильно запутанное оптимальности выбора окончательной матрицы которой корректируем состояние системы с точки зрения минимизации скорректированной матрицы ковариантностей?

http://en.wikipedia.org/wiki/Kalman_filter
раздел "Kalman gain derivation", в котором говорится, что минимизируя сумму диагональных элементов матрицы ковариации, мы получаем минимальное ожидаемое значение квадрата ошибки
Как мы принимаем решение какая матрица погрешностей хуже, а какая лучше

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

На каждом этапе по формулам или что имеется в виду? :)
Почему K оптимально - тут тупо надо доказательство найти

Смотреть ссылку выше :roll:

Re: Фильтр Калмана

=DeaD= » 30 июн 2009, 12:30

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

Добавлено спустя 1 минуту 49 секунд:
Ku6opr писал(а):
Как смешиваются матрицы погрешностей при изменении состояния системы или при добавлении информации от наблюдений

На каждом этапе по формулам или что имеется в виду? :)

Как формулы выводятся, хотя там наверное это очевидно выводится из того как преобразуются координаты. В общем надо еще глянуть.

Ku6opr писал(а):
Почему K оптимально - тут тупо надо доказательство найти

Смотреть ссылку выше :roll:

Ага, гляну сегодня, спасибо!

Добавлено спустя 1 час 50 минут 37 секунд:
Вообще как-то я удивительным образом проморгал отличную статью в википедии на англицком :( сейчас её к нам в вику переведу.

Re: Фильтр Калмана

=DeaD= » 02 июл 2009, 11:35

Короче перевел первую часть статьи из англоязычной википедии: [[Фильтр Калмана]], там где непосредственно про этот фильтр, остальное позже переведу, про связь фильтра с другими шнягами.

Re: Фильтр Калмана

Ku6opr » 03 июл 2009, 23:34

Молодец! Хорошая работа

Re: Фильтр Калмана

Microalone » 17 фев 2010, 09:56

У меня задача расчитать скорость(а лучше даже положение), используя сенсоры ускорения и ориентации. Разумно ли мне будет применять алгоритм Калмана? И если можно на примере...Честно долго голову сам ломал, для понимания очень сложный алгоритм.

Re: Фильтр Калмана

=DeaD= » 17 фев 2010, 09:57

Какую скорость и положение надо рассчитать? и какие конкретно сенсоры есть? 3-осевой аксель и 3-осевой гиро?

Re: Фильтр Калмана

Ku6opr » 18 фев 2010, 01:56

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

Какую точности хотите получить?

И уточните какие датчики имеются.

Re: Фильтр Калмана

Microalone » 18 фев 2010, 02:08

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

Расчитать скорость мобильного устройства. Ну то есть пользователь держит его, манипулирует им, и вот скорость от этих манипуляций мне и желательно подсчитать. (Некий манипулятор сделать) Причём предполагается, что пользователь не особо зверствует над ним, например держит дисплэйем перед собой и двигает его как лупу для просмотра чего либо.
При этом доступа к самому железу у меня нет, я программирую на "высоком" уровне подо всё это.
Есть гиро, аксель, трёх-осевые. Ещё есть сенсор, который выдаёт магнитное поле.

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

Add: Эндокодеров, к сожалению, нету =(

Re: Фильтр Калмана

Michael_K » 18 фев 2010, 02:18

Важно для чего.
Есть ли обратная связь от человека?
Нужна позиция или скорость?
Можно ли считать среднюю скорость нулевой (человек при этом стоит)?
и т.д. и т.п.
Опишите задачу, а не то, как вы хотите ее решать... :wink:

Re: Фильтр Калмана

=DeaD= » 18 фев 2010, 08:13

Ku6opr писал(а):после интегрирования будет возникать мнимая ненулевая скорость даже в стоячем положении

Это что за новость? :shock: Комплексный вариант фильтра Калмана? :crazy:

Добавлено спустя 1 минуту 10 секунд:
Microalone писал(а):У меня не робот, у меня телефон.

Ну тогда надо найти библиотеку с фильтром Калмана и применить.

Re: Фильтр Калмана

Microalone » 18 фев 2010, 10:03

Ну тогда надо найти библиотеку с фильтром Калмана и применить.

кстати что то я недогадался поискать =\ вот нашёл. Главное поставить задачу и понять что тут есть что =)
wiki/Фильтр_Калмана
прочитал вот это. Возникли вопросы:
1)вектором управляющего воздействия можно считать показания акселерометров?
2)Что принимают за матрицу соответствующая модели преобразования системы со временем?
3)как считаются погрешности?

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


Обратной связи нет, вроде как, есть прямая)
Найти надо проекцию скорости на каждую из трёх осей.
Ественно абсолютного нуля нигде не будет, поэтому можно считать и среднюю. На акселерометры постоянно воздействует ускорение свободного падения.
Даже не знаю, что ещё можно написать.

Это что за новость? Комплексный вариант фильтра Калмана?

тут имеется ввиду скорость, которой на самом деле нет :) это слово же носит в себе и другой смысл, кроме математического

Re: Фильтр Калмана

=DeaD= » 18 фев 2010, 10:10

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

Re: Фильтр Калмана

Michael_K » 18 фев 2010, 12:18

Microalone писал(а):
Есть ли обратная связь от человека?

Обратной связи нет, вроде как, есть прямая)

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

Я же не зря вас просил описать задачу, а не то как вы хотите ее решить.
Например, управлять курсором на экране - это одно - человек видит, что делает,
и корректирует свои действия. А вслепую заводить самолет на посадку (:wink:) - это другое.

Microalone писал(а):
Можно ли считать среднюю скорость нулевой?

Ественно абсолютного нуля нигде не будет, поэтому можно считать и среднюю.

то ли вы не поняли вопроса, то ли я - ответа :pardon:

Re: Фильтр Калмана

Microalone » 18 фев 2010, 20:42

то ли вы не поняли вопроса, то ли я - ответа

скорее я =) Да, средняя скорость где то очень около нуля, если считать её между 2мя ближайшими измерениями. (другое дело, что гораздо меньше секунды, скорость за такое время не уловишь) А если находить текущую скорость "Классически" ( ужеИмеющасяСкороть + ускорение / времяУскорения) расходится из за погрешностей, причём очень быстро расходится. Либо её занулять периодически, либо я не знаю.

да, обратная связь есть, предполагается, что пользователь всё видит.

Re: Фильтр Калмана

=DeaD= » 18 фев 2010, 20:48

Имея только аксель и гиро фиг вы сможете нормально мерить скорость, ошибка то не сбрасывается.


cron
Rambler\'s Top100 Mail.ru counter