Зачем дрону компас? — Немного больше чем просто хобби

Зачем дрону компас? — Немного больше чем просто хобби Лодки

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

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

Функция Altitude Hold Mode (автоматическое удержание высоты) присутствует во многих моделях, она полезна при проведении аэрофотосъемок, но пригодится также и начинающему пилоту.

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

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

В этом режиме пилот управляет наклонами вправо/влево, тангажем (когда нос дрона опускается/поднимается) и поворотами коптера вокруг своей оси, не изменяя высоты полета. Если нужно подняться выше – добавляем газу (левым стиком), а нужно опуститься – сбавляем обороты двигателей.

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

Зачем дрону компас? — немного больше чем просто хобби

Зачем дрону компас? — Немного больше чем просто хобби

Как мы знаем, компас предназначен для определения сторон света в пространстве. По факту, магнитный датчик (он же компас) устанавливается только на те летательные аппараты, которые оснащены приёмником GPS. Без GPS компас бесполенез, точно так же как и GPS не может полноценно работать без компаса, и вот почему:

Приёмник GPS может с высокой точностью определить положение дрона на местности, но не имеет информации о том, какой стороной дрон повёрнут к северу.
Попробую пояснить на примере: Датчик GPS получил информацию о том что дрон снесло ветром на 1 метр на запад. Чтобы его вернуть в первоначальную позицию — нужно сместить его на тот же метр на восток. А где у квадрокоптера восток? Слева? Справа, Сзади? Вот чтобы ответить на этот вопрос — ему нужен компас! Компас определит какой стороной дрон повёрнут к северу и переместит дрон на метр в нужную сторону!

Датчик магнитного поля (он же компас) — самый подверженный помехам датчик! Кроме того, что в разных полётных территориях естественное магнитное поле может быть разным, на него могут влиять и посторонние магнитные поля, например от высоковольтных линий электропередач или даже от бортовой электроники самого квадрокоптера. Именно поэтому самодельщики, собирающие дроны сами, стараются разместить компас подальше от бортовой электронике, например на отдельно стоящей ноге выше остальных деталей.

Кроме этого, компас желательно заново калибровать на каждом новом полётном месте. Вы, возможно, видели, как владельцы квадрокоптеров перед полётов вращают их на земле в разные стороны — это и есть калибровка. Она позволяет настроить компас на окружающее магнитное поле именно на этой местности.

Неправильная калибровка компаса является причиной неверных данных на центральном контроллере, как следствие — дрон получает неправильные навигационные данные и летит не в нужном направлении. Проявляться это может как УНИТАЗИНГ (когда дрон летает по окружностям вместо зависания в точке), или УЛЁТ В КИТАЙ (дрон резко и быстро улетает в непредсказуемом направлении).

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

Инструкция по работе с геодезическими квадрокоптерами

Перед началом аэрофотосъемки (АФС) необходимо:Зачем дрону компас? — Немного больше чем просто хобби
– Зарегистрировать ваш квадрокоптер в Росавиации;
– Проверить отсутствие запретных для полета зон в месте проведения работ. Карта запретных зон для квадрокоптеров DJI;
– При необходимости получите разрешения на полет квадрокоптера у местных органов власти;
– Оценить приемлемость погодных условий для полетов (отсутствие осадков, тумана, сильного ветра (более 10 м/с), высоту нижнего края облачности и пр.);

Подготовка оборудования
– Проверьте разъем питания аккумулятора на предмет оплавления и загрязнение. Включите квадрокоптер и убедитесь в отсутствии предупреждений и ошибок в приложении DJI GO 4.
– Используйте карту памяти U3 класса, с объемом от 16 до 64 Гб. Карты 128 Гб могут вызвать зависание камеры на 10-40 секунд во время интервальной съемки.
– Зарядите аккумуляторы. Одна батарея в среднем обеспечивает 27 минут полетного времени или 70-90Га охватываемой площади.
– Зарядите пульт управления.
– Зарядите аккумулятор базовой станции и убедитесь в достаточности объема свободной памяти. Настройте режим записи измерений статики в точке с известными координатами.

