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

smalltim
Nikki:

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

Да, не совсем удобно, согласен. +1 в список хотелок, попробую сделать так, как Вы предлагаете.

ilves

Жизненный вопрос возник, может разбирали?
Как будет работать автопилот, если мотор/регуль сгорел.
Не завалит модель?
Как заранее проверить поведение и настройки подправить?

Вот была у меня возможность проверить, но как-то не сообразил.
А повторить сложно.
Вылетать маленький аккум до 0 и включить? Опасно… да и аккум жалко.

smalltim

Если мотор/регуль сгорел, то есть несколько вариантов поведения, в зависимости от текущего режима.
В любом режиме главная беда - потеря скорости.

  1. В ручном режиме просто сажаем модель на ближайшую подходящую площадку и всё.
  2. В режиме стабилизации или в Круиз-Контроле без удержания скорости АП адекватно рулит моделью до тех пор, пока присутствует скорость и, следовательно, управляемость. Рулите как в ручном режиме, планируя, просто со стабилизацией полет поспокойне и поплавнее. В целом - так же, ищем место, сажаем модель и всё.
  3. В круиз-контроле с удержанием скорости, в автовозврате и в полете по точкам АП будет стремиться удержать целевую высоту, но модель при этом будет плавно снижаться - мотора-то нет.
    Постепенно требуемый положительный тангаж (и, следовательно, отклонение РВ, элевонов или что там еще поставлено на модели) станет таким высоким, что модель начнет валиться на крыло. Свалится, наберет скорость, выровняется. Опять свалится, наберет скоротсь, выровняется. И так до самой земли.

В общем, конечно, не морква прямиком в землю, но моделька будет помята, ничего хорошего.

ilves

Самое главное-как раз режим автовозврата(с остальными понятно).
Скорее всего, если модель далеко, видео и связь пропадёт на довольно большой высоте(запросто на 100 и более метрах). Т.е. ещё долго ей лететь на автопилоте.

Есть ли возможности подстроек автовозврата для планирования?
Чувствительность по высоте снижать? Плохо может оказаться для нормального полёта…
В любом случае будет периодическое сваливание?
Как проверить такой режим на практике, заранее?
Круиз-режим с удержанием высоты и газа в 0% будет полностью аналогичен?

smalltim
ilves:

Есть ли возможности подстроек автовозврата для планирования? Чувствительность по высоте снижать? Плохо может оказаться для нормального полёта…

Первое, что в голову приходит - ограничить отрицательный тангаж в автономном полете (автовозврат, полет по точкам) где-нибудь в минус 2-3 градуса. Тогда АП просто не сможет резко снижаться до целевой, будет планировать.
Однако ж, у меня в Контрольной Панели стоит ограничение, позволено ставить -15 градусов или больше: защита от неправильных действий юзера. А вдруг он поставит 0 или очень маленькое значение, и что будет делать АП, когда надо реально быстро снижаться? 😃

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

ilves:

В любом случае будет периодическое сваливание?

Думаю, да. Зависит от модели, но шанс 99%.

ilves:

Как проверить такой режим на практике, заранее?

Выделить на АП сквозной канал, повесить его на тумблер на аппе, замиксовать его во всех режимах (ручное/стаб-круиз/автовозврат-полет по точкам) микшерами АП на выходной канал газа, с инвертом и с весом 100%. Тогда АП в любом режиме будет миксовать значение с тумблера на газ. Этакий Throttle Cut силами АП.

На выходном канале газа будет расчитанный автопилотом газ, если тумблер в нуле, и рассчитанный автопилотом газ минус 100% (конечно, обрезанный по калиброванному диапазону в канале газа, то есть, в итоге, 0%) при тумблере в 100%.

Врубаем автовозврат, самик летит как обычно. Щелкаем тумблер в 100% и смотрим, как ведет себя с придушенным газом.

Микшера и сквозные каналы АП - сила! 😃

ilves:

Круиз-режим с удержанием высоты и газа в 0% будет полностью аналогичен?

Да. Можно не плясать с микшерами и сквозными каналами (но лучше это попробовать, очень полезная штука).

Только в круиз-контроле нет возможности удерживать газ. Есть возможность удерживать скорость, АП в этом режиме играет газом сам.

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

ilves
smalltim:

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

