ROS · Clover

ROS · Clover Самолеты
Содержание
  1. Введение · clover
  2. Coex pix
  3. Dhcpcd
  4. Firmware variants
  5. Get_telemetry
  6. Installing esc and pdb
  7. Installing led strip and legs
  8. Isc-dhcp-server
  9. Navigate_global
  10. Pixracer
  11. Set_position
  12. Set_rates
  13. Wpa_supplicant
  14. Анализ логов
  15. Базовые команды
  16. Включение, выключение моторов, изменение режимов
  17. Воздушная подушка и управление в ней
  18. Запуск px4 для gazebo
  19. Изменение пароля или ssid (имени сети)
  20. Использование из языка python
  21. Конфигурация логгера
  22. Монтаж преобразователя напряжения bec (припаять и проверить)
  23. Монтаж радиоприемника
  24. Написание программы
  25. Настройка среды для запуска gazebo
  26. Несколько wi-fi адаптеров
  27. Перевод пульта в режим pwm
  28. Переключение адаптера в режим клиента
  29. Переключение адаптера в режим точки доступа
  30. Предполетные проверки
  31. Приватное имя
  32. Проверка направления вращения моторов
  33. Работа с led-лентой через ros
  34. Работа с qr-кодами
  35. Работа с креном и тангажом
  36. Работа с рысканьем
  37. Регулятор угловых скоростей
  38. Сборка рамы
  39. Сопряжение приемника и пульта
  40. Состав конструктора
  41. Установка esc и pdb
  42. Установка led ленты и ножек
  43. Установка raspberry pi
  44. Установка акб
  45. Установка защиты
  46. Установка полетного контроллера
  47. Установка полетного контроллера pixhawk
  48. Установка пропеллеров и подготовка к полёту

Введение · clover

Клевер 4.2

«Клевер» — это учебный конструктор программируемого квадрокоптера, состоящего из популярных открытых компонентов, а также набор необходимой документации и библиотек для работы с ним.

Набор включает в себя полетный контроллер COEX Pix с полетным стеком PX4, Raspberry Pi 4 в качестве управляющего бортового компьютера, модуль камеры для реализации полетов с использованием компьютерного зрения, а также набор различных датчиков и другой периферии.

Платформа Клевера также включает в себя преднастроенный образ для Raspberry Pi в полным набором необходимого ПО для работы со всей периферией и программирования автономных полетов. Исходный код платформы Клевера и данной документации открыт и доступен на GitHub.

Если вы детально изучили документацию, но так и не нашли ответа на свой вопрос, напишите в чат техподдержки и наши специалисты вам с радостью ответят: @COEXHelpdesk.

Также у нас есть чат для программистов, которые разрабатывают под PX4, автономную навигацию в помещениях и рои дронов: @DroneCode.

Чат по разработке самой платформы Клевера и образа для RPi: @devclover.

Вы можете скачать PDF-версию этой документации. The English version of this documentation is available.

Coex pix

Перед установкой демпферных стоек, накрутите 2 слоя нейлоновых гаек, для более прочного крепления или откусите лишнюю резьбу с помощью бокорезов.

  1. Закрепите плату распределения питания с помощью нейлоновых гаек, сверху установите демпферные стойки.

  2. Установите полетный контроллер и закрепите нейлоновыми гайками.

    ROS · Clover

  3. Вставьте флеш-карту для записи логов в полетный контроллер.

    ROS · Clover

Dhcpcd

Начиная с Raspbian Jessie настройки сети больше не задаются в файле /etc/network/interfaces. Теперь за выдачу адресации и настройку маршрутизации отвечает dhcpcd [4].

По умолчанию на всех интерфейсах включен dhcp-клиент. Настройки интерфейсов меняются в файле /etc/dhcpcd.conf. Для того, чтобы поднять точку доступа необходимо прописать статический ip-адрес. Для этого в конец файла необходимо добавить следующие строки:

interface wlan0
static ip_address=192.168.11.1/24

Если интерфейс является беспроводным (wlan), то служба dhcpcd триггерит wpa_supplicant [13], который в свою очередь работает непосредственно с wifi-адаптером и переводит его в заданное состояние.

Firmware variants

The name of the firmware file contains information about the target flight controller and build variant. For example:

  • px4fmu-v4_default.px4 — firmware for COEX Pix and Pixracer with EKF2 and LPE (Clover 3 / Clover 4).
  • px4fmu-v2_lpe.px4 — firmware for Pixhawk with LPE (Clover 2).
  • px4fmu-v2_default.px4 — firmware for Pixhawk with EKF2.
  • px4fmu-v3_default.px4 — firmware for newer Pixhawk versions (rev. 3 chip, see Fig. Bootloader v5) with EKF2 and LPE.

In order to flash the px4fmu-v3_default.px4 file, you may need to use the force_upload command in the command prompt.

Get_telemetry

Получить полную телеметрию коптера.

Параметры:

Формат ответа:

  • frame_id – система координат;
  • connected – есть ли подключение к FCU;
  • armed – состояние armed винтов (винты включены, если true);
  • mode – текущий полетный режим;
  • x, y, z – локальная позиция коптера (м);
  • lat, lon – широта, долгота (градусы), необходимо наличие GPS;
  • alt – высота в глобальной системе координат (стандарт WGS-84, не AMSL!), необходимо наличие GPS;
  • vx, vy, vz – скорость коптера (м/с);
  • pitch – угол по тангажу (радианы);
  • roll – угол по крену (радианы);
  • yaw – угол по рысканью (радианы);
  • pitch_rate – угловая скорость по тангажу (рад/с);
  • roll_rate – угловая скорость по крену (рад/с);
  • yaw_rate – угловая скорость по рысканью (рад/с);
  • voltage – общее напряжение аккумулятора (В);
  • cell_voltage – напряжение аккумулятора на ячейку (В).

Недоступные по каким-то причинам поля будут содержать в себе значения NaN.

Вывод координат x, y и z коптера в локальной системе координат:

telemetry = get_telemetry()
print(telemetry.x, telemetry.y, telemetry.z)

Вывод высоты коптера относительно карты ArUco-меток:

telemetry = get_telemetry(frame_id='aruco_map')
print(telemetry.z)

Проверка доступности глобальной позиции:

import math
ifnot math.isnan(get_telemetry().lat):
    print('Global position is available')
else:
    print('No global position')

Вывод текущей телеметрии (командная строка):

rosservice call /get_telemetry "{frame_id: ''}"

