Введение · Clover

Квадрокоптеры

Введение · 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.

Автоматический полет

В этих режимах квадрокоптер игнорирует сигналы с пульта и летает по какой-либо автоматической программе.

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

Вам пригодятся основные команды 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

Выполнение автоматической проверки

Проверку следует выполнить, когда вы полностью настроили дрон, а также при возникновении неполадок. Подробно процедура описана в статье «Автоматическая проверка».

Запись программы на дрон

Самый простой способ – это скопировать текст программы, создать новый файл в командной строке Клевера и вставить текст программы в файл.

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

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

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

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

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

  • Взлет.

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

    navigate(x=0, y=0, 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=0, y=0, 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()
    

Настройка параметров raspberry pi для автономного полета

Большинство параметров, необходимых для полета, хранится в папке ~/catkin_ws/src/clover/clover/launch/.

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

Обязательно выберете файл скачанной прошивки после нажатия Firmware.

Ручное управление

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

  • STABILIZED/MANUAL — режим стабилизации горизонтального положения. Управление газом, углами наклона коптера по тангажу и крену, угловой скоростью по рысканью.
  • ACRO — управление газом и угловой скоростью коптера по тангажу, крену и рысканью. Используется дрон-рейсерами и в шоу 3D-пилотирования для выполнения трюков.
  • RATTITUDE — в центре правый стик аналогичен STABILIZED, по краям переходит в режим ACRO.

С использованием дополнительных датчиков

  • ALTCTL (Altitude) — управление скоростью изменения высоты полета, углами по тангажу и крену и угловой скоростью по рысканью. Используется барометр (или иной датчик высоты).
  • POSCTL (Position) — управление скоростями набора высоты, скоростью движения вперед/назад и вправо/влево, угловой скоростью по рысканью. Наиболее простой для полетов режим. Используется барометр, GPS, компьютерное зрение, другие датчики.
Смотрите про коптеры:  Купить Твой первый квадрокоптер теория и практика по доступной цене в интернет-магазине Radio-KIT
Оцените статью
Радиокоптер.ру
Добавить комментарий