Проект Мегапират на самик!

LaPart
Syberian:

можно подробнее?

Всего семь минут полета получилось:

  • взлет в акро, нормально
  • потом в стабе, тоже нормально
  • альтхолд - над полем туда-сюда прошелся, нормально
  • возврат на базу - нормально

Потом прошелся метрах на ста поснимал немного, включил возврат. Отличался возврат пролетом далеко по ветру, потом вялой активностью по возвращению, начало его сдувать чтоли… Ветер небольшой был.
Переключил его в альтхолд и по радиусу вокруг базы пошел, сбросил газ. Тут он вышел на полный газ и в пике…
Я уж привык, если что - тумблер сразу в стаб… Не сообразил сразу, что альтхолд тот же стаб, только с газом, а данные горизонта те же. Команда прошла, газ сбросился перед самой землей, но направление не изменилось.
В мануал уже не успел перейти - воткнул градусов с 45. Да и далековато. Последний файл, понятно, нулевой. Ну и куча деталей по полю - морда в хлам, акки в стороне, но целые, оперение оторвало, усиление хрумкнуло в крыле, в-общем все как положено. Вес был 1800, только акков полкило…
Собственно и все подробности.
Напарник мой говорит: - Нифига себе, наборный самолет после такого только подметать можно было бы.
А тут так мало кусков… Но этот запас прочности не помог, только сильнее удар получился.
Вот “до” и “после”:

Syberian

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

Это мои предположения. Андрей, есть экранка, лог или кто-то хотя бы смотрел на экран?

-----
Алекс, я отписал в личку по баро.
Еще Дундела можно спросить, может, у него запас бариков есть.

alex-ber
Syberian:

Алекс, я отписал в личку по баро. Еще Дундела можно спросить, может, у него запас бариков есть.

Спасибо Олег, буду Игорю стучаться в личку…
По поводу Альтхолда - я на прошлых полетах тоже заметил нелады с ним (писал выше…) - заметил и такую беду: что если летиши на малом газу даже на целевой высоте и потом газ в ноль - АП всеравно резко газ дает, немного набирает высоту и только потом газ сбрасывает… У меня на крыле это приводило к тому, что при выключении газа самик “подпрыгивал” метров на 10 выше эшелона и только потом сбрасывал газ… Иногда даже неприятный холодок проходил по спине…
Могу еще раз предложить - в Альтхолде сделать приоритет стика, но если скорость меньше крейсерской - АП подгазовывает… Либо наоборот - газом рулит АП, но газа дает не больше чем установлен стик в данный момент (типо - стиком выставляем максимально-допустимый газ…)?
ладненько - пошел стучаться всем - вдруг кто и поможет…

Syberian

я, наверно, отключу к ядерной фене автогаз в нейтрали.
Прошу “оставшихся в живых” высказаться, что думаете по этому поводу.
Или лучше сделать сглаживание ошибки скорости при захвате управления газом?

LaPart
Syberian:

Андрей, есть экранка, лог или кто-то хотя бы смотрел на экран?

нет, логов и экранки нет.

Syberian:

я, наверно, отключу к ядерной фене автогаз в нейтрали.

на прошлых прошивках альтхолд порадовал больше, чем стаб, даже при сбросе газа стиком в ноль он реагировал замечательно:

LaPart:

Дотянешь почти до земли, бросишь - он как на резинке идет вверх.

Может что-то изменилось?

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

ssh1

Сегодня ветер, так и не удалось полетать.
Олег, предложение по наземке.
Может сделать какую-то реакцию на ошибки при Read, Write, при начальном чтении.
У меня такая проблема:
Скорее всего из-за длинного USB кабеля у меня периодически не читаются данные в наземку и соответственно не пишуться.
Но происходит это как-то выборочно, то есть крен, тангаж и т.д. я вижу, а вот настройки автопилота пустые.
Соответственно возникает и проблема с write, нажал и не знаю записалось или нет.

P.S. По поводу газа в AltHold: управление газом как я понимаю сходно и в RTH и в AUTO и в AltHold.
Какой смысл убирать автогаз из althold, если в остальных режимах эти проблемы остануться (если они есть сейчас).
То есть он может так же пойти в землю под 45 градусов идя домой, держа 50 метров.

