Activity

EZ-WifiBroadcast DIY HD видео своими руками

Собрал ради интереса на Zero. На земле Pi 2. Стоковые свистки WN722N, выставил частоту 2.3 ГГц. Радиоуправление на частоте 2.4 ГГц. Всё стабильно работает на 1080 и на 720, лаг терпимый. Телеметрия в обе стороны через QGroundcontrol

Беспроводная передача видео в full HD
OTR1UM:

Поддерживают, но полноценных тестов на этих частотах, емнип, никто еще не проводил

Специально купил два свистка на чипе Atheros. Пробовал как 2.3, так и 2.7 ГГц. Пока проблем не обнаружил… (аппаратура Multiplex Royal SX, на днях попробую с Futaba T8FG)

Мужики, если кто будет использовать EZ-wifibroadcast совместно с Qgroundcontrol последних версий - надо менять порт UDP с 5600 на 5000

Беспроводная передача видео в full HD
ARXITEKTOR:

Главный минус они на 2.4 и будут мешать аппаратуре РУ

TP-Link TL-WN722N поддерживает диапазон 2.3ГГц и 2.5-2.7ГГц. Возможно, при работе на этих частотах интерференция будет минимальная, и радиоуправление не будет создавать помех передаче видео

Беспроводная передача видео в full HD
=Max:

В инструкции к инструменту ez-wifibroadcast, на который указал Сергей говорится, что меньше pi2/3 ставить на борт или на землю нельзя:
Notes
TX: The CPUs on the Raspberry Pi 1 and Pi Zero are more or less maxxed out with standard settings (6Mbit bitrate, 8/4/1024 FEC). Two TX dongles, higher resolution/bitrate, or more error correction or smaller packet sizes will most likely not work. Even if it seems to be working on first look, it can happen that latency suddenly raises if the CPU is loaded to much (in situations with high bitrate, like fast scene changes). Although many people successfully use a Pi Zero as a TX, if space and weight is no issue, a Pi2 or 3 is recommended.

Добрый вечер! Если обратите внимание, то в статье, на которую Вы ссылались первоначально, речь идёт о полноценном wi-fi мосте, а не о broadcast. Raspberry Pi Zero вполне тянет передачу hd потока, я проверял.

Lazy:

Купить стабилизатор на 5В и разобрать витую пару.

5В для питания Ubiquiti не хватит - они работают от напряжения 7-24В. Я просто разбиваю пару и подключаю к основному аккумулятору (летаю на 3 банках)

Беспроводная передача видео в full HD
oleg70:

А “нахаляву” можно конечно попробовать и как я, (и не только) и получить: лаг ~0.4 сек. при 720p, небольшую дальность, плюс непредсказуемую отказоустойчивость…

У меня лаг в пределах 120-180 миллисекунд при разрешении hd и обыкновенном подключении по wi-fi. В дебри линукса не углублялся, использовал исключительно стандартный софт: образ raspbian jessie/jessie lite с установленным Gstreamer1.0. Всё запускал на одноплатнике Raspberry Pi 2B+ с родным модулем камеры v2.0. При этом кроме видео передаётся телеметрия и команды по мавлинку

Беспроводная передача видео в full HD
=Max:
  1. Raspberry Pi - какой брать (2, 3 или Zero)? Правильнее даже звучит вопрос: можно ли ставить на борт для целей HD-видеопередачи Raspberry Pi Zero, и если нет, то почему?

Все варианты имеют право на жизнь, но лучше остановиться на Raspberry Pi 2 или 3. Я пробовал летать на всех версиях малины. На одном из коптеров использую Pi Zero в совокупности с wi-fi свистком (tp-link archer t2uh). Плюсы: занимает мало места, потребляет минимум электроэнергии. Минусы: при запуске HD трансляции через Gstreamer ощутимо тормозит первые две-три минуты. Возможно, проблема решается путём оптимизации работы системы и удалением всего лишнего. Хотя я использовал чистый образ Raspbian без графиеской оболочки… Ещё один ощутимый минус Zero - отсутствие порта RJ-45. Для подключения PicoStation Вам понадобится Ethernet адаптер.

=Max:
  1. MIMO wifi-маршрутизатор наземный:
    UBIQUITI BM5 Bullet Titanium

Ubiquiti Bullet M5 стоит дешевле, не уступая по характеристикам. Комплектация отличается отсутствием PoE адаптера, но он особо и не нужен.

=Max:
  1. Наземный маршрутизатор будет питаться по Ethernet (PoE) от ноутбука, бортовой - от raspberry также по Ethernet (если я правильно понимаю).

PoE подразумевает передачу питания по двум парам (синяя/коричневая) lan-кабеля. Если Вы соедините Ethernet-порт Raspberry Pi c портом PicoStation - никто никого питать не будет. Если Вы подключите их через PoE адаптер, то сам адаптер необходимо будет подсоединить к бортовой сети напряжением 7 - 24V.

=Max:

