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

РД00
lelik:

Вы б еще “Красногорск” 8мм попробовали бы

Во, а у меня есть Mobius 2013-го, я обязательно попробую его.

lelik
user1321:

Всё ли работает у Вас?

На некоторых Pi Zero наблюдался ресет USB до определения карт. Багфикс-версия в обычном месте

svpcom

PI Camera сейчас под рукой нет, но например Kurokesu C1 у меня дает 61ms

gst-launch-1.0 v4l2src device=$device ! ‘video/x-h264,width=1920,height=1080,framerate=30/1,stream-format=byte-stream’ ! rtph264pay ! udpsink host=127.0.0.1 port=5600
gst-launch-1.0 udpsrc port=5600 caps=‘application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264’ ! rtph264depay ! avdec_h264 ! xvimagesink

lelik:

В обоих случаях рендер был один и тот же, интересует же разница в 2.5 раза, а не абсолютные цифры

Ну RTSP камера не обязано быть тормозной - видеопоток там всеравно идет по RTP.

lelik
svpcom:

Ну RTSP камера не обязано быть тормозной - видеопоток там всеравно идет по RTP.

RTP там начинается только после хендшейка. А это - задержка, которую уже не убрать.

svpcom:

PI Camera сейчас под рукой нет, но например Kurokesu C1 у меня дает 61ms

У Вас 60 мс на локалхосте, у меня 100 мс между двумя хостами, все похоже.

Можно попросить содержимое /sys/bus/usb/devices/…/manufacturer для курокесы ?

svpcom

Передача wifi пакета это 1-2ms. 40ms больше похоже на забитый внутреннюю очередь карты. Попробуйте уменьшить bitrate видео и увеличить размер RTP пакетов до максимального, чтобы карта успевала их передавать.

lelik:

У Вас 60 мс на локалхосте, у меня 100 мс между двумя хостами, все похоже.

khomyakk

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

svpcom

----

$ cat /sys/devices/pci0000:00/0000:00:14.0/usb3/3-2/manufacturer
Kurokesu

$ lsusb -d 0c45:6366
Bus 003 Device 018: ID 0c45:6366 Microdia

----

lelik:

Можно попросить содержимое /sys/bus/usb/devices/…/manufacturer для курокесы ?

svpcom

Сборка (бинарники) моей версии WFB для Raspberry PI:
github.com/svpcom/…/wifibroadcast_rpi.tar.gz

P.S. Это не полный образ для SD-карты, а только бинарники и скрипты для запуска. Образ подходит любой с пропатченым ядром для обычного WFB

lelik
khomyakk:

При подсоединении в полёте второго монитора или сброса приёмной части происходит сброс точки ДОМ

Ага… Этот умелец при переконфигурации (сеть подключили, монитор аль еще чего) рестартует osd. А оно при запуске координаты из первый пакета
GLOBAL_POSITION_INT считает за home. Боюсь, что терапия здесь не поможет, сильно глубоко лезть надо.

P.S. Стрелка на дом тоже должна слетать
P.P.S. Надо osd перелопачивать для работы с LOCAL_POSITION_NED.

svpcom

Сборка (бинарники) моей версии WFB OSD для Raspberry PI
github.com/svpcom/…/wifibroadcast_osd.tar.gz

В отличии от оригинала не тормозит на Pi Zero.
В составе OSD и video player.

Для работы подходит любой (можно стандартный) образ для raspberry pi. Совместимо с Pi Zero и выше.

khomyakk
lelik:

А оно при запуске координаты из первый пакета

Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?

svpcom:

P.S. Это не полный образ для SD-карты, а только бинарники и скрипты для запуска. Образ подходит любой с пропатченым ядром для обычного WFB

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

QuadroSky
svpcom:

Для работы подходит любой (можно стандартный) образ для raspberry pi. Совместимо с Pi Zero и выше.

Подскажите пожалуйста, как эту сборку внедрить в образ wfb?

svpcom

В мавлинке оно только по запросу отдается.

khomyakk:

Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?

khomyakk

