Создание собственной системы стабилизации

SergDoc

Да блин “птицы в свиней” покоя не дают им видите ли РеалТайм мешает на пульт картинку нормально передавать 😃
на счёт кино как: да их море арду тот же, или автоквад, или рево (последнее мне понравилось )

по делу, если цензура пропустит 😃, будет пират-пиратский(новая инкорнация), ждёмс 😃

oleg70
SergDoc:

(последнее мне понравилось )

Мне вот что понравилось:

По моему “узел” стабилизации выполнен на “отлично”, неужели для достижения этого результата необходимы РТОСы, “Калманы” и прочая экзотика ??

SergDoc

Ну уж не знаю, чем там вуконг дишит, но в нём тоже не всё так просто 😦

oleg70
SergDoc:

но в нём тоже не всё так просто

Сдается мне (сугубо интуитивно) просто “довели до ума”…, вряд ли ключевым и необходимым фактором является какая нибудь РТОС, скорее датчики +“причесанный” софт…

Sir_Alex
oleg70:

По моему “узел” стабилизации выполнен на “отлично”, неужели для достижения этого результата необходимы РТОСы, “Калманы” и прочая экзотика ??

А вы попробуйте сделать то же самое без всяких Калманов и прочей экзотики, и нам покажите 😉

oleg70:

Чего хотят люди от летательного аппарата в виде “четырех моторов на двух палках”

Все просто, хотят сделать автопилот. Та же Арду может управлять не только двумя палками с моторами, а еще и самолетом и ровером(машинкой).

Я на своем опыте могу сказать, что разные дилетанские мысли типа “Так там же все просто” начинают биться о скалы, когда надо обработать стони ситуаций, например человек поставит моторы другие или пропы большие, в полете откажет RC, GPS, телеметрия и другие подсистемы… и автопилот должен уметь обработать эти ситуации. Вот из способности обработать такое и выливается действительно хорошие мозги за которыми носится весь мир.
Конечно, вышеупамянутый КК может летать, но что будет если у вас пропадет соединение с пультом управления??? Все кирдык ему будет (в крайнем случае сядет, если повезет). Топовые контроллеры умею выходит из этой ситуации включая RTL.
Обработка сигнала от GPS - казалась бы тривиальна, ан нет и тут найдется чем занять CPU. К сожалению, GPS за 20$ не может быть идеальным по определению и подкидывает нам бяки в виде скачущих координат, которые надо фильтровать…

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

oleg70:

вряд ли ключевым и необходимым фактором является какая нибудь РТОС

Где вы прочитали что это ключевой фактор?

WETErok
oleg70:

Мне вот что понравилось:
По моему “узел” стабилизации выполнен на “отлично”, неужели для достижения этого результата необходимы РТОСы, “Калманы” и прочая экзотика ??

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

Как я вижу идеальный контролер “мозжечок”.
Беру две палки на них креплю моторы какие попались и 4 винта, при чем винты у меня почему то оказались разных размеров и шага. Ставлю мозжечок, без всяких настроек пидов и прочих коэффициентов. Включаю подбрасываю вверх, даю газу и … чудо висит коптер в воздухе 😃
Пункт второй подключаю к компу читаю логи, программа на компьютере мне дает рекомендации, изменить центр тяжести, диаметр винтов, шаг и тд…
Конечно мне еще кое что нужно, но об этом не пишу.

rual
Sir_Alex:

Сообщение от oleg70
По моему “узел” стабилизации выполнен на “отлично”, неужели для достижения этого результата необходимы РТОСы, “Калманы” и прочая экзотика ??
А вы попробуйте сделать то же самое без всяких Калманов и прочей экзотики, и нам покажите

Калман не панацея, по простому его задача “подсекать” влияние акселя на горизонт при большом разбросе его показаний, тем не менее он всё равно придерживается матожидания (среднего значения в разбросе показаний) акселя. Так что при плохом датчике или хорошей вибрации он не поможет. Доказано практикой (не моей).
А РТОС это просто средство организации многопоточного выполнения программы, удобство для программиста (знакомого с данной РТОС). У меня пока всё чисто на прерываниях, пока параллельных потоков не много РТОС не нужна.