Могу ли я при этом запитать Raspberry Pi при помощи 12V/5V BEC’а?

Raspberry Pi требует для питания 5V. Вы можете запитать его от BEC или от полётного контроллера.

Беспроводная передача видео в full HD
mit65536:

Попытался подключить DSM от Hack Link к пиксхоку, пикс вроде что то уловил, в меню “радио-калибратион” показания столбиков сигналов каналов управления устанавливаются в середину по всем каналам, при отключении разъема, все каналы падают в ноль, видимо что то все таки с воздушного модуля посылается в пиксхок. Однако управление от пульта - сигнал “РРМ” на пиксхок не проходит. Не могу понять причину (с пульта выходит нормальный РРМ = 100%) Возможно причина в конфигурации каналов запиханных в сигнал РРМ, насколько я понял из мануала Hack Link позволяет передавать до 8 каналов в РРМ максимум, а у меня пульт на 10 каналов.

Дмитрий, а как Вы соединили выход PPM приёмника Вашей аппаратуры радиоуправления и вход наземного модуля? Может причина в неправильном подключении?

Беспроводная передача видео в full HD

Последние версии QGC изначально содержат все необходимые инструменты и библиотеки для работы с Gstreamer через порт 5600

mit65536:

Там есть разъемник под названием DSM - что это такое не понятно, подключил его ко входу пикса RC_Input, ничего не работает, РРМ не передается.

На пиксе есть разъём spkt/dsm. Через этот разъём подключаются приёмники dsm/dsm-2/dsm-x/x-bus. Не пробовали их соединить с выходом dsm воздушного модуля?

mit65536:

пробовал 3DR Tower

У ребят из Португалии на фото именно Tower запущен, должен работать fpvportugal.com/forum/viewtopic.php?f=12&t=5351

mit65536:

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

Может эти фото немного прояснят способ подключения? www.rcgroups.com/forums/showthread.php?2692216-Hac…

Беспроводная передача видео в full HD
macrokernel:

PixHawk Lite

Тогда есть смысл использовать gstreamer и обычный wi-fi. В последние версии qgroundcontrol вшит плагин gstreamer, видео с дрона будет отображаться непосредственно в окне qgroundcontrol на компьютере или планшете. Настраивается просто, работает стабильно 😃

Беспроводная передача видео в full HD
macrokernel:

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

Если для вас не принципиально наличие двусторонней связи, то wi-fi broadcast даст определённые преимущества. Как минимум, уменьшится лаг и увеличится дальность.

macrokernel:

Может быть gstreamer-у надо указать какие-нибудь RTP-параметры в явном виде?
…freedesktop.org/…/gst-plugins-good-plugins-plugin…

Какое железо вы планируете использовать? Вы уже запускали gstreamer на своей малине?

Беспроводная передача видео в full HD
macrokernel:

oleg70, Борис Х,

Какой транспортный протокол вы используете для передачи видео - UDP? В системах видеоконференцсвязи используется протокол RTP. Может, стоит его попробовать? Вроде бы что-то есть под Linux для RTP. Навскидку гугл кое-что нашел.

Сергей, я так глубоко не копал… Для видео использую стандартный gstreamer, не углубляясь в его работу. Подозреваю, что он использует именно RTP протокол

Беспроводная передача видео в full HD
oleg70:

Не понятно назначение и смысл параметра "caps= " (на приемной стороне)

Олег, если честно, первый раз сталкиваюсь c оператором caps. Судя по всему, он содержит в себе спецификацию передаваемого потока. Я пошёл по пути наименьшего сопротивления. Вот команда, которую я использую на Raspberry с модулем камеры:

raspivid -n -fl -w 1280 -h 720 -b 10000000 -fps 30 -t 0 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=10 pt=96 ! udpsink host=<remote ip> port=5600

На принимающей стороне (на планшете) просто установлена последняя версия QGroundcontrol с вшитой поддержкой Gstreamer. Никакой код не требуется.

Беспроводная передача видео в full HD
oleg70:

Могу я задать вопрос по настройке Gstreamer ?

Да, конечно. Если интересует именно настройка Gstreamer, а не установка (на последних дистрибутивах Raspbian именно с ней возникает большинство проблем), то вот ссылка, которой я руководствовался bluerobotics.com/…/how-to-see-video-in-qgroundcont…

Беспроводная передача видео в full HD
oleg70:

Хотелось оценить возможности raspberry по “упаковке” пакетов в стрим…
В принципе все сходится: 720х480 - 220 мсек, а при 1280х720 как раз ожидается ~ 0.4 секунды (у меня так и вышло, навскидку)

При испытаниях на небольшой дистанции у меня получается практически одинаковая задержка вне зависимости от разрешения. Пробовал от 640х480 до 1920х1080 (на своём квадрокоптере оставил 1080х720, в качестве монитора использую Air 2). Лаг и качество картинки вполне летабельные

Беспроводная передача видео в full HD
msv:

Проверил свою поделку. Результат по задержке получился весьма скромный, ~220ms. Но при этом минимум два кадра в буфере хоста (для плавного воспроизведения рендером), а это ~70ms.
Тест.

Сергей, какую версию Raspberry используете для опытов?

Беспроводная передача видео в full HD
oleg70:

Тогда сразу вопрос: у Вас не выскакивают периодически (непредсказуемо) “провалы” в связи ?
Тут вопрос даже не в самом сбое , а в том как быстро система из них способна восстановиться, или не-восстановиться… короче говоря в надёжности.
Ну там наверно не так примитивно сделано, наверно люди поработали, возможно пожертвовали задержкой в угоду надежности… (ИМХО)

Олег, непредсказуемых провалов пока не было. Были лаги и артефакты, вызванные конкретными причинами: наводки на шлейф камеры и 100% загрузка процессора Raspberry Pi. Причины были вылечены. Сейчас наиболее вероятен сбой, связанный с потерей wi-fi соединения (препятствие/дальность), но в этом случае точки Ubiquiti быстро друг друга находят

Беспроводная передача видео в full HD
oleg70:

У меня пока результаты опытов “так себе”…
Задержку видео можно сделать минимальную без особых заморочек (либо связка raspivid->socat->udp, либо вместо socat-a свой примитивный сервер на СИ с сокетами), правда это испытано только на столе, хотя помехи и сбои всеравно периодически дают непредсказуемый лаг картинки…
А вот при двунаправленной связи, которую и хотелось в принципе, тормоза уже неприемлимые (опасные для ЛА)…
Соответственно делаю вывод: “нахаляву” этот номер не пройдет, либо надо лезть в дебри линукса, что скорей всего закончится полным отказом от него… как такового , либо управлять “луноходом” и не париться… (тоже круто, кстати)

Олег, мне кажется, сравнение с луноходом несколько преувеличенно 😃 Задержка при двусторонней связи не превышает 150-200мс. Визуально это сопоставимо с лайтбриджем на фантомах, а они как то летают… Я согласен, что для полёта на гоночном дроне между деревьев это неприемлемо, но для спокойных FPV полётов на аппаратах 450 размера и более - вполне терпимо. Мой вариант с точками Ubiquiti сводится к установке Gstreamer’а на Raspberry Pi и настройке моста между двумя пулями. Причём двусторонняя связь позволяет отправлять команды и настройки с планшета на дрон прямо в полёте

Беспроводная передача видео в full HD
oleg70:

Точка доступа зачем ? (она отдельная что ль?), ведь на малине ее можно легко организовать …

Мост построен на двух Ubiquiti Bullet M5. Одна пуля (точка доступа) - на земле, вторая (клиент) – на коптере. Пуля, установленная на коптере соединена витой парой с Raspberry Pi. К наземной точке по wi-fi подключён планшет с установленной QGroundcontrol.

У меня есть система, построенная на свистке, но мне она не очень нравится. У малины весьма ограничен набор предустановленных дров под свистки на 5 ГГц. Приходится собирать дрова самостоятельно или искать на гитхабе готовые решения. Во-вторых, запуск точки доступа на малине дополнительно нагружает систему. При передаче изображения в разрешении HD, передаче телеметрии по Mavlink и работе малины в режиме точке доступа я боролся с лагом видео. Хотя, может я что-то криво настроил…

Беспроводная передача видео в full HD

Квадрокоптер c Pixhawk на борту. На планшете установлена QGroundcontrol с поддержкой Gstreamer. Передаю по wi-fi как видео, так и телеметрию. Gstreamer прост в настройке и отлично справляется со своей задачей – картинка в разрешении HD идёт с минимальным лагом.
Экспериментировал с FullHD – лаг на том же уровне, но существенно уменьшается дальность уверенного приёма сигнала: появляются артефакты и т.д. Антенны – клеверы с алиэкспресс.
Перепробовал весь модельный ряд малины – остановился на 2B+ и точках Ubiquiti Bullet M5. Единственное, вытащил пулю из корпуса и перепаял разъём для антенны с N-type на SMA, чтобы уменьшить вес модуля. Крепёж распечатал на 3d принтере, получилось вполне эстетично. Дальность уверенной передачи HD-видео с китайскими клеверами – порядка 500-600 м при отсутствии препятствий.
О достоинствах и недостатках: видеть качественную картинку непосредственно в QGroundcontrol – несомненный плюс для любителей pixhawk/apm. Переключение с карт на видео происходит одним касанием. Команды отправляются без проблем. Настройка происходит без танцев с бубном, несмотря на присутствие Linux. Процесс настройки соединения Raspberry и Pixhawk по разъёму телеметрии подробно и с картинками описан в нете. Недостатки для себя отметил следующие: вес малины, точки доступа, модуля камеры, шлейфа, антенны и крепежа – около 200 грамм. Не самоё бюджетное, но вполне надёжное решение для полётов по камере на небольшие расстояния.