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

smalltim

Коллеги, переписываю сейчас логику калибровки передатчика в Контрольной Панели и захват, обработку и сохранение в памяти пилота векторов PPM “крен”, “тангаж” и т.д.
Вышла небольшая зяка.
Захват векторов PPM на калибровке каналов делаю с точностью 11 бит - точность получается 1 микросекунда или 0.05% от диапазона PPM 0.5 … 2.5 миллисекунд - именно в таком, кстати, диапазоне обучен работать автопилот, и всё что за этими рамками, он просто не воспринимает как PPM.

Не хотелось терять половину точности, но еще более не хотелось перекурочивать классы для работы с USB - все вектора с полной точностью в один пакет USB не укладывались 😃
Впрочем, надеюсь, точности 0.05% всем хватит.

Захват допустимых минимумов и максимумов PPM в каждом канале на калибровке (анти-выламывание серв 😃 ) и захват входного и генерация выходного PPM в работе самого автопилота по-прежнему делается с полной точностью 12 бит - 0.5 микросекунды или 0.025% от диапазона 0.5…2.5 мсек.

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

Скажите, пожалуйста, какие условия автовключения и автовыключения автопилота вы хотите видеть?
А я, почитав, скажу, что сейчас есть, задам уточняющие вопросы, выкину лишнее/добавлю новое и выложу окончательный список условий.

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

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

Brandvik

Ох и не спится же тебе Тим сегодня 😃

Есть пара предложений.
Во первых.
Автопилота будет 2 как я понимаю. Маршрутный и Аварийный(возврат). Следовательно нужно как то это дело ему объяснять… И тут возникают два варианта 😃 Научить его понимать разницу с пульта или если загружен маршрут то при включении АП с пульта он летит по маршруту, если не загружен то летит домой.

Второе
Стоило бы ввести вывод текстовых сообщений при включении АП с указанием причины и состояния систем. Аварийные сообщения АП выводить на экран даже если включен “чистый” экран без телеметрии

Условия.

  1. Принудительное включение маршрут “АП Маршрут”
  2. //-------------// возрат “АП Возврат”
  3. Потеря радиосигнала “АП Потеря связи-Возврат”
    При восстановлении связи “АП Связ ок-Возврат”
  4. При удалении более ХХХм и высоте менее ZZZ и расходе “АП Исчерпан заряд”
    YYY мА батареи. Принудительный возврат на базу и
    включить ручное можно только при подлете на
    расстояние не менее скажем 100м при достижении этой
    отметки АП выводит сообщение “АП Возврат”

Во всех случаях для восстановления ручного управления нужно Включить с путьта Возврат и выключить
Все остальные условия притянуты зауши и впринципе не нужны
А вот Всякие мигающие параметры типа Улетел далеко, Много скушал электричества, Забрался слишком высоко и т.д. нужны и вывод этих моргалок на “чистый” экран тоже.
ИМХО 😃

ЗЫ Забыл сказать, При включении режима “Маршрут” Потеря связи игнорируется
А вот остаток батареи в зависимости от удаления нужно контролировать, а то вдруг маршрут окажется замкнутым-повторяющимся… 😉

smalltim

Спасибо, Brandvik!

>Стоило бы ввести вывод текстовых сообщений при включении АП с указанием причины и состояния систем.

Задумано и сделано изначально - “строка статуса автопилота”.
Остальное на свежую голову внимательно прочитаю. Спасибо!

Dronavt

Автоматическое включение АП:
1 При потере сигнала - стабилизация и через некоторое время возврат (для исключения кратковременных помех)
2 Возврат при съедании предварительно заданной пользователем емкости маршевой батареи (скажем 1/3 от номинальной емкости) с индикацией на дисплее причины включения.

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

painter12
Brandvik:

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

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

serj
smalltim:

К
Захват векторов PPM на калибровке каналов делаю с точностью 11 бит - точность получается 1 микросекунда или 0.05% от диапазона PPM 0.5 … 2.5 миллисекунд - именно в таком, кстати, диапазоне обучен работать автопилот, и всё что за этими рамками, он просто не воспринимает как PPM.

Впрочем, надеюсь, точности 0.05% всем хватит.

Тим, 10 бит точности хватает за глаза- больше современные машинки просто не отрабатывают 😃

myname:

я тоже хочу похихикать =) на какой картинке? раскройте тему.

картинка справа посередине на вашей ссылке, называется

“Functional Block Diagram for ADIS16209”, крайний левый столбец, второй (центральный) квадратик в нем…

baychi
smalltim:

От ведь, зараза, какой требовательный. Всё это, кроме, пожалуй, инверсии и масштабирования, можно сделать, но на это уйдет время.

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

smalltim:

Скажите, пожалуйста, какие условия автовключения и автовыключения автопилота вы хотите видеть?

