Прорабатываю идею передачи всей телеметрии с борта на землю отдельным потоком, пакетики по UDP. На земле приложение принимает инфу, обрабатывает и рисует в режиме фулскрин, поверх видео.
Тестовая инфа уже передаётся, на земле принимается, текст выводится. Для пробы ещё и картинки добавил. Все картинки можно вращать, наклонять и т.д. Т.е. наглядную визуализацию положения модели сделать - не проблема.
Всякие точечки, линии, прямоугольники рисуются на ура, стандартными функциями (типа graph.DrawRectangle();)
Только вот красиво всё нарисовать - самое сложное :-) Так что за картинки шибко не пинать, первые попавшиеся взял, красивости не наводил. Пруф оф концепт эдакий. С борта инфа идёт 100 раз в секунду, когда добавлю опрос реальных датчиков частота поменьше будет, конечно. Но всё равно жизнеспособно.
OSD ещё и интерактивный получается, можно кнопочки нажимать и т.е. Собссно, это обычное приложение во весь экран, только с прозрачным фоном.
Большой плюс - изображения и тексты не портятся, как это было бы если они наложены на борту.
На экране ноутбука задержка 210 мс, на телике - около 400 мс. Хотя всё подключено к одному и тому же ноутбуку. Оказалось что подключение по HDMI уже само по себе задержку вносит.
Как обычно, появился наш аппаратчик Саня и начались подвижки с HD видео :-) Есть поток 720p, формат RAW, цвета пока неправильные. Задержка побольше чем при 640х480, на глаз где-то полсекунды. Точно измеряю когда цветность пофиксим.
Вообще, у меня с корешами традиция насчёт "Пупсик" уж лет десять. Даже не помню с чего это началось. Но когда в Теории большого взрыва Радж с Сири беседовал - порадовало :-)
Короче, сделана простейшая парсилка фраз, чтоб ответы формировались более-менее внятные. Выглядит примерно вот так - см. видео.
Основная (и единственная, собссно) долгая пауа - при получении от сервера Гугла результата распознавания речи. Как это оптимизировать - пока не известно.
Синтез речи тоже через Гугл, но это очень шустро работает, практически нет разницы по скорости с локальным синтезатором eSpeak.
Инфа о температуре и давлении берётся с моего любимого градусника, всё честно. Последний коммент тоже с этого сервера берётся.
В идеале, надо большую базу вопросов-ответов собрать, плюс вычленять числа из фраз. Это работает уже но корявенько.
Второй ролик - как работа с речью теперь выглядит в админке.
С обычными 3G модемами довольно геморно. Куча настроек, pppd... Жаль, wvdial на ARM не работает. Во всяком случае на оф сайте в багах такое было упомянуто, мож кто и победил, но это я не в курсе.
Sakis3g тормоз тот ещё (во всяком случае, на нашем не шибко мощном проце), так что тоже идёт лесом.
Коллега начал писать серию статей по виртурилке для чайников. Как светодиодик зажечь, как пин дёрнуть и всё такое. А у меня для этого клёвая картинка получилась :-)
Посмотрел я на краш вертолёта и подумал что надо бы испытания на муляжах проводить. А то я одним девайсом бетонную стенку уже подрихтовал слегка.
В роли муляжа - тележка в простейшей конфигурации. Виртурилка, пара одноканальных регулей на 20А, аккум 2S 5000mAh и вифи шылд.
Тестирую управление через инет по сложной схеме, через прокси-сервер для отвязки от необходимости белых айпишников плюс контрольный пункт (ядерный чумадан). Камера виртурилки не используется, так как на оригинальном девайсе 6 аналоговых камер стоят, видеопередатчики на 5.8ГГц и всё такое прочее. Оцифровкой видео со всех камер как раз чемодан занимается, там же ретранслятор и прочая хренатень. Тот же чемодан и в инет выходит различными средствами (смотря что доступно), локалка, вифи, йота, 3G и прочие прелести. Тот же чумадан координирует всякие разные устройства управления (джойстики, планшеты, локально/через инет), короче, Винни-пух и все-все-все.
Съема для обычных условий слишком усложнённая, но для наших целей очень даже подходящая.
Коннект производился через Йоту, связь довольно шустрая, сигнал стабильный. Жаль планшетик без 3G, а то б ещё и так проверил.
Муляжик немного заснял для истории. Ничего необычного с виду, если не знать всю схему прохождения сигнала :-)
Осталось добавить ретрансляцию показаний датчика горизонта (его уже прицепил но ещё в софтину отрисовку не добавил) и по GPS точку на карте рисовать, но эт уже мелочи.
Портировал вот этот алгоритм. Вся математика считается на борту Виртурилки, на визуализацию лишь углы отсылаются через консоль.
Для текущей задачи уже этого хватает, но надо будет полноценную FreeIMU портировать, с этим процессом уже разобрался, довольно несложно.
Вот что у меня щас получилось. Аксель ADXL345, гиря ITG3200.
Косяки есть, но это уж из-за алгоритма. Надо компенсацию углов добавить и т.д. Но для определения горизонта ездящей хреновины уже годится.
Осталось сделать чтоб углы по сетке слались и в канвасе на HTML5 рисовалось красиво.
Сейчас между итерациями рассчёта стоит задержка 50мс, если поставить меньше - захлёбывается консоль (115200), по сетке должно пошустрее быть тогда попробую задержку уменьшить.
Многим не даёт покоя сабжевая проблема. Как передать видео высокого разрешения на более-менее большое расстояние? С обычным видео проблем нет - воткнул камеру в передатчик, на приёмной стороне подключил приёмник к телику (или очкам) и готово. Плюсы - оч низкая задержка, просто сделать, относительно недорого, надёжно. Минусы - низкое разрешение, помехи. Помехи некритичные - картинка ухудшается но продолжает сохранять информативность, т.е. можно разглядеть что там камера показывает. Для уменьшения помех используются диверсити-приёмники. Т.е., грубо говоря, два приёмника с двумя антеннами, автоматически выбирается лучший сигнал.
Однако всем хочется фпв с бОльшим разрешением видео, хоть видеоочки в большинстве своём могут отображать только 640х480, а некоторые осиливают 800х600. Однако для просмотра не в очках а на большом экране высокое разрешение уже актуально. Помимо увеличения разрешения хочется ещё чтоб помех поменьше было. А самое главное - должна быть низкая задержка (лаг) видео. А ещё расстояние передачи должно быть более-менее большое, от сотен метров до нескольких километров.
FPV это лишь один частный случай использования передачи видео, есть ещё куча задач. Некоторые довольно специфичны, но эт пофиг, главное что они есть.
Итого, железка пролежала в морозилке 17 часов 45 минут. Температура плавала от -8 до -19 (компрессор не постоянно работает, а включается периодически). Несколько раз устраивал "переход через нуль" - открывал дверцу морозилки, температура сразу поднималась до +5 и выше. Затем закрывал дверцу, температура снова падала, но появлялся пар и камера запотевала. Однако на работоспособность это не повлияло, работает норм.
Затем на час выключил железку, но оставил лежать в морозилке, чтоб проморозилась. Спустя час включил снова - всё норм, работает как и прежде.
Суммарное время уже 18 часов.
UPD> Поставил чашку с кипятком в морозилку, сверху положил виртурилку на подставке. Не помогло - железка всё так же бодрячком.
UDP> Новые издевательства не придумали, так что эксперимент закончен. Результаты успешные - Виртурилка не сдохла. Суммарное время в холодильнике - 20 часов.
Сдвинулась с мёртвой точки ситуация с аппаратным ускорением кодирования видео. Новое ядро теперь умеет взаимодействовать с DSP, модули DSP тож работают. Но уткнулись в проблему с плагином для гстримера.
Так как народ требует видео, пока временно выложил готовую прошивку на базе нового ядра но со старой файловой системой, там гстример отлично работает, так что можно поиграться с камерой.
Тьфу-тьфу, последняя стадия производства прошла чётко по-плану, тютелька-в-тютельку.
Наш Саня летал в Гонконг, производил приёмку готовых изделий. Были собраны специальные стенды для проверки пинов и типовой периферии. Бракованых виртурилок оказалось пять штук (рентген показал дефект пайки BGA компонентов). Пять штук из тысячи - довольно неплохой процент брака (точнее, пол-процента), мы закладывались процентов на 5-6. Дефектные процы можно БарсМонстру отдать на растерзание под микроскопом :-)
Растаможка, полностью белая, наиофициальнейшая, прошла за сутки. Из трёх коробок жребий пал на две (на таможке рандомная система контроля), так что аккуратно сложенные штабелями железки в коробках суровые таможенники дотошно распотрошили. Пересчитали, осмотрели, взвесили (!), отфотографировали, не нашли к чему придраться. Правда, в итоге коробки стали выглядеть примерно вот так: (далее инсайдерские фото)
Наш Саня уже на заводе в Китае, с местными помощниками тестируют свежеиспечённые железки. Для тестирования был разработан специальный стенд, но на фотке он не виден. У них там рук не хватает, так что не до фотографирования (уж тем более не до видеосъёмки), так что еле-еле уговорили хоть одну фотку сделать :-) Хоть что-то. Если ещё фотки будут - сюда добавлю.
А мы тут сидим в Питере, Мск, Туле и завидуем Сане. Интересно всё-таки на Китай посмотреть (да ещё и Гонконг в программе мероприятий). Я б тоже съездил, если бы не текущая загруженность проектами. Очень хотелось отснять видео процесса производства. Ну и затариться всяким барахлом. Саня говорит - заходишь в любой подвальный магазинчик, там любая электроника, всё чего душе угодно. И доставку не надо неделями ждать, и пощупать сразу можно. Ээээххх...
Правда, говорят там тайфун намечается. Надеемся что ничего страшного не произойдёт.
Наконец-то получил добро на публикацию. Вот, публикую :-)
Зимой делал танчик Т-90. Модель 1:8, масса 60 кг. Изначально стояло обычное RC управление на 40 МГц. Мне же надо было переделать под управление с планшета по вифи, видео с борта и т.д. Симуляция звука движка, выстрелы, прочие украшательства. На борту GPS приёмник, отображение точки на карте на планшете. Ща уж не вспомню чего там наворотил. Рулит всем, само собой, Виртурилка :-)
Кстати, силовой шылд, разработанный для этого танка, лёг в основу силового шылда, который будет для Виртурилки продаваться у нас в магазине. Только силовые ключи чуть послабее будут, где-то 20А на канал, два канала (как раз для ведущих колёс/гусениц). А на танки драйверы движков выдавали до 200А в пике и около 80А номинально. Причём вообще практически без нагрева.
Жаль, сроки горели, так что нормально видео не успел отснять. А очень хотелось по улице погонять :-( Но не успел, так что намонтировал из того что было.
В смысле, Bill of materials. А по-русски - список комплектухи. Т.е. всё что требуется для автоматизированного монтажа железки.
Видео процесса сборки пока не получается, когда наш человек поедет в Китай на приёмку и тестирование - тогда мож хоть что-то заснимет. А пока только очередные фотки от китайцев с частью комплектухи. Особенно бобины порадовали.
Сами платы (текстолит) уже готовы, комплектуха вся закуплена. Осталось дождаться очереди на монтаж. Это со дня на день ожидаем.
Сами мы коробочки делать не собирались, но народ просил (для стационарного применения). Так что вовремя нашёлся человек, который будет для нас клепать коробочки. Сайт называется zigo.am Кстати, я уже вроде упоминал его.
Правда, из светлой деревяшки мне нравится больше, но тёмная тож ништяг.
Все коробочки вырезаются из поликарбоната (пластик такой полупрозрачный) и чего-то типа фанеры, подробнее узнаю.
Один косяк - когда мерки снимали, забыли про вайфай модуль. Так что для этих двух образцов пришлось выпилывать дырку под антенну, немного коряво получилось. Продажные варианты будут уже с нормальной дырочкой.
Коробочку старались поменьше сделать, так что сетевой разъём не влез. Для сетки будет коробочка чуть побольше габаритами.