Нет, я не об этом немного.
В данном случае нам наоборот, хочется снизится до 0, пусть даже с приличным тангажём вниз, зато прямо, по заданному курсу.
Но автопилот будет пытаться удержать целевую высоту и завалит модель. Тогда уж наоборот, зажимать тангаж вверх. Но это всё неправильно, как я понял.
Похоже без правок алгоритма не обойтись. Действительно, режим специфический. Вся “защита от дурака” строится на попытках сохранять высоту и скорость газом. Тут получается фактически некий режим автопосадки, да ещё и вынужденной.

Про микшеры понял, спасибо. Попытаюсь настроить. Хотя и круизом можно.

smalltim
ilves:

В данном случае нам наоборот, хочется снизится до 0, пусть даже с приличным тангажём вниз, зато прямо, по заданному курсу.

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

Если надо, могу завести крыжик “лететь на базу” / “садиться спирально” и дать выбрать желаемые крены-тангажи при поломке мотора, нивапрос.

baychi

А если не мотор сгорел, а серва сломалась? Или хвост отлетел?
ИМХО, ставить вопрос о спасении модели автопилотом при отказе оборудования - бессмысленно, так как вариантов бесконечное множество и только разум человека в ручном режиме может нам здесь помочь.
А как показывает практика - посадка на автопилоте с неработающем движком (сгорел или энергия кончилась) обычно проходит неплохо, - модель садиться горизонтально и до последнего идет домой. 😃

smalltim

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

ilves

Не вижу ничего плохого в желании предусмотреть ВСЕ возможные варианты спасения модели с помощью автопилота(сохранение максимальной целостности:)
Сдаётся мне, что вариантов не так уж и много.
Бессмысленно рассматривать случаи, когда модель становится неуправляемой или разрушается, или происходит полный отказ важного оборудования…
Отказ одиночных серв надо заранее лечить удвоением рулей. Т.е. бороться за сохранение управления мерами, не относящимися к автопилоту. Ну и т.д.
А если модель управляется и есть возможность настроить как надо автопилот-почему нет?

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

smalltim
ilves:

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

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

atail

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

baychi
smalltim:

Александр, я всё понимаю Но ты же сам знаешь.

Дай пользователю свой управляющий процесс, на базе какого-ли бо интрепретатора и пусть он сам придумывает себе варианты для “мэй дэй”. 😃 Если будешь пытаться решать все хотелки сам, не только утонешь в деталях, но и проблемм от неправильных настроек будет у всех на порядок больше.

ilves:

Не вижу ничего плохого в желании предусмотреть ВСЕ возможные варианты спасения модели с помощью автопилота(сохранение максимальной целостности

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

PS: В Вашем случае, больше всего бы помогла настройка небольшой (100-150 м) целевой высоты и указание занимать ее в точке базы (не сразу). Тогда АП привел бы модель домой точно так-же как Вы сделали это вручную.

Pavel_K

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

Остается вопрос насколько практика пилотируемой авиации применима в нашей, модельной, области. Можно научить автопилот комплексно поддерживать заданную скорость, по тангажу и газу?

baychi
Pavel_K:

Можно научить автопилот комплексно поддерживать заданную скорость, по тангажу и газу?

А я бы предпочел как раз наоборот - управлять газом по требуемому тангажу, о чем давно прошу Тимофея. ИМХО, это гораздо надежнее, чем по воздушной (а тем более GPS) скорости.
Разумеется речь идет об исправной и настроенной модели, так как заниматься “автоматизацией бардака” можно бесконечно. 😃

KBV

Согласен с Александром - не дайте себе утонуть в деталях, занимайтесь главным! Сейчас это IMU 😃

От количества хотелок у меня голова уже кругом, из предложенного 90% мне точно не надо, а если и надо- то не так 😃
В общем если делать, то действительно интерпретатор и дать возможность самим программить

ilves
baychi:

Да нереально это, Сергей! Даже в Вашем конкретном случае, как автопилоту достоверно понять что сгорел двигатель? По току? А если это проводок от ДТ отвалился? По отсутствию скорости? А если датчик воздушной скорости забился?

Александр, так рассуждать не конструктивно. Мы ведь про автопилот говорим. Отпавшие датчики-немного другое. Если датчик тока отпал(вдруг), то надо срочно домой поворачивать, не дожидаясь необходимости включения автопилота.
Мой случай-не совсем показатель. Тут и автопилот не понадобился. Просто ТАК может произойти и в других условиях.
Я согласен, что вполне можно забить на всё это, причём и без придумывания отмазок:) Действительно, есть и важнее проблемы. Но если хочешь улучшить-можно улучшить. Как проще и правильнее-нужно думать.

Pavel_K:

