docs: making linter happy + remove unused

This commit is contained in:
Oleg Kalachev
2018-12-10 07:11:00 +03:00
parent 6f59e4c9d6
commit 31351100aa
23 changed files with 68 additions and 209 deletions

View File

@@ -4,11 +4,13 @@
"code_blocks": false
},
"MD013": false,
"MD024": false,
"MD026" :{
"punctuation": ".,;:!"
},
"MD033": false,
"MD034": false,
"MD040": false,
"MD044": {
"names": [
"MAVLink",
@@ -24,5 +26,6 @@
"ArUco"
],
"code_blocks": false
}
},
"MD045": false
}

View File

@@ -40,7 +40,7 @@ sudo systemctl restart clever
## Задержки
При использовании `rosserial_arduino` микроконтроллер Arduino не должен быть заблокирован больше чем на несколько секунд (например, с использованием функции `delay`); иначе связь между Raspberry Pi и Arduino будет разорвана.
При использовании `rosserial_arduino` микроконтроллер Arduino не должен быть заблокирован больше чем на несколько секунд (например, с использованием функции `delay`); иначе связь между Raspberry Pi и Arduino будет разорвана.
При реализации долгих циклов `while` обеспечьте периодический вызов функции `hn.spinOnce`:
@@ -121,7 +121,7 @@ void setup()
delay(1000);
nh.spinOnce();
}
nav_req.auto_arm = false;
// Пролет вперед на 3 метра:
@@ -133,13 +133,13 @@ void setup()
nav_req.frame_id = "fcu_horiz";
nav_req.speed = 0.8;
navigate.call(nav_req, nav_res);
// Ждем 5 секунд
for(int i=0; i<5; i++) {
delay(1000);
nh.spinOnce();
}
}
// Полет в точку 1:0:2 по маркерному полю
nh.loginfo("Fly on point");
nav_req.auto_arm = false;
@@ -229,4 +229,4 @@ typedef ros::NodeHandle_<ArduinoHardware, 3, 3, 100, 100> NodeHandle;
// ...
NodeHandle nh;
```
```

View File

