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

SGordon

А можно ссылочку на такой модуль? Как у него с доступностью и ценой?

pionegger

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

SGordon

а я думал вы из тех что сами делали -)) Хотя при желании я думаю толстый процессор подобрать можно, вопрос в соотношение цена/потребности …

smalltim

Из свежих изменений по вашим просьбам:

  1. Добавлено 3е напряжение к двум уже имеющимся во все части кода, запускающие автопилот, включающие мигание и т.д.
  2. Шкалы в Контрольной Панели теперь подписаны, что каждая означает.
  3. Добавлен мониторинг данных модуля ГПС в Контрольную Панель.
  4. Убран тип стабилизации как класс. Теперь всегда работает режим 2 - непрямое управление самолетом, fly by wire, кто как назовет. С ручек вы просто задаете требуемые углы крена-тангажа, а автопилот приводит самик к этим углам.
  5. Измененена логика работы управляющего канала:
  • 5 положений, как и раньше, из них:

– 1 - Принудительное выключение автопилота, стабилизации. Вступает в силу мгновенно, перевешивает все условия автовключения автопилота и запрещает автопилот и стабилизацию в течение всего времени, пока канал в этом положении.

– 2 - Переключение экранов телеметрии. Срабатывает (сменяет экран) каждые 3 секунды, пока канал в этом положении. Не влияет на логику работы автопилота и стабилизации.

– 3 - Нет команд. Не влияет на логику работы автопилота и стабилизации.

– 4 - Включение стабилизации. Вступает в силу через 1 секунду после установки канала в это положение.

– 5 - Принудительное включение автопилота и стабилизации. Вступает в силу через 1 секунду после установки канала в это положение. Перевешивает все условия автовыключения автопилота и держит автопилот и стабилизацию включенными в течение всего времени, пока канал в этом положении.

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

Напомню, что команды, задаваемые с управляющего канала, имеют безусловный приоритет над любой внутренней логикой автопилота, всеми условиями автовключения и автовыключения. Но только в том случае, когда автопилот видит RC связь. Как только RC связь теряется, он игнорирует любые команды с управляющего канала, до тех пор, пока связь не восстановится.

baychi просит поменять 4е положение:
– “Включение стабилизации”
на
– “Включение стабилизации, Выключение автопилота” .
Ему не нравится, что если хочется выключить автопилот и остаться со включенной стабилизацией, то приходится с 5го положения уходить в 1е а потом в 4е. Неудобно, можно запутаться.

Сделать, то, что просит Александр, просто, но я вижу здесь противоречие, которое хочу вынести на обсуждение.

  1. При переходе в 4е положение можно включить и держать стабилизацию включенной, и дать ЕДИНИЧНУЮ команду на выключение автопилота. Тогда автопилот выключится, но при срабатывании условия автовключения он опять включится.
    Если, скажем, оказалось, что аппа хорошая, и хочется полетать скажем, за слишком пессимистично поставленной дальностью автовключения пилота в, скажем, 500м, то пилот постоянно будет включаться, и с выключенным пилотом и включенной стабилизацией в таком случае полетать не удастся.

  2. При переходе в 4е положение можно включить и держать стабилизацию включенной, и УДЕРЖИВАТЬ команду на выключение автопилота. Тогда автопилот выключится и не будет включаться при любых условиях автовключения. Можно залетаться, потерять ориентацию, и автопилот не выручит - его в этом режиме УДЕРЖИВАЮТ от включения.

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

baychi
smalltim:

При переходе в 4е положение можно включить и держать стабилизацию включенной, и дать ЕДИНИЧНУЮ команду на выключение автопилота. Тогда автопилот выключится, но при срабатывании условия автовключения он опять включится. Если, скажем, оказалось, что аппа хорошая, и хочется полетать скажем, за слишком пессимистично поставленной дальностью автовключения пилота в, скажем, 500м, то пилот постоянно будет включаться, и с выключенным пилотом и включенной стабилизацией в таком случае полетать не удастся.

