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

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.

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

slides

Вот только давайте не будем засорять проблему пакетами, ЛОГ-декодерами и т.д. Мы с Тимом обсуждали тему РССИ. Для эстетов можно ввести переключатель чувствительности шкалы сигнала - логарифм с накоплением или линейный с накоплением (типа прикола с выбором ГПС или бародатчика). Однозначно надо делать сглаживание показателя РССИ и я думаю не подбирать кондей в параллель, а математическим способом, благо ресурсов Меги должно хватить. Отображать надо 10 палками, причем после палок обязательно процент писать. В автопилотном куске можно сделать условие включения при определенном уровне РССИ и вариант отображения. ИМХО. Неплохо бы чтобы на определенном уровне РССИ (и ниже) значок начинал мигать.

Кстати, как отписался Томас, его система имеет выход с линейной характеристикой…

baychi
slides:

Неплохо бы чтобы на определенном уровне РССИ (и ниже) значок начинал мигать. Кстати, как отписался Томас, его система имеет выход с линейной характеристикой…

Дима, а тебе RSSI (уровень принимаемого сигнала) зачем вообще нужен? Сформулируй, пожалуйста, как ты собираешся этот сигнал в полете интерпретировать?
И про Томаса: он именно RSSI выдает, или все-же качество сигнала (например, по критерию потерь пакетов)? И в каком виде выдает (какой разъем, диапазон напряжения, форма, степень усреднения и т.п.)?

slides

Отвечаю:
У меня нет автопилота и не факт, что я буду его ставить на все 4 самолета. Поэтому возникло желание хоть как-то контролировать состояние радиолинка. Согласен, что не лучший вариант.

Как оценивает РССИ у Томаса не знаю, но сейчас ему задам вопрос. Выглядит в виде 4-го штырька серворазъема последнего канала от 0,5 вольта (максимум) до 0,29 вольта (минимум)

baychi
slides:

У меня нет автопилота и не факт, что я буду его ставить на все 4 самолета. Поэтому возникло желание хоть как-то контролировать состояние радиолинка. Согласен, что не лучший вариант.

Вот именно! По RSSI можно узнать много нового. Например, насколько далеко приемник находится от передатчика. Или особенности прохождения сигнала в данных атмосферных условиях. Единственно, чего через RSSI нельзя узнать наверняка, это как скоро приемник намерен потерять связь! Потому и спрашиваю, может Томас все-же не RSSI выдает а более важную информацию?

slides

Увы, нет ! Хотя пишет, что есть нога на чипе, с которой можно получить сигнал по потерянным пакетам…

poldeco
denisry:

Уважаемы smalltim.

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

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