Installing esc and pdb

  1. Install the Power Distribution Board (PDB) on the pre-mounted stands, it must be installed with the power cable pointing towards the rear of the aircraft.

  2. Install the speed controllers (ESC) to the appropriate positions on the beam.

  3. Tighten the speed controllers (ESC) with cable ties.

    ROS · Clover

  4. Measure out the required amount of ESC power wire, and cut off the excess.

  5. Strip and tin the cut wires

  6. Tin the contact pads on the power distribution board.

  7. Solder the ESC power wires to the power distribution board.

    Be careful with the pin signatures on the board. The red wire should go to the site with the signature , and the black one to the signature .

  8. Cut off the excess phase cable coming from the motors.

  9. Strip and tin the phase cables.

  10. Tin the contact pads of the governors.

  11. Solder the phase cables to the contact pads of the regulators in any order.

  12. Solder 3 female JST connectors to 5V pads and bat pad

Installing led strip and legs

  1. Assemble the hoop for the LED strip by locking the ends together.

    ROS · Clover

  2. Solder the JST male to the power pad and the Dupont-female to the signal pad.

    ROS · Clover

  3. Stick the LED strip to the hoop, for greater strength, tighten it with 3-4 clamps.

    ROS · Clover

  4. Install the feet on the stiffener plate with self-locking nuts and M3x8 screws only using the outermost mounting holes. From below, between the plates of the legs, install a damper silicone ring.

    ROS · Clover

  5. Bend the legs back and install the hoop with the LED strip in the special groove on them, so that the connection cables exit from the tail side of the copter.

    ROS · Clover

  6. Secure the legs with self-locking nuts and M3x10 screws.

    ROS · Clover

  7. Connect the LED strip power to the JST 5V connector on the power distribution board.

    ROS · Clover

  8. Connect the signal output of the LED strip in the Raspberry Ri to pin GPIO21.

    ROS · Clover

  9. Install the mounting deck and secure it with M3x8 screws.

    ROS · Clover

Isc-dhcp-server

sudo apt install isc-dhcp-server

sed -i 's/INTERFACESv4=""/INTERFACESv4="wlan0"/' /etc/default/isc-dhcp-server
cat << EOF | sudo tee /etc/dhcp/dhcpd.conf
subnet 192.168.11.0 netmask 255.255.255.0 {
  range 192.168.11.11 192.168.11.254;
  
  option routers 192.168.11.1;
  option broadcast-address 192.168.11.255;
  default-lease-time 600;
  max-lease-time 7200;
}

EOF
cat << EOF | sudo tee /etc/network/if-up.d/isc-dhcp-server && sudo chmod  x /etc/network/if-up.d/isc-dhcp-server
#!/bin/shif [ "$IFACE" = "--all" ];
then sleep 10 && systemctl start isc-dhcp-server.service &
fi

EOF

Полет по прямой в точку в глобальной системе координат (широта/долгота).

Параметры:

Для полета без изменения угла по рысканью достаточно установить yaw в NaN (значение угловой скорости по умолчанию – 0).

Полет в глобальную точку со скоростью 5 м/с, оставаясь на текущей высоте (yaw установится в 0, коптер сориентируется передом на восток):

navigate_global(lat=55.707033, lon=37.725010, z=, speed=5, frame_id='body')

Полет в глобальную точку без изменения угла по рысканью (yaw = NaN, yaw_rate = 0):

navigate_global(lat=55.707033, lon=37.725010, z=, speed=5, yaw=float('nan'), frame_id='body')

Полет в глобальную точку (командная строка):

rosservice call /navigate_global "{lat: 55.707033, lon: 37.725010, z: 0.0, yaw: 0.0, yaw_rate: 0.0, speed: 5.0, frame_id: 'body', auto_arm: false}"

Pixracer

  1. Закрепите плату распределения питания с помощью нейлоновых стоек 6мм.

  2. Установите малую крепежную деку и закрепите ее с помощью нейлоновых гаек.

    ROS · Clover

  3. Склейте 3–4 слоя двустороннего скотча, приклейте его в центр малой деки и установите сверху Pixracer.

    ROS · Clover

  4. Вставьте флеш-карту для записи логов в полетный контроллер.

    ROS · Clover

Set_position

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

Для полета на точку по прямой или взлета используйте более высокоуровневый сервис navigate.

Параметры:

Зависнуть на месте:

set_position(frame_id='body')

Назначить целевую точку на 3 м выше текущей позиции:

set_position(x=, y=, z=3, frame_id='body')

Назначить целевую точку на 1 м впереди текущей позиции:

set_position(x=1, y=, z=, frame_id='body')

Вращение на месте со скоростью 0.5 рад/c:

set_position(x=, y=, z=, frame_id='body', yaw=float('nan'), yaw_rate=0.5)

Set_rates

Установить угловые скорости по тангажу, крену и рысканью и уровень газа (примерный аналог управления в режиме ACRO). Это самый низкий уровень управления коптером (исключая непосредственный контроль оборотов моторов). Данный сервис может быть использован для автоматического выполнения акробатических трюков (например, флипа).

Параметры:

  • pitch_rate, roll_rate, yaw_rate – угловая скорость по тангажу, крену и рыканью (рад/с);
  • thrust – уровень газа от 0 (нет газа, пропеллеры остановлены) до 1 (полный газ).
  • auto_arm – перевести коптер в OFFBOARD и заармить автоматически (коптер взлетит);

Положительное направление вращения yaw_rate (при виде сверху) – против часовой, pitch_rate – вперед, roll_rate – влево.

Wpa_supplicant

wpa_supplicant – служба конфигурирует Wi-Fi адаптер. Служба wpa_supplicant работает не как самостоятельная (хотя как таковая существует), а запускается как дочерний процесс от dhcpcd.

Конфигурационный файл по умолчанию должен иметь путь /etc/wpa_supplicant/wpa_supplicant.conf.
Пример конфигурационного файла:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=GB

network={
        ssid="my-clover"
        psk="cloverwifi"
        mode=2
        proto=RSN
        key_mgmt=WPA-PSK
        pairwise=CCMP
        group=CCMP
        auth_alg=OPEN
}

Внутри конфига указываются общие настройки wpa_supplicant и параметры для настройки адаптера. Также конфигурационный файл содержит секции network – основные настройки Wi-Fi сети такие как SSID сети, пароль, режим работы адаптера.

Таких блоков может быть несколько, но используется первый рабочий. Например, если вы указали в первом блоке подключение к некоторой недоступной сети, то адаптер будет настроен следующей удачной секцией, если такая есть. Подробнее о синтаксисе wpa_supplicant.conf [TODO WIKI].

Анализ логов

