Создание собственной системы стабилизации
это финишный кусок
Из представленного кода понял, что как раз используется плавающий коэфициент с предсказанием и одновременным ограничением диапазона… К сожалению неясно как считается сам “alt” и “EstAlt”…, буду “копать” источники…
c 0.46 GPS в удержании высоты не учавствует
на побаловаться www.cs.utexas.edu/~teammco/misc/kalman_filter/
GPS в удержании высоты не учавствует
Я так понял (из собственных экспериментов в полете) что GPS надежно и правильно выдает только координаты, остальные показания (высота, азимут, скорость) в разные непонятные промежутки времени могут произвольно скакануть как угодно…, нужно сильно поломать голову чтоб исключить такие ситуации…
Короче придется мне все ж магнитометр то возвращать на плату 😦 - он хотя бы стабильный, наверно замахнусь на BMX055.
на побаловаться www.cs.utexas.edu/~teammco/misc/kalman_filter/
Сергей, а можно в двух словах, что там ?
А то кроме линии, идущей за курсором, пока ничего не понятно.
Там специально входной шум задан - дабы прицел сбить 😃 точь та же байда что и в курсе…
X-Axis Random Noise: Y-Axis Random Noise: - это шум…
Там специально входной шум задан - дабы прицел сбить 😃 точь та же байда что и в курсе…
X-Axis Random Noise: Y-Axis Random Noise: - это шум…
Ну да, с этим разобрался уже.
Кстати, если в первой матрице вместо 0.2 поставить 0.11, то будут точнее показания.
А вот изменение коэффициентов во 2-й матрице ни на что не влияет, что странно.
Основная проблема со всеми этими фильтрами в том, что не показывается каким образом получить эти самые матрицы. А дают уже готовые по принципу “вот вам матрицы - поиграйтесь с коэффициентами”.
Ну поигрались, а дальше что, как на практике применить, имея конкретные датчики?
Взять тот же курс, который сейчас преподает TUM. В начале курса была надежда на то, что они взяв конкретный аппарат (Ar. Drone) на его примере расскажут как получить мат. модель, как получить матрицы состояний и т.д. А они выдают общую информацию по каждой теме и все.
А вот изменение коэффициентов во 2-й матрице ни на что не влияет
а она не используется
c = [0, 0, 0, 0] ← control vector (not used here)
а она не используется
Тогда понятно, видимо глазами пропустил эту строчку.
Вольный перевод:
Пять матриц были настроены на работу в этой симуляции. А - матрица перехода к глобальным координатам. Эта матрица влияет на вектор измерения. В - это матрица контроля . Эта матрица влияет на векторное управление (неиспользованные в этой симуляции). Н - матрица измерений(координаты скорости). Эта матрица влияет на K (Регулятор Калмана ). Q - является матрицей неопределённостей. Эта матрица подразумевает процесс шума ковариации. R - является матрицей собственных шумов датчиков. Эта матрица означает, погрешность измерения ковариации, на основе количества шума датчика. В данной модели, Q и R являются константами, но в некоторых реализациях фильтра Калмана может корректировать их в процессе выполнения.
вот книжка по которой лекция сделана …informatik.uni-freiburg.de/fig.pdf
вот книжка по которой лекция сделана probabilistic-robotics.inform...urg.de/fig.pdf
Название файла, само за себя говорящее ))))
жилище индейцев - фигвам )))))
вот книжка по которой лекция сделана probabilistic-robotics.inform...urg.de/fig.pdf
промахнулся чутка… это дополнение к книге… саму книгу нужно покупать или “поискать”…
www.probabilistic-robotics.org
Название файла, само за себя говорящее ))))
зря, крутая книга и автор Sebastian Thrun, один из создателей гугло-мобилей…
надеюсь прочту когда нить 😃
upd: один из его курсов кстати www.udacity.com/course/cs271
Зато картинко много, а текста нет )))))
Книжки четать тут мало кто станет. Тут код подавай для копипастинга. А потом мегатема рождается типа “Йа все сделал правильно, а чета не летаеть”.
Вводим санкции: Недовольным мегатемой, Слонимская тушенка не продаётся…
Только не тушенку! Йа готоф признать свои ашыпки.
dynK = 0.015f + ( ((altDiff > 100) && (EstAlt > 0)) ? (min(altDiff - 100, 500)/10000.0f) : 0.0f );
со своим “врожденным” VB я в шоке от некотрых сишных форм записи ))
это
if (((altDiff > 100) && (EstAlt > 0)))
{dynK = 0.015f + min(altDiff - 100, 500)/10000.0f);}
else
{dynK = 0.015f);}
?
del
со своим “врожденным” VB я в шоке от некотрых сишных форм записи ))
Да, верно.
со своим “врожденным” VB я в шоке от некотрых сишных форм
Эх, найти бы кого, кто мог бы рассказать как GUI под винду делать… Прошивка почти готова, но набралась куча переменных (ПИДы, триммеры, реверсы, и прочее) которые надо как то оперативно менять, желательно прям в поле. Была мысль на флеш *.txt файл писать, но тоже темный лес…