Frr

Некоторые изыскания на тему доставания телеметрии из видео:
Исходник ffmpeg, в каталоге doc/examples лежит небольшой filtering_video.c, он достает серый кадр.
Младшая(правая) цифра широты из клипа из # (alex-ber)
Это “2”,

…++++++…
…+xx+++++…
…+…
…++…
…+xx++…
…++…
…+…
…+++++++++…
…+++++++++…

а это помеха от двигателя:
+…+xxx++…
…++…


…+++…
…+xxx…
…xx+…

если помех нет, то остальные цифры тоже читаются. Дальше пока не продвинулся.

Вопросы: 1) размер шрифта 16х12? 2) можно ли как-нить узнать координаты цифр? (кроме измерений картинки)

Проблеммы: 1) цифры иногда дергаются на 1px вверх-вниз, 2) из-за шрифта “не постоянной ширины” правые_цифры_в_строке сдвигаются на пол цифры влево-вправо, 3) помехи от двигателя - фатальны.
Наверно программе лучше если слева или сверху будут нарисованы специальные квадратики - биты (а не разбирать “человеческие цифры”). Размер квадратика 2х2px или 4х4px (м.б. ч/б шахматы от засветки).

alex-ber

Ну пока я временно перешел в разряд “теоретиков-рассуждателей” могу еще предположить:
Возможно ли что в прошивке (начиная с 3101…) РВ стал работать более агресивно чем в более старых - вот от сюда и появились у меня проблемы с перерегулированием по тангажу…
раньше ведь проблемы небыло (настройки чуйки я не менял с тех пор как нормально полетел…), я понимаю, что надо просто подстроить, но может из-за этого и у других проблемы?
и на счет АльтХолда и управления газом… а почему предложенный мной алгоритм не прокатывает? если допустим на дворе штиль и для полета достаточно 1\4 газа - зачем АП давить гашетку по полной, а при ветре - стиком планку поднял до максимального - а дальше АП решает… И получится что в режиме Альтхолд мы стиком газа задаем коридор для газа 9примерно как и Альтхолд на квадриках у МК был…).
Это - так мысли вслух… или это сложно реализовать?

LaPart

Я теперь надолго в зрительный зал перешел, восстанавливать оказалось уже нечего. Хвостовое оперение модулем отвалилось и единственное выжило (плата пирата тоже живая, только штырьки некоторые согнулись при отстегивании). Карбоновая балка в центроплане лопнула и “отторгнула” остальное крыло. Профиль из МН32 переоборудовался в EPPLER420 (только внешне, конечно) - стал вогнутым по всей длине. Остаток фюза - типа кусочков пены, как в тетрисе, не склеенных между собой в плотном пакете из фюзообразующего скотча.
Месяца четыре я строил этот аппарат и летал на нем с февраля безморковно. А уж такую морковь я не засаживал очень давно.
После “реабилитации”😃 буду подбирать кандидата на изготовление…

У меня почему-то отложилось, что в альтхолде высота поддерживается по барометру. И такие тангажи только при стике “в пол” возможны. Еще раз скажу, на прошивке, когда я в первый раз испытал альтхолд, он мне очень понравился: тумблером щелкнул на безопасной высоте, газ сбросил - пошёёёёёёл! Только руддером курс корректируй иногда, повороты блинчиком, да к дому иногда заворачивай, а то быстро улетит из видимости.
Эх, не успел двойные стрелочки “на базу” проверить, не оценил.

Буду пока из зрительного зала наблюдать, всем удачи!

ssh1
Frr:

Наверно программе лучше если слева или сверху будут нарисованы специальные квадратики - биты (а не разбирать “человеческие цифры”). Размер квадратика 2х2px или 4х4px (м.б. ч/б шахматы от засветки).

Так это уже сечас есть, только в невидимой области, Олег и предлагал вынести в видимую, если кто-то напишет плеер с синхронным отображением телеметрии.

Frr
ssh1:

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

