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

Drinker
AlexSneg:

Пока самый простой, такой же как у Олега

Тоесть у тебя планируется некий мега алгоритм, по сравнению с которым в арду - мегапирате они выглядят как самые простые?

AlexSneg

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

  1. стабилизатор - работает. Практически так, как и задумывалось. Есть у меня вопросы по управлению газом. Не ясны четкие критерии когда прибавить, когда убавить, а когда совсем вырубить. Пока в настройках забил макс, мин и круиз 40%. Если крены в плоскостях не боле 15 градусов, и высота более 10м, тупо врубаю круизный газ. Если высота менее 1м более 1 сек и был удар по акселерометру(за последнюю секунду), вырубаю мотор совсем до тех пор пока пользователь не переключится в режим “мануал”. Это чисто временный вариант. Смотрю в исходниках некоторые автопилоты газ ставят в зависимость от питча, что-то мне это как-то не нравится. Буду думать еще на эту тему. Есть так же для меня нераскрытая тема, что будет с самолетом у которого есть конструктивные проблемы в смысле нулевых значений триммеров. Сейчас я предполагаю, что, выставляя ноль на серве roll и pitch, я ожидаю горизонтального полета (у моего самолета это так и есть, я это заранее знаю). Это конечно весьма вольное допущение, но серва имеет конечно время срабатывания, соответственно отрицательная обратная связь горизонт-серва имеет конечное время распространения, но и самолет тоже инертен. Пока я не вижу элегантного способа преодоления этой фигни, кроме как набор АП’ом статистики раскачки по конкретному самолету. Вообщем буду еще на эту тему размышлять.
  2. Режим Ассистент при пилотаже. Здесь вообще прикол. Пульт стал фактически компьютерным джойстиком. Правый стик задает углы искажения горизонта, ну и соответственно стаб приводит тело к искаженному горизонту. Пока поставил ограничение на углы искажения не более 45 градусов. Не ясно мне пока что здесь с рудером делать, тоже буду думать на эту тему. Не факт, что мой вариант данного режима, это то, как другие автопилоты делают и люди привыкли летать, но зато на этом режиме, можно дать ребенку полетать и ничего самолету не будет. Правда пока я не рискнул дочери дать порулить.
  3. Возврат домой. Здесь пока лажа по моим оценкам. Есть у меня вопросы по грамотному повороту тела в пространстве. Сейчас есть ощущение, что неплохо бы на определенных углах крена рудер и рули высоты менять местами. Буду эту тему исследовать дорабатывать.
  4. Есть еще вопрос по грамотному вычислению Heading’га если тело не горизонтально. GPS помогает, но от него чаще 4 раз в секунду результатов не получишь. Для навигации более чем, но для OSD недостаточно. Да GPS не всегда может быть. Тоже буду думать на эту тему.
  5. Не понятно мне на каких принципах реализуется возврат домой и кружение над точкой возврата, если нет GPS приемника. Это как бы вопрос в аудиторию.
  6. Ветра практически не было, поэтому не могу ничего сказать, как оно будет при сильных порывах. Это еще буду отрабатывать
  7. Летал без камеры, поэтому видео не будет. Да и в любом случае, результаты пока предварительные. Как ведет себя горизонт внутри самолета тоже пока не могу сказать. Но судя по работе стабилизатора, там все абсолютно в порядке. Камера - это тоже тема для ближайших тестов. Как только научу самолет перфектно рулить на заданную домашнюю точку и там кружить, так займусь камерой.
  8. Задуманная архитектура “Приемник (слейв)” <->USART(4 провода)<->“Автопилот(мастер)” получилась очень удачной и элегантной. Я более чем доволен.
  9. Не понимаю пока как летают и управляются самолеты не классической компоновки. Например V-tail. Есть какие-то формулы замеса рудер+питч+элерон? Не придется писать индивидуальные программы управления полетом?

Краткое резюме:

  • Сама по себе железка получилась удачно и работать будет.
  • Привез кучу софтовых граблей и опыта 😃, будем лечить и снова тестить.
  • “Удобство пользователя” - ниже плинтуса. На каждый чих приходится перекомпилять и перезаливать прошивку. Буду уходить от хардкода в настройках и константах. Буду прокидывать все в usb консоль. Пришло время уже подключать флешку и хранить настройки там
  • Вторая версия протокола общения приемника и АП получилась удачной. Останемся с ней + сделаем расширение внутри протокола.
Syberian

If it wasn’t on youtube - it doesn’t exists 😁 (rcgroups)

UnderGod

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

AlexSneg
SkyWorker:

А что, видео не будет??

Нет, уже писал по чему. Видео летающего самолета со стороны, не понимая что я делаю на пульте - это просто видео мусор. Когда будет видео с борта, тогда буду выкладывать. У меня чисто конструктивные затруднения приспособить 1,5ватный здоровый передатчик на узкий самолет. Не хочу пока этим заниматься, есть другие задачи, для них видео передатчик не нужен. Может сделаю на неделе видео, как самолет рулит сервами в зависимости от режима полета и положения стиков, это будет даже более информативно, чем летающее пятно на линии горизонта на фоне леса.

UnderGod:

хепи енд

Никто уже помешать не сможет. Хэппи энд запланирован на 1 июля этого года. Пока мы график выхода последней серии не меняем.

Syberian
AlexSneg:

Не хочу пока этим заниматься

1.5 ваттный, говоришь? Когда придется заниматься, хряпнешь горя. Так что проверку ЭМС лучше начать заранее. А то вместо хэппи энда будет лаки пи…ц.

AlexSneg
Syberian:

Когда придется заниматься, хряпнешь горя.

У меня есть еще на 5,8ГГц 200 мватт. Так что запасная опция предусмотрена 😃

Drinker
AlexSneg:

рудер и рули высоты менять местами

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

AlexSneg:

Сейчас я предполагаю, что, выставляя ноль на серве roll и pitch, я ожидаю горизонтального полета (у моего самолета это так и есть, я это заранее знаю). Это конечно весьма вольное допущение, но серва имеет конечно время срабатывания, соответственно отрицательная обратная связь горизонт-серва имеет конечное время распространения, но и самолет тоже инертен

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

AlexSneg
Drinker:

А вот второе, это про что?

Это про то, откуда у самолета может появиться предпосылка для раскачки.

serj

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

По рулю высоты и направления- косинусно- синусные смесители относительно крена. но можно и не делать, ограничить крен до 40-45 градусов и все.

AlexSneg
serj:

Алексей, прочитай, пожалуйста, какую- нибудь книжку по динамике самолета

Внял совету, скачал вчера учебник по аэродинамике, и автоматическому управлению гражданским самолетом. В принципе почти все вопросы по управлению отпали. Единственный вопрос, который для меня непонятен, как искать коэффициент демпфирования углового вращения и передаточный коэффициент усиления разности углов наклона и положения рулевых плоскостей. Собственно, для реальных самолетов оно скорее всего известно и может калиброваться механиками. Но на модели совершенно непредсказуемо, сколько надо подать на серву, чтобы получить эквивалентный 1 градус отклонения на плоскости. Пока никакого способа, кроме научного тыка не вижу? А самолеты у всех разные. И как пользователю объяснить такие настройки?

Можешь чего-то посоветовать на эту тему?

serj

Хороший способ предложил в соседней ветке foxfly: пользователь сам задает руками набор высоты, горизонт, снижение. Руль высоты при этом должен быть почти неподвижен. По его отклонению определяем грубую балансировочную характеристику. Можно установить только нейтраль, как сделано у Тимофея, а “усиление” подбирается пользователем из 2-3 пресетов.

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:

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

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