Подготовка к АФС
Для получения качественного фотоматериала, помимо правильных настроек камеры, необходимо уменьшить проявление различных артефактов, таких как: тени, блики, пересвеченные и перетемненные области.
Для этого:
– Производите АФС в светлое время суток. Идеально, если солнечный свет будет рассеян тонкой, высокой, сплошной облачностью. В ясный день, лучшее время для съемки: пару часов после рассвета и перед закатом.
– Блики можно устранить поляризационными фильтрами.
– Для подбора оптимальной экспозиции, ориентируйтесь на изображение транслируемое с камеры и используйте гистограмму.
– Полезно сделать тестовый вылет в несколько различных точек области проведения работ, сделать тестовые фото с разной экспозицией, оценить обстановку, убедиться в отсутствии помех, проверить уровень сигналов от спутников, связь, силу ветра и т.д.

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

Существуют специальные приложения которые управляют квадрокоптером и делают все в автоматическом режиме в соответствии с настройками пользователя.
Вот некоторые из них: Litchi проф. планировщик teofly.com, Pix4D Capture, MapPilot, DroneDeploy, DJI GS Pro и другие.

Существуют также решения с построением маршрута в сторонних программах с последующей загрузкой в полетное приложение с помощью KML файла. Например платные Litchi или MapPilot.
Данный метод подходит для продвинутых пользователей и позволяет контролировать множество параметров прохождения маршрутов а также получать бОльшую производительность.
При правильном построении маршрутов, квадрокоптер летает по оптимальной траектории и не останавливается в поворотных точках что существенно сокращает время полета. При средней скорости горизонтального перемещения 10 м/с, максимальное расстояние которое может пройти коптер за один полет – 11 км.
Интервальное фотографирование при этом методе можно производить не зависимо от приложения, с помощью модуля синхронизации камеры Ashot.

Смотрите про коптеры:  Радиоуправляемые катера - отзывы, рейтинг и оценки покупателей - маркетплейс

Активация модуля управления камерой Ashot
Модуль позволяет производить фотографирование без участия приложения с частотой 1 кадр каждые 1.3 или 1.8 секунды, а также передает сигнал о фото событии в GNSS приемник, точно в середине выдержки.
Для активации Ashot необходимо выполнить следующие действия:
1. Настройте на кнопки С1 или С2 пульта управления, функцию опускания камеры вниз (в надир, -90) и поднимания вверх (в горизонт, 0). Функции Camera Forward/Down в приложении DJI GO4, Restart Gimbal (Рестарт подвеса) в Litchi.
2. Опустите камеру вниз.
3. Из нижнего положения поднимите кнопкой камеру вверх и сразу опустите вниз. Камера начнет делать фотографии с интервалом 1.3 секунды.
4. Для активации интервала 1.8 секунды, из нижнего положения поднимите камеру вверх и через 1,5-2 секунды опустите вниз.
5. В процессе фотографирования можно управлять наклоном камеры колесиком на пульте управления. Фотографирование не остановится.
6. Для того чтобы остановить фотографирование, из нижнего положения поднимите камеру вверх и сразу опустите вниз.

Также АФС можно производить в ручном режиме, стиками регулируя скорость и направление движения квадрокоптера. Фотографирование при этом можно осуществлять с помощью модуля Ashot, либо по таймеру каждые 2 секунды (настраивается в полетном приложении).
В полетном приложении при этом виден пройденный маршрут и можно контролировать параллельность галсов для обеспечения необходимого перекрытия и исключения не охваченных зон.
Данный режим можно рекомендовать только опытным пользователям, при небольших объемах съемки, а также в местах с высокой вероятностью сбоя навигационной системы (зоны глушения сигналов).

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

Настройка камеры
– Переключатель режима камеры: положение A (режим приоритета диафрагмы).
– ISO (светочувствительность): 100
– Aperture (диафрагма): 2.8-8, в зависимости от освещенности. Очень важно чтобы выдержка при фотографировании была не короче 1/1600. С выдержкой 1/2000 и короче, перестает работать механический затвор – что ухудшает качество фото.
– White Balance (баланс белого): Sunny или Cloudy
– Style (стиль): Landscape
– Color (цветовая схема): None или Normal
– Image Size (пропорции фото): 3:2
– Image Format (формат изображения): JPG
– Mechanical Shutter (механический затвор): включено
– Фокусировка камеры: режим M (ручной) и перевести фокус в бесконечность