Настройка параметров с использованием логов сильно сложнее чем визуальная настройка и при неправильных действиях вы можете ухудшить качество полета вашего коптера.

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

Среди представленных графиков, больше всего вам могут понадобиться:

  • Roll/Pitch/Yaw Angular Rate – графики угловых скоростей
  • Roll/Pitch/Yaw Angle – графики углов наклона
  • Local Position X/Y/Z – позиция вашего коптера в пространстве
  • Step Response for Roll/Pitch/Yaw Rate – отклик коптера на входящее управление

Ниже представлены графики угловых скоростей и углов при хороших настройках регулятора.

На графиках красной линией отмечено рассчитанное значение, а зеленой требуемое.

Качество настройки характеризуется тем, что рассчитанное значение должно быть максимально близким к требуемому. Если оба графика совпадают, это значит, что ваш коптер точно выполняет все переданные ему команды, если же графики сильно отличаются, во время полета вы заметите, что коптер неправильно выполняет ваши команды управления.

Базовые команды

Вам пригодятся основные команды Linux, а также специальные команды Clover, чтобы уверенно работать в системе.

Показать список файлов:

ls

Перейти в папку с прописыванием пути к ней:

cd catkin_ws/src/clover/clover/launch/

Перейти в домашнюю директорию:

cd

Открыть файл file.py:

nano file.py

Открыть файл clover.launch с прописыванием полного пути к нему (сработает, если вы находитесь в другой папке):

nano ~/catkin_ws/src/clover/clover/launch/clover.launch

Сохранить файл (нажимать последовательно):

Ctrl X; Y; Enter

Удалить файл или папку с названием name (ВНИМАНИЕ: операция выполнится без подтверждения. Будьте осторожны!):

rm -rf name

Создать папку с названием myfolder:

mkdir myfolder

Полная перезагрузка Raspberry Pi:

sudo reboot

Перезапуск только систем Клевера:

sudo systemctl restart clover

Выполнить самопроверку Клевера:

rosrun clover selfcheck.py

Остановить программу

Ctrl C

Запустить программу myprogram.py на Питоне:

python3 myprogram.py

Журнал событий процессов Клевера. Пролистывать список можно нажатием Enter или сочетанием клавиш Ctrl V (пролистывает быстрее):

journalctl -u clover

Открыть файл sudoers от имени администратора (он не откроется без прописывания sudo. Через sudo можно запускать другие команды, если они не открываются без прав администратора):

sudo nano /etc/sudoers

Включение, выключение моторов, изменение режимов

Для удобства подключитесь к коптеру с помощью QGC через Wi-Fi и включите звук. Это позволит наблюдать за изменением полетных режимов. Если не имеется возможности подключиться через Wi-Fi, для проверки полетных режимов подключитесь по USB.

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

Рекомендуется настроить Kill Switch. Для его проверки совершите следующие действия:

  • Включите Kill Switch, проверьте, что в QGC появилось соответствующее уведомление.
  • Переведите коптер в состояние Armed, а затем включите Kill Switch. Убедитесь, что моторы выключились. Затем переключите тумблер Kill Switch в изначальное положение. Если коптер автоматически не перешел в состояние Disarmed из-за бездействия, моторы снова начнут вращаться.

Переводите коптер в состояние Armed только на полетной зоне.

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

Воздушная подушка и управление в ней

Понятие воздушной подушки очень важно во всей летательной технике. Сама по себе воздушная подушка является зоной повышенного давления, возникающая за счет воздуха пропускаемого через пропеллеры. Данная область характеризуется турбулентностями и воздушными потоками влияющими на полет коптера.

Пилоты стараются избегать полетов в воздушной подушке, но на ее границе имеется стабильная область, в которой коптер может зависнуть при минимальном значении газа. В таком случае создается ощущение, что коптер “сел” на воздушную подушку.

Главная особенность и преимущество такого полета заключается в том, что коптер не будет изменять высоту при одном значении газа.

Основные задания:

  1. Стабилизация коптера на одном месте.
  2. Полет по квадрату.
  3. Полет по кругу.

Аналогично с предыдущими упражнениями перед взлетом выполните следующие действия.

Упражнение №1. Поднимайте стик газа, пока коптер не пролетит воздушную подушку и не окажется над ней (высота от пола ~25-30 см, для коптера Клевер 4). Коптер не должен подниматься вверх или проваливаться вниз, высота полета должна стабилизироваться.

Упражнение №2. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Далее пролетите по квадрату со стороной 1 м сначала по часовой стрелке, потом против часовой стрелки. Повторите траекторию в каждую сторону 2-3 раза.

Упражнение №3. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Попробуйте описать коптером круг с диаметром 1 м, по часовой и против часовой стрелки. Повторите траекторию в каждую сторону 2-3 раза.

Запуск px4 для gazebo

Для того, чтобы открыть окно PX4 параллельно с симулятором, откройте дополнительное окно терминала.

Чтобы запустить PX4 и подключить его к Gazebo, в директории Firmware соберите сам пакет симулятора:

make posix_sitl_default

Теперь при запущенном симуляторе, вы можете вызвать окно PX4. Для этого в той же директории вызовите команду:

./build/posix_sitl_default/px4 . posix-configs/SITL/init/ekf2/iris

После загрузки консоли, вы можете проверить то что соединение с симулятором установлено, вызвав команду commander takeoff для взлета и commander land для посадки.

Изменение пароля или ssid (имени сети)

  1. Отредактируйте файл /etc/wpa_supplicant/wpa_supplicant.conf (используя SSH-соединение):

     sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
    

    Измените значение параметра ssid, чтобы изменить название Wi-Fi сети, и параметра psk, чтобы изменить пароль. Например:

     network={
         ssid="my-super-ssid"
         psk="cloverwifi123"
         mode=2
         proto=RSN
         key_mgmt=WPA-PSK
         pairwise=CCMP
         group=CCMP
         auth_alg=OPEN
     }
    
  2. Перезагрузите Raspberry Pi.

Длина пароля для Wi-Fi сети должна быть не менее 8 символов.

При некорректных настройках wpa_supplicant.conf Raspberry Pi перестанет раздавать Wi-Fi!

Использование из языка python

Для использования сервисов, необходимо создать объекты-прокси к ним. Используйте этот шаблон для вашей программы:

import rospy
from clover import srv
from std_srvs.srv import Trigger

rospy.init_node('flight')

get_telemetry = rospy.ServiceProxy('get_telemetry', srv.GetTelemetry)
navigate = rospy.ServiceProxy('navigate', srv.Navigate)
navigate_global = rospy.ServiceProxy('navigate_global', srv.NavigateGlobal)
set_position = rospy.ServiceProxy('set_position', srv.SetPosition)
set_velocity = rospy.ServiceProxy('set_velocity', srv.SetVelocity)
set_attitude = rospy.ServiceProxy('set_attitude', srv.SetAttitude)
set_rates = rospy.ServiceProxy('set_rates', srv.SetRates)
land = rospy.ServiceProxy('land', Trigger)

Неиспользуемые функции-прокси можно удалить из кода.

Конфигурация логгера

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

  • SDLOG_PROFILE – включение большого количества функций приводит к увеличению размера файла лога, а также к увеличению требований по скорости записи, перед начало работой убедитесь, что используете накопитель с достаточной пропускной способностью.
    1. default set – запись общих логов системы
    2. estimator replay (EKF2) – более подробное логирование при использовании EKF2
    3. thermal calibration – высокочастотные данные с IMU и барометра
    4. system identification – высокочастотные данные приводов и IMU
    5. high rate – высокочастотные данные радио, угловых скоростей и приводов
    6. debug – для записи пользовательских отладочных топиков
    7. sensor comparison – низкочастотные данные IMU, барометра и компаса, для сравнения показаний датчиков
  • SDLOG_MODE
    1. when armed until disarm – лог записывается с момента арма коптера, до момента дизарма коптера
    2. from boot until disarm – лог записывается с момента запуска системы, до момента дизарма коптера
    3. from boot until shutdown – лог записывается с момента запуска системы, до момента выключения системы

Монтаж преобразователя напряжения bec (припаять и проверить)

  1. Распаковать плату питания и установить шлейф питания.
  2. Включить мультиметр в режим измерения постоянного напряжения (диапазон 20В или 200В).
  3. Проверить работоспособность платы питания, подключив АКБ
    • Выходное напряжение на разъеме XT30 должно равняться напряжению на АКБ (от 10В до 12.6В).
    • Выходное напряжение на шлейфе питания должно быть в пределах 4.9В до 5.3В.
    • Измеряем между черным и красным проводами.
  4. Распаковывать преобразователь напряжения и снимаем прозрачную изоляцию.
  5. Припаять два дополнительных провода на BEC

  6. Проверить работу BEC.

    • Припаять BEC на плату питания:

        ЧЕРНЫЙ -> -
        КРАСНЫЙ ->  
      
    • Подключить АКБ и проверяем напряжение на припаянных проводах к BEC (из пункта 5).

      5В – все правильно!

      больше 10В – отключите питание и переставьте желтую перемычку на другой пинцет.

      0В – плохо спаяли.

    • Если BEC выдает 5В, то изолируем паячное соединение черной термоусадкой.
  7. Монтаж светодиодной ленты.

Монтаж радиоприемника

  1. Установить пластиковые стойки 30 мм на раму винтами М3х8.
  2. Разъем питания 5В продеть в прорезь. Установка стоек и прорезь
  3. Приемник прикрепить к нижней дополнительной раме, используя двухсторонний скотч и ориентируясь на гравировку. Антенны направлены вперед. Установка радиоприемника на деку
  4. Установить 3х проводной шлейф в канал PPM / CH1. Подключение радиоприемника
  5. Продеть в прорезь к разъему 5 В.
  6. Прикрутить нижнюю дополнительную раму к стойкам на центральной раме винтами М3х8. Установка нижней деки

    Направление стрелок на плате питания и на дополнительной раме совпадают

Написание программы

В статье “Автономный полет” описана работа с модулем simple_offboard, который создан для простого программирования дрона. В ней даны описания основных функций, а также примеры кода.

  • Скопируйте из раздела “Использование из языка Python” пример кода и вставьте в редактор (например, в Visual Studio Code, PyCharm, Sublime Text, Notepad ).

  • Сохраните документ с расширением .py для включения подсветки текста.

  • Далее необходимо добавить полётные команды в программу. Примеры таких команд представлены в статье. Нужно написать функции для взлета и полета в точку, а также для посадки.

  • Взлет.

    Для взлета можно использовать функцию navigate:

    navigate(x=, y=, z=1.5, speed=0.5, frame_id='body', auto_arm=True)
    

    Добавьте эту строку внизу программы.

    Также добавьте команду ожидания:

    rospy.sleep(3)
    

Важно выделить время на выполнение команды navigate, иначе коптер, не дожидаясь выполнения предыдущей команды, сразу перейдет к выполнению следующей. Для этого используется команда rospy.sleep(). В скобках указывается время в секундах. Функция rospy.sleep() относится к предыдущей команде navigate, а не к последующей, то есть это время, которое мы даем на то, чтобы долететь до точки, обозначенной в предыдущем navigate.

  • Зафиксировать положение дрона в системе координат маркерного поля.

    Для этого нужно выполнить navigate и указать в нем необходимые координаты (например, x=1, y=1, z=1.5) и выбрать систему координат (frame_id):

    navigate(x=1, y=1, z=1.5, speed=1, frame_id='aruco_map')
    
  • В итоге должно получиться:

    navigate(x=, y=, z=1.5, speed=0.5, frame_id='body', auto_arm=True)
    rospy.sleep(3)
    navigate(x=1, y=1, z=1.5, speed=1, frame_id='aruco_map')
    

    Обратите внимание, что параметр auto_arm=True ставится только при первом взлете. В остальных случаях его выставлять нельзя, иначе возникнут проблемы с перехватом управления.

  • Если вы хотите добавить другие точки для пролета, нужно дописать еще один navigate и rospy.sleep(). Время нужно вычислить отдельно для каждой точки в зависимости от скорости полета и расстояния между точками.

    Например, если мы хотим полететь в точку (3, 3, 1.5):

      navigate(x=3, y=3, z=1.5, speed=1, frame_id=‘aruco_map’)
      rospy.sleep(3)
    

    Координаты не должны выходить за пределы вашего поля. Если поле имеет размер 4х4 метра, максимальное значение координат, которое стоит указывать, — 4.

  • После пролета по точкам нужно приземлиться. Следующая строка ставится в конце программы:

    land()
    

Настройка среды для запуска gazebo

Для того, чтобы запустить симулятор полета дрона, Gazebo или jMAVSim вам потребуется сделать соответственные настройки вашей среды.

Среда ROS Melodic изначально ориентированна для Ubuntu версии 18.04 (Bionic), поэтому актуальность данной инструкции гарантируется только для данной версии операционной системы.