Один из первых навыков, которые вдалбливают в авиашколе - это “скорость падает - отдай штурвал от себя”
А вот датчики воздушной скорости там более точные.

Кстати, повод заметить еще одну заковыку. Бародатчик скорости, зараза, работает тут неважно.
Я уже писал, что бился с ним долго, пытаясь выбить из него правильные показания:)
Уже и заэкранировал всё. Одно время он вроде более-менее правильно и стабильно казал, а в последнем полёте-0.
Перевключал несколько раз автопилот, потому как показания скорости на земле было около 60-80 км/ч…
В итоге он откалибровался на 0 и там и остался:)

baychi
ilves:

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

Дело не в конструктивности. А в отсутствии надежных критериев оценки проблеммы. Отпавший ДТ нельзя отличить от сгоревшего мотора. А следовательно нельзя принять правильного решения. Если ток = 0, и АП решил, что сгорел движок, и надо мягко планировать, а на самом деле просто неисправен ДТ и с тягой все ОК, то мы не улучшим, а ухудшим ситацию.
Так-же в большинстве других случаев.
Бороться можно только с такими неисправностями, которые можно однозначно идентифицировать. 😃

ilves:

повод заметить еще одну заковыку. Бародатчик скорости, зараза, работает тут неважно.

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

ilves
baychi:

Дело не в конструктивности. А в отсутствии надежных критериев оценки проблеммы. Отпавший ДТ нельзя отличить от сгоревшего мотора. А следовательно нельзя принять правильного решения.

Я Вас понял, Александр. Просто это звучит, как некое оправдание. Раз сложно это сделать-давайте не будем.
В общем это нормальный подход. Я сам сторонник минимализма. Но в данном случае логика у меня другая.
Какова опасность отпавшего датчика и отказа мотора(батареи)? Какова опасность ложного срабатывания режима “отказ мотора”?
В большинстве случаев потеря датчика вообще не скажется на управляемый полёт. Надо сразу возвращаться-и всё. Отказ мотора мне кажется опаснее(ну потому как сам испытал, наверное:).
Режим полёта, когда автопилот работает вынужденно, а не по прихоти владельца я рассматриваю как уже критический и довольно редкий.
Потеря датчика в этот момент-пожар во время наводнения:) И если режим “отказ мотора” будет неудачен для такого случая, то модель будет потеряна.
Но можно продумать и безопасные алгоритмы. Сразу, на вскидку:
При ток=0 держим уровень газа по прежнему, а РВ выставляем в нейтраль(другое заданное положение). Этакий дополнительный фаил-сэйв.
Модель регулировать так, что-бы при работающем моторе модель шла плавно вверх, а при выключенном-планировала.
Обычно, кстати, так оно само и получается.
Спирали не получится, зато будет ровное снижение. А если мотор работает-то и до дома долетит.

smalltim

Коллеги, Контрольная панель получила небольшой фейслифтинг снаружи, полную переработку по ресурсам внутри, и _значительное_ ускорение отрисовки всей графики.

Загрузка процессора снижена раз в 5, отрисовка ускорена, соответственно, тоже примерно в 5 раз, объем памяти, занимаемый Панелью, уменьшен в 2 раза, лаг с отображением информации от АП на Панели на слабых ПК сведен к величинам, незаметным глазу, частота обновления графической информации на панелях мониторинга доведена до абсолютно плавного и комфортного восприятия, 30-100 обновлений в секунду, в зависимости от производительности ПК.

Теперь можно будет крутить Панель в поле на самых захудалых нетбуках и не переживать по поводу недостатка скорости или быстрой просадки батареи.
На моем рабочем ноуте с Core i5 Панель совершенно комфортно работает на частоте процессора, установленой в 5% от номинала.

Помимо этого, введена _пока очень маленькая_ часть хотелок и добавлены требуемые фичи - выбор подключения к RC приемнику/LRS, выбор пиро/IMU. Кое-что из старого и давно уже ненужного убрано.

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

Алексей_Сергеевич

Здравствуйте, уважаемые Коллеги. Подскажите пожалуйста, как лучше подключить индикацию уровня RSSI c приемника Expert PC к плате автопилота от Smalltim. Точнее, требуется ли отдельно подключать выход RSSI с этого приемника для отображения уровня сигнала на экране (хотя бы в виде палочек)? А если требуется, то в какое место платы автопилота? А то все настроил, а с подключением RSSI туплю. Или хотя бы ткните носом, где это обсуждалось именно для Expert PC. Заранее спасибо.