26 KiB
Настройка систем позиционирования
ПО clover официально поддерживает работу со следующими системами позиционирования:
clever-show поддерживает все системы позиционирования, что и clover.
Приведённые ниже примеры настроек предназначены для коптера Клевер 4, собранного и настроенного согласно документации.
Организация процесса настройки
Перед групповым запуском коптеров рекомендуется настроить и проверить один коптер из группы и размножить его настройки на остальные коптеры.
Настройте один коптер на работу с любой системой позиционирования из перечисленных. Настройка может включать в себя следующие этапы:
- Редактирование
.launchфайлов ROS пакетаclover. Данные файлы находятся в директории/home/pi/catkin_ws/src/clover/clover/launchна коптере. - Настройка параметров полётного контроллера.
- Редактирование файла конфигурации клиента
clever-show. - Редактирование файла конфигурации сервера
clever-show. - Калибровка камеры.
Проверьте автономный взлёт коптера: для этого выделите в таблице только один коптер, полёт которого вы ходите проверить, и нажмите кнопку Takeoff в правой панели приложения сервера. Коптер должен взлететь на высоту, указанную в параметре takeoff_height раздела FLIGHT в конфигурации коптера (1 метр по умолчанию), и удерживать свою позицию.
Если взлёт прошёл успешно, размножьте конфигурацию клиента, настройки позиционирования и параметры полётного контроллера на остальные коптеры. Выделите в таблице успешно настроенный коптер и загрузите необходимые файлы настроек с выделенного коптера к себе на компьютер:
.launchфайлы для настройки ПОcloverможно сохранить с помощью командыSelected drones -> Retrieve fileв приложении сервера. В открывшемся диалоговом окне введите путь к файлу на коптере:launchфайлыcloverнаходятся в/home/pi/catkin_ws/src/clover/clover/launch/, к этому пути нужно дописать нужное имя.launchфайла, например/home/pi/catkin_ws/src/clover/clover/launch/clover.launch. После нажатия кнопкиOKв диалоговом окне откроется новое диалоговое окно с выбором пути сохранения указанного файла.- Файл конфигурации коптера (
.ini) можно сохранить, кликнув правой кнопкой мыши на строку с настроенным коптером, выбрав из выпадающего менюEdit config, затем нажав на кнопкуSave as. Также можно перетянуть ячейку из столбцаconfigurationв файловый менеджер вашей системы - сервер автоматически скопирует файл настройки в открытую директорию файлового менеджера. - Файл конфигурации сервера (
.ini) можно сохранить, выбрав пунктServer -> Edit server configиз верхнего меню, затем нажав на кнопкуSave as. - Файл настройки полётного контроллера можно сохранить, подключившись к полётному контроллеру через приложение QGroundControl. Можно подключиться напрямую к полётному контроллеру через USB порт, либо через TCP или UDP мост (по умолчанию в образе
clever-showнастроен TCP мост, в графеHost Addressвместо ip адреса можно ввести имя коптера с добавлением .local в конце, например clover-1.local). После подключения нужно перейти в разделParameters -> Tools -> Save to file...и выбрать путь для сохранения файла параметров. - Файл калибровки камеры полезен для уточнения визуального позиционирования. Название файла калибровки должно состоять из id коптера, для которого была сделана калибровка, с добавлением расширения
.yaml, напримерclover-1.yaml. Для получения файла калибровки возпользуйтесь инструкцией.
После загрузки необходимых файлов с настроенного коптера, скопируйте эти файлы на остальные коптеры: выделите нужные коптеры в таблице и воспользуйтесь командами Send -> Configuration, Send -> Launch files folder, Send -> FCU parameters file, Send -> Camera calibrations из раздела Selected drones приложения сервера.
Настройки сервера и клиента clever-show
Набор ПО clever-show включает в себя множество проверок состояния коптеров, чтобы свести к минимуму количество неудачных запусков, а также набор параметров для настройки систем позиционирования. Все параметры хранятся в файлах конфигурации приложений клиента и сервера. Каждая система позиционирования обладает своими особенностями, которые необходимо учесть при настройке взаимодействия сервера и клиента. Ниже перечислены настройки, на которые необходимо обратить внимание при настройке клиента и сервера:
-
Сервер:
- раздел CHECKS - проверки телеметрии коптеров на стороне сервера
-
Клиент:
- раздел FLIGHT - имя опорной системы координат frame_id, параметры полёта
- раздел FLOOR FRAME - позволяет создать новую систему координат с названием
floorотносительно любой существующей системы координат:map- совпадает с начальным положением коптера при использовании optical flow или gpsaruco_map- совпадает с началом координат карты ArUco маркеровgps- начало координат находится в заданной GPS координате с поворотом на заданный угол относительно начального положения коптера, настраивается в разделе GPS FRAME и позволяет задать систему координат с общим началом для всех коптеров
- раздел FAILSAFE - отключен по умолчанию, но позволяет настроить условия экстренной посадки коптера:
- при потере визуальной позиции - полезно при использовании системы позиционирования по ArUco маркерам
- при большой разнице между текущей позицией и точкой, где должен находиться коптер - с помощью данной проверки можно избежать непредвиденного поведения коптеров при столкновениях или любых физических неполадках
- раздел EMERGENCY LAND - задаёт настройку экстренной посадки коптера: параметр
thrustзадаёт уровень газа моторов для начала посадки, через времяdecrease_thrust_afterкоптер начинает в постепенно снижать уровень газа до 0. Внимание! Уровень газа экстренной посадки по умолчанию равен 45% - эта настройка работает для коптера Клевер 4 с 3S аккумулятором. Если ваша конфигурация отличается, нужно предварительно определить газ висения, а затем установить параметрthrustв значение на 5% меньше, чем газ висения. В случае, если газ экстренной посадки превышает газ висения коптера, коптер при экстренной посадке первые 3 секунды (значениеdecrease_thrust_afterпо умолчанию) будет лететь вверх и только после этого начнет плавно снижать мощность моторов до 0.
Optical flow
Optical flow - способ позиционирования с помощью расчёта скоростей движения камеры по вычислению сдвига пикселей между соседними кадрами.
Optical flow подходит для демонстрации полёта одного коптера или же для синхронного полёта нескольких коптеров по одной и той же траектории внутри помещения. Однако следует учитывать, что данная система координат не задаёт общее начало координат для всех коптеров - началом координат является стартовое положение каждого конкретного коптера. Также стоит принять во внимание тот факт, что данный способ рассчитывает позицию коптера по скорости перемещения его камеры - а значит в позиции коптера постоянно накапливается ошибка и позиция становится менее точной со временем. Поэтому не рекомендуется использовать эту систему координат для сложных и продолжительных групповых полётов.
Образ clever-show для коптера настроен по умолчанию на полёт по данной системе позиционирования (как и образ clover) - на коптере должен быть установлер лазерный дальномер, а камера должна быть наклонена вниз шлейфом назад.
ROS пакет clover, настроенный по умолчанию предполагает автономный полёт с использованием optical flow. Параметры, загружаемые по умолчанию при загрузке прошивки, адаптированной для Клевер 4, предполагают позиционирование по optical flow. Файлы конфигураций клиента и сервера, настроенные по умолчанию, также не требуют измений для полёта по данной системе позиционирования.
Однако, если вам требуется перейти на систему позиционирования optical flow с другой предварительно настроенной системы или же изменить настройки данной системы, вам поможет информация, расположенная ниже.
Все файлы настроек для конфигурации optical flow находятся в папке examples/positioning/optical flow.
Настройка ROS пакета clover
Настройка позиционирования по optical flow описана в документации clover.
Пример .launch файла для настройки: clover.launch.
Настройка полётного контроллера
Параметры, настраивающие полётный контроллер на возможность полёта по optical flow: optical_flow.params.
Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой Selected drones -> Send -> FCU parameters file из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
Настройка клиента
Вариант 1. Загрузка значимых параметров из примера конфигурации
Конфигурация клиента со значениями, применимыми для работы с optical flow: client.ini.
Для загрузки воспользуйтесь командой Selected drones -> Send -> Configuration из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант Modify и укажите путь к файлу client.ini.
Вариант 2. Сброс всех настроек клиента
Для того, чтобы настроить конфигурацию клиента для позиционирования по optical flow, можно сбросить данные конфигурации в значения по умолчанию. Для этого нужно удалить сгенерированные файлы конфигураций на клиентах:
- Выделите в таблице коптер или коптеры, конфигурацию которых хотите сбросить.
- Выполните команду удаления конфигурации на выделенных коптерах, выбрав пункт
Selected drones -> Send -> Command. В открывшемся диалоговом окне введите командуrm config/client.iniи нажмитеOK.
Настройка сервера
Вариант 1. Загрузка значимых параметров из примера конфигурации
Конфигурация сервера со значениями, применимыми для работы с optical flow: server.ini.
Для установки параметров вручную воспользуйтесь командой Server -> Edit config из верхнего меню сервера.
Вариант 2. Сброс всех настроек сервера
Для того, чтобы настроить конфигурацию сервера для позиционирования по optical flow, можно сбросить данные конфигурации в значения по умолчанию. Для этого нужно удалить сгенерированный файл конфигурации на сервере:
- Выполните команду
rm config/server.iniиз директории с расположением приложенияserver.py. - Перезагрузите сервер, выбрав команду
Server -> Restart serverиз верхнего пункта меню.
Aruco
ArUco-маркеры — это популярная технология для позиционирования робототехнических систем с использованием компьютерного зрения. Позиционирование происходит с помощью получения информации о расположении специальных визуальных маркеров.
Данная система позиционирования вариативна: маркеры могут располагаться на полу, на потолке или на стенах. Главное условие для позиционирования - правильно внести координаты в специальную карту маркеров и обозначить её наклон относительно пола.
Если карта маркеров расположена на полу, появляются нюансы: сразу после включения коптер не знает своего положения до тех пор, пока камера не увидит карту меток. Соответственно некоторые проверки по позиции коптера и безопасности полёта становятся не применимы:
- Не имеет смысла проверка текущего положения коптера, т.к. сразу после загрузки оно не определено, но коптер при этом всё равно имеет механизм взлёта
- Не имеет смысла проверять максимальное расстояние стартовой точки анимации от текущей позиции коптера, т.к. она никогда не будет совпадать при старте
- Стартовое действие анимации
flyв системе координатaruco_mapбудет иметь непредсказуемые последствия, т.к. на старте реальная позиция коптера будет сильно отличаться от позиции, рассчитанной полётным контроллером. Соответственно единственный вариант параметраstart_actionв разделе [ANIMATION] - этоtakeoff: подъём на высоту, определённую параметромtakeoff_heightиз раздела [FLIGHT], относительно текущей позиции коптера.
Настройка ROS пакета clover
Настройка системы позиционирования по ArUco маркерам описана в документации clover.
Пример .launch файлов для настройки карты меток на полу:
Настройка полётного контроллера
Параметры, настраивающие полётный контроллер на возможность полёта по ArUco: aruco.params.
Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой Selected drones -> Send -> FCU parameters file из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
Настройка клиента
Конфигурация клиента со значениями, применимыми для работы с Aruco: client.ini.
Для загрузки воспользуйтесь командой Selected drones -> Send -> Configuration из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант Modify и укажите путь к файлу client.ini.
Настройка сервера
Конфигурация сервера со значениями, применимыми для работы с ArUco: server.ini.
Для установки параметров вручную воспользуйтесь командой Server -> Edit config из верхнего меню сервера.
GPS
Позиционирование по спутниковым координатам - предпочтительный способ позиционирования для уличных полётов. Для позиционирования по GPS необходим один из официально поддерживаемых модулей для PX4. Точность позиционирования по GPS составляет порядка одного метра. Использование наземной станции поправок GPS RTK и специальных GPS RTK модулей позволяет добиться дециметровой точности позиционирования.
Настройка ROS пакета clover
Настройка позиционирования по GPS описана в документации clover.
Пример .launch файла для настройки: clover.launch.
Настройка полётного контроллера
Параметры, настраивающие полётный контроллер на возможность полёта по gps: gps.params.
Для загрузки параметров на выделенные в таблице коптеры воспользуйтесь командой Selected drones -> Send -> FCU parameters file из верхнего меню и укажите путь к файлу с параметрами полётного контроллера.
Настройка клиента
Внимание! Начальная точка позиционирования фрейма gps должна быть изменена перед загрузкой. Для примера выбрана точка тестовой полётной зоны на территории Технополиса Москва.
Конфигурация клиента со значениями, применимыми для работы с GPS: client.ini.
Для загрузки воспользуйтесь командой Selected drones -> Send -> Configuration из верхнего меню сервера. В открывшемся диалоговом окне выберите вариант Modify и укажите путь к файлу client.ini.
Настройка сервера
Конфигурация сервера со значениями, применимыми для работы с GPS: server.ini.
Для установки параметров вручную воспользуйтесь командой Server -> Edit config из верхнего меню сервера.