В первую очередь вам потребуется установить полный пакет ROS Melodic desktop-full, инструкцию по установке вы можете найти в статье по установке ROS.

После того, как вы выполнили указанные выше инструкции, вам нужно проверить, есть ли в вашем пакете ROS все нужные пакеты.

sudo apt-get install ros-melodic-gazebo-ros 
                     ros-melodic-gazebo-dev 
                     ros-melodic-gazebo-plugins 
                     ros-melodic-gazebo-ros-pkgs 
                     ros-melodic-gazebo-msgs 
                     ros-melodic-geographic-msgs

Чтобы избежать ошибок во время запуска симулятора, вам нужно будет установить Gazebo v9.11, для этого подключите необходимый репозиторий и добавьте соответствующие ключи:

Несколько wi-fi адаптеров

В системе может быть несколько Wi-Fi адаптеров. Если для них корректно подключены драйвера, то их можно увидеть вызвав ifconfig (например wlan0 и wlan1).

Если у вас несколько адаптеров, для всех будет использоваться одна и та же самая рабочая секция network. Это связано с тем, что для каждого интерфейса, dhcpcd отдельно создает по дочернему процессу wpa_supplicant, в котором выполняется один тот же код (т. к. конфиг один и тот же).

Для работы нескольких адаптеров с отдельными настройками для каждого, в стандартном вызываемом скрипте dhcpcd реализован механизм запуска разных конфигурационных скриптов. Для его использования необходимо переименовать стандартный файл конфига по следующему образцу: wpa_supplicant-<имя интерфейса>.conf, например wpa_supplicant-wlan0.conf.

Для применения настроек необходимо перезапустить родительский процесс – службу dhcpcd. Сделать это можно следующей командой:

sudo systemctl restart dhcpcd

Перевод пульта в режим pwm

Включите пульт с помощью слайдера POWER. Если пульт заблокирован, необходимо перевести все стики в начальное положение:

  1. Левый стик в центральной нижней позиции.
  2. Правый стик в центре.
  3. Переключатели A, B, C, D в положение “от себя”.

    Нейтральное положение стиков пульта

Убедитесь, что PPM в меню RX Setup отключен:

  1. Убедитесь, что питание дрона выключено.
  2. Для входа в меню удерживайте нажатой кнопку “ОК”.
  3. Кнопками Up/Down выбираем меню “System setup”, кнопкой “ОК” подтвердите выбор.
  4. Выберите “RX Setup”.
  5. Выберите “Output mode”.
  6. Убедитесь, что в открывшемся меню выбран пункт “PWM”.
  7. Чтобы сохранить настройки, удерживайте нажатой кнопку “Cancel”.

Переключение адаптера в режим клиента

  1. Выключите службу dnsmasq.

     sudo systemctl stop dnsmasq
     sudo systemctl disable dnsmasq
    
  2. Включите получение IP адреса на беспроводном интерфейсе DHCP клиентом. Для этого удалите из файла /etc/dhcpcd.conf строки:

     interface wlan0
     static ip_address=192.168.11.1/24
    
  3. Настройте wpa_supplicant для подключения к существующей точке доступа. Для этого замените содержимое файла /etc/wpa_supplicant/wpa_supplicant.conf на:

     ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
     update_config=1
     country=GB
    
     network={
         ssid="SSID"
         psk="password"
     }
    

    где SSID – название сети, а password – пароль.

  4. Перезапустите службу dhcpcd.

     sudo systemctl restart dhcpcd
    

Переключение адаптера в режим точки доступа

  1. Включите статический IP адрес на беспроводном интерфейсе. Для этого добавьте в файл /etc/dhcpcd.conf строки:

     interface wlan0
     static ip_address=192.168.11.1/24
    
  2. Настроите wpa_supplicant на работу в режиме точки доступа. Для этого замените содержимое файла /etc/wpa_supplicant/wpa_supplicant.conf на:

     ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
     update_config=1
     country=GB
    
     network={
         ssid="clover-1234"
         psk="cloverwifi"
         mode=2
         proto=RSN
         key_mgmt=WPA-PSK
         pairwise=CCMP
         group=CCMP
         auth_alg=OPEN
     }
    

    где clover-1234 – название сети, а cloverwifi – пароль.

  3. Включите службу dnsmasq.

     sudo systemctl enable dnsmasq
     sudo systemctl start dnsmasq
    
  4. Перезапустите службу dhcpcd.

     sudo systemctl start dhcpcd
    

Предполетные проверки

Перед взлетом выполняйте следующие действия:

  1. Проверьте целостность коптера и возможность вращения пропеллеров.
  2. Убедитесь, что коптер находится задней частью к вам.
  3. Включите коптер путем подключения АКБ.
  4. Отойдите на безопасное расстояние. Рекомендуется соблюдать расстояние до коптера минимум 4–5 м.
  5. Убедитесь, что коптер находится в режиме Stabilized.

Не пытайтесь сразу оторвать коптер от земли, найдите минимально возможное положение стика для того, чтобы коптер начал дрейфовать по земле. В противном случае это может привести к поломкам или травмам.

В случае потери контроля над коптером необходимо сразу включать Kill Switch.

Упражнение №1. Медленно поднимайте стик газа вверх, пока коптер не начнет двигаться. В этот момент он начнет медленно дрейфовать по земле. Оставьте стик газа в таком положении и подождите пару секунд, затем переведите стик в изначальное положение, чтобы посадить коптер.

Упражнение №2. Медленно поднимайте стик газа вверх, пока коптер на начнет немного отрываться от земли. Оставьте стик газа в таком положении и подождите пару секунд, затем посадите коптер аналогично упражнению №1. Повторите упражнение 10-15 раз.

Упражнение №3. Поднимайте стик газа, пока коптер не начнет дрейфовать по земле, подождите секунду и продолжайте увеличивать газ до момента, когда коптер начнет отрываться от земли, подождите секунду и посадите коптер. Для закрепления повторяйте упражнения 10-15 раз, при необходимости увеличивая количество повторений.

Приватное имя

Каждая нода может использовать собственное приватное пространство имен (соответствующее имени ноды) для своих ресурсов. Например, нода aruco_detect может публиковать такие топики:

  • /aruco_detect/markers
  • /aruco_detect/visualization
  • /aruco_detect/debug

Когда нода ссылается на свой приватный ресурс, вместо пространства имен (/aruco_detect/) используется символ ~, например:

  • ~markers
  • ~visualization
  • ~debug

Таким образом, создание топика foo в приватном пространство имен из Python будет выглядеть так:

private_foo_pub = rospy.Publisher('~foo', String, queue_size=1)

Проверка направления вращения моторов

