Smalltim OSD and autopilot (часть 1)

Danzi
Danzi:

“ага, высоту не набираем, скорость не увеличиваем, хотя все для этого было сделано… значит что то не так и переключаемся в плавное планирование”

А вот этот алгоритм сложно сделать? Батарея то еще полная… У нас это уже третий случай вырубания мотора по разным причинам… то проводок оторвался, то подшипник заклинил, то винт так сложился, что при даче газа не мог разложиться и вырвал вибрацией мотораму… может это просто нам так не везет? Были у кого нибудь такие случаи в полете?

Dronavt
Danzi:

Были у кого нибудь такие случаи в полете?

Честно говоря, не сталкивался с похожими проблемами. Хоть и довольно халатно отношусь к предполетной подготовке…
На самом деле я хочу предложить несколько иной подход к алгоритмам работы АП. Пойти по приципу ПВО (Погоди Выполнять, Отменят!). Дело в том, что Тимофей и так заложил столько прибамбасов в свой АП, что многим девайсам и не снилось. И некоторые фишки, казавшиеся некоторое время назад жизненно необходимыми и неоспоримыми, через некоторое время преобразились до неузнаваемости, а, возможно, и стали избыточными. Некоторые же не используются по полной программе.
По сему видится логичным создание некоего “банка пожеланий”, куда будут собираться практически аргументированные пожелания по работе АП.
Этот метод позволит избавиться от перестраховки и надуманных проблем, а так же позволит выявить реальные недочеты применительно к конкретным ситуациям.
По крайней мере, теоретически уже рассмотрено множество внештатных ситуаций, но не стОит забывать, что АП не ПАНАЦЕЯ и всегда останутся случаи, когда он тоже будет бессилен спасти модель или вернуть ее на базу. В этом случае он прикладывает все силы к тому, чтобы минимизировать потери. В моем случае (и это проверено практически) АП посадил Изика в километре от базы, вне зоны РУ и Видео. Но причину невозврата спровоцировал я сам, настолько зажав рули, что Изик не мог спуститься и болтался на высоте 700 метров, пока не села батарейка. После чего начал снижаться по спирали, со сносом по довольно сильному ветру.
PS Со свой стороны, “на благо науки” (с), готов внедрить в разрыв одного из проводов движка размыкалку и проверить на практике поведение АП в случае аварии двигателя. Что и проверим в ближайшее время.

baychi
Dronavt:

готов внедрить в разрыв одного из проводов движка размыкалку и проверить на практике поведение АП в случае аварии двигателя. Что и проверим в ближайшее время.

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

Кстати насчет кривизны. Сегодня боролся с РВ, пытаясь заставить Изик стабильно идти вниз, при этом немного перекосил хвост (несколько градусов). После старта, включил стабилизацию и легко оттримирровал перекос РН. Cлетал на 1750 м (до начала потери связи), развернулся на базу, иду строго по прямой, и примерно в километре решил включить АП. Первое что сделал АП - резко развернул модель на 90 градусов, а потом медленно вывел 0.
В очередной раз убедился, что чем “прямее” модель, тем легче АП. 😃

sptry

Пример работы АП с севшей батареей. Целевая высота - 100м

PS. Но этот полёт не показателен, АП был не отстроен и даже с целым акком не очень то хотел набирать целевую высоту. Так что Александр видимо прав, насчёт возможного сваливания.

Brandvik

Александр прав на все 100% Сейчас алгоритм набора высоты- Газ ХХ тангаж ХХ и вперед.
Блин, выходит что сейчас в корне не правильный алгоритм управления тангажом, скоростью и оборотами. 😦

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

Тим. АП для управления по тангажу должен в первую очередь ориентироваться на минимальную скорость. (естественно все рассматривается для полетов с бароскоростью)

Для крейсерского режима ставится ХХ оборотов заведомо достаточных для поддержания высоты и пологого набора если надо. и скорость далее контролируется тангажом. Причем контролируется именно минимальная крейсерская скорость. Если она болше, ну и фиг с ней. быстрее вернется.
Если идет команда набора высоты. Обороты YY и медленное увеличение тангажа пока скорость не упадет до минимально разрешенной на наборе и поддержание ее тангажом. Таким образом набор высоты всегда будет происходить под оптимальным углом с оптимальной скоростью(а так же органичение углов на кабрирование можно вообще не ставить, нужно всего лишь задать нижний предел скорости, к примеру у кого дури много, набор высоты может происходить вообще вертикально 😃 ). Соответственно в аварийной ситуации АП начнет тануть на себя, скорость упадет до “минимально разрешенной на наборе” но самик не будет валиться. Он продолжит “набор” высоты, а когда поймет что набора не происходит (высота всеравно падает) прекратит попытку набора и перейдет в режим удержания, увеличив автоматически скорость за счет тангажа до минимальной крейсерской и продолжит полет в сторону базы со снижением.

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

smalltim
Brandvik:

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

Тим. АП для управления по тангажу должен в первую очередь ориентироваться на минимальную скорость. (естественно все рассматривается для полетов с бароскоростью)

Нет, Андрей. Главное - не скорость выставить какую надо, а потом играть тангажом. Главное тангаж, то есть, главное - занять целевую высоту. Высота и курс - директивы номер 1 у автопилота. Поймешь, когда будешь обливаться п о том, наблюдая, как АП тащит модель к пачке многоэтажек, и гадать, “а вот успеет ли моя моделька набрать высоту с той скоростью, что я задал”?

На данный момент газ в режиме поддержания скорости при любом тангаже (разумеется, ограниченном в КП) подстроится таким образом, что будет выдержана целевая скорость. Никаких сваливаний.
Набор высоты производится и будет производиться под заданным углом на заданной скорости.
Знаешь достаточную скорость и максимальный тангаж для набора высоты для своей модели - милости просим, вбей эту скорость и ограничение на максимальный тангаж в КП.
Никакой свободы действий в играх с тангажом. Больше свободы = больше шансов потерять модель, забыв, что нос перегружен, модель после травмы и т.д. Уж ты-то должен это знать. Пусть будет неоптимально, но надежно.

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

Вот, коллеги, интересный вопрос. А как надежно детектировать аварию с двигателем или севшую батарею, не имея данных с телеметрии (ток, напряжение, бароскорость, баровысота?)
Или вариант без телеметрии не рассматриваем? Я - за 😃

Brandvik:

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

Да, это можно сделать. Если человек поставил настройки такими, что, например, стоит удержание газа 20% и тангаж градусов в 45, то он сам себе злобный буратино. Придется подумать за него, уменьшив на лету тангаж или поддав газа если скорость ниже критической. Подумаем.

Brandvik

Ну я не совсем согласен. Высота и курс попрежнему остаются директивой N1 Только я предлагаю сделать набор высоты не с заданным углом, а с минимальной заданной воздушной скоростью при команде на газ 100% или ХХ если кому надо. В таком варианте угол тангажа будет автоматически поддерживаться на наивыгоднейшем уровне. Т.е. максимальная скороподъемность при данной тяге движка. А тяга может быть от 0 до 100% в зависимости от ситуации. Получится что если самик способен набирать высоту вертикально с заданной скоростью, то АП его выведет в вертикаль, а если что то сломалось то самик не сорвется.
Хотя я согласен что такой алгоритм потребует немного больше времени для перехода к набору высоты, чем занять тангаж Х и оборты Y
Но мы то знаем что АП шугается многоэтажек 😉

mishaXXyears
smalltim:

Вот, коллеги, интересный вопрос. А как надежно детектировать аварию с двигателем или севшую батарею, не имея данных с телеметрии (ток, напряжение, бароскорость, баровысота?)
Или вариант без телеметрии не рассматриваем? Я - за 😃

помоему без телеметрии никак

С мотором все просто : ток неимоверно поползет вверх. На моторе который в стандарте кушает 20А, ток вырос до 80А или вообще 0 всегда будет 😃

baychi
smalltim:

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

Если рассматривать не просто аварию с двигателем, а попадание на землю: разве одного GPS недостаточно? Скорость < 5 км.ч при высоте <20 м в течении 10 сек, например. Вероятность того, что модель будет долго висеть против ветра с 0-й скоростью и почти у земли - минмальна. Критерий выхода в режим “в полете” - скорость > 10 км/ч в течении 1-2 сек или высота > 20 м.
Начальное состояние при включении - “на земле”. Только случай рестарта АП по WDT нужно отдельно предусмотреть.
Только батарею вычислить, без ДТ и замера напряжения - никак.

smalltim

Контрольная Панель версии 3.1.7 от 7 июня 2010
[скачать autopilot_control_panel_3_1_7.zip, 114 кб]

Изменения относительно прошивки верcии 3.1.6:

  • Для улучшения восприятия и упрощения настройки модуля автопилота параметры системы стабилизации и режима автономного полета перегруппированы и частично переименованы
    Внимание, убедитесь в корректности настроек после обновления прошивки и перехода на новую версию Контрольной Панели
  • Введена поддержка варианта “Меньшая из скоростей по бародатчику и GPS” в режиме удержания целевой скорости
  • Введена поддержка выбора диапазона отображаемых углов тангажа на индикаторе искусственного горизонта
  • Введена поддержка мигания индикатора искусственного горизонта при выходе за отображаемый диапазон
  • Введена поддержка мигания индикатора искусственного горизонта при перевернутом молете
  • Введена поддержка независимых ограничений на максимальные углы тангажа при наборе высоты и снижении

Прошивка версии 0.10.12 от 7 июня 2010
[скачать autopilot_0_10_12.hex, 153 кб]

Изменения относительно прошивки верcии 0.10.1:

  • До 1 секунды уменьшено время ожидания перед включением стабилизации или принудительным включением автопилота с передатчика
  • Исправлена обработка бародатчика высоты модуля телеметрии
  • Введена поддержка варианта “Меньшая из скоростей по бародатчику и GPS” в режиме удержания целевой скорости
  • Улучшена работа компенсации запаздывания информации о текущем курсе с модуля GPS
  • Введена поддержка выбора диапазона отображаемых углов тангажа на индикаторе искусственного горизонта
  • Введена поддержка мигания индикатора искусственного горизонта при выходе за отображаемый диапазон
  • Введена поддержка мигания индикатора искусственного горизонта при перевернутом молете
  • Увеличена на 50% скорость увеличения/снижения газа в режиме удержания скорости
  • В режиме удержания целевой скорости требуемый уровень газа устанавливается в значение “Целевой уровень газа” при включении режима автопилота на 2 секунды, после этого включается режим удержания целевой скорости
  • Введена поддержка независимых ограничений на максимальные углы тангажа при наборе высоты и снижении
slides

И не спится, не лежится, не гуляется ему…

baychi
smalltim:

Прошивка версии 0.10.12 от 7 июня 2010

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

Причем похоже проблемма только с отображением (в КП и на экране FPV). Управляющие плоскости в режиме стабилизации реагируют вроде правильно.

Еще одна странность: при отключении РУ, мотор начинает хрюкать (циклически разгоняться и тормозить в тепчении 1-2 сек). Раньше пропадание РУ приводило к медленнему разгону движка (режим удержания по бароскорости).
И давно хотель спросить, почему принудительное включение АП на базе не заводит двигатель, а пропадание РУ - включает его? Хотя требования отключения в радиусе xx - не стоит.

sptry
baychi:

У меня с новой прошивкой, мониторинг авиагоризонта сходит с ума.
Причем похоже проблемма только с отображением (в КП и на экране FPV). Управляющие плоскости в режиме стабилизации реагируют вроде правильно.

Аналогично…

smalltim

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

Прошивка версии 0.10.14 от 8 июня 2010
[скачать autopilot_0_10_14.hex, 153 кб]

Изменения относительно прошивки верcии 0.10.12:

  • Убрана программная имитация авиагоризонта
  • Улучшена синхронизация между процессами обработки логики включения режимов автопилота и генерации выходных PPM
baychi
smalltim:

Прошивка версии 0.10.14 от 8 июня 2010

Вот ты пропустил 13-ю версию, а зря! Суеверия это.
В новой прошивке съехали настройки переключателя режимов. В КП все отражается правильно, но команда включения стабилизации, стабилизацию не включает (символа СТ нет и реакции на горизонт тоже), а “принудительное включение АП” включает стабилизацию и возможно АП, но так что РУ команды тоже работают. На экране пишет “принудительное включение”, но движок не заводит - правда спутников в комнате нет.
А вот выключение РУ (состояние RC связь) опять приводит к “хрюканию” двигателем: это все-же случайный (хаотичный) процесс не связанный с видимыми изменениями других параметров.
Делай 13-ю версию, Тимофей. 😃

Diramil
Diramil:

Полетал сегодня, стабилизация работает, автопилот работает но с набором высоты почему ? (будем настраивать) Но главное, сбивается горизонт при включении видео оборудования, что делать ?

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

smalltim

Diramil, vozmozhno sleteli kalibrovki pulta. Vilozhite fail nastroek, versiu Paneli I proshivki AP.

Baychi, popravim.

Diramil
smalltim:

Diramil, vozmozhno sleteli kalibrovki pulta. Vilozhite fail nastroek, versiu Paneli I proshivki AP.

8.06.10_1.rar
версия панели: autopilot_control_panel_3_1_7.
версия прошивки: autopilot_0_10_14
C предыдущей версией прошивки и панели было тоже самое

Эд
baychi:

Похоже не действие делителя R15+R16. R16 нужно убрать и перекалибровать 0. Будет как раз в 3 раза больше.

Убрал R16, перекалибровал. Показания при отсутствии тока прыгают до 0,25А. после полета в аккумулятор закачал на 25% больше, чем показала телеметрия. Это нормальная погрешность? или R16 нужен с другим номиналом?..

baychi
Эд:

при отсутствии тока прыгают до 0,25А. после полета в аккумулятор закачал на 25% больше, чем показала телеметрия. Это нормальная погрешность? или R16 нужен с другим номиналом?..

Погрешность великовата. Обычно процентов 10%. Можно рассчитать R16. R15 = 2 КОм, Вам нужнен коэффициент 0.75. K=R16/(R15+R16). Отсюда R16 = 6.2 кОм , примерно.

mihas

2 smalltim
Уже нужно извиняться за оффтоп, но …
В 270-ю прошивку телеметрии уже не втиснется поддержка старых 406 модулей, как в 261-й?