flybrain. передатчик + приемник + автопилот. powered by stm32

AlexSneg
serj:

Можно установить только нейтраль, как сделано у Тимофея, а “усиление” подбирается пользователем из 2-3 пресетов.

Мне кажется если нет ветра, то можно предложить самолету найти эти коэффициенты в воздухе самостоятельно, если разрешить автопилоту снять все характеристики самолета прямо в воздухе при нейтральных стиках. А для одной и той же модели настройки в принципе не должны меняться. А вариант из 2-3 пресетов, как раз и есть научный тык. Пойду мануалы разных автопилотов почитаю, интересно узнать, что там авторы по этому поводу пишут.

соседняя ветка это какая? Хочу почитать чего там foxfly писал.

telion

Сергей видимо имел ввиду эту ветку rcopen.com/forum/f90/topic205896/4337

Касательно вопроса № 5. Раньше gps небыло и тем немение авиация существовала, если я ни чего не путаю, то летали по компАсу, пролетел XX км. на север дальше повернул на XX градусов и полетел дальше. У вас “хлебные крошки” в виде лога сохраняются? По ним и обратный маршрут вероятно можно прокладывать. А кружить над домом можно например по квадрату… Точность у этого способа вероятно плохая, но другого пока ни чего не приходит в голову. Тут нужно со старыми летчиками пообщаться я думаю можно много интересного узнать.

AlexSneg
telion:

Сергей видимо имел ввиду эту ветку

да, я нашел уже.

telion:

то летали по компАсу, пролетел XX км. на север дальше повернул на XX градусов и полетел дальше.

Это хорошо, когда круг не описываешь. Не путай реальную авиацию, летающую от точки до точки и модель, которая круги вокруг дома нарезает. после пары кругов, начальный курс будет показывать на дом с вероятностью 50 на 50. Ты либо прилетишь, либо еще дальше улетишь.
Для того, чтобы километры считать нужна скорость относительно земли, ее без GPS нет.

telion

Про скорость я как раз и думал, но надеялся что все-же есть надежные методы определения скорости относительно земли без GPS. В любом случае, мне кажется, это единственный автономный способ, или я не прав? Если я правильно понял нам нужен именно автономный? Возможно он сработал бы для «далеко и высоко».

Вот еще мысли…
Радиомаяк. Возможно этим можно воспользоваться для решения задачи?
Ну и смеха ради, совсем пока фантастическое 😃 Распознавание объектов, в этой области сейчас активно ведутся разработки но область все-же пока мало изучена и «дорогая».

Вообще, задача интересная, но мне кажется не первостепенная…

kimu
AlexSneg:

Для того, чтобы километры считать нужна скорость относительно земли, ее без GPS нет.

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

AlexSneg:

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

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

AlexSneg
kimu:

Она подаёт сигнал на серву и смотрит по гироскопу за реакцией модели

Сочувствую тем, кто летает с устройством, работающим по такому алгоритму. Олег себе делать так не стал на свой трикоптер. И настоящие самолеты, как я теперь знаю, так не работают (хотя не факт, судя по самым последним событиям), ибо, если там будут такие автопилоты, то самолет очень быстро накроется медным изделием под названием таз (не автомобиль 😉 )
Я когда изначально подступил к разработке алгоритма стабилизации, тоже думал примерно так и сделать, однако отмел эту тему почти сразу, ибо
в такой системе как вы описываете возникает куча вопросов, ответов на которые нет. Вот например:

  1. сколько надо подать на серву, чтобы оно скомпенсировало некоторое отклонение и почему именно столько а не больше или меньше?
  2. Сколько надо ждать, чтобы понять, что ответ получен? Ответ на серву может придти через несколько секунд, а может и сразу. У самолета нет мгновенного ответа на воздействие, и этот временной лаг может быть от раза к разу абсолютно разным
  3. Если ответа нужного нет, то что это означает и где критерий того, что его нет? Жать серву еще дальше? То есть, реально в данной системе будет постоянная раскачка, ибо никогда не будет достигнуто состояние равновесия.
  4. Как я теперь знаю, самолет это колебательная система, с собственным резонансом, и судя по умному учебнику, мероприятия по недопущению случайного резонанса, сравнимы по сложности с изобретением космического корабля. А вот что делает колебательная система при отсутствии в ней грамотного демпфирующего воздействия, надеюсь, не надо объяснять? Никогда не видели идиотов на дороге с мертвыми амортизаторами но работающими пружинами? Занимательное зрелище, рекомендую.
  5. До кучи надо сначала понять, а чего мы ждем от п.2
kimu:

а не для штатных полётов?

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

Oliver
AlexSneg:

вариант действия на аварийный случай

Ну для начала надо определиться, какой конкретно аварийный случай рассматриваем. Если только отваливание гпс… Но честно говоря например у меня даже со старым EM403 гпс отваливался куда реже, чем происходили другие “аварийные случаи” и как правило, гпс возвращался через несколько секунд, в отличие например от сорванной сервы… Последние же наверное года два вообще не припомню отваливания гпс. Так что лучше ИМХО направить усилия на красивую и глубокую реализацию управления моделью в нормальном состоянии, чем придумывать кейсы типа а что мы будем делать, если мотор сорвет с одного крепления, он уйдет в расколбас, заденет крыло, отчего элерон встанет раком, а аккум от вибрации уедет на 5см назад…

AlexSneg
Oliver:

Так что лучше ИМХО направить усилия на красивую и глубокую реализацию управления моделью в нормальном состоянии

Я сейчас так и делаю 😃 Но думать про особые кейсы заранее тоже полезно

RedSun
AlexSneg:

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

Алексей, у Вас была куча вопросов по динамике самолета. Вам посоветовали почитать соответствующую книжку, и почти все ответы нашлись. Так вот, попробуйте почитать книжку по системам автоматического управления, причем такие книжки есть уже с самолетной спецификой. Вы не поверите, но практически все современные системы стабилизации используют в том или ином виде вышеописанный алгоритм. Это называется “системы с обратной связью” 😃).
Что касается борьбы с автоколебаниями и резонансом, то все давным-давно придумано. Погуглите по слову “демпфер”. Это отрицательная обратная связь по скорости изменения регулируемой координаты. При наличии датчика, эту самую скорость измеряющего, добавляется одна строчка кода. Если мы стабилизируем угол, нам нужна информация об угловой скорости. Измеряет угловую скорость кто ? Правильно, гироскоп в режиме ДУС. 😃))

AlexSneg
RedSun:

Вы не поверите, но практически все современные системы стабилизации используют в том или ином виде вышеописанный алгоритм

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

RedSun:

Погуглите по слову “демпфер”.

Спасибо, я уже все сделал на эту тему 😉

RedSun:

Правильно, гироскоп в режиме ДУС

Нет, в общем случае это неправильно. Никто не гарантировал что оси ДУС в модели сорентированы в соответствии с осями самолета. Тут надо хитро, я уже все сделал 😉

RedSun

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

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

Никто не гарантировал что оси ДУС в модели сорентированы в соответствии с осями самолета. Тут надо хитро, я уже все сделал 😉

А не проще один раз выставить платформу геометрически верно, и в дальнейшем не париться ? Ну а если очень хочется ее переставлять и двигать, никто не мешает каждый раз проводить предполетную калибровку 😃))

AlexSneg
RedSun:

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

Таую штуку я уже внедрил по результатам работы над ошибками.

RedSun:

требующий в общем случае дополнительных датчиков…

Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.

RedSun:

каждый раз проводить предполетную калибровку

Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах. Сейчас “удобство пользователя” хотя бы через консоль доведу до более менее приемлемого варианта и буду новые тесты проводить. Вчера сделал режим полета по кругу и удержание высоты без использования GPS. Посмотрю как будет отрабатывать маневры разворотов, там уже будет видно где еще подшаманить.

kimu
RedSun:

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

Она там тоже есть. Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.
Хотя об чём это я? Модель уже и так давно знает свою ориентацию в пространстве, да и в ходе настроек датчики должны были как-то определится вдоль какой оси им посчастливилось стоять. Дальше дело за миксами и математикой.

AlexSneg:

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

Если не нравится обратная связь, можно при настройке попросить отклонить рули (по очереди) на определённый угол (+5, 0, -5) и по ширине импульса управляющего сигнала примерно определить геометрию.
Правда не понимаю что даст угол отклонения сервы без знания формы рулевой поверхности…

RedSun
AlexSneg:

Ну вот как-бы да, было бы супер, но увы и ах… приходится работать с теми сервами, что реально существуют на практике, а не в сферическом вакууме.

Как калибровку не проводи, ДУС все равно врать будет по отношению к реальным осям bodyframe. В общем случае нельзя считать что показание по ДУС по х это pitch, а по y - roll. Вообщем не хотелось бы сейчас в детали вдаваться, но я эту проблему порешал. Сейчас платформу можно ставить в самолет с очень большими допусками во всех плоскостях и кренах.

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

kimu:

Только для получения угла из скорости никаких лишних датчиков не надо, нужен интеграл.

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

kimu:

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

…а еще без знания ее площади, плеча и прочих нужных параметров…

AlexSneg
RedSun:

Подозреваю, что у Вас эта проблема как-то так и решена.

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

RedSun:

всякие компасы использовать…

Тут все в порядке. У меня полноценные 9 осей: гира+аксель+компас. Курс держится четко, никуда не уходит. Погрешность в пределах 0,5 градуса

Drinker

Вставлюсь. С точки зрения созерцателя вроде бы все идет как и должно.
Но последнее утверждение вызвало улыбку что-ли. Я про нольпять градуса.

Syberian
Drinker:

утверждение вызвало улыбку

Если алгоритм содран с моего, там действительно в карусельном тесте не более чем на 0.5 град уходит по крену и тангажу. Курс шарится ± 3 градуса, что с компаса возьмешь…
А вот обсуждение “формы закрылков” и какой-то “телорамы” с осями в разные стороны реально доставляет 😁

Drinker
Syberian:

Если алгоритм содран с моего

А у тебя какой алгоритм? арг или марг товарища себастьяна магвика? или дцм?

Syberian:

и какой-то “телорамы”

Тут правильный термин - бодифрейм это система координат связанная с телом.

AlexSneg
Drinker:

А у тебя какой алгоритм?

У меня EKF на кватернионах полноценный. Используется gyro (400Гц) + accel(100Гц) + Mag(~50Гц). Цикл update+predict работает на частоте гироскопа. Дрейф по всем плоскостям практически нулевой, сколько бы я плату ни крутил и как бы долго ее не оставлял на месте лежать. Цифры плавают в пределах 0,8-0,5 градуса.

Drinker
AlexSneg:

полноценный

Что значит полноценный? екф бывает неполноценный.

AlexSneg:

Дрейф по всем плоскостям практически нулевой

Дрейф и точность разные вещи. Ты говорил про точность в нольпять градусов. Чем ты это проверял? Транспортиром?

AlexSneg
Drinker:

екф бывает неполноценный

Да, запросто, буквально недавно видел один проект с исходниками. Нет оно конечно как-то работает, но…
www.gluonpilot.com/wiki/Main_Page Скачай исходники, получи удовольствие

Drinker:

Дрейф и точность разные вещи

Может быть терминология неудачная. Дрейф это когда я положил, засек сколько градусов по всем осям, потом через час пришел, проверил. В градусах все три оси в тех же положениях.
Про точность. Кладем на лист бумаги, обвели ручкой контур. Взяли плату, покрутили, положили. Выровняли по отрисовке. Смотрим сколько показывают. Расхождение меньше градуса от начального варианта. Если рядом сильный магнит, оно конечно поедет на пару градусов по Yaw. Такое объяснение устраивает? Терминологию придумай сам. Конечно, надо не про точность вести речь, поскольку не с чем сравнивать , но о повторяемости ошибки относительно начального референсного положения говорить вполне можно. Знать конкретно где север, а где юг, мне на фиг не нужно и глубоко безразлично. Для ОСД конечно я прямо в поле на взлете сравниваю GPS и компас и засекаю реальную ошибку, после этого это изначение использую для показания истинного направления на север. Сейчас на показания YAW при вычислениях можно опираться примерно до крена в 80 градусов в любом направлении, это я выяснил чисто экспериментом. В принципе при кренах больше, о курсе речь уже не идет чисто физически.