Моторы с красными гайками должны вращаться против часовой стрелки, с чёрными – по часовой стрелке. Правильные направления вращения также указаны на самих моторах. Для проверки направления вращения можно использовать сервотестер или радиоприёмник с пультом.

  1. Отключите АКБ и пульт.
  2. Подключите сигнальный провод от ESC к выходу CH3 на приёмнике. Белый провод должен подходить к верхнему пину, чёрный – к нижнему.
  3. Включите пульт. Левый стик должен быть в нижнем положении.
  4. Подключите АКБ.
  5. Медленно поднимайте левый стик до тех пор, пока мотор не начнёт вращаться.

Если мотор вращается в неправильную сторону, поменяйте местами два любых фазных провода.

Направление вращения также можно изменить программно. Процесс описан в статье про прошивку ESC.

Повторите процесс для каждого мотора.

Работа с led-лентой через ros

В образ Клевера для Олимпиады НТИ включена нода ROS, работающая со светодиодной подсветкой. С её помощью можно управлять светодиодами, не запуская свою программу из-под sudo. По умолчанию эта нода выключена, но её можно включить, если в файле /home/pi/catkin_ws/src/ros_ws281x/launch/clever4.launch изменить строку

и перезапустить службу rosled:

sudo systemctl restart rosled

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

import rospy
from ros_ws281x.srv import SetLeds
from ros_ws281x.msg import LEDState, LEDStateArray
from std_msgs.msg import ColorRGBA


NUM_LEDS = 60
set_leds = rospy.ServiceProxy("/led/set_leds", SetLeds, persistent=True)

deffill_strip(red, green, blue):
    led_msg = LEDStateArray()
    led_msg.leds = []
    for i in range(NUM_LEDS):
        led = LEDState(i, ColorRGBA(red, green, blue, ))
        
        led_msg.leds.append(led)
    
    set_leds(led_msg)



fill_strip(255, , )
rospy.sleep(2.0)
fill_strip(, 255, )
rospy.sleep(2.0)
fill_strip(, , 255)
rospy.sleep(2.0)

fill_strip(, , )

Работа с qr-кодами

Для высокоскоростного распознавания и позиционирования лучше использовать ArUco-маркеры.

Для программирования различных действий коптера при детектировании нужных QR-кодов можно использовать библиотеку pyZBar. Она уже установлена в последнем образе для Raspberry Pi.

Распознавание QR-кодов на Python:

import rospy
from pyzbar import pyzbar
from cv_bridge import CvBridge
from sensor_msgs.msg import Image

bridge = CvBridge()

rospy.init_node('barcode_test')

defimage_callback(data):
    cv_image = bridge.imgmsg_to_cv2(data, 'bgr8')  
    barcodes = pyzbar.decode(cv_image)
    for barcode in barcodes:
        b_data = barcode.data.decode("utf-8")
        b_type = barcode.type
        (x, y, w, h) = barcode.rect
        xc = x   w/2
        yc = y   h/2
        print("Found {} with data {} with center at x={}, y={}".format(b_type, b_data, xc, yc))

image_sub = rospy.Subscriber('main_camera/image_raw', Image, image_callback, queue_size=1)

rospy.spin()

Скрипт будет занимать 100% процессора. Для искусственного замедления работы скрипта можно запустить throttling кадров с камеры, например, в 5 Гц (main_camera.launch):

Топик для подписчика в этом случае необходимо поменять на main_camera/image_raw_throttled.

Работа с креном и тангажом

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

Управление данными осями интуитивно понятно:

  • Стик наклонен вперед (вверх) – коптер движется вперед.
  • Стик наклонен назад (вниз) – коптер движется назад.
  • Стик наклонен вправо – коптер движется вправо.
  • Стик наклонен влево – коптер движется влево.

Чем сильнее стик будет наклонен в сторону, тем сильнее коптер будет наклоняться в сторону быстрее двигаться.

Основные задания упражнения:

  1. Полет по оси X, вперед/назад.
  2. Полет по оси Y, влево/вправо.
  3. Стабилизация коптера на одном месте.
  4. Полет по квадрату по часовой стреле и против.

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

Как и в случае с управлением газом, перед полетом выполняйте следующие действия.

Если коптер сильно вращается вокруг своей оси, посадите его и повторно откалибруйте магнитометр и гироскоп.

Упражнение №1. Аналогично упражнениям по управлению газом поднимайте стик газа, пока коптер на начнет дрейфовать по земле или немного подпрыгивать, затем отпустите стик газа, оставив его в таком положении, и поднимайте стик тангажа, сначала вверх, на протяжении секунды, затем вниз.

Упражнение №2. Поднимайте стик газа, пока коптер не начнет дрейфовать, затем оставьте его и перемещайте стик крена сначала вправо, на протяжении секунды, затем влево. При этом коптер будет постепенно перемещаться сначала вправо, а затем влево. Повторите упражнение 5-10 раз, пока не почувствуете отзывчивость коптера на движение стика.

Упражнение №3. Поднимайте стик газа, пока коптер не начнет дрейфовать, затем оставьте его. Совместите первое и второе упражнение и постарайтесь стабилизировать коптер в одной точке, компенсируя его дрейф с помощью стика. Удерживайте коптер 20-30 секунд.

Упражнение №4. Поднимайте стик газа, пока коптер не начнет дрейфовать, затем оставьте его. Почувствовав отзывчивость коптера на изменения стиков выполните фигуру “квадрат” со стороной 1 м, сначала по часовой стрелке, а затем против. Выполняйте фигуры по 2-3 раза.

Работа с рысканьем

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

Термин рысканье (yaw) обозначает поворот коптера вокруг вертикальной оси.

Основные задания:

  1. Оборот коптера вокруг себя, ориентируя заднюю часть коптера к себе.
  2. Оборот вокруг коптера, ориентируя заднюю часть к себе.

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

Аналогично с предыдущими упражнениями перед взлетом выполните предполетные проверки.

Упражнение №1. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Описывайте коптером круг вокруг себя, на расстоянии 2-3 м, при этом поворачивая его таким образом, чтобы задняя часть коптера всегда была направлен на вас. Выполняйте упражнение по часовой стрелке и против. Повторите упражнение 4-5 раз.

Упражнение №2. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Обойдите коптер вокруг, при этом поворачивая его таким образом, чтобы задняя часть была направлена на вас. Обходите коптер по часовой стрелке и против. Повторите упражнение 4-5 раз.

Дополнительные упражнения значительно сложнее обычных и не обязательны к выполнению. Приступайте к ним, только если вы уже уверенно управляете коптером.

