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

baychi
slides:

Двуэлеронный вариант меня больше заинтересовал со стороны реализации дифференциала, что особо актуально для планера…

В смысле? Когда две сервы в разные стороны должны работать что-бы элеронить? (Так это конструктивно исправить можно). Или еще где?

Brandvik

Дмитрий, а ты попробуй без крокодила вывалиться из мощного термика. Ну или просто спикировать с 500м вертикально. Ну и крокодил на малых скоростях не столько тормозит, сколько позволяет терять больше высоты не набирая скорости. Ну и еще от кучи разных факторов зависит его эффективность.

А есть АП, обрабатывающие больше 4-х каналов РУ?

А вот для того и спрашивал про I2C. Что потеряв один оригинальный упр канал, пожно будет подключить хоть 10 управляющих и 10 выходных каналов, дополнив АП платкой расширения…

baychi
Brandvik:

А вот для того и спрашивал про I2C. Что потеряв один оригинальный упр канал, пожно будет подключить хоть 10 управляющих и 10 выходных каналов дополнив АП платкой расширения…

А зачем Вам они через АП? Вы хотите научить АП термики ловить?

Brandvik

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

baychi
Brandvik:

Итого нужно иметь + 3 входных и + 6 выходных кнала.

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

slides
Brandvik:

Дмитрий, а ты попробуй без крокодила вывалиться из мощного термика. Ну или просто спикировать с 500м вертикально. Ну и крокодил на малых скоростях не столько тормозит, сколько позволяет терять больше высоты не набирая скорости. Ну и еще от кучи разных факторов зависит его эффективность.

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

smalltim

Так, вернемся к нашим баранам.

Результат анализа свежих логов baychi (возврат автопилотом самика с 2.5 км - автоматическое срабатывание при тесте дальности радиоуправления) показал очень интересную вещь.
Многие FPV самики устроены так, что при даче газа они начинают задирать нос и “вспухать”, причем, даже подача (сравнительно небольшого) воздействия на руль высоты в сторону земли ситуацию не меняет - они продолжают набирать высоту при подопущенном вниз РВ.
Автопилот в такой ситуации, глядя на необходимость снизить высоту до требуемой, генерирует требуемый угол тангажа, равный разнице высот, умноженной на чувствительность автопилота по высоте. При этом требуемый угол тангажа ограничивается из контрольной панели, во избежание слишком резких маневров при включении автопилота.

Далее разница между требуемым и текущим углом тангажа умножается на чувствительность системы управления по тангажу и подается на РВ. (Д компонент там тоже есть, но он в ситуации не роляет).

Из-за влияния движка самика и задирания носа вопреки действиям РВ при этом появляется постоянная ошибка между требуемым и текущим углами тангажа. В итоге автопилот очень неохотно снижает высоту или вообще тащит модельку домой с небольшим набором высоты.

Как лечить - варианта три:

  1. Увеличить “чувствительность” системы управления по тангажу (П часть контроллера тангажа). Но это может привести к излишней резкости руления по тангажу и, потенциально, к раскачке, которую придется лечить увеличением “упреждения” по тангажу (Д часть контроллера тангажа)

  2. Позволить пилоту бОльшие углы тангажа в режиме автопилота, заведомо больше, чем возникающая из-за “вспухания” ошибка. Заодно-увеличить чувствительность автопилота по высоте. Уже намного лучше, но излишне большие углы тангажа при включении автопилота при большой разнице высот - риск разогнаться слишком сильно при снижении или банально не вытянуть при наборе высоты.

  3. Введение интегрального компонента в систему управления по тангажу. Это вылечит вспухание/клевки самика при игрой газом и в режиме стабилизации 1 и 2, и в режиме автопилота. Весовой коэффициент интегрального компонента по умолчанию выбирать таким, чтобы его вклад в управление в течение 2-3 секунд становился сравним со вкладом пропорционального коэффициента.

В полете это будет выглядеть так:

  1. Режим стабилизации 1 и 2:
  • Без интегрального компонента:
    а) Летим без мотора в горизонте. Даем газ. Самик задирает нос и начинает набирать высоту. Если нужен плоский полет, нам приходится парировать тангаж ручкой или триммером.
    б) Летим на полном газу в горизонте. Сбрасываем газ. Самик опускает нос и начинает терять высоту. Если нужен плоский полет, нам приходится парировать тангаж ручкой или триммером.

Знакомо? 😃 Меня, например, на Изике и Toro900 это жутко бесит. 😃
А если выкос движка неправильный или моделька корявая - вообще финиш.😃

  • С интегральным компонентом:
    а) Летим без мотора в горизонте. Даем газ. Самик задирает нос и начинает набирать высоту. Через 2-3 секунды самик опускает нос в горизонт и продолжает “вспухать”, находясь в плоскости горизонта.
    б) Летим на полном газу в горизонте. Сбрасываем газ. Самик опускает нос и начинает терять высоту. Через 2-3 секунды самик поднимает нос в горизонт и продолжает планировать , находясь в плоскости горизонта.
  1. Режим автопилота.
  • Текущий угол тангажа приводится к требуемому непрерывно, а ошибка, связанная с влиянием газа, убивается в течение 2-3 секунд.

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

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

Введение интегрального компонента в канал крена не требуется - все последние логи показывают практически идеальное поведение моделек при разумных настройках ПД контроллера.

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

