Activity

ВПП "Щербинка"

Я тут новенький, можете дать локацию? Летать пока особо не на чем, только коптер )
Прошлые выхи был в Летово, очень понравилось (за что всем огромная благодарность!), но мне от Люберец далековато. Хотя буду наведываться по возможности.

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

Один выкладывает фотки платы, но не приводит ни ее производителя, ни ссылку где купить.

На фото достаточно инфы. Покупать не планирую. Кому интересно - спросят.

kasmirov:

Второй говорит, все хорошо, но дорого и неактуально, и есть дешевле с теми же характеристиками. Но также ничерта не приводит.

А что хотели узнать? Макс частота, МИПСы и пр. характеристики есть в документации на STM32F4xx. А за рекламу не аффилиированных ресурсов здесь бьють.

kasmirov:

Зы. Плата из сообщения выше стоит 600 руб, это дешевле, 20 уе.

Добавьте датчики и сравните. + масса и рукоделие.

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

Создание собственной системы стабилизации - это имхо в первую очередь программный код.

Совершенно верно.

seaowl:

Для тех, кто хочет попробовать свой программный код (и не хочет проектировать-изготавливать печатные платы, подбирать и паять компоненты), может быть интересная такая платка. Подключив внешние датчики (IMU) - можно сконфигурировать и залить для начала Pixhawk, ну а дальше что-нибудь своё.

Плата неплохая, но сейчас не актуальна, ибо за 20-30уё доступны очень неплохие и самодостаточные с теми же вычислительными мощностями.
А в те далекие времена 😒, когда начиналась эта ветка, вопрос о доступности достойной платформы (вычислитель+датчики) был архиважен.

Создание собственной системы стабилизации
ИльяПРо:

По-моему крутое применение алгоритмов и всей математики помимо коптеров

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

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

Хотя, помню, давно еще пробовал интегрировать линейные ускорения, это ж сразу интеграл “в небо” улетает, их как то надо корректировать тем же ЖПС чтоль (?)

В каждой итерации надо корректировать, кроме того, сам понимаешь, что важно верное направление на север, оно тоже должно корректироваться по акселю.

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

я конкретно - крен и тангаж имел ввиду

Я тоже это имел ввиду

oleg70:

при превышении некоторого порога лин.ускорений (а у Ильи динамичекое регулирование по факту).

да

oleg70:

тут, как бы, ГНСС не помощник(?)

Как не помощник ? По нему видны итоги перемещения которые можно сравнить с интгралом акселя и выполнить корректировку.

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

Как реализована компенсация линейных ускорений ? (в общих словах, сама идея, так сказать) или просто коэффициент влияния акселя сильно мал ?

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

Создание собственной системы стабилизации
ИльяПРо:

Но суть вроде понятна, что с помощью UKF можно получить абсолютную, привязанную к глобальным осям ориентацию, для использования коррекции подвесов.

Да, отличный результат!

FrSky Taranis - Максимум возможностей за минимальные деньги.
man-bis:

Кстати классный приемник. У меня летает на 3д пенолете на котором я нормальное висение сделать не могу. А с этим приемником запросто.
Но это не главное, S6R ОЧЕНЬ помогает полетам в ветер.

Тоже купил такой приемыш, но пока не облетал. Интересно использование режима выхода в горизонт, пробовали?

Было бы здорово ещё видео посмотреть))

Создание собственной системы стабилизации
ИльяПРо:

Запилил новые 2 режима для фана.

Отлично! Центр круга, относительно которого берется направление, фиксируется при включении режима?
Илья, я тебе пару вопросов в скайп написал.

Создание собственной системы стабилизации
ИльяПРо:

Не соглашусь, ничего не пропустят, дифф часть через ФНЧ проходит, поэтому там не будет скачка, а вполне растянутый горбик, нормально регули отыграют. Это не только демпфер, но и ускоритель для быстрого отработки задания. К тому же в зависимости от того, как резко должен коптер реагировать на изменение задания отвечает этот самый коэффициент, который у меня равен 0,8. Сделать меньше - будет резче, сделать больше - коптер будет вести себя как вы хотите.

Делать-не делать, тут дело вкуса 😃 По мне (ещё раз повторюсь) смысл этого ДИФФ-звена - компенсация (демпфер) колебаний в следящей системе, вызванный фазовым сдвигом из-за задержки в цепи среда-обработка-реакция (угловая скорость-датчик-контроллер-ВМГ-угловая скорость). Быстродействия хватает и без него.

ИльяПРо:

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

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

ИльяПРо:

у меня на ПИД поступает скорость с ДУСа+биас (который калман считает, то есть все время обновляется), поэтому скорость поступает без смещения.

Зачем ещё одно звено?

ИльяПРо:

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

Создание собственной системы стабилизации
ИльяПРо:

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

На мой взгляд это пустой расход энергии, если регули позволят, а если не позволят, то они это вообще пропустят. ДИФФ-звено это демпфер от раскачки и больше ничего.

alexmos:

Илья, у тебя отсутвует интегральная часть на Angle. Если действует постоянная ошиба на rate, коптер никогда не займет заданного положения по углу.

Алексей, есть у него интеграл, просто он через два коэффициента TLT_ANG_P*RTE_ANG_I.

ИльяПРо:

Но действительно можно добавить еще интегральное звено по углу.

Ничего не надо, будет медленная раскачка, двойной интеграл вносит большую задержку - очень тяжело настраивать. А в данном случае и не нужно.

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

Код плохо смотриться, исправь с [CODE]

Мне твой вариант больше нравится, но я бы сделал не много по другому.
Дифф составляющую я бы вообще отдельной параллельной веткой сделал от скорости и отвязал от задатчиков по скорости и тем более углу. Тогда вот эта ветка с весом 0.8 уберется. Задача дифф ветки "успокоить переходные процессы регулирования угла.

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

Так это уже целый комплекс - полетник+прошивка.

дык я именно об этом, все готовое, чтоб моделист без опыта мог прикрутить и не изучая ТАУ полететь используя весь базовый функционал. И еще минимум предполетной подготовки, автодиагностика и автокалибровка. Если по каким то причинам не готов - просигналил лампочками и в лог на флешку

SergejK:

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

А для совсем “конченных” пользователей за их деньги джедаи уже всё изобрели.

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

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

Вот, нужно сделать функционал назы за малые деньги, + управление подвесом. Чтоб исчерпывающая инструкция для выполнения первого полета с базовым функционалом (удержание, возврат домой) занимала менее половины листа А4.

SergejK:

На мой взгляд со стороны более менее продвинутого пользователя все мега удобно.

Для любителя рукоделия ))) Для пользователя нужно просто выбрать тип носителя и 3-4 цифири настроек, не более!

mahowik:

Папарации кстати яркий тому пример, что без толкового мультиплатформенного гуя проект так и не стал оссобо популярным к сожалению…

У опенпилотов гуй прекрасен, у арду весьма гемороен. кого из них больше? 😉
Для чего реально нужен ГУЙ, так это для полета по точкам, и/или настройки автопосадки для самоля.

Создание собственной системы стабилизации
ИльяПРо:

я нигде в уравнениях не указываю, что на что влияет.

В матрице прогноза и матрице отношений состояние-измерение.

mahowik:

Я в свое время тоже бежал за мечтой и даже заработал чутка (на пропеллеры с моторами ), но если подумать сколько я всего упустил за это время (2-3 года карьеры, адаптация в новой стране, отдых с семьей и т.д.), то оно того и не стоило наверное…

Стоило, Александр, ибо наше хобби неотъемлемая часть нас. Если б мы были другими - нас бы здесь не было )

ИльяПРо:

Могу отдать все исходники Александру Русакову и Сергею Липницкому для продвижения проекта и портирования для F4BY. Особых планов и надежд не строю. Что посоветуете в такой ситуации??

ДУмаю, что надо выкладывать в открытый доступ для всех, тем более что основа - открытый код. Пусть используют в своих проектах. Хотя с целью продвижения F4BY было бы сделать порт.

mahowik:

Если же хотите, что бы на вашей прошивке летали, то тут уже нужен ГУЙ. Наиболее простой путь, реализовать поддержку mavlink протокола и заюзать существующий ГУЙ…

ГУЙ для базового функционала не нужен, нужна простота, доступность, надежность и минимальный базовый функционал.

jShadow:

Открывать проект нужно чем раньше, тем лучше - появятся интересующиеся, тестирующие, делящиеся идеями

Пока энтузиазм есть )))

SergDoc:

