Files
clover/docs/ru/duocam_mavlink.md
Konstantin Petrykin f3f1557b0b docs: add COEX Duocam docs (ru) (#285)
* docs: add COEX Duocam docs

* Orthography and punctuation

* docs: change gitup_seek image resolution and extension

* docs: add missing duocam-mavlink article

* docs: fix linter problems in duocam-mavlink article

* docs: add a link to doucam-mavlink in SUMMARY

* Decrease the size of gitup_seek image

* Make duocam_mavlink a subsection of duocam section

* Edit duocam articles

Co-authored-by: Oleg Kalachev <okalachev@gmail.com>
2020-11-16 13:29:28 +03:00

105 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Виртуальная MAVLink-камера COEX DuoCam
Полётные контроллеры поддерживают разные способы взаимодействия с внешними камерами, включая протокол MAVLink. Обычно коммуникация с помощью данного протокола требует использования UART-порта на полётном контроллере, но есть возможность работать с камерой в основном потоке MAVLink-телеметрии с БПЛА.
Утилита `duocam-mavlink` отвечает за работу виртуальной MAVLink-камеры и встраивается в общую телеметрию между полётным контроллером и QGroundControl.
![Блок-схема COEX DuoCam](../assets/duocam/duocam.png)
На блок-схеме прямыми линиями обозначены взаимодействия между блоками, пунктирными линиями уточняется характер взаимодействия.
> **Warning** Протокол взаимодействия находится в процессе модификации. В новых версиях планируется избавиться от прямой отправки значений параметров и их количества от `duocam-mavlink` к QGroundControl.
`duocam-camera` и `duocam-mavlink` обмениваются данными с помощью очередей POSIX. Имена очередей и формат сообщений доступен в репозитории [duocam-common](https://github.com/CopterExpress/duocam-common).
Для объединения блоков, взаимодействующих через MAVLink, можно использовать любой MAVLink-коммутатор/маршрутизатор, который либо позволяет отключить таблицу коммутации, либо заполняет её по схеме *MAVLink ID:Component ID* (например, `cmavnode`, `mavlink-fast-switch`, `mavlink-switch`).
> **Warning** При использовании `mavlink-fast-switch` требуется использовать `mavlink-serial-bridge`, либо любой другой мост для передачи MAVLink из последовательного порта в UDP, так как `mavlink-fast-switch` работает только с UDP.
## Конфигурационный файл
Для редактирования конфигурационного файла необходимо извлечь microSD-карту из RPi4, вставить в кард-ридер своего компьютера (от операционной системы требуется возможность читать файловую систему ext4), открыть файл по адресу `<microSD>/etc/duocam/mavlink.yaml`.
Также можно зайти по SSH на работающую RPi4 и отредактировать конфигурационный файл внутри системы по тому же пути.
Для корректной работы `duocam-mavlink` требуется *MAVLink ID* полётного контроллера (параметр `vehicle_id`) и `MAVLink ID` QGroundControl (параметр `qgc_vehicle_id`). `duocam-mavlink` ожидает телеметрию на UDP (параметры `ip` и `port`) и отправляет сообщения HEARTBEAT с частотой, согласно параметру `heartbeat_frequency`, представляясь, как компонент полётного контроллера `MAV_COMP_ID_CAMERA`.
Максимальная задержка от `duocam-camera` задаётся параметром `command_timeout`.
Если система DuoCam используется для полётов внутри помещений, то должен быть включен параметр `no_gps`.
## Пример конфигурационного файла
```yaml
# MAVLink vehicle ID that owns the camera
vehicle_id: 1
# Enable this flag for indoor use
no_gps: False
# QGC vehicle ID
qgc_vehicle_id: 255
mavlink:
# IP address of the interface to listen port on (0.0.0.0 for all interfaces)
ip: 127.0.0.1
# UDP port
port: 14540
# Heartbeat frequency (Hz)
heartbeat_frequency: 1.0
# Camera driver command timeout (s)
command_timeout: 3.0
```
## Пример конфигурационного файла для `mavlink-fast-switch`
```yaml
# MAVLink endpoints
endpoints:
# UAV endpoint
- name: "uav"
local:
port: 14588
# DuoCam MAVLink endpoint
- name: "duocam-mavlink"
remote:
ip: "127.0.0.1"
port: 14540
# GCS endpoint
- name: "gcs"
remote:
ip: "127.0.0.1"
port: 14550
# Enable MAVLink ID table
# HINT: Can't use this feature with duocam
id-table: False
```
## Пример конфигурационного файла для `mavlink-serial-bridge`
```yaml
# Serial device settings
serial:
# Device file
device: "/dev/ttyS0"
# Baudrate
baudrate: 57600
# Flow control (hardware, none)
flow: none
# Software serial TX buffer (bytes) (2048 by default)
tx-buffer: 2048
# UDP port settings
udp:
# Remote host settings (optional, listening mode if not presented)
remote:
ip: 127.0.0.1
port: 14588
# Lock remote host on the initial value (optional, False by default)
lock: True
# Broadcast mode (optional, False by default)
broadcast: False
# Local settings (optional, all interfaces and a random port by default)
local:
# Local IP address (0.0.0.0 to listen on all interfaces) (optional, all interfaces by default)
ip: 127.0.0.1
# Local UDP port (0 to select a random free port) (optional, 0 by default)
port: 0
```