diff --git a/docs/ru/positioning.md b/docs/ru/positioning.md
new file mode 100644
index 0000000..510c352
--- /dev/null
+++ b/docs/ru/positioning.md
@@ -0,0 +1,178 @@
+# Настройка систем позиционирования
+
+ПО `clover` официально поддерживает работу со следующими [системами позиционирования](https://clover.coex.tech/ru/programming.html#positioning):
+
+* [optical flow](https://clover.coex.tech/ru/optical_flow.html)
+* [aruco](https://clover.coex.tech/ru/aruco.html)
+* [gps](https://clover.coex.tech/ru/gps.html)
+
+`clever-show` поддерживает все системы позиционирования, что и `clover`.
+
+**Приведённые ниже примеры настроек предназначены для коптера Клевер 4, собранного и настроенного согласно [документации](https://clover.coex.tech)**.
+
+## Организация процесса настройки
+
+Перед групповым запуском коптеров рекомендуется настроить и проверить один коптер из группы и размножить его настройки на остальные коптеры.
+
+Настройте один коптер на работу с любой системой позиционирования из перечисленных. Настройка может включать в себя следующие этапы:
+
+* Редактирование `.launch` файлов ROS пакета `clover`. Данные файлы находятся в директории `/home/pi/catkin_ws/src/clover/clover/launch` на коптере.
+* Настройка параметров полётного контроллера.
+* Редактирование файла конфигурации [клиента](client.md) `clever-show`.
+* Редактирование файла конфигурации [сервера](server.md) `clever-show`.
+* [Калибровка камеры](https://clover.coex.tech/ru/camera_calibration.html).
+
+Проверьте автономный взлёт коптера: для этого выделите в таблице только один коптер, полёт которого вы ходите проверить, и нажмите кнопку `Takeoff` в правой панели приложения [сервера](server.md#тестовые-команды). Коптер должен взлететь на высоту, указанную в параметре `takeoff_height` раздела FLIGHT в конфигурации коптера (1 метр по умолчанию), и удерживать свою позицию.
+
+Если взлёт прошёл успешно, размножьте конфигурацию клиента, настройки позиционирования и параметры полётного контроллера на остальные коптеры. Выделите в таблице успешно настроенный коптер и загрузите необходимые файлы настроек с выделенного коптера к себе на компьютер:
+
+* `.launch` файлы для настройки ПО `clover` можно сохранить с помощью команды `Selected drones -> Retrieve file` в приложении сервера. В открывшемся диалоговом окне введите путь к файлу на коптере: `launch` файлы `clover` находятся в `/home/pi/catkin_ws/src/clover/clover/launch/`, к этому пути нужно дописать нужное имя `.launch` файла, например `/home/pi/catkin_ws/src/clover/clover/launch/clover.launch`. После нажатия кнопки `OK` в диалоговом окне откроется новое диалоговое окно с выбором пути сохранения указанного файла.
+* Файл конфигурации коптера (`.ini`) можно сохранить, кликнув правой кнопкой мыши на строку с настроенным коптером, выбрав из выпадающего меню `Edit config`, затем нажав на кнопку `Save as`. Также можно перетянуть ячейку из столбца `configuration` в файловый менеджер вашей системы - сервер автоматически скопирует файл настройки в открытую директорию файлового менеджера.
+* Файл конфигурации сервера (`.ini`) можно сохранить, выбрав пункт `Server -> Edit server config` из верхнего меню, затем нажав на кнопку `Save as`.
+* Файл настройки полётного контроллера можно сохранить, подключившись к полётному контроллеру через приложение [QGroundControl](http://qgroundcontrol.com). Можно подключиться напрямую к полётному контроллеру [через USB порт](https://clover.coex.tech/ru/connection.html), либо через [TCP или UDP мост](https://clover.coex.tech/ru/gcs_bridge.html) (по умолчанию в образе `clever-show` настроен TCP мост, в графе `Host Address` вместо ip адреса можно ввести имя коптера с добавлением .local в конце, например clover-1.local). После подключения нужно перейти в [раздел](https://docs.px4.io/master/en/advanced_config/parameters.html#tools) `Parameters -> Tools -> Save to file...` и выбрать путь для сохранения файла параметров.
+* Файл калибровки камеры полезен для уточнения визуального позиционирования. Название файла калибровки должно состоять из id коптера, для которого была сделана калибровка, с добавлением расширения `.yaml`, например `clover-1.yaml`. Для получения файла калибровки возпользуйтесь [инструкцией](https://clover.coex.tech/ru/camera_calibration.html).
+
+После загрузки необходимых файлов с настроенного коптера, скопируйте эти файлы на остальные коптеры: выделите нужные коптеры в таблице и воспользуйтесь командами `Send -> Configuration`, `Send -> Launch files folder`, `Send -> FCU parameters file`, `Send -> Camera calibrations` из раздела `Selected drones` приложения [сервера](server.md#раздел-selected-drones).
+
+## Настройки сервера и клиента clever-show
+
+Набор ПО `clever-show` включает в себя множество проверок состояния коптеров, чтобы свести к минимуму количество неудачных запусков, а также набор параметров для настройки систем позиционирования. Все параметры хранятся в файлах конфигурации приложений клиента и сервера. Каждая система позиционирования обладает своими особенностями, которые необходимо учесть при настройке взаимодействия сервера и клиента. Ниже перечислены настройки, на которые необходимо обратить внимание при настройке клиента и сервера:
+
+* Сервер:
+ * раздел [CHECKS](server.md#раздел-checks) - проверки телеметрии коптеров на стороне сервера
+
+* Клиент:
+ * раздел [FLIGHT](client.md#раздел-flight) - имя опорной системы координат frame_id, параметры полёта
+ * раздел [FLOOR FRAME](client.md#раздел-floor-frame) - позволяет создать новую систему координат с названием `floor` относительно любой существующей системы координат:
+ * `map` - совпадает с начальным положением коптера при использовании optical flow или gps
+ * `aruco_map` - совпадает с началом координат карты ArUco маркеров
+ * `gps` - начало координат находится в заданной GPS координате с поворотом на заданный угол относительно начального положения коптера, настраивается в разделе [GPS FRAME](client.md#раздел-gps-frame) и позволяет задать систему координат с общим началом для всех коптеров
+ * раздел [FAILSAFE](client.mf#раздел-failsafe) - отключен по умолчанию, но позволяет настроить условия экстренной посадки коптера:
+ * при потере визуальной позиции - полезно при использовании системы позиционирования по ArUco маркерам
+ * при большой разнице между текущей позицией и точкой, где должен находиться коптер - с помощью данной проверки можно избежать непредвиденного поведения коптеров при столкновениях или любых физических неполадках
+ * раздел [EMERGENCY LAND](client.md#раздел-emergency-land) - задаёт настройку экстренной посадки коптера: параметр `thrust` задаёт уровень газа моторов для начала посадки, через время `decrease_thrust_after` коптер начинает в постепенно снижать уровень газа до 0. **Внимание!** Уровень газа экстренной посадки по умолчанию равен 45% - эта настройка работает для коптера Клевер 4 с 3S аккумулятором. Если ваша конфигурация отличается, нужно предварительно определить газ висения, а затем установить параметр `thrust` в значение на 5% меньше, чем газ висения. В случае, если газ экстренной посадки превышает газ висения коптера, коптер при экстренной посадке первые 3 секунды (значение `decrease_thrust_after` по умолчанию) будет лететь вверх и только после этого начнет плавно снижать мощность моторов до 0.
+
+## Optical flow
+
+Optical flow - способ позиционирования с помощью расчёта скоростей движения камеры по вычислению сдвига пикселей между соседними кадрами.
+
+`Optical flow` подходит для демонстрации полёта одного коптера или же для синхронного полёта нескольких коптеров по одной и той же траектории внутри помещения. Однако следует учитывать, что данная система координат не задаёт общее начало координат для всех коптеров - началом координат является стартовое положение каждого конкретного коптера. Также стоит принять во внимание тот факт, что данный способ рассчитывает позицию коптера по скорости перемещения его камеры - а значит в позиции коптера постоянно накапливается ошибка и позиция становится менее точной со временем. Поэтому не рекомендуется использовать эту систему координат для сложных и продолжительных групповых полётов.
+
+Образ `clever-show` для коптера настроен по умолчанию на полёт по данной системе позиционирования (как и образ `clover`) - на коптере должен быть установлер лазерный дальномер, а камера должна быть наклонена вниз шлейфом назад.
+
+ROS пакет clover, настроенный по умолчанию предполагает автономный полёт с использованием `optical flow`. Параметры, загружаемые по умолчанию при загрузке прошивки, адаптированной для Клевер 4, предполагают позиционирование по `optical flow`. Файлы конфигураций клиента и сервера, настроенные по умолчанию, также не требуют измений для полёта по данной системе позиционирования.
+
+Однако, если вам требуется перейти на систему позиционирования `optical flow` с другой предварительно настроенной системы или же изменить настройки данной системы, вам поможет информация, расположенная ниже.
+
+Все файлы настроек для конфигурации `optical flow` находятся в папке [examples/positioning/optical flow](../../examples/positioning/optical%20flow/).
+
+### Настройка ROS пакета clover
+
+Настройка позиционирования по `optical flow` описана в [документации](https://clover.coex.tech/ru/optical_flow.html) `clover`.
+
+Пример `.launch` файла для настройки: [clover.launch](../../examples/positioning/optical%20flow/launch/clover.launch).
+
+### Настройка полётного контроллера
+
+Параметры, настраивающие полётный контроллер на возможность полёта по `optical flow`: [optical_flow.params](../../examples/positioning/optical%20flow/optical_flow.params).
+
+Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой `Selected drones -> Send -> FCU parameters file` из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
+
+### Настройка клиента
+
+#### Вариант 1. Загрузка значимых параметров из примера конфигурации
+
+Конфигурация клиента со значениями, применимыми для работы с `optical flow`: [client.ini](../../examples/positioning/optical%20flow/client.ini).
+
+Для загрузки воспользуйтесь командой `Selected drones -> Send -> Configuration` из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант `Modify` и укажите путь к файлу `client.ini`.
+
+#### Вариант 2. Сброс всех настроек клиента
+
+Для того, чтобы настроить конфигурацию клиента для позиционирования по optical flow, можно сбросить данные конфигурации в значения по умолчанию. Для этого нужно удалить сгенерированные файлы конфигураций на клиентах:
+
+* Выделите в таблице коптер или коптеры, конфигурацию которых хотите сбросить.
+* Выполните команду удаления конфигурации на выделенных коптерах, выбрав пункт `Selected drones -> Send -> Command`. В открывшемся диалоговом окне введите команду `rm config/client.ini` и нажмите `OK`.
+
+### Настройка сервера
+
+#### Вариант 1. Загрузка значимых параметров из примера конфигурации
+
+Конфигурация сервера со значениями, применимыми для работы с `optical flow`: [server.ini](../../examples/positioning/optical%20flow/server.ini).
+
+Для установки параметров вручную воспользуйтесь командой `Server -> Edit config` из верхнего меню сервера.
+
+#### Вариант 2. Сброс всех настроек сервера
+
+Для того, чтобы настроить конфигурацию сервера для позиционирования по optical flow, можно сбросить данные конфигурации в значения по умолчанию. Для этого нужно удалить сгенерированный файл конфигурации на сервере:
+
+* Выполните команду `rm config/server.ini` из директории с расположением приложения `server.py`.
+* Перезагрузите сервер, выбрав команду `Server -> Restart server` из верхнего пункта меню.
+
+## Aruco
+
+ArUco-маркеры — это популярная технология для позиционирования робототехнических систем с использованием компьютерного зрения. Позиционирование происходит с помощью получения информации о расположении специальных визуальных маркеров.
+
+Данная система позиционирования вариативна: маркеры могут располагаться на полу, на потолке или на стенах. Главное условие для позиционирования - правильно внести координаты в специальную карту маркеров и обозначить её наклон относительно пола.
+
+Если карта маркеров расположена на полу, появляются нюансы: сразу после включения коптер не знает своего положения до тех пор, пока камера не увидит карту меток. Соответственно некоторые проверки по позиции коптера и безопасности полёта становятся не применимы:
+
+* Не имеет смысла проверка текущего положения коптера, т.к. сразу после загрузки оно не определено, но коптер при этом всё равно имеет механизм взлёта
+* Не имеет смысла проверять максимальное расстояние стартовой точки анимации от текущей позиции коптера, т.к. она никогда не будет совпадать при старте
+* Стартовое действие анимации `fly` в системе координат `aruco_map` будет иметь непредсказуемые последствия, т.к. на старте реальная позиция коптера будет сильно отличаться от позиции, рассчитанной полётным контроллером. Соответственно единственный вариант параметра `start_action` в разделе [ANIMATION] - это `takeoff`: подъём на высоту, определённую параметром `takeoff_height` из раздела [FLIGHT], относительно текущей позиции коптера.
+
+### Настройка ROS пакета clover
+
+Настройка системы позиционирования по ArUco маркерам описана в [документации](https://clover.coex.tech/ru/aruco_map.html) `clover`.
+
+Пример `.launch` файлов для настройки карты меток на полу:
+
+* [clover.launch](../../examples/positioning/aruco%20floor/launch/clover.launch)
+* [aruco.launch](../../examples/positioning/aruco%20floor/launch/aruco.launch)
+
+### Настройка полётного контроллера
+
+Параметры, настраивающие полётный контроллер на возможность полёта по `ArUco`: [aruco.params](../../examples/positioning/aruco%20floor/aruco.params).
+
+Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой `Selected drones -> Send -> FCU parameters file` из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
+
+### Настройка клиента
+
+Конфигурация клиента со значениями, применимыми для работы с `Aruco`: [client.ini](../../examples/positioning/aruco%20floor/client.ini).
+
+Для загрузки воспользуйтесь командой `Selected drones -> Send -> Configuration` из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант `Modify` и укажите путь к файлу `client.ini`.
+
+### Настройка сервера
+
+Конфигурация сервера со значениями, применимыми для работы с `ArUco`: [server.ini](../../examples/positioning/aruco%20floor/server.ini).
+
+Для установки параметров вручную воспользуйтесь командой `Server -> Edit config` из верхнего меню сервера.
+
+## GPS
+
+Позиционирование по спутниковым координатам - предпочтительный способ позиционирования для уличных полётов. Для позиционирования по GPS необходим [один из официально поддерживаемых модулей для PX4](https://docs.px4.io/v1.9.0/en/gps_compass/). Точность позиционирования по GPS составляет порядка одного метра. Использование наземной станции поправок [GPS RTK](https://docs.px4.io/v1.9.0/en/gps_compass/rtk_gps.html) и специальных GPS RTK модулей позволяет добиться дециметровой точности позиционирования.
+
+### Настройка ROS пакета clover
+
+Настройка позиционирования по `GPS` описана в [документации](https://clover.coex.tech/ru/gps.html) `clover`.
+
+Пример `.launch` файла для настройки: [clover.launch](../../examples/positioning/gps/launch/clover.launch).
+
+### Настройка полётного контроллера
+
+Параметры, настраивающие полётный контроллер на возможность полёта по `gps`: [gps.params](../../examples/positioning/gps/gps.params).
+
+Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой `Selected drones -> Send -> FCU parameters file` из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
+
+### Настройка клиента
+
+Внимание! Начальная точка позиционирования фрейма `gps` должна быть изменена перед загрузкой. Для примера выбрана точка тестовой полётной зоны на территории Технополиса Москва.
+
+Конфигурация клиента со значениями, применимыми для работы с `GPS`: [client.ini](../../examples/positioning/gps/client.ini).
+
+Для загрузки воспользуйтесь командой `Selected drones -> Send -> Configuration` из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант `Modify` и укажите путь к файлу `client.ini`.
+
+### Настройка сервера
+
+Конфигурация сервера со значениями, применимыми для работы с `GPS`: [server.ini](../../examples/positioning/gps/server.ini).
+
+Для установки параметров вручную воспользуйтесь командой `Server -> Edit config` из верхнего меню сервера.
diff --git a/examples/positioning/aruco floor/aruco.params b/examples/positioning/aruco floor/aruco.params
new file mode 100644
index 0000000..7caf8cf
--- /dev/null
+++ b/examples/positioning/aruco floor/aruco.params
@@ -0,0 +1,4 @@
+1 1 ATT_EXT_HDG_M 1 6
+1 1 ATT_W_EXT_HDG 0.500000000000000000 9
+1 1 ATT_W_MAG 0.000000000000000000 9
+1 1 LPE_FUSION 20 6
diff --git a/examples/positioning/aruco floor/client.ini b/examples/positioning/aruco floor/client.ini
new file mode 100644
index 0000000..4d1d16b
--- /dev/null
+++ b/examples/positioning/aruco floor/client.ini
@@ -0,0 +1,6 @@
+[FLIGHT]
+frame_id = aruco_map
+
+[ANIMATION]
+start_action = takeoff
+check_ground = False
diff --git a/examples/positioning/aruco floor/launch/aruco.launch b/examples/positioning/aruco floor/launch/aruco.launch
new file mode 100644
index 0000000..39f2ad0
--- /dev/null
+++ b/examples/positioning/aruco floor/launch/aruco.launch
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/positioning/aruco floor/launch/clover.launch b/examples/positioning/aruco floor/launch/clover.launch
new file mode 100644
index 0000000..2cc8de1
--- /dev/null
+++ b/examples/positioning/aruco floor/launch/clover.launch
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/positioning/aruco floor/server.ini b/examples/positioning/aruco floor/server.ini
new file mode 100644
index 0000000..c7145e4
--- /dev/null
+++ b/examples/positioning/aruco floor/server.ini
@@ -0,0 +1,4 @@
+[CHECKS]
+check_current_position = False
+# in meters; set 0 to disable this check
+start_pos_delta_max = 0.0
diff --git a/examples/positioning/gps/client.ini b/examples/positioning/gps/client.ini
new file mode 100644
index 0000000..7fe2aad
--- /dev/null
+++ b/examples/positioning/gps/client.ini
@@ -0,0 +1,11 @@
+[FLIGHT]
+frame_id = gps
+
+[GPS FRAME]
+lat = 55.7032026
+lon = 37.7248114
+yaw = 0.0
+
+[ANIMATION]
+start_action = auto
+check_ground = True
diff --git a/examples/positioning/gps/gps.params b/examples/positioning/gps/gps.params
new file mode 100644
index 0000000..c67b018
--- /dev/null
+++ b/examples/positioning/gps/gps.params
@@ -0,0 +1,5 @@
+1 1 ATT_EXT_HDG_M 0 6
+1 1 ATT_W_ACC 0.200000002980232239 9
+1 1 ATT_W_EXT_HDG 0.100000001490116119 9
+1 1 ATT_W_MAG 0.100000001490116119 9
+1 1 LPE_FUSION 145 6
diff --git a/examples/positioning/gps/launch/clover.launch b/examples/positioning/gps/launch/clover.launch
new file mode 100644
index 0000000..39e5803
--- /dev/null
+++ b/examples/positioning/gps/launch/clover.launch
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/positioning/gps/server.ini b/examples/positioning/gps/server.ini
new file mode 100644
index 0000000..c33bb4e
--- /dev/null
+++ b/examples/positioning/gps/server.ini
@@ -0,0 +1,4 @@
+[CHECKS]
+check_current_position = True
+# in meters; set 0 to disable this check
+start_pos_delta_max = 1.0
diff --git a/examples/positioning/optical flow/client.ini b/examples/positioning/optical flow/client.ini
new file mode 100644
index 0000000..c8c427f
--- /dev/null
+++ b/examples/positioning/optical flow/client.ini
@@ -0,0 +1,6 @@
+[FLIGHT]
+frame_id = map
+
+[ANIMATION]
+start_action = auto
+check_ground = True
diff --git a/examples/positioning/optical flow/launch/clover.launch b/examples/positioning/optical flow/launch/clover.launch
new file mode 100644
index 0000000..41b704c
--- /dev/null
+++ b/examples/positioning/optical flow/launch/clover.launch
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/positioning/optical flow/optical_flow.params b/examples/positioning/optical flow/optical_flow.params
new file mode 100644
index 0000000..a0de7d3
--- /dev/null
+++ b/examples/positioning/optical flow/optical_flow.params
@@ -0,0 +1,9 @@
+1 1 ATT_EXT_HDG_M 1 6
+1 1 ATT_W_EXT_HDG 0.500000000000000000 9
+1 1 ATT_W_MAG 0.000000000000000000 9
+1 1 LPE_FLW_OFF_Z 0.000000000000000000 9
+1 1 LPE_FLW_QMIN 60 6
+1 1 LPE_FLW_R 0.200000002980232239 9
+1 1 LPE_FLW_RR 0.000000000000000000 9
+1 1 LPE_FLW_SCALE 1.000000000000000000 9
+1 1 LPE_FUSION 118 6
diff --git a/examples/positioning/optical flow/server.ini b/examples/positioning/optical flow/server.ini
new file mode 100644
index 0000000..c33bb4e
--- /dev/null
+++ b/examples/positioning/optical flow/server.ini
@@ -0,0 +1,4 @@
+[CHECKS]
+check_current_position = True
+# in meters; set 0 to disable this check
+start_pos_delta_max = 1.0