Files
clever-show/docs/ru/start-tutorial.md
2020-04-18 02:13:03 +03:00

95 lines
8.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Быстрый старт
## Список оборудования
Данное ПО предназначено для управления несколькими квадрокоптерами с компьютера-сервера. Для полноценной работы необходимо следующее оборудование:
* Один или несколько квадрокоптеров, работающих на базе ПО [Клевер](https://github.com/copterexpress/clever).
* Компьютер с операционной системой Ubuntu 18.04.
* Wifi роутер, работающий на частоте 2.4 ГГц, либо 5.8 ГГц, если эту частоту поддерживают wifi модули коптеров и компьютера.
## Подготовка ПО
ПО для организации шоу коптеров состоит из 2х основных частей - серверного приложения и клиентской части, которая предоставляется в виде образа для Raspberry Pi.
> Серверное приложение и образ для коптера должны быть одинаковой версии для их совместной работы.
Актуальная версия образа на текущий момент: [v0.3](https://github.com/copterexpress/clever-show/releases/tag/v0.3).
> Обратите внимание: релиз v0.3 работает только для системы позиционирования по потолочным aruco маркерам.
Скачайте на компьютер [образ для Raspberry Pi](https://github.com/CopterExpress/clever-show/releases/download/v0.3/clever-show_v0.3.img.zip) и [исходный код](https://github.com/CopterExpress/clever-show/archive/v0.3.zip). Разархивируйте исходный код в удобную директорию.
## Настройка роутера
Для управления одним или несколькими коптерами требуется подключение коптеров и сервера к одной сети. Для этого требуется отдельный wifi роутер с известным SSID и паролем.
Подключите компьютер, который будет использоваться в качестве сервера, к сети роутера и узнайте его ip адрес - он понадобится для дальнейшей настройки.
## Установка и запуск клиента
* Запишите образ на microSD карту, используя [Etcher](https://www.balena.io/etcher/).
* Вставьте флешку в Raspberry Pi, включите коптер. Дождитесь появления сети `CLEVERSHOW-XXXX`.
* Подключитесь к сети коптера, используя пароль `cleverwifi`.
* Подключитесь к Raspberry Pi на коптере с помощью ssh, используя статический ip `192.168.11.1`, имя пользователя `pi` и пароль `raspberry`.
```bash
ssh pi@192.168.11.1
```
* Перейдите в директорию клиента и выполните скрипт настройки клиента с указанными параметрами - название точки доступа (`SSID`), пароль точки доступа (`password`), имя коптера (`copter name`), ip сервера (`server ip`). Коптер переключится в режим клиента указанной точки доступа и настроит автозапуск клиента на Raspberry Pi.
```bash
cd ~/clever-show/Drone
sudo ./client_setup.sh <SSID> <password> <copter name> <server ip>
```
* Теперь при запуске серверного приложения настроенные коптеры будут отображаться в виде таблицы. Также можно подключаться к Raspberry Pi на коптере по его имени с добавкой .local через `ssh` в указанной при настройке wifi сети, например `ssh pi@clever-1.local`, пароль `raspberry`.
> **Подробная документация по настройке клиентской части находится [здесь](client.md).**
## Установка и запуск сервера
* Установите [chrony](https://chrony.tuxfamily.org/index.html), [samba](https://help.ubuntu.ru/wiki/samba) и Python 3 на ваш компьютер:
```bash
sudo apt install chrony python3 python3-pip
```
* Установите необходимые python-пакеты с помощью команды (запущенной из директории с исходным кодом)
```bash
pip3 install -r requirements.txt
```
* Подключитесь к wifi сети роутера, к которому подключены коптеры.
* Скопируйте [файл настроек chrony](../../Server/chrony.conf) в `/etc/chrony/chrony.conf`. Если ip адрес сети начинается не с `192.168.`, то исправьте адрес после слова allow в скопированном файле настроек.
* Перезапустите сервис chrony
```bash
sudo systemctl restart chrony
```
* Перейдите в директорию сервера из директории с исходным кодом и запустите сервер
```bash
cd source-code-dir/Server
python3 server_qt.py
```
> **Подробная документация по настройке серверной части находится [здесь](server.md).**
## Подготовка дрона
Для запуска анимации все коптеры должны иметь настроенную систему позиционирования. По-умолчанию в образе настроен полёт по optical flow - на коптере должен быть установлер лазерный дальномер, а камера должна быть наклонена вниз шлейфом назад.
> После тестирования образа версии 0.3 выяснилась неработоспособность конфигурации системы позиционирования по умолчанию (optical flow). Для нормального функционирования требуется система позиционирования с постоянным потоком данных через топик визуальной позиции. Рекомендуемая конфигурация для образа 0.3 - [потолочные aruco маркеры](https://clever.coex.tech/ru/aruco_map.html#расположение-маркеров-на-потолке).
Вы можете настроить один коптер на любую систему позиционирования, которую поддерживает пакет [clever](https://clever.coex.tech/ru/programming.html#positioning), а затем размножить настройки на остальные коптеры с [сервера](server.md#раздел-server) с помощью команды `Send launch files`.
## Подготовка анимации
* Создайте анимацию объектов в Blender или воспользуйтесь [примерами](../../blender-addon/examples). Условная единица расстояния в Blender конвертируется в метры. Задержка между кадрами по-умолчанию в [настройках коптера](../../Drone/client_config.ini) равна 0.1 секунды (параметр frame_delay в разделе ANIMATION), будьте внимательны при настройке частоты кадров в анимации Blender. Следите за скоростями коптеров, чтобы они были не слишком большими: аддон выдаст предупреждение, но всё равно сконвертирует анимацию.
* Сконвертируйте анимацию с помощью [аддона для Blender](blender-addon.md).
* Загрузите анимацию с помощью команды `Send animations` на [сервере](server.md#раздел-server).