diff --git a/assets/2017-11-27_18-28-29.png b/assets/2017-11-27_18-28-29.png new file mode 100644 index 00000000..a17dd0c0 Binary files /dev/null and b/assets/2017-11-27_18-28-29.png differ diff --git a/docs/web_rc.md b/docs/web_rc.md index fc883ce4..1b64df08 100644 --- a/docs/web_rc.md +++ b/docs/web_rc.md @@ -1,6 +1,6 @@ # Веб-пульт управления квадрокоптером -По адресу 192.168.11.1:7070 открывается web-приложение – пульт управления квадрокоптером. +По адресу [192.168.11.1:7070](http://192.168.11.1:7070) открывается web-приложение – пульт управления квадрокоптером. ## Стартовый экран @@ -14,9 +14,9 @@ В интефейсе доступны: * Верхняя \(информацинно-командная\) панель +* Уведомления * Контролы * HUD -* Панель уведомлений ## Верхняя панель @@ -36,53 +36,67 @@ * кнопка сохранения текущего кадра на камере ⚠️ _Нет API_ -Так же пространство верхрей панели используется для отображения важных уведомлений![](/assets/ezgif-1-42c59e3d83.gif) +## Уведомления 🔔 -## Контролы +![](blob:file:///17c178ca-1edf-441e-8453-d1a4f5e25d8e) -На момент написания заметки был реализован только один бандл контролов, использующий контролы–стики. +* всплывающие – самые важные уведомления всплывают на месте верхней панели + * нажатие по уведомлению открывает ленту уведомлений + * можно смахнуть проведя по уведомлению пальцем \(как и с нативным системным уведомлением\) +* панель уведомлений – полноэкранная лента уведомлений в хронологическом порядке + * объединяет одинаковые сообщения в один, с указанием количества повторений + * открывается нажатием на всплывающее уведомление или кнопку уведомлений на верхней панели -Бандл контролов – обёртка над несоклькими контроллами, решающая общие задачи. +![](/assets/2017-11-27_18-28-29.png) + +## Контролы 🎮 + +Бандл контролов – обёртка над несоклькими контроллами, решающая общие над ними задачи. + +Предполагается, что на основе реализованных компонентов, можно будет собирать любой бандл контролов. ### Основной бандл -На момент написания заметки реализован один бандл. +На момент написания заметки реализован один бандл, использующий два двухосевых стика -#### Архитектура - -Использует два двухосевых стика - -* левый – altitude и yaw +* левый – altitude и yaw * правый – pitch и roll. -Каждому стику можно задать жесты-экшены, которые будут активироваться при уведении пальца за границу максимального значения в указаной стороне стика. - -Например, в текущем бандле для левого стика реализованы 2 жеста: - -* ARM – находится в правом нижнем углу -* DISARM – в левом нижнем углу +Каждому стику можно задать жесты-экшены, которые будут активироваться при уведении пальца за границу максимального значения в указаной стороне стика. **\(ссылка на доку по стику\)** #### Действия -* переключение в режим OFFBOARD - * активируется при касании - * не активируется, когда - * дрон уже в режиме OFFBOARD - * активно - -При взаимодействии с контролами переводит дрон в соответствующий режим. - - - - - - - - - - - +При касании контролов запрашивается режим OFFBOARD. +⚠️ _Не запрашивается когда дрон уже в режиме OFFBOARD или когда активен хотя бы один жест._ + +Все этапы переключения дрона в режим OFFBOARD отражаются соответствующим цветом контрола + +* красный – не удалось запросить режим, ошибка при отправке сообщения +* жёлтый – режим запрошен, ждём когда дрон начнёт слать **mode: OFFBOARD** +* зелёный – успешно переключился в OFFBOARD + +В режиме OFFBOARD бандл публикует в топик **/mavros/setpoint\_raw/local** данные со стиков соответственно: + +* левый + * по гризонтали – **yaw\_rate** + * по вертикали – **z** \(altitude\) +* правый + * по гризонтали – **x** \(roll\) + * по вертикали – **y** \(pitch\) + +Жесты на левом стике + +* ARM – в правом нижнем углу +* DISARM – в левом нижнем углу + +Бандл так же следит за тем, что бы данные в топик публиковались непрерывно. Если пользователь остановил пальцы или отпустил контролы, то бандл продолжит публиковать данные с некой минимальной периодичностью, во избежание выпадания дрона из OFFBOARD. + +## Head-Up Display + +Расположен по центру экрана и отображает текущую скорость\(сверху экрана\) и высоту\(снизу экрана\). + +Так же, между скоростью и высотой можно выводить любую другую информацию \(например, режимы дрона или данные со стиков\).