Дополнительное упражнение №1. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Разверните коптер передней частью к себе и пробуйте управлять им задом наперед.

Дополнительное упражнение №2. Поднимите коптер на воздушную подушку и стабилизируйте его в одной точке. Выполняйте полет таким образом, чтобы передняя часть коптера всегда смотрела в сторону его движения.

Регулятор угловых скоростей

Регулятор угловых скоростей является самым низкоуровневым в каскаде, он состоит из трех независимых ПИД-регуляторов, управляющих угловыми скоростями коптера по трем осям (крен, тангаж, рысканье).

  • Регулятор угловых скоростей по крену (MC_ROLLRATE_P, MC_ROLLRATE_I, MC_ROLLRATE_D)
  • Регулятор угловых скоростей по тангажу (MC_PITCHRATE_P, MC_PITCHRATE_I, MC_PITCHRATE_D)
  • Регулятор угловых скоростей по рысканью (MC_YAWRATE_P, MC_YAWRATE_I, MC_YAWRATE_D)

Хорошая настройка коэффициентов регулятора угловых скоростей очень важна и влияет на все режимы полета. В то время как плохая настройка регуляторов будет заметна во всех режимах полета, к примеру в режиме Position вы можете видеть подергивания во время зависания аппарата.

Регулятор угловых угловых скоростей можно настраивать как в режиме ACRO, так и в режиме STABILIZED.

Предпочтительнее настраивать регуляторы в режиме ACRO, поскольку вам будет легче визуально заметить произведенные изменения коэффициентов. Если вы собираетесь использовать этот режим отключите Expo-параметры и снизьте чувствительность стиков для облегчения управления.

  • MC_ACRO_EXPO = 0, MC_ACRO_EXPO_Y = 0, MC_ACRO_SUPEXPO = 0, MC_ACRO_SUPEXPOY = 0
  • MC_ACRO_P_MAX = 200, MC_ACRO_R_MAX = 200
  • MC_ACRO_Y_MAX = 100

Режим STABILIZED легче для управления но также в нем вам будет сложнее заметить изменения поведения вашего аппарата при настройке коэффициентов.

Если ваш аппарат вообще не летает обратите внимание на две основные вещи:

  • Если вы видите сильные осцилляции при попытке взлета, уменьшайте все коэффициенты P и D до тех пор, пока аппарат не поднимется в воздух.
  • С другой стороны, если аппарат почти не реагирует на управление передаваемое с пульта, увеличивайте коэффициент P.

Концепция настройки регуляторов одинакова как в режиме STABILIZED, так и в режиме ACRO. Итеративно с указанным шагом настраиваете коэффициенты P и D для крена и тангажа, а затем изменяете I. Первоначально вы можете использовать одинаковые значения для крена, когда регуляторы настроены достаточно хорошо вы можете точно донастроить их по крену и тангажу отдельно (если ваш аппарат симметричен, можете оставить коэффициенты одинаковыми).

Сборка рамы

  1. Совместите 4 луча с центральной декой, зафиксируйте их при помощи винтов М3х8 и самоконтрящихся гаек.

  2. На центральные отверстия в главной деке установите 2 стойки 15 мм и закрепите их с помощью винтов М3х8.

    ROS · Clover

  3. Установите крючок пластины жесткости в паз на луче.

    ROS · Clover

  4. Прижмите пластины жесткости к главной деке.

    ROS · Clover

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

    ROS · Clover

  6. Установите 4 нейлоновые стойки 6мм и закрепите их с помощью винтов М3х5.

    ROS · Clover

Сопряжение приемника и пульта

  1. Подключить провод 5В от BEC в разъем приемника.

    Установить BIND разъем в крайний правый порт B/VCC.

  2. Подключить АКБ. Индикатор на приемники должен быстро мигать (режим сброса).

  3. Зажать и удерживать кнопку BIND на пульте и включаем пульт.

    На пульте отображается процесс сопряжения RXBinding

  4. После установки сопряжения (появление допю строк на дисплее пульта):

    • Убрать BIND разъем из приемника.
    • Отключить АКБ.

Если пульт не включается или заблокирован, см.
статью неисправности пульта.

Состав конструктора

  • Рама центральная x2.
  • Рама дополнительная х4.
  • Луч x8.
  • Ножки x8.
  • Защита для лучей x8.
  • Защита пропеллеров x16.
  • Защита боковая x16.
  • Пропеллер пластиковый Dalprop 5045 x4.
  • Бесколлекторный электродвигатель Racerstar BR2205 2300kV x4.
  • Регуляторы хода ESC, DYS XSD20А x4.
  • Разъем силовой XT60 pin x1.
  • Разъем силовой XT60 socket x1.
  • Трехпроводной шлейф “мама-мама” x2.
  • Провод медный многожильный с силиконовой изоляцией 14AWG (красный, черный), длина 50 см.
  • Плата распределения питания PDB BeeRotor Power Distribution Board V2.0 x1.
  • Аккумуляторная батарея (АКБ) Li-ion 18650 x8.
  • Зарядное устройство EFEST Luc V4 Li-lon x1.
  • Защитный бокс регуляторов x4.
  • Крепление под ножки x8.
  • Полетный контроллер Pixhawk x1.
  • Радиоприемник FlySky i6 x1.
  • Радиопульт FlySky i6 x1.
  • Зарядное устройство EFEST LUC V4 x1.
  • Провод Micro USB – USB x1
  • Батарейный отсек 18650 Li-ion x1
  • Провод медный многожильный с силиконовой изоляцией 18AWG (красный, черный), длина 100 см.
  • Батарейка АА х4
  • Джампер, Bind-разъем

Установка esc и pdb

  1. На заранее закрепленные стойки установите плату распределения питания (PDB), она должна быть установлена таким образом, чтобы силовой кабель питания был направлен в сторону хвоста коптера.

  2. Установите регуляторы оборотов (ESC) в соответствующие места на луче.

  3. Притяните регуляторы оборотов (ESC) хомутами.

    ROS · Clover

  4. Отмерьте необходимое количество силового провода регуляторов оборотов(ESC), и обрежьте лишнее.

  5. Зачистите и залудите обрезанные провода.

  6. Залудите контактные площадки на плате распределения питания.

  7. Припаяйте силовые провода регуляторов оборотов к плате распределения питания.

    Будьте внимательны к подписям контактов на плате. Красный провод должен идти к площадке с подписью , а черный к подписи .

  8. Обрежьте лишний фазный кабель идущий от моторов.

  9. Зачистите и залудите фазные кабели.

  10. Залудите контактные площадки регуляторов оборотов.

  11. Припаяйте фазные кабели к контактным площадкам регуляторов в любом порядке.

  12. Припаяйте 3 разъема JST мама к 2ум площадкам 5V и площадке bat .