Как временной мерой можно предложить вбивать значение Дома в конфиг и считывать оттуда. Это ведь должно проще реализовываться?
Василий, а в твоей версии такого “бага” нет?
Может ещё использовать исходящую телеметрию и формировать запрос? Правда тогда нужно одинаковой мощности и чувствительности стики на наземной и воздушной части.

svpcom

Я не помню, как все запускается в стандартном WFB образе, но я обычно все сервисы запускаю через systemd.
/lib/systemd/system/osd.service :
-------
[Unit]
Description=FPV OSD
After=network-online.target

[Service]
ExecStart=/usr/bin/osd
Type=simple
Restart=always
RestartSec=1s
TimeoutStopSec=10s
KillMode=control-group

[Install]
WantedBy=multi-user.target
-----

/lib/systemd/system/fpv.service :
-----
[Unit]
Description=FPV video
After=network-online.target

[Service]
ExecStart=/usr/bin/fpv_video.sh
Type=simple
Restart=always
RestartSec=1s
TimeoutStopSec=10s
KillMode=control-group

[Install]
WantedBy=multi-user.target
-----

systemctl daemon-reload
systemctl enable osd
systemctl enable fpv
systemctl start fpv
systemctl start osd

В настройках по умолчанию видео ожидается на порту UDP 5600, mavlink (для osd) на порту: udp 14550

QuadroSky:

Подскажите пожалуйста, как эту сборку внедрить в образ wfb?

Есть. Там принципиальная проблема в том, что home position не рассылается broadcast’ом. Его можно получить только по запросу и только после взлета.
Соответственно на одностороннем канале связи (как WFB ) это не получится. Как вариант его можно сохранять в файл и читать оттуда при старте OSD.

khomyakk:

Как временной мерой можно предложить вбивать значение Дома в конфиг и считывать оттуда. Это ведь должно проще реализовываться?
Василий, а в твоей версии такого “бага” нет?
Может ещё использовать исходящую телеметрию и формировать запрос? Правда тогда нужно одинаковой мощности и чувствительности стики на наземной и воздушной части.

khomyakk

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

svpcom

Если их не разносить по частотам или не делать подобие TDMA, то не получится - они будут коллизии производить. Ведь вся суть WFB как раз в выключении механизмов борьбы с коллизиями.

khomyakk:

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

Это не так просто. Поясню: у меня, например, на борту как минимум 2 компьютера - NEO2 и Pi Zero для камеры.
На земле и того больше - 2 NEO2 (3 wifi (6 антенн) + SiK-radio (телеметрия 433MHz) + ADS-B приемник) + Pi Zero в FPV-шлеме (все это соединено Ethernet’ом).
Плюс я использую PX4 в качестве автопилота. Маловероятно, что кто-то захочет собрать такой-же setup как я. Соответвенно делать готовый образ для каждой из систем (их 5) смысла не имеет, так как все изменения относительно стандартного образа это и есть их интерграция между собой. Проще написать HOWTO как это все между собой связывать, чем делать образа, которые всеравно придется править после установки.

khomyakk:

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

lelik
khomyakk:

Я ему предлагал обновлять точку дома по армингу, вроде писал, что исправил. Естественно и стрелка домой уплывает. А в пакетах Мавлинка точка дома не присутствует?

Есть в мавлинке сообщение LOCAL_POSITION_NED, в котором передаются прямоугольные координаты ЛА относительно дома в North-East-Down. При наших (да и твоих 😃) расстояниях геодезией можно пренебречь и работать в них. Киньте мне кто-нибудь сырые мавлинковские логи, я покопаюсь, у меня свои будут нескоро.

khomyakk

Скажи откуда их вытащить и я запишу в следующем полёте.
Логи от Ez-Wifibroadcast подойдут?

lelik
khomyakk:

Скажи откуда их вытащить и я запишу в следующем полёте.

С нижней малины /wbc_tmp/telemetrydowntmp.raw. Только учти, файл перезаписывается при каждом включении низа. Слетал, выключил, переписал.

khomyakk

Попробую вчерашний полет( от последнего подключения второго дисплея).
Видео тоже также там хранится?