Вопрос как рассматривать команду при переходе в позицию Nx? Если, как однократную, то описанная проблема будет доставлять неудобство. Другой вопрос, зачем выставлять себе ограничение в 500 м, а затем пытаться его нарушить? В конце концов, команда “выключить все” в этом случае, тоже будет противоречить желанию пилота полетать за пределами 500 м.

Но можно еще ввести автоповтор (постоянный или задаваемый доп. флагом) команд для кажого состояния. Тогда требование “включить стабилизацию и отключить АП” буде повторяться через каждые 2-3 сек, и быстро отменит любое влючени АП по условиям (если условие, в свою очередь, не дает постоянно повторяющегося требования, а срабатывает лишь однажды при переходе соответсвующей границы).
Еще один выход - однозначная логика приоритеов. Высший приоритет у потери РУ. Далее, приоритены прямые команды пилота. До тех пор пока упр. канал находится в любом состоянии, кроме “нет команды”, логика атовключения/выключения АП заблокирована. И только в положении “нет команды” работают уставки по дальности, времени и т.п.

smalltim

>и быстро отменит любое влючени АП по условиям (если условие, в свою очередь, не дает постоянно повторяющегося требования, а срабатывает лишь однажды при переходе соответсвующей границы).

Нет, флаги автовключения взводятся каждый цикл автопилота по результатам проверок всех условий, и менять я это не буду, 100%.
Если улетел за 500м, то как ни крути, отключишь автопилот с управляющего канала, а он через 10 миллисекунд опять включится. У нас всё строго 😃. Отключишь пилот только если управляющий канал в положении принудительного выключения.

В общем, ты за 1й вариант, как меньшее из двух зол? 😃

baychi

PS: Пока не забыл вопрос по доработкам плат ТМ. Их у меня на сегодняшний день 2 (делаю на всех платах, хотя и жаль курочить). 😃

  1. Увеличение вх. сопротивления каналов АЦП, измеряющих напряжение. Давно хотел спросить, почему, Тимофей, ты вибрал относиттельно низкое вх. сопростивлене (2+1=3К кОм)? Ведь не RSSI, ни любой другой источник с вых сопротивлением более 100 оМ к ним просто так не подключишь. Что мешало использовать высоокомные делители на входе? (Меге достаточно 50 пА вх. тока).
  2. Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В. Но модуль нормально начинает работать только при лог 1 на этом входе. А начальное состояние меги при включении питания иногда совсем не 1-ца. Мне приходилось шаманить: многократно вкючать питание, чтобы заработал GPS, пока не додумался подтянуть Tx +3.3 В. Неужели только у меня проблемма с запуском GPS проявилась?
smalltim:

В общем, ты за 1й вариант, как меньшее из двух зол?

Да. Пусть состояние “включение стабилизации” означает также “разрешение логики АП”. Но “выключить все” - запрещение этой логики.

smalltim

>Давно хотел спросить, почему, Тимофей, ты вибрал относиттельно низкое вх. сопростивлене (2+1=3К кОм)?

Да как-то так получилось 2 года назад. Принято. Вовремя, кстати, пока - успеваем поправить 😉

>Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В.

Вход ТХ? может быть, выход ТХ? Или ты про RX? В общем, от тебя первого я о такой проблеме слышу.

>Да. Пусть состояние “включение стабилизации” означает также “разрешение логики АП”. А “выключить все” - запрещение этой логики.

Принято, я не против.

baychi
smalltim:

Вход ТХ?

Выход Tx по отношению к АП/ТМ; вход RX на GPS.
Гдето-я об этом уже писал. Долго не мог понять, почему GPS то сразу стратует, то хоть час жди - фиг тебе спутники 😉 Потом глянул на осцилле, и увидел, если в момент подачи питания или чуть позже на RX GPS лог 0 (шире байта по времени), то он не начинает автопередачу NMEA строк, а ждет каких-то команд. 😦
Поэтому теперь RX вход GPS модулей после обработки GPSPICK-ером постоянно перевешиваю на +5 В телеметрии.

smalltim

>Поэтому теперь RX вход GPS модулей после обработки GPSPICK-ером постоянно перевешиваю на +5 В телеметрии.

Понятно. У тебя еще и модуль старый 😦
Нам с конца 2009 сразу на заводе под наши требования модули перепрошивают.