HikeR

теоретически, калман может компенсировать что угодно при наличии адекватной модели “ошибок”. гироскопы плывут от температуры, аксели от вибраций, компас от электромагнитных наводок. вводим в фильтр показания градусника, второго акселя и датчика тока — вуаля, все ошибки исправлены.

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

SergDoc

Ага, ща начнём плодить популяции нейронов-шаманов 😃 а я та думаю, чем проц нагрузить 😃

Sir_Alex
WETErok:

Беру две палки на них креплю моторы какие попались и 4 винта, при чем винты у меня почему то оказались разных размеров и шага. Ставлю мозжечок, без всяких настроек пидов и прочих коэффициентов. Включаю подбрасываю вверх, даю газу и … чудо висит коптер в воздухе

Кстати, мне кажется такое вполне можно сделать, правда немного не так. Ставим все как вы написали, все разное, моторы, пропы… Ставим коптер на землю и даем ему команду “Пристрел”, он потихоньку дает газ на каждый мотор по очереди и ждет момента отрыва от земли, как оторвался, записываем параметры мотора и так проверяем все моторы. Дальше эту информацию можно использовать для правильного управления. )))
Ну и к компу подключаем, а нам, мотор 1 - низкая скорость реакциии. Мотор 2 - недостаточная тяга… и т.п.

rual
HikeR:

калман может компенсировать что угодно при наличии адекватной модели “ошибок”.

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

посему послал калмана лесом, пока сам всё это не изобрету 😃

oleg70

Во первых спасибо всем, что так активно отреагировали на мою реплику (провокационную) 😃 .
Функции “мозгов” коптера все ж условно разбиваются на две основные части : это самостабилизация и “все остальное…”, причем без нормальной первой части, вторая теряет всякий смысл…
Я то и имел в виду первое… , а дальше понятно, поле для деятельности безгранично (ограничивается только мощью “камня” и уровнем математики)…

WETErok:

4 винта, при чем винты у меня почему то оказались разных размеров и шага.

Как раз “Калман” то и не позволит Вам менять никакие физические характеристики аппарата, один раз подобранная (с большим трудом) “мат. модель” будет действительна только для одной конфигурации…

Sir_Alex:

а RTOS - это просто облегчение себе работы

Вещь конечно “вкусная” но насчет упрощения работы - вопрос очень даже спорный…
(Я б не сел в самолет, управляемый “Windows” 😃 )

SergDoc
oleg70:

Я б не сел в самолет, управляемый “Windows”

У них фамилии разные 😃

oleg70:

Как раз “Калман” то и не позволит Вам менять никакие физические характеристики аппарата, один раз подобранная (с большим трудом) “мат. модель” будет действительна только для одной конфигурации…

Есть ещё слово такое загадочное - Адаптивный?

WETErok

Я написал что нельзя висеть стабильно

WETErok:

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

скажите я ошибаюсь или уже всё таки можно ?

oleg70
SergDoc:

Есть ещё слово такое загадочное - Адаптивный?

Я про него (“калмана”) почитал и все что понял мой мозг: это то что, называть сей метод “фильтром” можно с большой натяжкой…
Т.е. он позволяет получить искомую величину при ограниченном (не точном) или недостаточном количестве косвенных измерений с датчиков, ОН как бы “восстанавливает” правильное значение при “кривых” измерениях используя некую мат.модель (которую придется делать ручками и скорее всего экспериментально)…
Про адаптивный ничего не нашел (возможно недочитал…), вещь сложная для понимания для моего среднего мозга…
Сразу скажу - могу сильно ошибаться (даже очень)…

WETErok:

скажите я ошибаюсь или уже всё таки можно

То что можно - очевидно, вопрос: “как” и “с помощью чего” ???

SergDoc

