diff --git a/docs/assets/aruco-axis.png b/docs/assets/aruco-axis.png
new file mode 100644
index 00000000..5c13b190
Binary files /dev/null and b/docs/assets/aruco-axis.png differ
diff --git a/docs/assets/aruco-detect-debug.png b/docs/assets/aruco-detect-debug.png
new file mode 100644
index 00000000..e84d11df
Binary files /dev/null and b/docs/assets/aruco-detect-debug.png differ
diff --git a/docs/assets/aruco-map-axis.png b/docs/assets/aruco-map-axis.png
new file mode 100644
index 00000000..465c80f2
Binary files /dev/null and b/docs/assets/aruco-map-axis.png differ
diff --git a/docs/assets/aruco-map-debug.png b/docs/assets/aruco-map-debug.png
new file mode 100644
index 00000000..e59b0140
Binary files /dev/null and b/docs/assets/aruco-map-debug.png differ
diff --git a/docs/assets/aruco-map.png b/docs/assets/aruco-map.png
new file mode 100644
index 00000000..cb07c8dc
Binary files /dev/null and b/docs/assets/aruco-map.png differ
diff --git a/docs/ru/aruco_map.md b/docs/ru/aruco_map.md
new file mode 100644
index 00000000..aa54f0ab
--- /dev/null
+++ b/docs/ru/aruco_map.md
@@ -0,0 +1,120 @@
+# Навигация по картам ArUco-маркеров
+
+> **Info** Для распознавания маркеров модуль камеры должен быть корректно подключен и [сконфигурирован](camera.md).
+
+Модуль `aruco_map` распознает карты ArUco-маркеров, как единое целое. Также возможна навигация по картам ArUco-маркеров с использованием механизма Vision Position Estimate (VPE).
+
+## Конфигурирование
+
+Для включения распознавания карт маркеров аргумент `aruco_map` в файле `~/catkin_ws/src/clever/clever/launch/aruco.launch` должен быть в значении `true`:
+
+```xml
+
+```
+
+Для включения передачи координат в полетный контроллер по механизму VPE, аргумента `aruco_vpe` должен быть в значении `true`:
+
+```xml
+
+```
+
+## Настройка карты маркеров
+
+Карта загружается из текстового файла, каждая строка которого имеет следующий формат:
+
+```
+id_маркера размер_маркера x y z угол_z угол_y угол_x
+```
+
+Где `угол_N` – это угол поворота маркера вокруг оси N в радианах.
+
+Путь к файлу с картой задается в параметре `map`:
+
+```xml
+
+```
+
+Смотрите примеры карт маркеров в каталоге [`~/catkin_ws/src/clever/aruco_pose/map`](https://github.com/CopterExpress/clever/tree/master/aruco_pose/map).
+
+### Проверка
+
+Для контроля карты, по которой в данный момент коптер осуществляет навигацию, можно просмотреть содержимое топика `/aruco_map/image`. Через браузер его можно просмотреть при помощи [web_video_server](web_video_server.md) по ссылке http://192.168.11.1:8080/snapshot?topic=/aruco_map/image:
+
+
+
+Клевер публикует текущую позицию распознанной карты в топик `aruco_map/pose`. Также публикуется [TF-фрейм](frames.md) `aruco_map` (VPE выключен) или `aruco_map_detected` (VPE включен). Используя топик `aruco_map/visualization` можно визуализировать текущую карту маркеров в [rviz](rviz.md).
+
+Наглядно позиция распознанной карты отображается в топике `aruco_map/debug` (просмотр доступен по ссылке http://192.168.11.1:8080/stream_viewer?topic=/aruco_map/debug):
+
+
+
+## Система координат
+
+По [соглашению](http://www.ros.org/reps/rep-0103.html) в маркерном поле используется стандартная система координат ENU:
+
+* ось **x** указывает кверху карты маркеров;
+* ось **y** указывает на правую сторону карты маркеров;
+* ось **z** указывает от плоскости карты маркеров.
+
+
+
+## Настройка VPE
+
+Для работы механизма Vision Position Estimation необходимы следующие [настройки PX4](px4_parameters.md).
+
+При использовании **EKF2** (параметр `SYS_MC_EST_GROUP` = `ekf2`):
+
+* В параметре `EKF2_AID_MASK` включены флажки `vision position fusion`, `vision yaw fusion`.
+* Шум угла по зрению: `EKF2_EVA_NOISE` = 0.1 rad
+* Шум позиции по зрению: `EKF2_EVP_NOISE` = 0.05 m
+* `EKF2_EV_DELAY` = 0
+
+При использовании **LPE** (параметр `SYS_MC_EST_GROUP` = `local_position_estimator, attitude_estimator_q`):
+
+* В параметре `LPE_FUSION` включены флажки `vision position`, `land detector`.
+* Вес угла по рысканью по зрению: `ATT_W_EXT_HDG` = 0.5
+* Включена ориентация по Yaw по зрению: `ATT_EXT_HDG_M` = 1 `Vision`.
+* Шумы позиции по зрению: `LPE_VIS_XY` = 0.05 m, `LPE_VIS_Z` = 0.05 m.
+* `LPE_VIS_DELAY` = 0 sec
+
+
+
+> **Info** Для использования LPE в Pixhawk необходимо [скачать прошивку с названием `px4fmu-v2_lpe.px4`](https://github.com/PX4/Firmware/releases).
+
+## Полет
+
+При правильной настройке коптер начнет удерживать позицию в [режимах](modes.md) `POSCTL` и `OFFBOARD` автоматически.
+
+Для [автономных полетов](simple_offboard.md) можно будет использовать функции `navigate`, `set_position`, `set_velocity`. Для полета в определенные координаты маркерного поля необходимо использовать фрейм `aruco_map`:
+
+```python
+# Вначале необходимо взлететь, чтобы коптер увидел карту меток и появился фрейм aruco_map:
+navigate(0, 0, 2, frame_id='body', speed=0.5, auto_arm=True) # взлет на 2 метра
+
+time.sleep(5)
+
+# Полет в координату 2:2 маркерного поля, высота 2 метра
+navigate(2, 2, 2, speed=1, frame_id='aruco_map') # полет в координату 2:2, высота 3 метра
+```
+
+## Дополнительные настройки
+
+Если коптер нестабильно удерживает позицию по VPE, попробуйте увеличить коэффициенты *P* PID-регулятора по скорости – параметры `MPC_XY_VEL_P` и `MPC_Z_VEL_P`.
+
+## Расположение маркеров на потолке
+
+
+
+Для навигации по маркерам, расположенным на потолке, необходимо поставить основную камеру так, чтобы она смотрела вверх и [установить соответствующий фрейм камеры](camera_frame.md).
+
+Также в файле `~/catkin_ws/src/clever/clever/launch/aruco.launch` необходимо установить параметр `known_tilt` в секции `aruco_map` в значение `map_flipped`:
+
+```xml
+
+```
+
+При такой конфигурации фрейм `aruco_map` также окажется перевернутым. Таким образом, для полета на высоту 2 метра ниже потолка, аргумент `z` нужно устанавливать в 2:
+
+```python
+navigate(x=1, y=2, z=1.1, speed=0.5, frame_id='aruco_map')
+```
diff --git a/docs/ru/aruco_marker.md b/docs/ru/aruco_marker.md
new file mode 100644
index 00000000..0faae4f4
--- /dev/null
+++ b/docs/ru/aruco_marker.md
@@ -0,0 +1,123 @@
+# Распознавание ArUco-маркеров
+
+> **Info** Для распознавания маркеров модуль камеры должен быть корректно подключен и [сконфигурирован](camera.md).
+
+Модуль `aruco_detect` распознает ArUco-маркеры и публикует их позиции в ROS-топики и в [TF](frames.md).
+
+Эта функция полезна для применения совместно с какой-либо системой позиционирования для дрона, такой как [GPS](gps.md), [Optical Flow](optical_flow.md), PX4Flow, визуальная одометрия, ультразвуковое ([Marvelmind](https://marvelmind.com)) или UWB-позиционирование ([Pozyx](https://www.pozyx.io)).
+
+Также возможно применение совместно с [навигацией по карте маркеров](aruco_map.md).
+
+## Настройка
+
+Для включения модуля аргумент `aruco_detect` в файле `~/catkin_ws/src/clever/clever/launch/aruco.launch` должен быть в значении `true`:
+
+```xml
+
+```
+
+Для правильной работы в этом же файле в секции `aruco_detect` должны быть выставлены параметры:
+
+```xml
+
+
+
+
+```
+
+Значение параметра `known_tilt` следует выставлять следующим образом:
+
+* если *все* маркеры наклеены на полу (земле), выставить значение `map`;
+* если *все* маркеры наклеены на потолке, выставить значение `map_flipped`;
+* противном случае удалить строку с параметром.
+
+Если некоторые маркеры имеют размер, отличный значения `length`, их размер может быть переопределен с помощью параметра `length_override`:
+
+```xml
+
+
+```
+
+## Система координат
+
+С маркером связана следующая система координат:
+
+* ось **x** указывает кверху маркера;
+* ось **y** указывает на правую сторону маркера;
+* ось **z** указывает от плоскости маркера.
+
+
+
+## Работа с распознанными маркерами
+
+Наглядно распознанные маркеры можно видеть в топике `aruco_detect/debug`. Просмотреть его можно с помощью [`rqt_image_view`](rviz.md) или через [web_video_server](web_video_server.md) по ссылке http://192.168.11.1:8080/snapshot?topic=/aruco_pose/debug:
+
+
+
+Распознанные маркеры и их позиции публикуются в топик `aruco_detect/markers`. Чтение топика из Bash:
+
+```bash
+rostopic echo /aruco_detect/markers
+```
+
+## Навигация по маркерам
+
+С использованием модуля [`simple_offboard`](simple_offboard.md) можно осуществлять навигацию по маркерам используя соответствующие TF-фреймы.
+
+Полет в точку над маркером 5 на высоту 1 метр:
+
+```python
+navigate(frame_id='aruco_5', x=0, y=0, z=1)
+```
+
+Полет в точку на метр левее маркера 7 на высоте 2 метра:
+
+```python
+navigate(frame_id='aruco_7', x=-1, y=0, z=2)
+```
+
+Вращаться против часовой стрелки на высоте 1.5 метра над маркером 10:
+
+```python
+navigate(frame_id='aruco_10', x=0, y=0, z=1.5, yaw_rate=0.5)
+```
+
+Если необходимый маркер не появится в поле зрения в течение полусекунды, дрон продолжит выполнять предыдущую команду.
+
+Подобные значения `frame_id` можно использовать и в других сервисах, например `get_telemetry`. Получение расположения дрона относительно маркера 3:
+
+```python
+telem = get_telemetry(frame_id='aruco_3')
+```
+
+Если необходимый маркер не появится в поле зрения в течение полусекунды, в полях `telem.x`, `telem.y`, `telem.z`, `telem.yaw` будет значение `NaN`.
+
+## Работа с результатом распознавания из Python
+
+Чтение топика `aruco_detect/markers` из Python:
+
+```python
+import rospy
+from aruco_pose.msg import MarkerArray
+rospy.init_node('my_node')
+
+# ...
+
+def markers_callback(msg):
+ print 'Detected markers:':
+ for marker in msg.markers:
+ print 'Marker: %s' % marker
+
+# Подписываемся. При получении сообщения в топик /foo будет вызвана функция foo_callback.
+rospy.Subscriber('aruco_detect/markers', MarkerArray, markers_callback)
+
+# ...
+
+rospy.spin()
+```
+
+Сообщения будут содержать ID маркера, его угловые точки на изображении и его позицию (относительно камеры).
+
+---
+
+См. далее: [навигация по картам маркеров](aruco_map.md).
diff --git a/docs/ru/aruco_new.md b/docs/ru/aruco_new.md
new file mode 100644
index 00000000..36b5080d
--- /dev/null
+++ b/docs/ru/aruco_new.md
@@ -0,0 +1,21 @@
+# ArUco-маркеры
+
+> **Note** Документация для версий [образа](microsd_images.md), начиная с версии **0.16**. Для более ранних версий см. [документацию для версии **0.15.1**](https://github.com/CopterExpress/clever/blob/v0.15.1/docs/ru/aruco.md).
+
+[ArUco-маркеры](https://docs.opencv.org/3.2.0/d5/dae/tutorial_aruco_detection.html) — это популярная технология для позиционирования
+робототехнических систем с использованием компьютерного зрения.
+
+
+
+> **Hint** При печати визуальных маркеров необходимо использовать максимально матовую бумагу. Глянцевая бумага будет бликовать на свету, сильно ухудшая качество распознавания.
+
+Для быстрого генерирования маркеров для печати можно использовать онлайн-инструмент: http://chev.me/arucogen/.
+
+На [образе Клевера для RPi](microsd_images.md) предустановлен пакет `aruco_pose`, предназначенный для работы с ArUco-маркерами.
+
+## Режимы работы
+
+Клевер имеет несколько преднастроенных режимов работы с ArUco-маркерами:
+
+* [распознавание и навигация по отдельным маркерам](aruco_marker.md);
+* [распознавание и навигация по картам маркеров](aruco_map.md).