@@ -39,7 +39,7 @@ sudo systemctl restart clever
В качестве карты меток можно использовать автоматически сгенерированный [ArUco-board](https://docs.opencv.org/trunk/db/da9/tutorial_aruco_board_detection.html).
Настройка карты меток производится с помощью файла `~/catkin_ws/src/clever/clever/launch/aruco.launch`. Для использования AruCo-board введите его параметры:
Настройка карты меток производится с помощью файла `~/catkin_ws/src/clever/clever/launch/aruco.launch`. Для использования ArUco-board введите его параметры:
```xml
<node pkg="nodelet" type="nodelet" name="aruco_pose" args="load aruco_pose/aruco_pose nodelet_manager">

View File

@@ -26,7 +26,7 @@
* Зарядное устройство EFEST Luc V4 Li-lon x1.
* Защитный бокс регуляторов x4.
* Крепление под ножки x8.
* Полетный контроллер PixHawk x1.
* Полетный контроллер Pixhawk x1.
* Радиоприемник FlySky i6 x1.
* Радиопульт FlySky i6 x1.
* Зарядное устройство EFEST LUC V4 x1.
@@ -322,13 +322,13 @@
![Переворачиваем сборку](../assets/topPreview.png)
#### Установка полетного контроллера PixHawk
#### Установка полетного контроллера Pixhawk
1. Клеим 2х сторонний скотч по углам полетного контроллера. ![Полетный контроллер](../assets/pixhawk.png)
> **ВАЖНО** При работе моторов возникают вибрации, отрицательно влияющие на показания датчиков полетного контроллера PixHawk. Чтобы избежать этого эффекта, количество слоев двустороннего скотча
> **ВАЖНО** При работе моторов возникают вибрации, отрицательно влияющие на показания датчиков полетного контроллера Pixhawk. Чтобы избежать этого эффекта, количество слоев двустороннего скотча
лучше увеличить до 4-5.
2. Установить полетный контроллер в центр рамы. ![Полетный контроллер](../assets/topviewpixhawk.png)
> **ВАЖНО** Стрелки на раме и PixHawk должны быть сонаправлены
> **ВАЖНО** Стрелки на раме и Pixhawk должны быть сонаправлены
#### Подключение полетного контроллера по схеме

View File

@@ -41,7 +41,7 @@ TODO
## Монтаж каркасных элементов
1. Установить пластиковые гайки М3 (4 шт) для крепления PDB на раму винтами М3х8.
2. Установить стойки 6 мм (4 шт) для крепления RASPBERRY PI на раму винтами М3х8.
2. Установить стойки 6 мм (4 шт) для крепления Raspberry Pi на раму винтами М3х8.
3. Установить на раму собранную конструкцию, соблюдая схему, винтами М3х16.
4. Установить каркас для светодиодной ленты, используя прорези в держателях для ножек.
@@ -121,7 +121,7 @@ TODO
На пульте отображается процесс сопряжения RXBinding
5. После установки сопряжения (появление допю строк на дисплее пульта):
4. После установки сопряжения (появление допю строк на дисплее пульта):
* Убрать BIND разъем из приемника.
* Отключить АКБ.

View File

@@ -7,6 +7,8 @@ Copter Hack 2017
<iframe width="560" height="315" src="https://www.youtube.com/embed/xgXheg3TTs4?rel=0" frameborder="0" allowfullscreen></iframe>
Запись видеолекций https://copterexpress.timepad.ru/event/510375/.
Модули
---
@@ -50,18 +52,14 @@ rostopic echo /marker_data
* [Пакет MAVRos](mavros.md)
* Неплохая вводная статья
https://habrahabr.ru/post/227425/
* Неплохая вводная статья: https://habrahabr.ru/post/227425/
* Сигналы, применяющиеся в дронах
https://geektimes.ru/post/258186/
* Сигналы, применяющиеся в дронах: https://geektimes.ru/post/258186/
* Хорошая статья про ПИДы
https://habrahabr.ru/company/technoworks/blog/216437/
* Хорошая статья про ПИДы: https://habrahabr.ru/company/technoworks/blog/216437/
* Запись видеолекций
https://copterexpress.timepad.ru/event/510375/
* Запись видеолекций: https://copterexpress.timepad.ru/event/510375/
* [Aubio](https://aubio.org), библиотека для анализа звука (музыки)
* Пакеты для работы с музыкой для Python https://wiki.python.org/moin/PythonInMusic
* Пакеты для работы с музыкой для Python: https://wiki.python.org/moin/PythonInMusic

View File

@@ -75,4 +75,3 @@
## Видеоинструкция по перепрошивке ESC регуляторов
Для лучшего понимания того, что описано в статье, рекомендуем посмотреть наглядное руководство по подключению электроники и прошивке регуляторов на английском языке на [youtube](https://www.youtube.com/watch?v=i6lhMcQLRSU&feature=youtu.be).

View File

@@ -12,7 +12,7 @@ Pixhawk или Pixracer можно прошить, используя QGroundCon
* `px4fmu-v4_default.px4` — прошивка для Pixracer с EKF2 и LPE (*Клевер 3*).
* `px4fmu-v3_default.px4` — прошивка для более новых версий Pixhawk (чип ревизии 3, см. илл. + Bootloader v5) с EKF2 и LPE.
![](../assets/stmrev.jpg)
![STM revision](../assets/stmrev.jpg)
> **Note** Для загрузки `px4fmu-v3_default.px4` может понадобиться использование команды `force_upload` из командной строки.

View File

@@ -3,7 +3,7 @@
Для детального анализа поведения прошивки PX4 можно просмотреть полетные логи. Полетные логи представляют собой сообщения в [uORB-топиках](https://dev.px4.io/en/middleware/uorb.html), записанные в файл с раширением `.ulg`. Лог-файл можно скачать с помощью QGroundControl по Wi-Fi или USB во вкладке *Log Download*:
![](../assets/download-log.png)
![Логи в QGroundControl](../assets/download-log.png)
Также необходимые `.ulg`-файлы можно скопировать непосредственно с MicroSD-карты, находившейся в полетном контроллере.
@@ -14,7 +14,7 @@
В программе можно просмотреть полный список записанных топиков (*Fields List*). В нем нужно выбрать необходимые топики, после чего они появятся на графике:
![](../assets/flightplot.png)
![FlightPlot](../assets/flightplot.png)
Основные топики в PX4
---
@@ -41,9 +41,9 @@
Для более новых версий платы Pixhawk (`px4fmu-v3`), а также для плат Pixracer, в прошивку включен модуль `topic_listener`, который позволяет просматривать значения топиков в режиме реального времени (в том числе в полете).
Для ее использования нужно выбрать вкладку Mavlink Console в QGroundControl:
Для ее использования нужно выбрать вкладку MAVLink Console в QGroundControl:
![](../assets/listener.png)
![listener](../assets/listener.png)
Команда `list_topics` выводит список топиков, доступных для просмотра (включена только в [SITL](sitl.md)).

View File

@@ -40,7 +40,6 @@ UDP бридж (с автоматическим подключением)
При открытии программы QGroundControl соединение должно установиться автоматически.
UDP-бридж (без автоматического подключения)
---

View File

@@ -8,6 +8,7 @@
* Полеты на глобальные точки в автономном режиме при помощи модуля [simple offboard](simple_offboard.md).
Полезные ссылки:
* https://docs.px4.io/en/assembly/quick_start_pixhawk.html
* http://ardupilot.org/copter/docs/common-pixhawk-wiring-and-quick-start.html
* http://ardupilot.org/copter/docs/common-installing-3dr-ublox-gps-compass-module.html

View File

@@ -34,7 +34,7 @@
<iframe width="560" height="315" src="https://www.youtube.com/embed/jWMGSgiLD_E" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
Часть 3
Часть 3
<iframe width="560" height="315" src="https://www.youtube.com/embed/WhxxXD4b1MY" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
@@ -53,4 +53,3 @@
Автономные полеты
<iframe width="560" height="315" src="https://www.youtube.com/embed/WvIlRG7ShWA" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

View File

@@ -10,6 +10,8 @@ MAVROS подписывается определенные ROS-топики в
> **Hint** Упрощенное взаимодействие с коптером возможно с использованием пакета [`simple_offboard`](simple_offboard.md).
<!-- -->
> **Note** В пакете `clever` некоторые плагины MAVROS отключены (в целях сохранения ресурсов). Подробнее см. параметр `plugin_blacklist` в файле `/home/pi/catkin_ws/src/clever/clever/launch/mavros.launch`.
## Основные сервисы
@@ -44,7 +46,7 @@ MAVROS подписывается определенные ROS-топики в
`/mavros/setpoint_attitude/cmd_vel` и `/mavros/setpoint_attitude/att_throttle` — установить целевые угловые скорости и уровень газа.
### Топики для посылки raw-пакетов:
### Топики для посылки raw-пакетов
`/mavros/setpoint_raw/local` — отправка пакета [SET\_POSITION\_TARGET\_LOCAL\_NED](https://pixhawk.ethz.ch/mavlink/#SET_POSITION_TARGET_LOCAL_NED). Позволяет установить целевую позицию/целевую скорость и целевое рысканье/угловую скорость по рысканью. Выбор устанавливаемых величин осуществляется с помощью поля `type_mask`.

View File

@@ -26,7 +26,6 @@ PX4
* **POSCTL** (POSITION) — управление скоростями набора высоты, скоростью движения вперед/назад и вправо/влево, угловой скоростью по рысканью. Наиболее простой для полетов режим. Используется барометр, GPS, компьютерное зрение, другие датчики.
### Автоматический полет (AUTO)
В режиме автоматического полета квадрокоптер игнорирует сигналы с пульта.

View File

@@ -309,7 +309,7 @@ EOF
3. [blog.hoxnox.com: WiFi access point with wpa_supplicant](http://blog.hoxnox.com/gentoo/wifi-hotspot.html)
4. [dmitrysnotes.ru: Raspberry Pi 3. Присвоение статического IP-адреса](http://dmitrysnotes.ru/raspberry-pi-3-prisvoenie-staticheskogo-ip-adresa)
5. [thegeekdiary.com: Linux OS Service network](https://www.thegeekdiary.com/linux-os-service-network/)
6. [frillip.com: USING YOUR NEW RASPBERRY PI 3 AS A WIFI ACCESS POINT WITH HOSTAPD](https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/) (также здесь есть инструкция по настройке форвардинга для использования RPi в качестве шлюза для выхода в интернет)
6. [frillip.com: Using your new Raspberry Pi 3 as a Wi-Fi access point with hostapt](https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/) (также здесь есть инструкция по настройке форвардинга для использования RPi в качестве шлюза для выхода в интернет)
7. [habr.com: Настраиваем ddns-сервер на GNU/Linux Debian 6](https://habr.com/sandbox/30433/) (Хорошая статья по настройке ddns-сервера на основе `bind` и `isc-dhcp-server`)
8. [pro-gram.ru: Установка и настройка DHCP сервера на Ubuntu 16.04.](https://pro-gram.ru/dhcp-server-ubuntu.html) (Настройка isc-dhcp-server)
9. [expert-orda.ru: Настройка DHCP-сервера на Ubuntu](http://expert-orda.ru/posts/liuxnewbie/125--dhcp-ubuntu) (Настройка isc-dhcp-server)

View File

@@ -1,23 +0,0 @@
Силовые и управляющие цепи
===============================
Силовые цепи
--------------------
Из вырезки по ГОСТ 18311-80
"Электрическая цепь, содержащая элементы, функциональное назначение которых состоит в производстве или передаче основной части электрической энергии,
ее распределении, преобразовании в другой вид энергии или в электрическую энергию с другими значениями параметров."
Говоря простым языком, силовые цепи - это электрические цепи, которые предназначены для передачи большого количества энергии (тока), для обеспечения работоспособности всех систем.
В нашем случае в качестве силовой цепи будут выступать провода, соединяющие аккумулятор с платой распределения питания, а также красные и черные провода идущие на регуляторы оборотов.
![Схема силовой цепи](../assets/powerConnect.jpg)
Вся энергия аккумулятора (АКБ) будет распределяться между регуляторами оборотов моторов. Чтобы моторы смогли поднять в воздух коптер, им необходимо много энергии. В качестве энергии выступает ток, который приходит с АКБ. Т.к. энергии нужно много, значит по проводам будет идти большой ток. Чтобы провода смогли выдержать такую нагрузку, необходимы провода большего диаметра. Для наших задач подойдут провода 18AWG, 16AWG, 14AWG.
Управляющие цепи
--------------------

View File

@@ -1,8 +1,9 @@
Мануал по возможным неисправностям радиоаппаратуры
==========================================
Пульт заблокирован
Пульт заблокирован
--------------
Если пульт заблокирован, то на ЖК Экране будет отображено предупреждение:
"Warning. Place all switches in their up position and lower the throttle".
@@ -14,34 +15,32 @@
![Заблокированный пульт](../assets/lockradio.jpg)
Нет связи с приемником
--------------
Для проверки соединения пульта с приемником, включаем пульт и смотрим индикацию на ЖК Экране:
1. Соединение с приемником отсутствует
Для проверки соединения пульта с приемником, включаем пульт и смотрим индикацию на ЖК Экране.
![Нет соединения с приемником](../assets/connectionLost.jpg)
1. Соединение с приемником отсутствует:
2. Соединение с приемником установлено
![Нет соединения с приемником](../assets/connectionLost.jpg)
![Есть соединения с приемником](../assets/connectionOK.jpg)
2. Соединение с приемником установлено:
Если соединение отсутствует, то
1. Проверьте, что приемник включен (моргает красный светодиод)
Если сетодиод горит непрерывно красным, то значит связь установлена с другим пультом.
![Есть соединения с приемником](../assets/connectionOK.jpg)
2. Проведите процедуру сопряжения пульта и приемника (![Binding](../notes/binding.md))
Если соединение отсутствует, то:
1. Проверьте, что приемник включен (моргает красный светодиод). Если сетодиод горит непрерывно красным, то значит связь установлена с другим пультом.
2. Проведите процедуру сопряжения пульта и приемника.
Нет связи с полетным контроллером
--------------
Если нет связи с полетным контроллером, то на экране монитора компьютера в окне Channel Monitor не будут отображаться изменения положения слайдеров при перемещении стиками пульта.
![Нет связи с полетным контроллером](../assets/notmoveslider.jpg)
1. Зайдите в МЕНЮ (удерживаем нажатой кнопку “ОК”)
2. Выберите меню “System setup” (Кнопки Up/Down - для навигации, кнопка “ОК” - подтверждение выбора
3. Выберите “RX setup” > “PPM OUTPUT” > “On”
3. Выберите “RX setup” > “PPM OUTPUT” > “On”
4. Сохраните изменения (удерживаем нажатой кнопку “CANCEL”)

View File

@@ -1,7 +1,7 @@
Использование rviz и rqt
===
![](../assets/rviz.png)
![rviz](../assets/rviz.png)
Инструмент [rviz](http://wiki.ros.org/rviz) позволяет в реальном времени визуализировать на 3D-сцене все компоненты роботехнической системы — системы координат, движущиеся части, показания датчиков, изображения с камер.
@@ -35,8 +35,7 @@ export ROS_IP=192.168.11.1
Результат визуализации коптера и камеры представлен ниже:
![](../assets/copter_visualization.png)
![rviz](../assets/copter_visualization.png)
### Визуализация окружения
@@ -47,7 +46,7 @@ Axis или Grid настроенный на фрейм `aruco_map` будут
Запуск инструментов rqt
---
![](../assets/rqt.png)
![rqt](../assets/rqt.png)
Для запуска rqt для мониторинга состояния Клевера используйте команду:

View File

@@ -166,7 +166,7 @@
## Отключение Safety Switch
В полетном контроллере PIXHAWK стоит защита моторов от случайного использования.
В полетном контроллере Pixhawk стоит защита моторов от случайного использования.
Чтобы разблокировать коптер, необходимо отключить кнопку безопасности
1. Заходим в меню Parameters > Circuit Breaker

View File

@@ -1,7 +1,6 @@
# Шаровая защита коптера
1. Введение
## Введение
Наверное, летать в помещениях приходилось каждому, кто брал в руки коптер. Подобные полеты сопряжены с немалым риском повредить коптер о стены и различные предметы. Даже полеты на относительно больших пространствах связаны с рисками удариться о препятствие: на пути коптера может встать ствол дерева или здание — что уж говорить о полетах в замкнутых пространствах. Подобные «краш-тесты» не очень приятный момент, который может оказаться в лучшем случае причиной потери внушительной суммы денег на ремонт, а в худшем — и вовсе утраты коптера. Тем более неприятны такие ситуации для новичка, который не может своевременно увернуться от препятствия и только учится летать.
@@ -11,7 +10,7 @@
Нами было принято сложное решение: придется делать ее полностью самим и почти с нуля, а также поставлена цель сделать ее простой в изготовлении и максимально легкой.
2. Разработка
## Разработка
В результате поиска решения, удовлетворяющего всем нашим требованиям, мы остановились на нескольких схожих вариантах. Было решено сделать защиту в форме полуправильного многогранника (примерами могут служить фуллерен, молекула углерода, или фигура пентакисдодекаэдр) — его мы и выбрали как самый приятный глазу. Кроме того, такая защита легко масштабируема под нужный размер.
@@ -21,7 +20,7 @@
С угловыми соединениями (фитингами), тоже не все просто: их также два вида — с пятью гранями при вершине (пять лучей исходят из вершины) и с шестью гранями (шесть лучей исходят из вершины).
3. Первые модели
## Первые модели
Была составлена спецификация для удобства контроля процесса изготовления, и мы приступили к моделированию.
@@ -37,7 +36,7 @@
![elements1](../assets/elements1.png)
4. Материалы
## Материалы
В ходе проектирования встал вопрос, из чего же все-таки сделать такую защиту, чтобы получилось легко и прочно. Ответ пришел, как всегда, совершенно неожиданно. На глаза попались шпажки из бамбука: они достаточно тонкие, чтобы не повлиять на аэродинамику, имеют достаточную гибкость и при этом достаточно прочные. Далее возник вопрос, из чего и как делать фитинги. Конечно же, 3D-печать! 3D-принтер — это вообще незаменимая вещь, тем более для тех, кто любит что-то делать сам. К тому же они из-за не самой высокой цены получили достаточно широкое распространение. На таком принтере можно делать изделия почти любой сложности. То, что надо!
@@ -49,7 +48,7 @@
Шпажки были порезаны на расчетные длины и подготовлены к последующей работе.
5. Сборка и установка
## Сборка и установка
После того как все было напечатано и порезано, настало время собирать защиту.
@@ -85,7 +84,7 @@
![ball](../assets/ball.png)
6. Первые полеты
## Первые полеты
Мы делали защиту под коптер «Клевер 2», являющийся обучающим пособием по сборке и настройке квадрокоптеров, и на него она устанавливается без доработок. Защита весит на 70 г больше (139 грамм), чем стандартная, и на управляемость и время полета почти не влияет.

View File

@@ -176,7 +176,6 @@ while not rospy.is_shutdown():
Пример подписки на топики из MAVROS:
```python
from geometry_msgs.msg import PoseStamped, TwistStamped
from sensor_msgs.msg import BatteryState
@@ -199,8 +198,12 @@ rospy.Subscriber('mavros/rc/in', RCIn, rc_callback)
Информацию по топикам MAVROS см. по [ссылке](mavros.md).
<!-- markdownlint-disable MD044 -->
### # {#mavlink}
<!-- markdownlint-enable MD044 -->
Пример отправки произвольного [MAVLink-сообщения](mavlink.md) коптеру:
```python

View File

@@ -14,12 +14,15 @@
Во время пайки:
1. Паяльник следует держать только за ручку, так как жало имеет высокую температуру.
![keep](../assets/keep.png)
![keep](../assets/keep.png)
2. Для перемещения изделий применять специальные инструменты (пинцеты, клещи или другие инструменты), обеспечивающие безопасность при пайке.
3. Во избежание ожогов расплавленным припоем при распайке не выдергивать резко с большим усилием паяемые провода.
4. При пайке мелких и подвижных изделий пользоваться специальным держателем.
![helphand](../assets/helphand.jpg)
![helphand](../assets/helphand.jpg)
5. Паяльник переносить за корпус, а не за провод или рабочую часть. При перерывах в работе паяльник отключать от электросети.
> **Caution** При обнаружении неисправной работы паяльника или возникновении возгорания отключить его от питающей электросети.

View File

@@ -1,121 +0,0 @@
# Веб-пульт управления квадрокоптером
При подключении к Клеверу по Wi-Fi (`CLEVER-xxxx`) по адресу [192.168.11.1:7070](http://192.168.11.1:7070) открывается web-приложение пульт управления квадрокоптером.
Для работы пульта необходимо убедиться, что в launch-файле Клевера (`~/catkin_ws/src/clever/clever/launch/clever.launch`) включены аргументы `web_server` и `rosbridge`.
```xml
<arg name="rosbridge" default="true"/>
```
```xml
<arg name="web_server" default="true"/>
```
При изменении launch-файла необходимо перезапустить сервис `clever`:
```bash
sudo systemctl restart clever
```
## Стартовый экран
При загрузке приложения, автоматически устанавливается соединение с сервером ROS.
При отстутствии соединения, интерфейс будет заблокирован для управления.
![](../assets/webrc_no_connection.png)
После установления соединения интерфейс разблокируется.
![](../assets/webrc.png)
В интефейсе доступны:
* Верхняя \(информацинно-командная\) панель
* Уведомления
* Контролы
* HUD
## Верхняя панель
Здесь расположены индикаторы и кнопки действий.
* кнопка-индикатор уведомлений
* отображает иконку типа последнего уведомления
* анимируется при наличии непрочитанных уведомлений
* открывает панель уведомлений
* индикатор уровня Wi-Fi сигнала \(пока нет возможности знать\)
* индикатор уровня заряда батареи \(пока нет возможности знать\)
* кнопка **DISARM** на случай необходимости отключить винты в полёте
* кнопка-индикатор записи видео при записи светится красным и показывает тайминг
⚠️ _Нет API для включения/выключения записи_
* кнопка переключения камер. Если на дроне больше одной камеры, позволяет переключиться между ними.
⚠️ _Нет API для получения данных о количестве камер на дрное_
* кнопка сохранения текущего кадра на камере
⚠️ _Нет API, поэтому пока что эта кнопка отвечает за включение/выключение трансляции с камеры_
## Уведомления 🔔
* всплывающие самые важные уведомления всплывают на месте верхней панели
* нажатие по уведомлению открывает ленту уведомлений
* можно смахнуть проведя по уведомлению пальцем \(как и с нативным системным уведомлением\)
* панель уведомлений полноэкранная лента уведомлений в хронологическом порядке
* объединяет одинаковые сообщения в один, с указанием количества повторений
* открывается нажатием на всплывающее уведомление или кнопку уведомлений на верхней панели
![](../assets/webrc_notifications.png)
## Контролы 🎮
Бандл контролов обёртка над несоклькими контроллами, решающая общие над ними задачи.
Предполагается, что на основе реализованных компонентов, можно будет собирать любой бандл контролов.
### Основной бандл
На момент написания заметки реализован один бандл, использующий два двухосевых стика
* левый altitude и yaw
* правый pitch и roll.
Каждому стику можно задать жесты-экшены, которые будут активироваться при уведении пальца за границу максимального значения в указаной стороне стика. **\(ссылка на доку по стику\)**
#### Действия
При касании контролов запрашивается режим OFFBOARD.
⚠️ _Не запрашивается когда дрон уже в режиме OFFBOARD или когда активен хотя бы один жест._
![](../assets/webrc_offboarding.gif)
Все этапы переключения дрона в режим OFFBOARD отражаются соответствующим цветом контрола
* красный не удалось запросить режим, ошибка при отправке сообщения
* жёлтый режим запрошен, ждём когда дрон начнёт слать **mode: OFFBOARD**
* зелёный успешно переключился в OFFBOARD
В режиме OFFBOARD бандл публикует в топик **/mavros/setpoint\_raw/local** данные со стиков соответственно:
* левый
* по горизонтали **yaw\_rate**
* по вертикали **z** \(altitude\)
* правый
* по гризонтали **x** \(roll\)
* по вертикали **y** \(pitch\)
Жесты на левом стике
* ARM в правом нижнем углу
* DISARM в левом нижнем углу
![](../assets/webrc_arm_disarm.gif)
Бандл так же следит за тем, что бы данные в топик публиковались непрерывно. Если пользователь остановил пальцы или отпустил контролы, то бандл продолжит публиковать данные с некой минимальной периодичностью, во избежание выпадания дрона из OFFBOARD.
## Head-Up Display
Расположен по центру экрана и отображает текущую скорость\(сверху экрана\) и высоту\(снизу экрана\).
Так же, между скоростью и высотой можно выводить любую другую информацию \(например, режимы дрона или данные со стиков\).