Skip to content

Latest commit

 

History

History
142 lines (84 loc) · 16.7 KB

start-tutorial.md

File metadata and controls

142 lines (84 loc) · 16.7 KB

Быстрый старт на квадрокоптере Клевер 4

Список оборудования

clever-show - это набор ПО для управления несколькими квадрокоптерами по сети. Для полноценной работы необходимо следующее оборудование:

  • Один или несколько квадрокоптеров Клевер 4, работающих на базе ПО clover.
  • Компьютер с операционной системой Ubuntu 18.04 для управления квадрокоптерами с помощью серверного приложения.
  • Wifi роутер, работающий на частоте 2.4 ГГц, либо 5.8 ГГц, если эту частоту поддерживают wifi модули коптеров и компьютера.

Подготовка ПО

ПО для организации шоу коптеров состоит из 2х основных частей - серверного приложения и клиентской части, которая предоставляется в виде образа для Raspberry Pi.

Актуальная версия образа на текущий момент: v0.4-alpha.6. Образ основан на образе clover v0.20. Внимание! Для работы на Raspberry Pi 4 светодиодной ленты необходимо обновить пакет rpi_ws281x. В некоторых ревизиях Raspberry Pi 4 может наблюдаться нестабильная работа

Инструкция для установки клиентского ПО clever-show на образ clover v0.21.* (с полной поддержкой Raspberry Pi 4) находится здесь.

Скачайте на компьютер образ для Raspberry Pi и исходный код. Разархивируйте исходный код в удобную директорию.

Серверное приложение и образ для коптера должны быть одинаковой версии для их совместной работы.

Настройка роутера

Для управления одним или несколькими коптерами требуется подключение коптеров и сервера к одной сети. Для этого требуется отдельный wifi роутер с известным SSID и паролем. SSID и пароль сети не должны содержать пробелов!

Установка и запуск клиента

  • Запишите образ на microSD карту, используя Etcher.
  • Вставьте флешку в Raspberry Pi на коптере и включите его. Дождитесь появления сети clever-show-XXXX.
  • Подключитесь к сети коптера, используя пароль cloverwifi.
  • Подключитесь к Raspberry Pi на коптере с помощью ssh, используя статический ip 192.168.11.1, имя пользователя pi и пароль raspberry.
  • После подключения выполните скрипт настройки клиента client-setup с указанными параметрами - название точки доступа (SSID), пароль точки доступа (password), имя коптера (copter name). Коптер переключится в режим клиента указанной точки доступа и настроит автозапуск клиента clever-show на Raspberry Pi. Все три параметра не должны содержать пробелов и кавычек в названии!
sudo client-setup <SSID> <password> <copter name>

Пример:
sudo client-setup drone-show-wifi password_12345 clover-1
  • Теперь при запуске серверного приложения настроенные коптеры будут отображаться в виде строк в таблице. Также можно подключаться к Raspberry Pi на коптере по его имени с добавкой .local через ssh в указанной при настройке wifi сети, например ssh [email protected], пароль raspberry.

Подробная документация по настройке клиентской части находится здесь.

Установка и запуск сервера

  • Установите chrony на ваш компьютер для синхронизации времени с коптерами:
sudo apt install chrony
  • Установите необходимые python-пакеты с помощью команды (запущенной из директории с исходным кодом)
pip3 install -r requirements.txt
  • Подключитесь к wifi сети роутера, к которому подключены коптеры.
  • Скопируйте файл настроек chrony в /etc/chrony/chrony.conf. Если ip адрес сети начинается не с 192.168., то исправьте адрес после слова allow в скопированном файле настроек.
  • Перезапустите сервис chrony
sudo systemctl restart chrony
  • Перейдите в директорию сервера из директории с исходным кодом и запустите сервер
cd clever-show/server
python3 server.py
  • Через некоторое время коптеры с настроенным образом подключатся к серверу и отобразятся в виде строк в таблице.

Подробная документация по настройке серверной части находится здесь.

Подготовка коптера

Дальнейшие инструкции написаны для коптеров, элементы которых расположены согласно инструкции по сборке. Полётный контроллер коптера должен быть предварительно настроен и откалиброван согласно статьям по настройке:

  • Первоначальная настройка
  • Калибровка датчиков
  • Настройка пульта
  • Полётные режимы

Перед тем как приступать к настройке программного обеспечения, проверьте, что коптер управляется с пульта в режиме Stabilized.

Включите коптер и запустите серверное приложение на компьютере. Дождитесь подключения коптера к серверу и отображения данных его телеметрии в таблице.

Проверка позиционирования

Для автономного воспроизведения анимации все коптеры должны иметь настроенную систему позиционирования. Образ clever-show для коптера настроен по умолчанию на полёт с использованием optical flow: на коптере должен быть установлен лазерный дальномер, а камера должна быть наклонена вниз шлейфом назад. Данная система позиционирования подходит для демонстрации полёта одного коптера или же для синхронного полёта нескольких коптеров по одной и той же анимации внутри помещения.

Перед проверкой автономного взлёта проведите автоматическую проверку корректности настроек коптера согласно статье.

Проверьте, что коптер удерживает позицию автономно: отметьте чекбокс около названия коптера и нажмите кнопку Takeoff в правой панели интерфейса сервера. Коптер должен взлететь на высоту, указанную в параметре takeoff_height раздела FLIGHT конфигурации клиента. По умолчанию эта высота равна 1 метр. Если коптер взлетел и удерживает позицию на высоте 1 метр, проверка пройдена. Посадите коптер на землю, нажав на кнопку Land или Land All. Внимание! Для вашей безопасности рекомендуется проводить проверку автономного взлёта с включенным пультом и возможностью перехвата коптера в режим ручного управления.

Вы можете настроить коптер на другую систему позиционирования. Официально поддерживаются следующие системы позиционирования:

  • optical flow
  • aruco
  • gps

Подробная информация про работу с системами позиционирования и их настройку находится здесь.

Проверка работы светодиодной ленты

Светодиодная лента должна быть подключена к порту GPIO 21 Raspberry Pi и иметь не более 60 светодиодов для работы с настроенным по умолчанию образом clever-show. Проверьте работу ленты, выделив нужный коптер в таблице и нажав кнопку Test leds - лента на коптере должна 2 раза мигнуть белым цветом.

Описание настройки и работы со светодиодной ленты находится в документации clover.

Синхронизация времени

Для корректного воспроизведения анимации очень важна синхронизация времени между всеми коптерами, участвующими в анимации, и сервером. Чем точнее будет синхронизировано время, тем более согласованным будет полёт группы коптеров. В качестве инструмента синхронизации времени рекомендуется успользовать сервис chrony. Процесс установки и настройки данного сервиса для сервера описан выше, в образе clever-show данный сервис уже установлен.

После первого подключения коптера к серверу, сервис chrony в коптере автоматически настраивается на подключение по ip адресу сервера и перезагружается. Однако на сервере сервис chrony может перестать посылать пакеты синхронизации времени при смене wifi сети и время между коптерами и сервером перестанет синхронизироваться. Разница между временем, пришедшим с коптера, и временем сервера отображается в столбце dt в таблице сервера. Нормальный уровень разницы по времени должен быть не больше 0.1 секунды (порядка 0.01 секунды), однако может быть и больше вследствие сетевых задержек при передаче телеметрии с коптера. Если разница по времени больше 0.1 секунды, рекомендуется перезапустить сервис chrony с помощью команды из верхнего меню сервера Selected drones -> Restart service -> chrony. Данная команда перезагружает сервис синхронизации времени на сервере (потребуется ввести пароль пользователя) и на коптерах.

Подготовка и запуск анимации

По умолчанию в клиент уже загружена анимация basic:

basic animation

Красная линия - ось x, зелёная - ось y. Куб в анимации двигается в положительном направлении по оси x. Модуль воспроизведения анимации проведёт коптер по точкам, указанным в файле анимации, относительно системы координат, заданной в настройке frame_id раздела FLIGHT конфигурации клиента (по умолчанию map). При этом коптер запустит двигатели перед взлётом и выключит их после посадки. Момент взлёта и посадки коптера определяется автоматически.

Информация о текущем положении коптера указана в столбце current x y z yaw frame_id таблицы сервера. Информация о стартовой точке анимации и времени, через которое коптер включит моторы, указана в столбце start x y z yaw action delay. Для первой проверки анимации важно, чтобы координаты в этих столбцах совпадали. Если это не так, самый простой способ решить эту проблему - перезагрузить коптер и дождаться его загрузки.

Проверьте воспроизведение анимации, нажав кнопку Start animation: первые две секунды коптер будет изменять цвет ленты, затем запустит моторы, взлетит на 1 метр вверх, затем пролетит 1 метр вправо и начнёт опускаться вниз. После касания земли в анимации коптер перейдёт в режим посадки, заглушит двигатели, и продолжит менять цвет светодиодной ленты до окончания анимации.

Результат выполнения анимации должен выглядеть так (с точностью до настройки PID коэффициентов):

basic animation

Подробная информация по работе модуля анимации находится здесь.