Установка led ленты и ножек

  1. Соберите обруч для светодиодной ленты, объединив замок на концах.

    ROS · Clover

  2. Припаяйте JST-папа к площадке питания и Dupont-мама к сигнальной площадке.

    ROS · Clover

  3. Наклейте светодиодную ленту на обруч, для большей крепкости притяните ее с помощью 3–4 хомутов.

    ROS · Clover

  4. Установите ножки на пластину жесткости с помощью самоконтрящихся гаек и винтов М3х10 используя только крайние монтажные отверстия. Снизу, между пластинами ножек, установите демпферное силиконовое колечко.

    ROS · Clover

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

    ROS · Clover

  6. Закрепите ножки с помощью самоконтрящихся гаек и винтов М3х10.

    ROS · Clover

  7. Подключите питание светодиодной ленты в разъем JST 5V на плате распределения питания.

    ROS · Clover

  8. Подключите сигнальный выход светодиодной ленты в Raspberry Ri, к пину GPIO21.

    ROS · Clover

  9. Установите монтажную деку и закрепите ее винтами М3х8.

    ROS · Clover

Установка raspberry pi

  1. На монтажную деку установите стойки 20 мм и 40 мм, закрепите их с помощью винтов М3х8.

    ROS · Clover

  2. Нарежьте резьбу М3 в крепежных отверстиях Raspberry Pi с помощью болта М3х10.

  3. Вкрутите в плату Raspberry Pi стойки 6мм, при необходимости закрепите их нейлоновыми гайками.

  4. Установите Raspberry Pi на монтажную деку, закрепив ее болтами М3х6.

    ROS · Clover

  5. Установите собранный модуль в соответствующие пазы основной деке дрона.

    ROS · Clover

  6. Подключите разъем 5V JST в соответствующие пины питания Raspberry Pi.

    ROS · Clover

  7. Возьмите 4 провода Dupont, обрежьте 5–7 см кабеля и припаяйте к соответствующим пинам дальномера.

    ПроводПин дальномера
    Красный5v
    ЧерныйGND
    ЖелтыйSDA
    ЗеленыйSCL
  8. Установите дальномер на деку захвата и Приклейте радиоприемник на 3М скотч.

    Устанавливайте дальномер таки образом, чтобы гайки не прислонялись к плате напрямую. При такой установке если большая вероятность повредить элементы платы.

    ROS · Clover

  9. Установите 4 нейлоновые стойки 20мм и зафиксируйте их болтами М3х8.

    ROS · Clover

  10. На малую монтажную деку установите камеру и зафиксируйте ее двумя короткими саморезами.

    Если закрепить камеру в верхнем правом углу и шляпка самореза будет касаться элемента на камере, камера не будет работать.

    ROS · Clover

  11. Установите малую монтажную деку с камерой на стойки и зафиксируйте с помощью болтов М3х8.

    ROS · Clover

  12. Собранный модуль установите над модулем Raspberry Pi и зафиксируйте болтами М3х8.

    ROS · Clover

  13. Соедините камеру и Raspberry Pi с помощью шлейфа.

    ROS · Clover

  14. Подсоедините дальномер к Raspberry Pi в соответствующие пины.

    ROS · Clover

  15. Соедините радиоприемник и полетный контроллер с помощью 4-х пинового кабеля.

    ROS · Clover

Установка акб

Убедитесь, чтобы все провода были спрятаны и движению пропеллеров ничего не мешает.

Проверьте сборку квадрокоптера:

  • Балансировочный разъем АКБ должен быть спрятан под утягивающим ремешком.
  • Регуляторы должны быть зафиксированы хомутами.
  • Все провода, идущие от PDB и полетного контроллера, должны быть зафиксированы липучкой или обмотанной вокруг алюминиевых стоек.
  • Пропеллеры установлены правильной стороной и соответствуют направлению кручения моторов.

Обязательно установите и настройте индикатор напряжения перед полетом, чтобы не переразрядить аккумулятор. Для настройки индикатора используйте кнопку расположенную в его основании. Отображаемые цифры во время настройки обозначают минимально возможное напряжение в каждой ячейке аккумулятора, рекомендуемое значение 3.5.

Звуковая индикация означает, что ваш аккумулятор разряжен и его нужно зарядить.

Дрон готов к полету!

Установка защиты

  1. Соберите нижний уровень защиты с помощью стоек 40 мм и винтов М3х10.

    ROS · Clover

  2. Соберите верхний уровень защиты с помощью винтов М3х10.

    ROS · Clover

  3. Установите защиту и закрепите на лучах с помощью самоконтрящихся гаек и винтов М3х10.

    ROS · Clover

  4. Подключите полетный контролер к Raspberry Pi с помощью USB к кабеля.

  5. Установите ремешок для крепления АКБ.

    ROS · Clover

Дрон собран, далее произведите настройку.

Установка полетного контроллера

Набор “Клевер 4” позволяет установить различные полетные контроллеры, к примеру, COEX Pix и Pixracer.

При установке полетного контроллера обратите внимание на ориентацию платы. Если Вы установите COEX Pix серворазъемами назад (как на изображениях в инструкции) то впоследствии при настройке полетного контроллера в Autopilot Orientation необходимо будет указать значение ROTATION_ROLL_180_YAW_90, иначе полетный контроллер будет некорректно воспринимать наклоны и повороты коптера. Для полетного контроллера Pixracer это не требуется.

Установка полетного контроллера pixhawk

  1. Клеим 2х сторонний скотч по углам полетного контроллера. Полетный контроллер

    При работе моторов возникают вибрации, отрицательно влияющие на показания датчиков полетного контроллера Pixhawk. Чтобы избежать этого эффекта, количество слоев двустороннего скотча
    лучше увеличить до 4-5.

  2. Установить полетный контроллер в центр рамы. Полетный контроллер

    Стрелки на раме и Pixhawk должны быть сонаправлены

Установка пропеллеров и подготовка к полёту

Произведите настройку компонентов квадрокоптера, используя раздел “Настройка”.

Установка пропеллеров должна производиться только после окончательной настройки коптера, непосредственно перед полетом.

Установите 4 пропеллера, согласно схеме вращения. При установке пропеллеров АКБ должна быть отключена.

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

Смотрите про коптеры:  Как найти причину проблем с квадрокоптером
Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector