docs: Update article about client

This commit is contained in:
Arthur Golubtsov
2019-12-29 20:15:09 +03:00
parent 80f15a3b06
commit f36d6ed81b

View File

@@ -1,6 +1,6 @@
# Клиент
# Клиент clever-show
Приложение для удаленного синхронизированного управления дронами в шоу.
Приложение для удаленного синхронизированного управления дронами в шоу и модуль экстренной защиты дронов.
* [Установка и запуск](start-tutorial.md#установка-и-запуск-клиента)
* [Настройка клиента](#настройка-клиента)
@@ -16,19 +16,19 @@
port = 25000
broadcast_port = 8181
host = 192.168.1.101
buffer_size = 1024
buffer_size = 10000
[VISUAL_POSE_WATCHDOG]
timeout = 1.0
pos_delta_max = 3.0
action = emergency_land
emergency_land_thrust = 0.45
emergency_land_decrease_thrust_after = 5.0
timeout_to_disarm_after_watchdog_action = 10.0
timeout_to_disarm = 10.0
[TELEMETRY]
frequency = 1
transmit = True
land_if_pos_delta_bigger_than = 3.0
frequency = 1
log_cpu_and_memory = True
[COPTERS]
@@ -63,17 +63,13 @@ z_ratio = 1.0
[PRIVATE]
id = /hostname
restart_dhcpcd = True
restart_after_rename = True
use_leds = True
led_pin = 21
x0 = 0
y0 = 0
z0 = 0
[FILETRANSFER]
files_directory = animation
animation_file = animation.csv
[NTP]
use_ntp = False
host = ntp1.stratum2.ru
@@ -99,24 +95,26 @@ port = 123
В данном разделе настраивается программа экстренной защиты коптера от потери позиции или столкновения с объектом.
* `timeout` - время срабатывания экстренной защиты после потери визуальной позиции, в секундах.
* `action` - действие при срабатывании экстренной защиты. Доступные варианты: `land` - посадка коптера в режиме полётного контроллера AUTO.LAND, `emergency_land` - посадка коптера с постепенным уменьшением мощности моторов, `disarm`- выключение моторов.
* `emergency_land_thrust` - начальная мощность, подаваемая на моторы в случае выбора действия `emergency_land` при срабатывании экстренной защиты, в процентах.
* `emergency_land_decrease_thrust_after` - время, через которое мощность на моторах плавно начинает уменьшаться в случае выбора действия `emergency_land` при срабатывании экстренной защиты, в процентах.
* `timeout_to_disarm_after_watchdog_action` - время, через которое коптер безусловно выключает моторы после срабатывания экстренной защиты, в секундах.
* `pos_delta_max` - максимальная разница между текущим положением и точкой, в которой сейчас должен находиться коптер, в метрах. Требуется для проверки на столкновение коптера с объектом. Если расстояние между текущим положением коптера и положением, в котором он должен сейчас находиться, больше этого числа (в метрах), срабатывает экстренная защита.
* `action` - действие при срабатывании экстренной защиты. Доступные варианты: `land` - посадка коптера в режиме полётного контроллера AUTO.LAND, `emergency_land` - посадка коптера с постепенным уменьшением мощности моторов, `disarm`- выключение моторов. **Внимание!** Не рекомендуется использовать режим AUTO.LAND с выключенным барометром - при потере источника высоты в полёте, например показаний лазера или визуальной позиции, режим AUTO.LAND не гарантирует посадку коптера, так как ориентируется на показания высоты. Для посадки коптера при его позиционировании с использованием визуальной позиции или лазера и возможности потери данных с этих систем рекомендуется использовать режим `emergency_land`.
* `emergency_land_thrust` - начальная мощность, подаваемая на моторы в случае выбора действия `emergency_land` при срабатывании экстренной защиты. Безразмерная величина, от 0 (отсутствие мошности) до 1 (полная мощность). Для гарантированной посадки рекомендуется устанавливать в значение, меньшее по величине на 5-10 процентов, чем газ висения (параметр `MPC_THR_HOVER` в px4).
* `emergency_land_decrease_thrust_after` - время, через которое мощность на моторах плавно начинает уменьшаться в случае выбора действия `emergency_land` при срабатывании экстренной защиты, в секундах.
* `timeout_to_disarm` - время, через которое коптер безусловно выключает моторы после срабатывания экстренной защиты, в секундах.
#### Раздел TELEMETRY
В данном разделе настраивается поток передачи телеметрии на сервер.
* `frequency` - частота передачи данных на сервер, целочисленное значение, количество раз в секунду.
* `transmit` - логическое значение, определяет, нужно ли передавать данные на сервер.
* `land_if_pos_delta_bigger_than` - проверка на столкновение коптера с объектом. Работает в цикле телеметрии. Если расстояние между текущим положением коптера и положением, в котором он должен сейчас находиться, больше этого числа (в метрах), коптер очищает очередь задач и переходит в режим AUTO.LAND.
* `log_cpu_and_memory` - логическое значение, которое определяет, будет ли записываться в лог сервиса клиента clever-show состояние процессора и памяти.
* `frequency` - частота передачи данных на сервер, целочисленное значение, количество раз в секунду.
* `log_cpu_and_memory` - логическое значение, определяет, будет ли записываться в лог сервиса клиента clever-show состояние процессора и памяти.
#### Раздел COPTERS
* `frame_id` - название системы координат, в которой настроен коптер на удержание позиции. Если значение `floor` - клиент публикует статическую систему координат с названием `floor` и настройками из раздела [FLOOR_FRAME](#раздел-floor_frame).
* `takeoff_height` - высота взлёта коптера, в метрах. Используется в начале анимации или при тестировании коптера с сервера.
В данном разделе находятся настройки, влияющие на процесс полёта коптера.
* `frame_id` - название системы координат, относительно которой будут публиковаться координаты точек для воспроизведения анимации. Если значение `floor` - клиент публикует статическую систему координат с названием `floor` и настройками из раздела [FLOOR_FRAME](#раздел-floor_frame). **Внимание!** Убедитесь, что коптер удерживает позицию в данной системе координат. Для этого вы можете воспользоваться командой [Takeoff](server.md#тестовые-команды) из серверного приложения. Коптер взлетит на высоту `takeoff_height` относительно текущей.
* `takeoff_height` - высота взлёта коптера, в метрах. Используется в начале воспроизведения анимации или при тестировании коптера с сервера.
* `takeoff_time` - максимальное время взлёта коптера, в секундах.
* `safe_takeoff` - логическое значение, определяет, нужно ли производить посадку в безопасном режиме.
* `reach_first_point_time` - максимальное время полёта к первой точке анимации, в секундах.
@@ -129,6 +127,8 @@ port = 123
#### Раздел FLOOR_FRAME
Данный раздел описывает смещение системы координат с названием `floor` и используется только при указании параметра `frame_id` как `floor` в разделе [COPTERS](#раздел-copters).
* `parent` - название опорной системы координат, относительно которой будет располагаться система координат `floor`.
* `x` - смещение системы координат `floor` по оси x относительно системы координат `parent`, в метрах.
* `y` - смещение системы координат `floor` по оси y относительно системы координат `parent`, в метрах.
@@ -152,6 +152,8 @@ port = 123
#### Раздел PRIVATE
В данном разделе находятся параметры, специфичные для конкретного коптера.
* `id` - имя коптера, отображаемое в таблице. Если значение `/hostname` - имя определяется из файла `/etc/hostname`.
* `restart_dhcpcd` - логический параметр, определяет, требуется ли перезагрузка коптера при переименовании его `id` удалённо с сервера.
* `use_leds` - логический параметр, определяет, использует ли коптер светодиодную ленту.
@@ -160,13 +162,6 @@ port = 123
* `y0` - смещение по оси y, только для данного коптера.
* `z0` - смещение по оси z, только для данного коптера.
#### Раздел FILETRANSFER
В этом разделе задаются параметры передачи файлов.
* `files_directory` - директория для хранения файлов анимации (сейчас не используется).
* `animation_file` - название файла анимации, сохраняемое в клиенте.
#### Раздел NTP
Помимо синхронизации времени (с миллисекундной точностью) с помощью пакета chrony, предоставляется альтернатива - возможность использования внешних (при наличии соединения локальной сети с интернетом) или внутрисетевых NTP-серверов. **Внимание!** Для корректной работы системы, **и сервер, и клиенты** должны использовать единый способ синхронизации времени (набор параметров в этом разделе). Данный раздел полностью унифицирован и для сервера, и для клиентов.