На мой взгляд, система должна быть проста для пользователя как наза, мультивий со всеми его производными, или вообще как кк2- ну это уже перебор…

Тут дело даже не в фичах , которыми можно со временем обрасти, важна базовая функциональность дружелюбная к пользователю: прикрутил-бросил-полетело )))

SergDoc:

Есть у меня одна идея, которая может избавить от внешнего гуя да и много от чего, но пока только размышления и прикидки как это всё уместить в мелком полетнике ,

  • в фы4бы это влезет…

F4BY нужна своя прошива, ибо кому нужен арду купят пикс.

Создание собственной системы стабилизации
ИльяПРо:

то есть взлететь, зависнуть и поднести магнит к компасу? потом дальше висеть, минут 5 нормально?

Да, пойдет. Но ещё интересней взлететь с “кривым” компасом (15-20 гр) и переключиться в удержание.

ИльяПРо:

у меня матлаб2015 не подойдет?

Думаю да, на до только проверить подключение компилятора к матлабу (команда mex -setup)

Создание собственной системы стабилизации
ИльяПРо:

Вообщем принимаю критику

Илья, хотелось бы посмотреть длительное висение и если возможно с внесенными в компас смещениями.

ИльяПРо:

Хорошая мысль, давайте скооперируемся

Установи Хпплейн 10 и скачай МатЛаб2011 или младше.

Создание собственной системы стабилизации
ИльяПРо:

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

Есть возможность всё попробовать безопасно: Xplane + Симулинк, могу выложить примитивы. Или даже “проигрывать” алго в железе, а Хплан будет гнать данные.

Создание собственной системы стабилизации
ИльяПРо:

И это был решающий момент, сразу убил несколько зайцев.

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

ИльяПРо:

Также при зависании в одной точке спусти несколько минут коптер начинал гулять, так как ориентация не корректировалась без движения. Теперь коптер четко крутится вокруг своей оси и висит в точке, просто фантастика.

Илья, хотел попросить объяснение как это работает, но вроде сам догадался 😃

ИльяПРо:

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

Если зависимость жесткая, а она такая, то на устойчивость это не повлияет.

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

FrSky Taranis - Максимум возможностей за минимальные деньги.
simcr:

Помогите определится с выбором приемника для квадрокоптера 500. X8R или L9R ?

Однозначно X8R, L9R одностороний без телеметрии, и его дальнобойность коптеру не к чему.

Заседание Высокого общества коптероводов
LahtaNoID:

Поспорить-то с чем?

Внимательно перечитайте мою фразу. С тем, что вы в Гондурасе не были.

LahtaNoID:

Так тут вообще двойной смысл был. Если Вы не поняли, то и не надо. Не принципиально.

Я понял то, что вы считаете что ЭТА страна достойна названия “Гондурас” по совокупному набору целевых свойств. В свою очередь я предположил, возможно спорно, что вы не бывали странах более достойных этого названия, но при этом голову свою на кон не ставил. Как то так.

LahtaNoID:

Невозможно всё зарегламентировать и поставить на учёт, лучше планомерно строить (воспитывать) нормальное общество.

Что вам мешает заняться воспитанием общества, хотя бы по поводу порядка в подъезде, например, а не “натягивать сову на глобус” художественными преувеличениями про Гондурас?

Заседание Высокого общества коптероводов
LahtaNoID:

Тем не менее, не ТУ страну назвали Гондурасом…

Могу поспорить: вы в Гондурасе ещё не бывали.

ADF:

Пропогадна того, что…

Как сказал современный классик: " Миром правит не Тайная Ложа, а явная лажа." (с) Пелевин
Но это совсем не означает, что Тайная ложа с этим не борется (от себя).

Заседание Высокого общества коптероводов
Covax:

Интересно, что они там закупают? Скайвокеры и большие крылья?

Походу это вообще не летает, ибо:

  1. Взрыв наземный, не как у ЗУР.
  2. Поразить мелкий БЛА из ПЗРК нельзя, потому как ГСН цель не захватит, и радиовзрыватель не сработает.
  3. Судя по взрывной волне там ВВ несколько десятков кг. Какой скай это поднимет?

Если беспилотник и был, то наземный - багги или танчик.

Заседание Высокого общества коптероводов
Covax:

И всетаки мне кажется они так с высокоточным оружием борятся, а не с коптерами игрушками.

С пакемонами они борятся, и с другим сетевыми способами негласной слежки, мониторинга и управления.

Создание собственной системы стабилизации
ИльяПРо:

когда понадобилось еще записывать буферы для логов, то пришлось разделять весь процесс на 2 части, плодить флаги, проверки

Ну да, маневрирование задачами весьма удобно, но, повторюсь, время не экономит.

ИльяПРо:

Ну допустим есть вектор состояния {q0, q1, q2, q3, Vx, Vy, Vz}, где q0, q1, q2, q3 - кватернион ориентации, Vx, Vy, Vz - это проекции вектора скорости в глобальной СК. Допустим у нас есть датчик скорости, но он измеряет скорость в локальной СК vx, vy, vz. Вот с помощью каких матриц F(которая еще A) и B(при управлении) нам из кватерниона и вектора скорости локальной СК получить вектор скорости в глобальной СК? Нет таких матриц в данном контексте задачи, значит это уже нелинейная зависимость.

Насколько я понял, речь шла о преобразовании скорости в одной СК в скорость в другой СК? А то написано из глобальной в глобальную?
Если преобразование из одной в другую, то это линейное преобразование - умножение поворачивающего кватерниона на кватернион от вектора и на обратный вращающий кватернион (V’ = qvq–1). Все это линейные матричные преобразования.

Код приложил.

RusINS11F4.rar

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

оказалось всё прозаично просто, баро тупил и не отпускал scl ( у слейва есть такая привилегия) и все - все хитромудрые алгоритмы коту под хвост!

СКЛ слейв удерживает если хочет захватить управление шиной. Серёг, зачем барику бунтовать на шине?

ИльяПРо:

Давайте, думаю не помешает, мне там только порты переобозначить по идее.

Завтра выложу.

ИльяПРо:

Но теперь коптером займусь только в следующем году.

Что так?

ИльяПРо:

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

То что масштабируется плохо это да, а насчет времени вряд ли.

ИльяПРо:

Линеаризуются все уравнения связанные с переходом из локальной СК в глобальную (они ж нелинейные или я ошибаюсь?), а также все операции связанные с кватернионами.

Кватернионы - линейная алгебра, всё должно быть линейно, кроме преобразования угловой скорости в ориентацию (там тригонометрия), но за период отчета в переделе макс угловой скорости ДУС синус линеен.

ИльяПРо:

А можно поподробнее? просто выход курсового ПИДа ограничен?

Да, и он весит в 2 раза меньше.

Создание собственной системы стабилизации
ИльяПРо:

Хард - STM32f407VGT6 - оценочная плата Discovery, вообще в планах сделать порт по F4BY, не зря ж его покупал, но времени не хватает.

Могу вывалить свои исходники низов Ф4БЫ, можешь оттуда надергать или взять как есть.

ИльяПРо:

Система работает примерно так: есть некая задача запроса данных, либо по внешнему прерыванию, либо по таймеру - происходит запрос данных с датчиков. Спустя какое то время происходит прерывание соответсвующего интерфейса (SPI, I2C), в котором выдается семафор. Соответсвующая задача обработки ловит этот семафор и обрабывает данные, выдает семафор для логов или другой обработки.

У меня все обработки в прерываниях.

ИльяПРо:

и UKF (один общий для ориентации и положения)

Сам написал? Что там лианеризируется?

ИльяПРо:

НО если происходит насыщение по ЯВУ, то происходит конкуренция угловых пидов и пида высоты, из-за чего коптер теряет устойчивость.

У меня микшер взвешивающий, т.е. курсовой шим в максимуме вывалит в канал моторв в 2 раза меньше.

Создание собственной системы стабилизации
ИльяПРо:

Кстати говоря в простом случае если вы просто хотите найти угловую ориентацию из акселя и гиры, вам нужно составить нелинейные уравнения f(x) и h(x) и тут простым линейным калманом не справится, только EKF либо UKF.

Не совсем понятно, где нелинейные уравнения. Все действия происходят в рамках линейной алгебры.

SergDoc:

это новые данные…

Чтоб подробно поразбираться надо бы взять какую-то опорную статью, иначе запутаемся в терминах и буквах матриц. Серег, есть годная статья на русском ?

ИльяПРо:

H - это оценка, чего мы ожидаем увидеть от датчика

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