Пока пробую доставать из файла, синхронный плеер - потом м.б.

Syberian
LaPart:

Может что-то изменилось?

ПС: Чуть не забыл - на сегодняшней прошивке более агрессивно работал на удержание курса руддер,

Ничего в этом смысле не менялось. По руддеру еще погоняю, посмотрю.
Надеюсь скоро увидеть вас в нестройных рядах мегапиратов снова. Соберите из пены что-нибудь простое за пару дней, что не жалко грохнуть, типа ЛК Kesl - 4 листа плитки.

ssh1:

возникает и проблема с write, нажал и не знаю записалось или нет.

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

ssh1:

он может так же пойти в землю под 45 градусов идя домой, держа 50 метров.

Просто так ни с того ни с сего пойти в землю не может, т.к. ошибка скорости в установившемся режиме небольшая. А вот при включении авторежима ошибка может быть большая. Не представляю, что конкретно пошло не так при наваливании газа: то ли помехи от движка вдруг жпс ухудшили, то ли что-то еще, что заставило думать пепелац, что он смотрит вверх и надо бы наклонить нос. Ни логов, ни видео нет.
Удержание высоты - только по барометру. ЖПС-высота - индикативная, для осд.

Frr:

Вопросы: 1) размер шрифта 16х12? 2) можно ли как-нить узнать координаты цифр? (кроме измерений картинки)

Проблеммы: 1) цифры иногда дергаются на 1px вверх-вниз, 2) из-за шрифта “не постоянной ширины” правые_цифры_в_строке сдвигаются на пол цифры влево-вправо, 3) помехи от двигателя - фатальны.

Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички. Нули заполняю тенью, т.е. они будут всегда чернее фона. Видимая телеметрия будет отключаемой по галочке, чтобы не мозолила глаза.

В начале всегда прет синхрогруппа 0xCB, т.е. 11001011 - ее можно легко распознать и составить начало.
Рисуется и изменяется изображение в каждом полукадре.
Каждый полукадр содержит один пакет из телеметрии. Если интересно сделать распознавалку - обсудим формат протокол подробнее.

Теперь наземка. Я могу открыть UDP-порт, в который можно втупую кидать распознанные данные, как если бы они поступали через КОМ-порт.

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

LaPart

Олег, вопрос есть.
Для компенсации ускорения берется скорость ГПС или проекция её на магнитный курс?
Когда я влупился, шел боком к ветру, проекция могла быть совсем мелкой…
А тут еще на столе плата “вылёживается”, наткнулся на следующее:

  • лок спутников есть, в окне миссии галка Follow the Target включена
  • при этом самолет ползает по карте немного вокруг дома, это понятно
  • в основном окне показания ГПС тоже шевелятся
  • датчик ГПС помигивает (он мигает при внутреннем локе из 3-х или 4-х спутников)

Вдруг замирают показания ГПС в основном окне, замирает самолет на карте, уже не ползает, стоит как вкопанный.
Остальные данные в программе шевелятся, включая высоту ГПС. Такое ощущение, что данные ГПС идут с датчика, но не обрабатываются в полном объеме.
Продолжаю наблюдать, отключаю физически датчик ГПС от платы.
Данные “как бы” обновляются, но только не координаты в главном окне. Положение на картинке “замерзло”.
Перезапускаю программу наземки, но питание с платы не снимаю. Тоже заморожено.

Отключаю питание платы и включаю снова.
Ожили координаты.

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

log_29 gps_on-off-on-coord_freeze.rar

ssh1
Syberian:

Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички. Нули заполняю тенью, т.е. они будут всегда чернее фона. Видимая телеметрия будет отключаемой по галочке, чтобы не мозолила глаза.

В начале всегда прет синхрогруппа 0xCB, т.е. 11001011 - ее можно легко распознать и составить начало.
Рисуется и изменяется изображение в каждом полукадре.
Каждый полукадр содержит один пакет из телеметрии. Если интересно сделать распознавалку - обсудим формат протокол подробнее.

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

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

Syberian
LaPart:

Вдруг замирают показания ГПС в основном окне, замирает самолет на карте, уже не ползает, стоит как вкопанный.

… и также пишет GPS fix: NO. При потере фикса или даже изъятии модуля в АП сохраняются последние данные по координатам, и это нормально. При отсутствии фикса модуль не дает данных о координатах вообще, а вот высоту может экстраполировать, потому и может меняться.
Не вижу оснований считать, что данные обрабатываются не в полном объеме. Оно или работает, или нет.

ssh1:

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

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

Потому что это два разных буфера. ОСД можно погасить вообще, а “закадровая” телеметрия будет переть всегда. Сейчас я только хочу скопировать ее на видимую область и изменить представление, т.к. 6-12 строк, забитых моргающими линиями, будут мешать больше, чем одна линия на краю экрана.
Что касается сжатия, кодек DV ничего не размазыват, остальные - нужно проверять.

LaPart
Syberian:

… и также пишет GPS fix: NO.

Вот в логе и No и Ok есть. А данные координат не меняются. А визуально по картинке колом стояли. Понятно, когда первые знаки только отображаются, но картинка стояла.
Ну нормально, значит нормально, главное проверено.

LeonVS

Всем привет, напаяли сегодня датчики наконец то, честно говоря влом перечитывать кучу страниц… Вопрос на засыпку, в ДЕМО режиме авиагоризонт не кажет?

Frr
Syberian:

Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички.

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

Syberian:

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

Пока сделано(частично) так: читает файл (скаченный flv-480 с ютуба),
ничего не показывает (чтоб поскорее прокручивалось),
добытые цифры печатает printf-ами (отсылку в udp тоже можно сделать).

Syberian:

Вероятно, можно сделать и живое раскодирование из устройства видеозахвата.

А что летит в юсб-шнурке из изикапа, какой протокол/формат ?

>Что касается сжатия, кодек DV ничего не размазыват, остальные - нужно проверять.
Битый пиксель матрицы на фотках расползается на несколько соседних точек в jpeg’е.
Вроде flv и mp4 похожи на jpeg, поэтому думал про “1 бит” = “квадратик 2х2 точки”.
Мало ли какая писалка сильно-жмущая попадется.

alex-ber
LeonVS:

Всем привет, напаяли сегодня датчики наконец то, честно говоря влом перечитывать кучу страниц… Вопрос на засыпку, в ДЕМО режиме авиагоризонт не кажет?

Привет Леонид!
Заждались тебя…
В демке горизонт тоже показывает. только авторежимы не работают…

Frr
Syberian:

… Я могу открыть UDP-порт, в который можно втупую кидать распознанные данные, как если бы они поступали через КОМ-порт.

Еще продвинулся, стало так: Из клипа вырезается вертикальная полоска 3х400 точек, из середины кадра, биты (светлый мусор - “1”, темный - “0”) складываются в байты, полученная кучка байт отправляется по udp, а рядом udp-серверок их печатает на экран.
Осталось вставить реальные координаты полоски.
Чтобы лог складывать в файл, надо еще описание структуры этих байт.

Вроде всё, “велкам” от Syberian’а сделан ?

Syberian
Frr:

“велкам” от Syberian’а сделан ?

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

Записал миссию в симуляторе, полный автомат: взлет - разворот - посадка.
Файл видео можно скачать тут: dl.dropbox.com/u/…/mission_with_TM_mjpg.avi (120МБ)

На видео вверху есть телеметрия, которая меняется каждый полукадр. Поскольку видео interlaced, в каждом кадре присутствует 2 пакета телеметрии, которые нужно разбирать через строку: 1 пакет - строки 12,14,16,18… , 2 пакет - 13,15,17,19…
Порядок бит - MSB first.

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

С вертикальной полосой не получилось, символы осд налезают. Записана горизонтальная (Сергей так и советовал сразу). Поля данных, содержащие нулевые биты, замазаны тенью.

===
кстати, на видео можно видеть работу двойной стрелки “домой”. Присутствует небольшой боковой ветер в 4-5 узлов, поэтому самолет летит слегка боком, парируя его. Возврат домой начинается с WP=3