Минимум - те что есть
А в общем, в порядке приоритета:

  1. Пропадание и восствновление РУ;
  2. Превышение порога расхода тока (только включение);
  3. Отключение по детектирванию краша или нахождения модели на земле - для безопасности;
  4. Превышение пределов дальности, высоты (включение) и близости к базе (отключение);
  5. По времени (как дополнительная защита);
  6. По командам пользовательского алгоритма АП.
Brandvik

А по времени и дальности зачем? Типа защита от “Сам дурак” не уследил? Так я предлагаю могралки на этот случай, а там сам решай лететь домой или еще чуток полетать.

А вот что еще хотел добавить.
Строка вывода ГПС координат. Было бы не плохо что бы она включалась автоматически (если до этого была отключена вручную) при удаление скажем 200м и высота ниже 50м

baychi
Brandvik:

А по времени и дальности зачем? Типа защита от “Сам дурак” не уследил?

Да, как дополнительный критерий безопасности. Скажем, задумал я дальный полет, а условие пропадания РУ через FailSafe не настроил или сбились они…

Brandvik:

А вот что еще хотел добавить. Строка вывода ГПС координат. Было бы не плохо что бы она включалась автоматически (если до этого была отключена вручную) при удаление скажем 200м и высота ниже 50м

Поддерживаю. Можно просто включать автоматически включать строку координат при включении режима возврат АП.

Dronavt

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

baychi
Dronavt:

Возможна ситуация, когда АП вернет модель совсем не с той стороны, откуда ожидает пилот. Следовательно и направленная антенна смотрит не туда и визуальный поиск не в том направлении… Т.е. к этому моменту пилот может быть не готов принять управление на себя.

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

Dronavt
baychi:

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

Логично, но в этом случае долно быть доп. условие, что высота модели по GPS не превышает, к примеру, 10 метров, т.е. она находится на земле или готовится упасть.

baychi
Dronavt:

Логично, но в этом случае долно быть доп. условие, что высота модели по GPS не превышает, к примеру, 10 метров, т.е. она находится на земле

А еще был случай, когда АП включился и вместо положенных 200 м высоты, пошел набирать дальше (из-за свойств модели) и если бы в 100-200 м РУ не вернулось бы (а на одном поле у меня это возможно), то высота стала бы расти неизвестно до каких пределов. Это, конечно, случай неверных настроек, но с течениием времени становлюсь все более параноидальным пилотом: предпочитаю, чтобы все основные функции, параметры и критерии дублировали бы друг друга. 😃

Brandvik

Не, автоматическе выключение АП не нужно ни в каких случаях. Все только по команде с пульта. Авт. выкл. только по детекту краша. А именно все скорости менее 5км\ч скажем и высота менее 10м

На счет координат, это нужно не только при работе с АП, но и в чистом варианте телеметрии. На удалении 500м зарулился и упал в кукурузу 😃

temp0508

извините, но прошу учесть что многие имеют только 6 канальную аппаратуру. у меня на планере только 1 свободный дискретный переключатель (и то условно свободный)… это я так, на всякий случай, а то вдруг для пользования автопилотом окажется нужным более 1 канала свободным (да и файл сейф не все имеют…)

myname
serj:

“Functional Block Diagram for ADIS16209”, крайний левый столбец, второй (центральный) квадратик в нем…

Се правильно… Акселерометры, а что же еще. В каком месте хихикать то 😉
Этот девайс не совсем то, что мы привыкли называть гироскопом. Если дело в сомнениях по поводу практического применения как альтернативы пиродатчикам ,то замечу что если уж helicommand волшебно работает по такой системе, то с самолетом будет проще.

Brandvik

Слово центробежные ускорения вам что нить говорит? Акселерометр -синоним инклинометра. Только на одном это девайсе искуственный горизонт для летающей модели не создать.

myname
Brandvik:

Слово центробежные ускорения вам что нить говорит? Акселерометр -синоним инклинометра. Только на одном это девайсе искуственный горизонт для летающей модели не создать.

ясно все. продолжайте летать на пирах 😆 я не зря привел в качестве примера helicommand.

nmrz

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

для компенсации этого, используют гироскопы вместе с акселерометрами и магнетометрами + вычислительный блок со спец математикой, вроде фильтров Калмана и пр.

для использования в летающих объектах есть вот это -Vectornav VN-100

serj
nmrz:

для использования в летающих объектах есть вот это -Vectornav VN-100

А вы ее использовали? Есть опыт применения?

nmrz

я нет, но кажется на diydrones попадался пример использования в стабилизации квадрокоптера и на ютубе был ролик, чел сделал или на этом, или на аналогичном устройстве с модулем xbee тестовую платформу, на компьютере же отображался авиагоризонт

эту штуковину испытывали на проигрывателе пластинок, даже после продолжительного вращения вертикаль никуда не уходит