Раскладка опознаков
При проведении АФС на квадрокоптере с GNSS приемником, мы получаем точные координаты центра каждого кадра. Это дает возможность строить цифровую модель местности и привязывать её в плане, достаточно точно и без опознаков.
Не смотря на это, мы рекомендуем использовать несколько опознаков для контроля получаемых данных. А также, хотя бы один опознак нужен для автоматической калибровки камеры в фотограмметрической программе и уточнения высоты модели.
Опознак – это хорошо различимый на фото объект, с ярко выраженным центром с известными координатами. В качестве опознака можно использовать ранее созданные элементы (например дорожная разметка) или создать свои (краской или полотнищами в виде Х или Г, пластиковыми тарелками).
Координаты опознаков обычно определяют методом RTK.
Раскладывать опознаки лучше в местах с наибольшей и наименьшей высотами снимаемой территории, а также ближе к её границам.

Работа с базовой станцией и приемником квадрокоптера
Все геодезические квадрокоптеры на базе DJI Phantom 4 Pro и DJI Phantom 4 Pro v2.0, применяют пост-процессный метод обработки данных (PPK). Для успешной реализации данного метода, необходимо использовать два GNSS приемника, которые записывают сырые данные измерений в формате Rinex. Один устанавливается в точку с известными координатами и пишет статику с частотой не менее 5Гц, с 5-15° маски возвышения (базовая станция). Другой выступает в качестве ровера на борту квадрокоптера.
По завершении полета, необходимо скачать и обработать эти два файла в телеграм-боте Teobox PPK Bot.

Подключение и настройка приемника AGNSS (L1/L2) установленного на квадрокоптер (ровер):
1. Накрутите антенну, включите квадрокоптер и дождитесь готовности платы AGNSS. Она будет издавать звуковой сигнал (бип бип бип).
2. После прекращения подачи звукового сигнала AGNSS будет мигать желтым индикатором в переднем левом луче квадрокоптера, пока не соединится по крайней мере с 6-ю спутниками, после чего индикатор начнет мигать зеленым.
4. Найдите сеть “AGNSS_XXXX” в настройках Wi-Fi вашего мобильного устройства или ноутбука и подключитесь с паролем “12345678”.
5. После подключения введите адрес http://192.168.0.1 в адресную строку вашего браузера для входа в веб-интерфейс AGNSS, для проверки настроек.
6. Рекомендуемые настройки: Запись исходных данных GPS ГЛОНАСС 10 Гц.
7. Приемник будет автоматически начинать запись данных при включении квадрокоптера и завершать её при выключении. Таким образом, на каждый полет будет создаваться отдельный файл с данными.

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

В качестве базовой станции можно также использовать GNSS приемники референцной геодезической сети. Вы можете запросить Rinex файл измерений, покрывающий зону и время полета квадрокоптера. Перед полетом необходимо убедиться что станция активна и запись измерений производится.
Так как самая быстрая частота записи таких станций в основном составляет 1 Гц, коптер перед взлетом необходимо выдержать включенным не менее 2-х минут на открытой местности, для сбора достаточных данных, если базовая станция находится дальше 10 км.

Максимальное расстояние до референцной базовой станции: не далее 50 км;

Подготовка квадрокоптера
1. После включения квадрокоптера и размещения его на открытом пространстве, подождите не менее 2-х минут для поиска спутников и сбора достаточного количества данных. В это время включите приложение DJI GO4 и убедитесь в отсутствии критических предупреждений или ошибок.
2. Отформатируйте SD карту в квадрокоптере!
3. Проверьте состояние компасов квадрокоптера, показания должны находиться в зеленой области. Если показания колеблются в желтой или красной зоне, необходимо устранить источник магнитных наводок, либо изменить место взлета. При необходимости произведите калибровку компасов. Калибровку можно производить только вдали от потенциальных источников магнитных наводок (металлические объекты, ЛЭП, стоянки, железобетонные конструкции и т.д.).
4. Если полет производится при низких температурах, после взлета дайте коптеру повисеть на месте пару минут, для разогрева батареи. Выполняйте полет плавно, без резких наборов высоты и продолжительных повышенных нагрузок.

Смотрите про коптеры:  How to Setup the MPU-9150 9-Axis Accelerometer, Gyro, & Compass with an Arduino

