Проект Мегапират на самик!
Некоторые изыскания на тему доставания телеметрии из видео:
Исходник 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 (м.б. ч/б шахматы от засветки).
Ну пока я временно перешел в разряд “теоретиков-рассуждателей” могу еще предположить:
Возможно ли что в прошивке (начиная с 3101…) РВ стал работать более агресивно чем в более старых - вот от сюда и появились у меня проблемы с перерегулированием по тангажу…
раньше ведь проблемы небыло (настройки чуйки я не менял с тех пор как нормально полетел…), я понимаю, что надо просто подстроить, но может из-за этого и у других проблемы?
и на счет АльтХолда и управления газом… а почему предложенный мной алгоритм не прокатывает? если допустим на дворе штиль и для полета достаточно 1\4 газа - зачем АП давить гашетку по полной, а при ветре - стиком планку поднял до максимального - а дальше АП решает… И получится что в режиме Альтхолд мы стиком газа задаем коридор для газа 9примерно как и Альтхолд на квадриках у МК был…).
Это - так мысли вслух… или это сложно реализовать?
Я теперь надолго в зрительный зал перешел, восстанавливать оказалось уже нечего. Хвостовое оперение модулем отвалилось и единственное выжило (плата пирата тоже живая, только штырьки некоторые согнулись при отстегивании). Карбоновая балка в центроплане лопнула и “отторгнула” остальное крыло. Профиль из МН32 переоборудовался в EPPLER420 (только внешне, конечно) - стал вогнутым по всей длине. Остаток фюза - типа кусочков пены, как в тетрисе, не склеенных между собой в плотном пакете из фюзообразующего скотча.
Месяца четыре я строил этот аппарат и летал на нем с февраля безморковно. А уж такую морковь я не засаживал очень давно.
После “реабилитации”😃 буду подбирать кандидата на изготовление…
У меня почему-то отложилось, что в альтхолде высота поддерживается по барометру. И такие тангажи только при стике “в пол” возможны. Еще раз скажу, на прошивке, когда я в первый раз испытал альтхолд, он мне очень понравился: тумблером щелкнул на безопасной высоте, газ сбросил - пошёёёёёёл! Только руддером курс корректируй иногда, повороты блинчиком, да к дому иногда заворачивай, а то быстро улетит из видимости.
Эх, не успел двойные стрелочки “на базу” проверить, не оценил.
Буду пока из зрительного зала наблюдать, всем удачи!
Наверно программе лучше если слева или сверху будут нарисованы специальные квадратики - биты (а не разбирать “человеческие цифры”). Размер квадратика 2х2px или 4х4px (м.б. ч/б шахматы от засветки).
Так это уже сечас есть, только в невидимой области, Олег и предлагал вынести в видимую, если кто-то напишет плеер с синхронным отображением телеметрии.
Олег и предлагал вынести в видимую, если кто-то напишет плеер с синхронным отображением телеметрии.
Пока пробую доставать из файла, синхронный плеер - потом м.б.
Может что-то изменилось?
ПС: Чуть не забыл - на сегодняшней прошивке более агрессивно работал на удержание курса руддер,
Ничего в этом смысле не менялось. По руддеру еще погоняю, посмотрю.
Надеюсь скоро увидеть вас в нестройных рядах мегапиратов снова. Соберите из пены что-нибудь простое за пару дней, что не жалко грохнуть, типа ЛК Kesl - 4 листа плитки.
возникает и проблема с write, нажал и не знаю записалось или нет.
Эта проблема известна. Обычно всегда перечитываю настройки, чтобы знать наверняка. В будущем протокол будет переделываться. А вот с юсби-кабелем лучше не шутить: может и обновление сбойнуть. Там, конечно, есть защита контрольной суммой, но всякое бывает.
он может так же пойти в землю под 45 градусов идя домой, держа 50 метров.
Просто так ни с того ни с сего пойти в землю не может, т.к. ошибка скорости в установившемся режиме небольшая. А вот при включении авторежима ошибка может быть большая. Не представляю, что конкретно пошло не так при наваливании газа: то ли помехи от движка вдруг жпс ухудшили, то ли что-то еще, что заставило думать пепелац, что он смотрит вверх и надо бы наклонить нос. Ни логов, ни видео нет.
Удержание высоты - только по барометру. ЖПС-высота - индикативная, для осд.
Вопросы: 1) размер шрифта 16х12? 2) можно ли как-нить узнать координаты цифр? (кроме измерений картинки)
Проблеммы: 1) цифры иногда дергаются на 1px вверх-вниз, 2) из-за шрифта “не постоянной ширины” правые_цифры_в_строке сдвигаются на пол цифры влево-вправо, 3) помехи от двигателя - фатальны.
Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички. Нули заполняю тенью, т.е. они будут всегда чернее фона. Видимая телеметрия будет отключаемой по галочке, чтобы не мозолила глаза.
В начале всегда прет синхрогруппа 0xCB, т.е. 11001011 - ее можно легко распознать и составить начало.
Рисуется и изменяется изображение в каждом полукадре.
Каждый полукадр содержит один пакет из телеметрии. Если интересно сделать распознавалку - обсудим формат протокол подробнее.
Теперь наземка. Я могу открыть UDP-порт, в который можно втупую кидать распознанные данные, как если бы они поступали через КОМ-порт.
Получится, что вы сделаете эдакий Х-плеер, который может воспроизводить видео и сразу выковыривать из него телеметрию. Вероятно, можно сделать и живое раскодирование из устройства видеозахвата.
Олег, вопрос есть.
Для компенсации ускорения берется скорость ГПС или проекция её на магнитный курс?
Когда я влупился, шел боком к ветру, проекция могла быть совсем мелкой…
А тут еще на столе плата “вылёживается”, наткнулся на следующее:
- лок спутников есть, в окне миссии галка Follow the Target включена
- при этом самолет ползает по карте немного вокруг дома, это понятно
- в основном окне показания ГПС тоже шевелятся
- датчик ГПС помигивает (он мигает при внутреннем локе из 3-х или 4-х спутников)
Вдруг замирают показания ГПС в основном окне, замирает самолет на карте, уже не ползает, стоит как вкопанный.
Остальные данные в программе шевелятся, включая высоту ГПС. Такое ощущение, что данные ГПС идут с датчика, но не обрабатываются в полном объеме.
Продолжаю наблюдать, отключаю физически датчик ГПС от платы.
Данные “как бы” обновляются, но только не координаты в главном окне. Положение на картинке “замерзло”.
Перезапускаю программу наземки, но питание с платы не снимаю. Тоже заморожено.
Отключаю питание платы и включаю снова.
Ожили координаты.
Так пробую несколько раз, но заморозка продолжается.
Один из опытов, не очень длинный, в логе.
Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички. Нули заполняю тенью, т.е. они будут всегда чернее фона. Видимая телеметрия будет отключаемой по галочке, чтобы не мозолила глаза.
В начале всегда прет синхрогруппа 0xCB, т.е. 11001011 - ее можно легко распознать и составить начало.
Рисуется и изменяется изображение в каждом полукадре.
Каждый полукадр содержит один пакет из телеметрии. Если интересно сделать распознавалку - обсудим формат протокол подробнее.
А почему бы просто не перенести телеметрию из области телетекста в видимую область?
И ещё кстати вопрос со сжатием видео. После него все резкие переходы станут плавными. Скорее всего придётся вносить побольше избыточности для восстановления ошибок.
Вдруг замирают показания ГПС в основном окне, замирает самолет на карте, уже не ползает, стоит как вкопанный.
… и также пишет GPS fix: NO. При потере фикса или даже изъятии модуля в АП сохраняются последние данные по координатам, и это нормально. При отсутствии фикса модуль не дает данных о координатах вообще, а вот высоту может экстраполировать, потому и может меняться.
Не вижу оснований считать, что данные обрабатываются не в полном объеме. Оно или работает, или нет.
А почему бы просто не перенести телеметрию из области телетекста в видимую область?
И ещё кстати вопрос со сжатием видео. После него все резкие переходы станут плавными. Скорее всего придётся вносить побольше избыточности для восстановления ошибок.
Потому что это два разных буфера. ОСД можно погасить вообще, а “закадровая” телеметрия будет переть всегда. Сейчас я только хочу скопировать ее на видимую область и изменить представление, т.к. 6-12 строк, забитых моргающими линиями, будут мешать больше, чем одна линия на краю экрана.
Что касается сжатия, кодек DV ничего не размазыват, остальные - нужно проверять.
… и также пишет GPS fix: NO.
Вот в логе и No и Ok есть. А данные координат не меняются. А визуально по картинке колом стояли. Понятно, когда первые знаки только отображаются, но картинка стояла.
Ну нормально, значит нормально, главное проверено.
Всем привет, напаяли сегодня датчики наконец то, честно говоря влом перечитывать кучу страниц… Вопрос на засыпку, в ДЕМО режиме авиагоризонт не кажет?
Давайте сделаем так: я сбоку рисую вертикальную полосу шириной 3 пикселя. Белые элементы в каждой строке - единички.
Образец бы, клипчик коротенький поглядеть, или один кадр - картинку.
Лучше один раз увидеть, чем сто раз прочитать.
Получится, что вы сделаете эдакий Х-плеер, который может воспроизводить видео и сразу выковыривать из него телеметрию.
Пока сделано(частично) так: читает файл (скаченный flv-480 с ютуба),
ничего не показывает (чтоб поскорее прокручивалось),
добытые цифры печатает printf-ами (отсылку в udp тоже можно сделать).
Вероятно, можно сделать и живое раскодирование из устройства видеозахвата.
А что летит в юсб-шнурке из изикапа, какой протокол/формат ?
>Что касается сжатия, кодек DV ничего не размазыват, остальные - нужно проверять.
Битый пиксель матрицы на фотках расползается на несколько соседних точек в jpeg’е.
Вроде flv и mp4 похожи на jpeg, поэтому думал про “1 бит” = “квадратик 2х2 точки”.
Мало ли какая писалка сильно-жмущая попадется.
Всем привет, напаяли сегодня датчики наконец то, честно говоря влом перечитывать кучу страниц… Вопрос на засыпку, в ДЕМО режиме авиагоризонт не кажет?
Привет Леонид!
Заждались тебя…
В демке горизонт тоже показывает. только авторежимы не работают…
… Я могу открыть UDP-порт, в который можно втупую кидать распознанные данные, как если бы они поступали через КОМ-порт.
Еще продвинулся, стало так: Из клипа вырезается вертикальная полоска 3х400 точек, из середины кадра, биты (светлый мусор - “1”, темный - “0”) складываются в байты, полученная кучка байт отправляется по udp, а рядом udp-серверок их печатает на экран.
Осталось вставить реальные координаты полоски.
Чтобы лог складывать в файл, надо еще описание структуры этих байт.
Вроде всё, “велкам” от Syberian’а сделан ?
“велкам” от 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
Привет Леонид!
Заждались тебя…
В демке горизонт тоже показывает. только авторежимы не работают…
Эх, да с временем на хобби сейчас совсем тяяяжко…
Да у меня УСБ-УАРТ сдох, так что пока не прошивку не залить не посмотреть что там лезет по ком порту, как датчики на плате оказались, захотелось проверить, подцепил видео, а горизонта нет, вот и спросил 😃 Перегрузка меняется когда платку колбасишь, значит как минимум акселерометр точно пашет 😃
В демо горизонта нет.
В демо горизонта нет.
Игорь, спасибо за поправку - я ж демкой не пользуюсь… просто почемуто (вроде Олег писал…) запомнилось что и в демке горизонт должен уже рисоваться… Может и показалось.
Поменял моторы на DT750, резвее стал, повешал GoPro Hero, порезвился в обед, погода сказка, -8
- добавлена утилита X Player, позволяющая вытаскивать телеметрию из видеозаписей. Пользоваться просто: нажать кнопку X Player в наземке, в открывшемся окне выбрать видеофайл и нажать воспроизведение. Одновременно с проигрыванием файла в наземку будет поступать телеметрия, выдранная из видео. Ее можно писать в лог, как обычно.
На данный момент поддерживается только PAL 720x576 с чересстрочной разверткой.
Обновление прошивки еще не готово. Пока не могу дома с железом поработать, ремонт пришел непредсказуемо.
Для оценки работы плеера можно использовать видеозапись миссии (120 МБ).
Аналогично можно выдирать ТМ прямо из изикапа, одновременно с записью на диск. Но это уже работа для X Grabber 😃
Олег, какая-то засада. При попытке запустить наземку пишет “Данный файл не найден” (MPXgcs.exe). А я именно его и запускаю. Система Вин7 х64.
Предыдущие версии наземки работают