baychi

Насчет “вспухания” - все верно и при управлении от РУ легко лечится микшированием Газ->РВ (у меня на уровне 7% запрограммированно). На АП ты же специально заложил матрицу взаимных коэфффициентов. Если-б она уже работала, я бы ее задействовал.

mishaXXyears

to smalltim

Я в беларуси! Хочу приобрести сие творение:

OSD mini + бародатчики = цена + доставка???
автопилот + пиродатчики = цена + доставка???

если есть магаз, где все енто удовольствие можно купить, дай плз. ссылку!!!

slides

ага и автопилот там уже готовый ! Мужики ! Не дурите Челу голову - готова только телеметрия !

smalltim

Экспериментальная прошивка версии 262e от 1 декабря 2009
[скачать v262e.hex, 23 кб]
[скачать v262enb.hex для плат без бародатчиков, 23 кб]

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

  • Введено отображение трех независимых величин напряжений, без проверки каких-либо условий.
  • Убрана поддержка устаревших GPS модулей GlobalSat EM406A

Прошивка версии 261 от 29 сентября 2009
[скачать v261.hex, 23 кб]
[скачать v261nb.hex для плат без бародатчиков, 23 кб]

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

  • Добавлена поддержка новой платы телеметрии smalltim mini и отображение изображения телеметрии с тенями под символами
  • Добавлена программная фильтрация ложных синхроимпульсов от LM1881 (проявляется как “дрожание” изображения по вертикали с некоторыми видеокамерами)
  • Убрана поддержка GPS модулей Locosys LS20031, работающих на скорости порта 9600 бод, 1 Гц, убрано переконфигурирование модулей “на лету”
kulikof

Экспериментальная прошивка версии 262e от 1 декабря 2009

чем е!то она експериментальная?

Dronavt
kulikof:

чем е!то она експериментальная?

В честь начала зимы введена “оптимистичная” температура за бортом! 😃
С началом календарной зимы, господа!

slides

Ой, жалко то как ! Я думал, что мониторинг РССИ сделал. То есть она конечно частично сделана (слабый уровень РССИ-выхода падает на 100 ком-ном сопротивлении до мизера, без резистора приемник сходит с ума). Хотя пока АП не готов все равно не актуально - для старого программатора нужен переходник, лень делать

V_Labanauskas

Kak ponial Vse kto imejet GPS moduli “EM-406” i “LS20031” mogut s novoi prosivkoi zasunut ih sebe v z… (mooning)
Kakie togda moduli podhodiat(marki)
Licno mojo mnenie cto lucse Sirf modulia nicego netu. Lovit sputniki daze pod betonnim perekritiem, a MTK 10Hz za 30min nestartoval daze pod sifernoi krisei 😃

smalltim:

Экспериментальная прошивка версии 262e от 1 декабря 2009

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

  • Введено отображение трех независимых величин напряжений, без проверки каких-либо условий.
  • Убрана поддержка устаревших GPS модулей GlobalSat EM406A

Прошивка версии 261 от 29 сентября 2009
Изменения относительно прошивки верcии 254:

  • Добавлена поддержка новой платы телеметрии smalltim mini и отображение изображения телеметрии с тенями под символами
  • Добавлена программная фильтрация ложных синхроимпульсов от LM1881 (проявляется как “дрожание” изображения по вертикали с некоторыми видеокамерами)
  • Убрана поддержка GPS модулей Locosys LS20031, работающих на скорости порта 9600 бод, 1 Гц, убрано переконфигурирование модулей “на лету”
smalltim

Все телеметрии уж полгода как комплектуются модулями Locosys LS20031, поэтому было бы глупо тащить еще поддержку старых модулей.
Если надо оставить поддержку EM406A - оставим
Прошивка на то и экспериментальная, что она сденана для “попробовать и послушать, что скажут”.

>В честь начала зимы введена “оптимистичная” температура за бортом!
Термодатчик просто не подключен 😃

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

У меня нет и не было никогда приемников с выходом RSSI, так что вопрос: оно так сработает?

По поводу высокоомности RSSI вопрос в принципе решенный: делаем повторитель на ОУ в горошине на проводке к телеметрии.

Brandvik

Тим, показания лучше делать аналоговыми (палочки), визуально более информативно…

baychi
smalltim:

У меня нет и не было никогда приемников с выходом RSSI, так что вопрос: оно так сработает?

В принципе - да, но есть несколько тонкостей.

  1. При выключенном передатчике RSSI показывает уровень шума в диапазоне.
    У меня дома (RSSI с R617FS, к примеру) это значение колеблется от 40 до 60 мВ. А на поле бывает и 20-30 мВ. Максимум (передатчик рядом с приемником) - 0.46 В.
  2. Нижнее значение RSSI при котором наступает FailSafe может в воздухе быть меньше, чем значение при отключенном передатчике на земле.
  3. Показания RSSI (по крайней мере с FUTABA) это логарифмическая величина. По моим оценкам 2-х кратное уменьшение напряжения соответсвует 10-ти кратному падению уровня.

И, наконец, последнее. RSSI намного менее показателен, чем количество потерянных пакетов. 😃 Если Тимофей под словом RSSI понимал вход получающий усредненные значения потерь пакетов - то все прекрасно будет работать по его логике.

denisry

Уважаемы smalltim.

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