В любом случае, подтяжку можно сделать прямо на модуле, операция плевая, мы же проводки к модулям так и так сами делаем…

slides

Я вот выскажу крамольную мысль - мы чего все ждем, пока пиродатчики приедут ? Или тут кроется еще какая-то подоплека, в частности недошлифованый код ? Судя по скорости доставки пиродатчиков, они идут своими ногами (точнее мелко перебирают своими “ножками” и идут-идут цепочкой как муравьи), а не едут.

ИМХО Вопрос прозвучал исключительно риторический.

А то может полетаем с чем есть, а некоторые 😃“эстеты”😃, которым по 10 режимов на одном канале надо, пусть и занимаются эпикурством !

Наболело, извини Тим, но некоторые твои клиенты плавно перетекают в разряд “бывших” 😦 Но я пока держусь. Из последних сил.

Панкратов_Сергей
baychi:
  1. Вход Tx на GPS модулях Locosys (5 Гц) притянут к земле, за счет делителя 5->3 В. Но модуль нормально начинает работать только при лог 1 на этом входе. А начальное состояние меги при включении питания иногда совсем не 1-ца. Мне приходилось шаманить: многократно вкючать питание, чтобы заработал GPS, пока не додумался подтянуть Tx +3.3 В. Неужели только у меня проблемма с запуском GPS проявилась?

Можно же много проще решить - не ставить делитель, подтяжку, а просто последовательно сопротивление килоом на 10 между RX модуля и TX телеметрии. Это обычное решение согласования уровней для таких ситуаций- работает у многих - в том числе и у меня…
И не будет проблем, Вами озвученных…

smalltim

>Я вот выскажу крамольную мысль - мы чего все ждем, пока пиродатчики приедут

Да. Если ты сможешь подобрать, договориться, получить сэмплы, оттестировать, облетать, заказать партию и привезти столько же, сколько тащим мы, и сделать всё это быстрее чем это получается у нас, то, наверное, автопилот стоило тебе делать 😃
Пока едут датчики, между прочим, телеметрия и пилот полностью переразведены, с импульсниками, с изменениями и дополнениями по результатам облетов, под массовое производство (пайку) роботами на заводе, и всё это с условием обязательной совместимости с текущими телеметриями и пилотами по софту, по подключению, и т.д. Это не очень просто было сделать. Зато теперь при необходимости за 2 недели можно сделать хоть грузовик телеметрий-автопилотов.

>Наболело, извини Тим, но некоторые твои клиенты плавно перетекают в разряд “бывших” 😦 Но я пока держусь. Из последних сил.

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

slides

Про рашку я и не говорил, в общем ты прав… 😦

smalltim

Я уж поменял сообщение, про орлодерево убрал, добавил конструктива, перечитай 😃

Yanchak

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

Frr
Yanchak:

А как тебе вариант сделать автопилот самообучающимся? …

Пробовал по логам расчитать настройки АП - не получилось (получилась туфта, забросил)
Логи три раза выкладывались в соседней теме, около этого места.

smalltim

>А как тебе вариант сделать автопилот самообучающимся?

Интересная, но слишком сложная тема, чтобы сейчас ею заниматься.

Yanchak

Интересная, но слишком сложная тема, чтобы сейчас ею заниматься.

Дак наоборот. Пишешь один раз код а дальше он себе сам мозги сушит.

smalltim

Я о “пишешь один раз код” и говорю: интересно, но слишком сложно, чтобы сейчас этим заниматься.

Dronavt
smalltim:

Про рекорды - сегодня Dronavt на “доделываемом” рекорды ставил, надеюсь, поделится в соседней ветке. Я так высоко и далеко не летал.

Ну, рекорды как бы и не планировались… Это все мое раздолбайство виновато.
Пока адреналинчик не сошел поделюсь разрозненными впечатлениями. Потом попробую их систематизировать и прояснить свои ошибки.

PS Под впечатлением от полетушек, накатал целую страницу, а посему перекинул ее в дневник.

Если кратко, то: самик улетел, маршевая батарейка села, АП самолет вернуть не смог, но благополучно посадил. 😎