Имеется возможность самоадаптации какими-то магическими способами - изменение матрицы ковариаций в реальном времени, но блин надо чтобы кто-нибудь это расказал “нормальным” языком, а то блин куча букав, а потом бац формула готова, а откуда куда и чё вообще - х.з. , у нас физик в технаре такой был, чё-то сам себе бубнит, чё-то рисует на доске - короче приходилось приходить с занятий и блин по учебникам выяснять, чтоже мы сегодня изучали, слава богу хоть на экзаменах адекватный был 😃

Одной из основных проблем, с которой сталкиваются при работе с фильтром Калмана, является то, что как модель самой системы, так и модель измерений неидеальны. Статистические свойства шумов, а именно, их ковариационные матрицы являются теми параметрами, от которых зависит точность оценивания вектора состояния системы, то есть точность работы фильтра.
Обычно начальные значения ковариационных матриц шума измерений и шума процесса выбираются путём анализа некоторых эмпирических данных или путём моделирования различных ситуаций и далее считается постоянной. Если в процессе использования этих данных выясняется, что работа фильтра неудовлетворительна, то требуется новая настройка ковариационных матриц шумов. Появляется задача адаптивной фильтрации – параллельно с оценкой вектора состояния системы оценивать статистические свойства шумов процесса и измерений (ковариационные матрицы) с целью повышения точности работы фильтра. Один из методов такой оценки – метод “Уточнение ковариации”.

oleg70
SergDoc:

а то блин куча букав, а потом бац формула готова,

Из за “мутности” и непонятности у меня возникает подозрение, что реально понимающих - не так уж и много…
Можно заявить: “я запустил калман”, а как доказать что он реально работает (и как эффективно) а не мешает ??

SergDoc

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

rual
SergDoc:

А вот PID привязан уже жестко к типу аппарата (и далеко не всегда правильно)

Я вот ПИДы вообще не меняю, даже не знаю какие стоят, а мозги постоянно качуют с одного аппарата на другой. Аппараты очень разные… Для себя сделал вывод, что ПИД для многоротора (для соразмерных аппаратов) менять не нужно, а вот для самолей всё равно придется подбирать под каждый. Даже если делать автонастройку, то только полуавтомат, т.е. мозг набирает статистику ошибок и даёт рекомендации по изменению, а дальше сам меняешь ручками. Иначе моск может проскочить “пространство стабильности” и завалить аппарат, причем это может произойти внезапно, просто при изменении внешних условий.

450 12е пропы ДТ700

диаганаль моторов 300 9е пропы 930KV, нестандартный аппрат, с очень большими мометами энерции по всем осям при указаных пропах

ну и совсем другие мозги, рама 450 9е пропы 930 КВ

Падение на первом вызвано отсечкой неправильно настроенного регуля, болтанка на 2,3м вызвана исключительно пилотом, ибо хотелось проверить качество управления.
ПИды везде одинаковые!
Более тонкую настройку ПИДов стоит выполнять только в части улучшения экономичности и то при наличии качественных регулей.

rual

Вот ещё добавлю про датчики. Сегодня опять вернул Ф3Дискавери на 450ю раму для проверки отключения 4го мотора.
При одинаковых алгоритмах на МПУ всё прилично, на ЛСМ горизонт кривит не по детски…

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

Что собсна говорит о том, что такая особенность имеется у всех ЛСМ и её проявление не зависит от качества фильтра и параметров вибрации. Привет, ПиксХавку!

SergDoc

У меня тут мысль в башке вертится:

  1. Цикл жесткий - магическое число - регули на 400, значит 2500 (ну можно с вариациями на тему)
  2. Фильтр даёт ПРЕДСКАЗАНИЕ положения в момент записи в таймеры, а не в момент расчёта
  3. ПИД обязан вычислить и записать в таймеры нужное ВОВРЕМЯ дабы небыло проскоков периода.
    Отсюда вытекают две вещи:
    внутренние фильтры датчиков придётся отключать! дабы повысить скорость считывания и не ловить старые данные - они будут не верны 😦
    ну и как следствие нужен мощный фильтр дабы он справился с сырыми данными
    как доказательство - мелкоплата на LSM ТОЛЬКО с одноосевым Калманом до комплиментарного и на максимальной частоте выборки удалось хоть как-то завести аксель…