5. Перед взлетом убедитесь что квадрокоптер поймал минимум 8 спутников.
6. Для взлета используйте ровную, твердую, не пыльную поверхность. Можно стартовать с серого транспортировочного кейса. Не взлетайте с капота или крыши автомобиля, т.к. это вызовет проблемы с компасом.
7. При ручной посадке, если площадка ограниченная, квадрокоптер можно поймать рукой за основание ножки. После этого опустите правый стик пульта управления (газ) до упора вниз и подержите так 3 секунды, пока моторы не остановятся.
8. Во время полета, в том числе в автоматическом режиме, следите за телеметрией квадрокоптера и его положением в пространстве, а так-же за корректностью прохождения маршрута. Будьте готовы в случае необходимости, перейти на ручное управление.

ВНИМАНИЕ! Не начинайте или не продолжайте полет, если вы обнаружили какое-то не нормальное поведение квадрокоптера (появление не понятных вам сообщений или предупреждений в приложении, отклонение от маршрута, потеря сигнала управления и/или трансляции видео на малых расстояниях, потеря спутников без видимых причин, не адекватный отзыв на ручное управление и т.д.). В случае наступления данных обстоятельств, необходимо прекратить полет до выяснения причин!
9. Если потребуется сделать несколько вылетов на один объект, то при разрядке батареи, приземлите коптер. Необходимо вынуть аккумулятор, плотно вставить новую батарею до щелчка и включить питание. Подождите не менее 2-х минут и взлетайте снова.
10. При смене аккумулятора, обращайте внимание на температуру разъема питания. Если разъем сильно нагрелся, не используйте данную батарею без технического обслуживания контактов.

11. После окончания каждого полета, на этапе посадки квадрокоптера, наблюдайте за световым индикатором приемника AGNSS (светодиод в переднем левом луче). Индикатор должен МОРГАТЬ ЗЕЛЕНЫМ. Если индикатор МОРГАЕТ или ГОРИТ КРАСНЫМ, это может сигнализировать о проблемах с записью спутниковых данных. Необходимо перезапустить квадрокоптер и повторить вылет еще раз.
12. После завершения полетов, выключите квадрокоптер и поисковый маяк. Затем, вашу базовую станцию.

13. Не летайте рядом с запретными зонами (аэропорты, стадионы, тюрьмы, посольства, воинские части, правительственные и силовые объекты, оборонные предприятия и т.д.).

Работа с поисковым маяком
На все наши геодезические квадрокоптеры, устанавливаются радиомаяки для поиска модели при нештатных ситуациях. Маяк подключается к GNSS антенне и может передавать координаты местонахождения коптера, а также возможен поиск методом “охота на лис”.
Маяк автоматически включается при включении квадрокоптера и заряжает свой встроенный аккумулятор для автономной работы в течение 14 дней. Если за это время маяк не будет выключен, он перейдет в спящий режим для предотвращения переразрядки встроенного аккумулятора.
Тем не менее, рекомендуем самостоятельно выключать маяк после полетов. Это позволит сохранить полный заряд встроенного аккумулятора и обеспечит максимальное время работы маяка в экстренной ситуации.

Выключение маяка производится удаленно, с помощью рации:
1. Поднесите рацию к коптеру.
2. В течение 7 секунд, пошлите тоновый вызов на частоте 1750Гц.
3. Маяк ответит обратным отсчетом: “три”, “два”, “один”.
4. Пока идет отсчет, нужно еще раз послать тоновый вызов на 3 секунды.
5. Маяк издаст звуковые сигналы и выключится.

Сбор полученных данных
Для начала обработки информации с геодезического квадрокоптера, вам необходимо следующее:
1. Скачать фотографии с карты памяти квадрокоптера.
2. Скачать ubx файл с приемника в квадрокоптере. Подключитесь к приемнику по Wi-Fi и в разделе Logging найдите необходимые файлы. Проверьте, что количество файлов ubx, равно числу включений дрона.

3. Скачать Rinex файл с базовой станции. Используйте подключение через Wi-Fi или прямое подключение в соответствии с руководством пользователя вашего оборудования.
4. Получить координаты опознаков и базовой станции.

Обработка полученных данных

     Каждый *.ubx файл составляет около 8МБ для 20-минутного полета с GPS GLONASS 5 Гц.

Количество фотографий зависит от временного интервала между ними. Если интервал Ashot составлял 1,3 сек., то это 1000 фотографий. Если интервал был 1,8 сек., то это около 700 фотографий.

     Для преобразования UBX в формат RINEX используйте бесплатное программное обеспечение RTK lib.

Для более полной обработки данных, без дополнительного ПО, используйте телеграм-бот TeoBox PPK Bot.

Обработка спутниковых данных в телеграм-боте TeoBox PPK Bot.

Для загрузки данных, откройте бота, введите команду /start, и следуйте дальнейшим инструкциям.

Вам понадобяться файлы с приемника квадрокоптера, с базовой станции и файл PRJ с параметрами системы координат.

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

Конвертирование Ubx файлов с помощью пакета RTK lib.

Скачайте пакет RTK lib и запустите rtkconv.exe.

В верхнем поле, выберите нужный файл ubx. В меню Format выберите u-blox. Нажмите кнопку “Options…” и выполните настройки как на скриншоте ниже и нажмите “Ok”. Далее нажмите кнопку Convert.

Зачем дрону компас? — Немного больше чем просто хобби

Зачем дрону компас? — Немного больше чем просто хобби

После конвертации, создадутся два файла *.obs и *.nav.

Проверка данных OBS

Если вы все сделали правильно, в нижней части окна RTK Conv появятся следующие строки:

0=… – наблюдение

N=… – эфемериды

T=… – количество временных меток

Зачем дрону компас? — Немного больше чем просто хобби

Чтобы убедиться в качественности измерений ГНСС, нажмите кнопку “Plot…”.

Откроется окно со спутниками, видимыми во время полета (см. скриншот).

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

Зачем дрону компас? — Немного больше чем просто хобби

Если в выпадающем меню выбрать SNR/MP/EL (см. скриншот), то можно увидеть качество данных GNSS и наличие в них шума.

Для хорошего результата, SNR должен быть в диапазоне 30-50 дБ/Гц, и не должно быть никаких циклов скольжения.

Зачем дрону компас? — Немного больше чем просто хобби

Зачем дрону компас? — Немного больше чем просто хобби

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

Смотрите про коптеры:  Радиоуправляемые корабли и лодки с доставкой по Москве и России

Зачем дрону компас? — Немного больше чем просто хобби

Задача

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

  1. Строить карту препятствий
  2. Определять положение квадрокоптера относительно траектории и препятствий
  3. Корректировать траекторию с учетом облета препятствий
  4. Рассчитывать управляющие сигналы – реализовать контроллер

Технической базой является Parrot AR.Drone. AR.Drone снабжен следующими интересующими нас устройствами:

  1. Фронтальная камера: 640х360, 30 fps, диагональный угол обзора 92 градуса
  2. Нижняя камера: используется встроенным автопилотом для компенсации ветра и дрифта вообще
  3. Ультразвуковой датчик высоты: работает в пределах 0.25 – 3 м
  4. ИНС (акселерометр гироскоп магнетометр) барометр: все датчики интегрированы в единую систему при помощи (видимо) sensor fusion

Зачем дрону компас? — Немного больше чем просто хобби

Кроме того, на основе показаний ИНС и нижней камеры формируется единая одометрия.

Итак, для построения карты окружения при помощи штатных средств AR.Drone мы можем использовать по большому счету только фронтальную камеру. Это непосредственно приводит нас к задаче монокулярного зрения, а именно к монокулярному SLAM.

Large Scale Direct SLAM

Можно смело сказать, что SLAM при помощи единственной камеры – писк современных технологий. Такие алгоритмы, появившиеся в последние несколько лет, можно пересчитать по пальцам руки неосторожного фрезеровщика – это ORB SLAM, LSD (Large Scale Direct) SLAM (и его предшественник SVO (Semi-direct Visual Odometry)), PTAM (Parallel Tracking And Mapping). Еще меньше алгоритмов, строящих более-менее плотные (semi-dense) карты окружения. Из наиболее продвинутых алгоритмов такие карты выдает лишь LSD SLAM:

Зачем дрону компас? — Немного больше чем просто хобби

В двух словах, LSD SLAM работает следующим образом. Параллельно работают три процедуры: трекинг, построение карты и оптимизация карты. Компонент трекинга оценивает положение каждого нового кадра относительно текущего ключевого кадра. Компонент построения карты обрабатывает кадры с известным положением, либо производя очистку карты кадра хитрым способом, либо создавая новый ключевой кадр. Компонент оптимизации карты занимается поиском циклов в графе ключевых кадров и устранением эффекта плавающего масштаба. Более подробно ознакомиться с алгоритмом можно в статье разработчиков.

Для стабильной и эффективной работы алгоритма (эти требования применимы к любому алгоритму монокулярного SLAM) необходимо следующее:

  1. Максимально более точная калибровка камеры и последующая ректификация изображения. Точность калибровки и ректификации, а также используемой модели искажений напрямую влияет на качество получаемых карт.
  2. Широкий угол обзора камеры. Для более-менее надежной работы нужны камеры с FOV более 80-90 градусов.
  3. Достаточное количество кадров секунду. При FOV в 90 градусов количество кадров в секунду не должно быть меньше 30 (лучше – больше).
  4. Движения камеры не должны содержать повороты без переноса. Такое движение ломает алгоритм.

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

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

Впечатляет, не правда ли? Однако даже если Вы достигли такого качества карт, Вас ждет еще одна неприятность: ни один алгоритм монокулярного SLAM принципиально не может оценить абсолютного масштаба полученных карт и, следовательно, локализации. Поэтому необходимо прибегнуть к некоторым хитростям и найти внешний источник данных либо помогающий определить размер объектов карты, либо оценивающий абсолютные значения перемещений камеры. Первый способ ограничен только Вашей фантазией: можно поместить объект известного размера в поле зрения камеры и затем сравнивать его с масштабами похожих частей карты, можно проводить инициализацию алгоритма в заранее известной обстановке, и так далее. Второй способ довольно легко применить, используя, например, данные альтиметра, что мы и проделали.

Для оценки масштаба мы использовали данные о перемещениях по вертикальной оси, полученных из двух источников: от алгоритма LSD SLAM и альтиметра AR.Drone. Отношение этих значений и есть масштаб карты и локализации монокулярной системы. Для устранения случайных возмущений полученное значение масштаба мы отфильтровали фильтром низких частот.

Обход препятствий и корректировка траектории

LSD SLAM хранит карту окружения в виде графа ключевых кадров с привязанными к ним частичными картами глубины. Объединяя все узлы графа, получаем карту известной части окружения в виде облака точек. Однако это еще не карта препятствий! Чтобы получить плотную (dense) карту препятствий, мы воспользовались библиотекой Octomap, строящей карту препятствий в виде октодерева на основе облака точек.

Для проверки столкновений и корректировки траектории мы использовали стек библиотек FCL (Flexible Collision Library) OMPL (Open Motion Planning Library). После обновления карты запускается проверка столкновения траектории с препятствиями, в случае обнаружения столкновений сегмент траектории пересчитывается планировщиком (мы использовали BIT*, но здесь могут быть варианты).

Контроллер

Контроллер оказался в итоге довольно простым, на основе ПИД-регулятора. Этого оказалось достаточно для следования по траектории. Единственное, что пришлось добавить – ограничение скорости поворота камеры для сохранения стабильности SLAM.

Зачем дрону компас? — Немного больше чем просто хобби

Платформа и общая схема решения

В качестве платформы всего решения мы использовали ROS. Платформа предлагает всю необходимую инфраструктуру для быстрой разработки параллельно работающих компонент (узлов в терминологии ROS), коммуникаций между ними, мониторинга, динамической настройки, отличный симулятор Gazebo и многое другое, облегчающее разработку серьезных робототехнических решений. Хотя стабильность отдельных компонент системы все же оставляет желать лучшего, и использовать её в продакшне ответственного проекта пока не стоит.

Общая схема решения получилась примерно такой:

Зачем дрону компас? — Немного больше чем просто хобби

Выводы

Бочка меда:

Ложка дегтя:

Ссылки:

Страница LSD SLAM на сайте разработчиков: vision.in.tum.de/research/vslam/lsdslam
Open Motion Planning Library: ompl.kavrakilab.org
Flexible Collision Library: github.com/flexible-collision-library/fcl
Octomap: octomap.github.io

Техническип предпосылки и рекомендации по безопасности:

Система навигации GPS не предназначена в качестве основной системы навигации и сигналов отсева или неточных позиций (так называемые “глюки”)
происходят время от времени, даже при ясном небе.

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

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

Оцените статью
Добавить комментарий

Adblock
detector