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

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-й?

smalltim
mihas:

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

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

Diramil:

8.06.10_1.rar

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

horizon_pitch_range = 0 град - это значит диапазон отображаемых углов тангажа - 0 градусов. Не прокатит, ставьте хотя бы 10 😃

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

baychi:

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

В версии прошивок последнее число - номер багфикса или небольшого изменения. Так что 13-я сама собой перескочилась. Принимайте 17ю.
Всё проверил, поправил. Всё, на что ругались, теперь пашет как задумано.

baychi

А вот выключение РУ (состояние RC связь) опять приводит к “хрюканию” двигателем: это все-же случайный (хаотичный) процесс не связанный с видимыми изменениями других параметров

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

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

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

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

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

С приемника на канал газа идет настройка FailSafe, а именно -10% от диапазона. Именно по этому каналу детектируется пропадание связи. Остальгые каналы на данном приемнике сохраняют свое последнее состояние. Собственно вопрос был не в том зачем нужно выключать аппу на земле, а почему между принудительным включением и включением по потере связи такая разница?

smalltim:

Введено подавление дрожания сервомашинок

Как? Можно подробности.

baychi:

приемника на канал газа идет настройка FailSafe, а именно -10% от диапазона

Проверил еще раз. Собственно в этом и проблемма. Хрюкание начинается, когда сигнал газа выходит за пределы диапазона. Даже КП отражает хаотическое изменение газа.
Со спутниками - все ОК.

sptry
smalltim:

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

Слетела калибровка команд управления при переходе на пилот 0-10-12, проявляется только в полёте - нехваткой расхода рулей при манёврах на АП.

sptry

и стабилизации.
Неплохо было бы предусмотреть в следующих прошивках блокировку выходного канала газа
при входе в режим калибровки (а может быть и всех выходных каналов).

smalltim
sptry:

и стабилизации.
Неплохо было бы предусмотреть в следующих прошивках блокировку выходного канала газа
при входе в режим калибровки (а может быть и всех выходных каналов).

Да, это разумно, подумаем.