Smalltim OSD and autopilot (часть 2)
Обновление прошивки IMU не предполагается, поэтому необходимо сейчас как можно лучше вылизать всю математику получения углов и положения аппарата,
А если завтра изобретут алгоритм получше Марга? 😃
Что-то плохо верится, что сразу получится версия не требующая доработок после первых испытаний в воздухе.
Но в любом случае готов проверить новый IMU, как только появится опытная партия.
Во-первых, без испытаний на всех типах моделей IMU выбущена не будет.
Во-вторых, все ключевые параметры математики IMU могут изменяться со стороны АП, так что главный тут, по-прежнему, АП, а IMU для него лишь инструмент - набор датчиков со своей математикой. Если надо, АП может быстро вправить мозги плате IMU.
В-третьих, в случае крайней необходимости можно запилить обновление прошивки IMU средствами АП.
Обновление прошивки IMU не предполагается
Элементная база не позволяет? Или так и задумано?
возложить на АП - он и так уже 90% этой работы делает, работая с пиродатчиками.
Но ведь с пиродатчиками всё по-другому?
без испытаний на всех типах моделей IMU выбущена не будет.
Это сколько же еще ждать? 😃
PS: Если-б ты с IMU платки брал только сами показания MEMS-ов, а алгоритм определения положения крутился бы на АП - перещивка скорее всего не потребовалась. Но эта задачка явно не для Меги…
Элементная база не позволяет? Или так и задумано?
Так задумано, по крайней мере, сейчас. Я же обновляю прошивку IMU, пока работаю над ней 😃
Это сколько же еще ждать?
Совсем недолго. Для отработки 90% функций IMU достаточно сидеть дома и грубо говоря вертеть плату во все стороны всячески, включая неочевидные и диковинные варианты, погода-зима-холод - не помеха. Оставшиеся 10% проверяются в поле.
PS: Если-б ты с IMU платки брал только сами показания MEMS-ов, а алгоритм определения положения крутился бы на АП - перещивка скорее всего не потребовалась. Но эта задачка явно не для Меги…
Конечно, не для Меги.
Тут смысл в том, чтобы реализовать на IMU правильный устойчивый алгоритм определения углов и положения, а со стороны АП ненавязчиво поправлять IMU, руля логикой, коэффициентами, компенсациями и т.д.
Еще одна важная фишка - я стараюсь максимально упростить настройку IMU для пользователя. Т.е., в идеале, к тому, что сейчас есть, добавляется одна галка в Контрольной Панели - “IMU подключена” и калибровка компаса.
Остальное - коэффициенты чувствительности и т.д. - уже есть и так, для работы с пиродятчиками. А то, что я не хочу показывать пользователю, я настрою автоматически.
Ну, и для всяких коптеров надо настраивать тип аппарата, но это к IMU не относится, это настройки АП.
Совсем недолго. Для отработки 90% функций IMU достаточно сидеть дома и грубо говоря вертеть плату во все стороны всячески, включая неочевидные и диковинные варианты, погода-зима-холод - не помеха. Оставшиеся 10% проверяются в поле.
А можно выложить видеоролик как это шустро выглядит на компе (отработка углов и наклонов).
Просто на платке ОпенПилота все очень шустро на компе отображается, хочется сравнить
Обновление прошивки IMU не предполагается
А не получится как с фишкой?
Но в любом случае готов проверить новый IMU, как только появится опытная партия.
+1. возьмите меня тоже в тестеры!
ps продаю комлект пирометров 😉 😁
А можно выложить видеоролик как это шустро выглядит на компе (отработка углов и наклонов).
Просто на платке ОпенПилота все очень шустро на компе отображается, хочется сравнить
Саня , Тим уже выкладывал , вот видео rcopen.com/forum/f90/topic205896/3592
О, точно видел уже 😃
Добавление: в низу окошка редактирования полетных точек надо из выпадающего списка выбрать тип карты - спутник, ландшафт, карта, и т.д.
Соответствующий скриншот Контрольной панели из Мануала:
Хорошо бы добавить в карту ручной zoom и перетаскивание карты мышкой, а автомасштабирование отключить. Из-за него иногда точки нереально переставить, когда только возьмешься за нее, и начинается масштабирование туда-сюда.
PS.
А нет ли в природе симулятора, который может сливать данные о полете в АП (вместо телеметрических датчиков), и рулиться, соответственно, автопилотом? Т.е. по схеме пульт–>приемник–>АП<–usb–>симулятор.
Хорошо бы добавить в карту ручной zoom и перетаскивание карты мышкой, а автомасштабирование отключить. Из-за него иногда точки нереально переставить, когда только возьмешься за нее, и начинается масштабирование туда-сюда.
Да, не совсем удобно, согласен. +1 в список хотелок, попробую сделать так, как Вы предлагаете.
Жизненный вопрос возник, может разбирали?
Как будет работать автопилот, если мотор/регуль сгорел.
Не завалит модель?
Как заранее проверить поведение и настройки подправить?
Вот была у меня возможность проверить, но как-то не сообразил.
А повторить сложно.
Вылетать маленький аккум до 0 и включить? Опасно… да и аккум жалко.
Если мотор/регуль сгорел, то есть несколько вариантов поведения, в зависимости от текущего режима.
В любом режиме главная беда - потеря скорости.
- В ручном режиме просто сажаем модель на ближайшую подходящую площадку и всё.
- В режиме стабилизации или в Круиз-Контроле без удержания скорости АП адекватно рулит моделью до тех пор, пока присутствует скорость и, следовательно, управляемость. Рулите как в ручном режиме, планируя, просто со стабилизацией полет поспокойне и поплавнее. В целом - так же, ищем место, сажаем модель и всё.
- В круиз-контроле с удержанием скорости, в автовозврате и в полете по точкам АП будет стремиться удержать целевую высоту, но модель при этом будет плавно снижаться - мотора-то нет.
Постепенно требуемый положительный тангаж (и, следовательно, отклонение РВ, элевонов или что там еще поставлено на модели) станет таким высоким, что модель начнет валиться на крыло. Свалится, наберет скорость, выровняется. Опять свалится, наберет скоротсь, выровняется. И так до самой земли.
В общем, конечно, не морква прямиком в землю, но моделька будет помята, ничего хорошего.
Самое главное-как раз режим автовозврата(с остальными понятно).
Скорее всего, если модель далеко, видео и связь пропадёт на довольно большой высоте(запросто на 100 и более метрах). Т.е. ещё долго ей лететь на автопилоте.
Есть ли возможности подстроек автовозврата для планирования?
Чувствительность по высоте снижать? Плохо может оказаться для нормального полёта…
В любом случае будет периодическое сваливание?
Как проверить такой режим на практике, заранее?
Круиз-режим с удержанием высоты и газа в 0% будет полностью аналогичен?
Есть ли возможности подстроек автовозврата для планирования? Чувствительность по высоте снижать? Плохо может оказаться для нормального полёта…
Первое, что в голову приходит - ограничить отрицательный тангаж в автономном полете (автовозврат, полет по точкам) где-нибудь в минус 2-3 градуса. Тогда АП просто не сможет резко снижаться до целевой, будет планировать.
Однако ж, у меня в Контрольной Панели стоит ограничение, позволено ставить -15 градусов или больше: защита от неправильных действий юзера. А вдруг он поставит 0 или очень маленькое значение, и что будет делать АП, когда надо реально быстро снижаться? 😃
Самый правильный вариант - добавить еще один аварийный режим: отказ мотора (батарея села или мотор сгорел). Это легко определить (требуем ненулевой газ, а получаем нулевой ток) и понятно, что делать в таком случае - лететь с нулевым целевым тангажом тангаже или с легким снижением, отключить мотор, а по курсу-крену управлять как обычно.
В любом случае будет периодическое сваливание?
Думаю, да. Зависит от модели, но шанс 99%.
Как проверить такой режим на практике, заранее?
Выделить на АП сквозной канал, повесить его на тумблер на аппе, замиксовать его во всех режимах (ручное/стаб-круиз/автовозврат-полет по точкам) микшерами АП на выходной канал газа, с инвертом и с весом 100%. Тогда АП в любом режиме будет миксовать значение с тумблера на газ. Этакий Throttle Cut силами АП.
На выходном канале газа будет расчитанный автопилотом газ, если тумблер в нуле, и рассчитанный автопилотом газ минус 100% (конечно, обрезанный по калиброванному диапазону в канале газа, то есть, в итоге, 0%) при тумблере в 100%.
Врубаем автовозврат, самик летит как обычно. Щелкаем тумблер в 100% и смотрим, как ведет себя с придушенным газом.
Микшера и сквозные каналы АП - сила! 😃
Круиз-режим с удержанием высоты и газа в 0% будет полностью аналогичен?
Да. Можно не плясать с микшерами и сквозными каналами (но лучше это попробовать, очень полезная штука).
Только в круиз-контроле нет возможности удерживать газ. Есть возможность удерживать скорость, АП в этом режиме играет газом сам.
Поэтому надо разрешить удержание высоты и запретить удержание скорости. Тогда газ в этом режиме пойдет на мотор прямо с пульта.
Врубаем круиз-контроль, глушим газ, АП пытается удержать высоту в значении, зафиксированном на момент включения круиз-контроля.
Наблюдаем.
Первое, что в голову приходит - ограничить отрицательный тангаж в автономном полете (автовозврат, полет по точкам) где-нибудь в минус 2-3 градуса. Тогда АП просто не сможет резко снижаться до целевой, будет планировать.
Нет, я не об этом немного.
В данном случае нам наоборот, хочется снизится до 0, пусть даже с приличным тангажём вниз, зато прямо, по заданному курсу.
Но автопилот будет пытаться удержать целевую высоту и завалит модель. Тогда уж наоборот, зажимать тангаж вверх. Но это всё неправильно, как я понял.
Похоже без правок алгоритма не обойтись. Действительно, режим специфический. Вся “защита от дурака” строится на попытках сохранять высоту и скорость газом. Тут получается фактически некий режим автопосадки, да ещё и вынужденной.
Про микшеры понял, спасибо. Попытаюсь настроить. Хотя и круизом можно.
В данном случае нам наоборот, хочется снизится до 0, пусть даже с приличным тангажём вниз, зато прямо, по заданному курсу.
Если скорости при нулевом (или выставленном из Контрольной Панели для этого аварийного режима) тангаже достаточно для адекватного управления моделью, то никуда он с курса на базу не денется. Контроллеры скорости, курса и высоты полностью развязаны. Т.е. для этого аварийного режима надо отрубить контроль скорости и высоты, выставив нулевой тангаж и нулевой газ, и идти на базу, управляя креном-тангажом как в режиме стабилизации при планировании.
Если надо, могу завести крыжик “лететь на базу” / “садиться спирально” и дать выбрать желаемые крены-тангажи при поломке мотора, нивапрос.
А если не мотор сгорел, а серва сломалась? Или хвост отлетел?
ИМХО, ставить вопрос о спасении модели автопилотом при отказе оборудования - бессмысленно, так как вариантов бесконечное множество и только разум человека в ручном режиме может нам здесь помочь.
А как показывает практика - посадка на автопилоте с неработающем движком (сгорел или энергия кончилась) обычно проходит неплохо, - модель садиться горизонтально и до последнего идет домой. 😃
Александр, я всё понимаю 😃
Но ты же сам знаешь.
Рядовой пользователь, может быть, сразу и не оценит то, что за него какой-то дядя заранее подумал о возможных проблемах. Но если вдруг у кого-то сгорит мотор, и человек увидит не кувырки, а спокойно садящийся спиралью или неспешно плюхающий на базу без мотора самик, а в очках у него будет написано “бяда, насяльника, мотор айяйяй, делаю, что могу, всё под контролем”, то нервных клеток у него убавится сосвем несильно, и он поставит тому дяде еще один плюс в своей голове.
А поставить крыжик в Контрольной Палели в какое-то безопасное значение по умолчанию, добавить в АП пару строчек кода, и пусть этот кусочек кода живет себе тихонько про запас - в данном случае не очень большая проблема 😃
Не вижу ничего плохого в желании предусмотреть ВСЕ возможные варианты спасения модели с помощью автопилота(сохранение максимальной целостности:)
Сдаётся мне, что вариантов не так уж и много.
Бессмысленно рассматривать случаи, когда модель становится неуправляемой или разрушается, или происходит полный отказ важного оборудования…
Отказ одиночных серв надо заранее лечить удвоением рулей. Т.е. бороться за сохранение управления мерами, не относящимися к автопилоту. Ну и т.д.
А если модель управляется и есть возможность настроить как надо автопилот-почему нет?
На самом деле, может и вправду, всё гораздо проще. Может устойчивые модели и так планируют. Нужно пробовать.
Но лететь спиралью-интересный вариант, если площадка ограничена и прогнозируется потеря связи на большой высоте.
Бессмысленно рассматривать случаи, когда модель становится неуправляемой или разрушается, или происходит полный отказ важного оборудования
Есть идеи даже на этот случай, к лету, думаю, опробую.