Раздел телеметрии в fpv (#64)

pull/65/head
RD000000 2022-12-17 23:18:00 +03:00 committed by GitHub
parent de651006ea
commit 293d8fd17c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 40 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 583 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

View File

@ -130,7 +130,7 @@ sudo iwconfig wlan0 channel 14
sudo ip link set wlan0 up
```
* Убедитесь, что на камере и десктопе на WiFi адаптерах установлена одинаковая частота через команду `iwconfig`, при необходимости смените частоту через редактирование конфига `/etc/wfb.conf` на камере (параметр `channel`) или командой `sudo iwconfig <имя_адаптера> channel <номер>` на десктопе.
* Скомпилируйте из исходного кода [WFB-ng](https://github.com/svpcom/wifibroadcast), __обязательно используйте бранч stable__, скопируйте ключ `gs.key` с IP-камеры и запустите прием `sudo ./wfb_rx -p 0 -u 5600 -K -i 7669206 gs.key wlan0`
* Скомпилируйте из исходного кода [WFB-ng](https://github.com/svpcom/wifibroadcast), __обязательно используйте бранч stable__, скопируйте ключ `./etс/gs.key` с IP-камеры на десктоп и запустите прием `sudo ./wfb_rx -p 0 -u 5600 -K -i 7669206 gs.key wlan0`
* Проверьте, что в консоли вывод
```
32168228 PKT 0:0:0:0:0:0
@ -153,6 +153,45 @@ sudo ip link set wlan0 up
```
* Запустите Gstreamer `gst-launch-1.0 -vvv udpsrc port=5600 ! application/x-rtp,encoding-name=H264,payload=96 ! rtph264depay ! h264parse ! queue ! avdec_h264 ! autovideosink sync=false -e` и проверьте качество изображения
### Развитие наземной станции, телеметрия
Предполагается, что на машине под Linux установлен wfb-ng по инструкции с [quick-start-using-ubuntu](https://github.com/svpcom/wfb-ng#quick-start-using-ubuntu-ground-station). В последующих примерах используется Хubuntu 18.04 LTS и wfb-ng 22.09.
* Запустите wfb-ng, запустите консоль wfb-cli:
```
sudo systemctl restart wifibroadcast@gs
wfb-cli gs
```
* Убедитесь, что идут пакеты видео. Здесь же можно видеть значения RSSI антенн WiFi адаптера:
![wfb-cli-video](../images/wfb-cli_video_only.png)
Если значение recv остается нулем, а значение lost растет - скорее всего, не совпадают ключи камеры и наземной станции. Убедитесь, что /etc/gs.key скопирован на наземную станцию. Если никаких пакетов нет - убедитесь, что `channel=xx` в /etc/wfb.conf на камере и `wifi_channel=xx` в /etc/wifibroadcast.cfg на земле имеют одинаковые значения. Для диапазона 5.8 ГГц адаптера RTL8812AU рекомендуется использовать каналы 60 и выше.
* Настройте полетный контроллер под ArduPilot на выдачу телеметрии в формате mavlink1 на скорости 115200 на, например, порту Serial1. В случае односторонней телеметрии (только вниз) убедитесь, что ПК выдает требуемый телеметрический поток по умолчанию, без соединения с наземной станцией. Это выполняется через установку параметров SR1_xxx, см. [mavlink SR_ parameters](https://ardupilot.org/dev/docs/mavlink-requesting-data.html).
* Соедините Serial1 ПК c UART камеры, rx на tx, tx на rx. В случае современных ПК на STM32F4/7 уровни напряжения совпадают (3.3В), в случае 5В APM потребуется преобразование уровней. Тонкость - загрузчик U-Boot камеры на загрузке останавливается, получив на вход UART любые байты. ПК должен начать выдавать телеметрию c задержкой на несколько секунд, через установку параметра TELEM_DELAY. На столе проще предусмотреть разрыв в линии от ПК к камере.
* На камере в файле /etc/wfb.conf установите параметр `telemetry=true` , в файле /etc/telemetry.conf - параметр `one_way=true` для односторонней или `one_way=false` для двустронней телеметрии соответственно. Простейший способ правки файлов на камере - Shell Link в Midnight Commander:
*
![mc_shell_link](../images/MC_shell_link.png)
* Перезапустите камеру и сервис wfb-ng. В wfb-cli должен появиться второй поток данных - телеметрия:
![wfb-cli-video-telem](../images/wfb-cli_video_telem.png)
* Установите QGroundControl. Здесь используется версия 4.0.11 из-за некорректной работы последних версий с видео в 18.04 LTS. Новые Comm Links создавать не нужно. QGC должен увидеть соединение с ПК и отображать входной поток телеметрии:
![QGC-map](../images/QGC_telem.png)
![QGC-mavlink](../images/QGC_mavlink.png)
В случае двусторонней телеметрии QGC должен загрузить параметры, позволять их менять, позволять переключать полетные режимы, загружать и выгружать миссии:
![QGC-params](../images/QGC_params.png)
![QGC-mission](../images/QGC_mission.png)
Видно, что QGS также уже отображает видео. Задержка в 4.0.11 довольно значительна из-за чисто программной обработки потока, разумно пробовать современные версии под Ubuntu 20.04 и новее.
### Траблшутинг
* Через команду `sudo tcpdump -i wlan0` на десктопе без запуска WFG-ng вы можете проверить, что передатчик действительно отправляет пакеты в эфир: