- Что такое симулятор полета дрона?
- Drone racing league: высокое напряжение
- Fpv freerider
- Mavproxy
- Realflight drone simulator
- Автономная зарядка
- Аккумулятор
- Бокс для зарядки
- Взлет
- Видео через интернет
- Видеотрансляция
- Виды симуляторов дрона
- Висеть, как вкопанный
- Выбор полетного контроллера
- Зачем мне нужен симулятор полета?
- Имеет ли смысл покупать симулятор дрона?
- Калибровка датчиков и настройка параметров автопилота
- Ключевые функции
- Компоновка
- Лучшие симуляторы полета на квадрокоптере
- Минимальный комплект электроники
- Моторы и пропеллеры
- Настройка и запуск ardupilot
- Обновление дистрибутива и установка необходимых пакетов
- Питание
- По для управления дроном на пк и планшетах
- Полезная нагрузка
- Посадка “в точку”
- Преимущества
- Совместимая аппаратура
- Совместимая аппаратура (джойстики)
- Телеметрия через интернет
- Требования к бпла
- Установка образа ос на sd-карту
- Установка связи с дроном в локальной сети
Что такое симулятор полета дрона?
Думаем, расписывать значение этого понятия для любимых читателей нет никакого смысла – многие и так его знают. Только подчеркнем, что для виртуального управления коптером зачастую используются специальные пульты управление вместо джойстиков. Использование последних, к слову, не поможет развить правильную моторику рук при настоящих полетах с дроном.
Зачастую люди запускают симулятор полета на Mac или ПК, хотя в некоторых случаях для этого используется планшет или смартфон. Большинство симуляторов полета позволяют выбрать тип моделируемого дрона и режимы полета в зависимости от навыков, которые предпочтет развивать будущий пилот.
Существует два основных типа таких программ, которые предназначены для разных целей. Первый направлен на обучение пилотов обычных дронов и улучшение их навыков полета, фото/ видеосъемки и т. д. Второй же нацелен на введение или улучшение навыков полета на FPV дронах.
Drone racing league: высокое напряжение
DRL: High Voltage – официальное программное обеспечение Drone Racing League, компании, которая организует международные соревнования по дрон-гонкам. Что отличает этот симулятор от некоторых других, так это то, что он включает в себя реальные гоночные трассы из событий ДХО.
DRL: High Voltage – это гонка дронов, так что от этого можно ожидать много острых ощущений и разливов. Это не так реалистично, как некоторые альтернативы, но дает больше развлечений. Пакеты программного обеспечения в реальных открытых и закрытых гоночных курсах, пилотов дронов и гоночных сезонов лиги.
Fpv freerider
FPV Freerider покорил любителей дронов. Симулятор имеет множество настроек, реалистичные средства управления полетом и поддерживает хороший набор контроллеров. FPV Freerider продается по цене $ 4, 99, что является хорошей ценностью, и есть также демо-версия, которую вы можете попробовать в первую очередь.
Freerider имеет шесть карт, которые включают пустынные, луговые и лесные ландшафты и разнообразные схемы трасс. Игроки могут летать на дронах по круговым курсам и полному треку в виде восьмерки в режиме просмотра от первого лица или в режиме прямой видимости.
Они также могут выбирать между режимами полета acro или самовыравнивающиеся для дронов. В симуляторе есть множество настроек для настройки скорости вращения, камеры и физики. Он также поддерживает хороший набор контроллеров клавиатуры, сенсорного экрана и USB-контроллеров. FrSky Taranis, Realflight, Futaba, PS3 и Xbox – это лишь некоторые из поддерживаемых контроллеров Freerider.
Freerider, Liftoff, Hotprops, High Voltage и RealFlight – захватывающие симуляторы для любителей дронов. С этими симуляторами вы можете экспериментировать со всей динамикой полета дронов, а игровые курсы воссоздают все острые ощущения гонок на квадроциклах.
Mavproxy
MAVProxy уже установлен в образе Navio. Его также можно
и на ПК (Windows, Linux, MacOS) для дальнейшего общения с автопилотом в консольном режиме.
Убедившись, что Ardupilot работает, запустим на Raspberry скрипт MAVProxy такой командой:
mavproxy.py --master=udp:127.0.0.1:14550
Параметр
–master=udp:127.0.0.1:14550
задает для скрипта источник данных. Это локальный UDP-порт, который был прописан в файле конфигурации Ardupilot. После запуска команды, MAVProxy соединиться с этим портом и выведет на экран сообщения автопилота, примерно как у меня:
pi@navio:~ $ mavproxy.py --master=udp:127.0.0.1:14550
Connect udp:127.0.0.1:14550 source_system=255
Failed to load module: No module named adsb. Use 'set moddebug 3' in the MAVProxy console to enable traceback
Log Directory:
Telemetry log: mav.tlog
Waiting for heartbeat from 127.0.0.1:14550
MAV> online system 1
STABILIZE> Mode STABILIZE
fence breach
GPS lock at 0 meters
APM: APM:Copter V3.5.5 (88a1ecdd)
APM: Frame: UNKNOWN
APM: PreArm: RC Roll not configured
APM: PreArm: Compass not calibrated
APM: PreArm: 3D Accel calibration needed
APM: PreArm: check firmware or FRAME_CLASS
APM: PreArm: Throttle below Failsafe
Так как автопилот еще не откалиброван и до конца не настроен, то об этом красноречиво говорят и сообщения. В этом режиме можно общаться с автопилотом посредством команд. Если бы дрон был полностью настроен, то вот такая последовательность двух команд привела бы к старту двигателей и взлету дрона на высоту 20 м:
arm throttle
takeoff 20
Не откалиброванный автопилот не полетит, а покажет сообщения с причинами, почему он этого сделать не сможет.
Realflight drone simulator
RealFlight, пожалуй, самый подробный и реалистичный симулятор квадроциклов для Windows. Interlink Elite Controller поставляется вместе с ним для повышения реалистичности. Симулятор RealFlight продается по цене 129 долларов, и он совместим с платформами Windows от Vista до 10.
Системные требования программного обеспечения на удивление невелики, поскольку для него требуется всего 512 МБ ОЗУ, но также требуется три ГБ на жестком диске. Есть также версия RealFlight X за 179 $, которая имеет движок Unigine и улучшенную графику.
Автономная зарядка
Как можно видеть в готовых вариантах выше, существует несколько подходов к подготовке автономного дрона к следующему полету: зарядка аккумулятора через контактные площадки, бесконтактная индукционная зарядка и механизированная замена аккумулятора с последующей его зарядкой на станции.
У каждого метода есть свои плюсы и минусы, о них я напишу отдельно, но в любом случае, для их функционирования дрон должен уметь приземляться в нужную точку практически с сантиметровой точностью.
Аккумулятор
Для выбора аккумулятора нужно знать какой он должен отдавать ток.
На полном ходу двигатели будут “есть” 30А (7,5А * 4 мотора), а электроника примерно 0,45А (10 Ватт). С учетом небольшого запаса округлим минимальный рабочий ток аккумулятора в 35А. Для Li-Po батарей с высокой токоотдачей в 30С минимальная емкость будет равна 1,2 Ач (35/30), а для более легких Li-Po и Li-Ion с токоотдачей в 10С минимальная емкость 3,5 Ач (35/10).
Как вариант, сборка 6S2P из Li-Ion Sony VTC6 с BMS весит примерно 630 г (при емкости 6 Ач). С этим аккумулятором дрон будет весить 2031 г, что больше оптимального на 135 г, но в пределах максимального. Теперь посчитаем на какое время коптер сможет зависнуть при идеальных условиях.
При общем весе в 2031 г на каждый мотор приходится 508 г. Взглянем на характеристики мотора и найдем потребляемый ток при такой тяге. Он примерно будет равен 1,6А. 4 мотора и электроника дадут в сумме 6,85A (1,6 * 4 0,45). С учетом разрядки аккумулятора до 20% получится (6 Ач * 80% / (6,85 A)) = 0,7 часа или 42 минуты.
Бокс для зарядки
Бокс для зарядки будет сделан из алюминиевого профиля, крепежной фурнитуры и алюминиевых сендвич-панелей. В нем будут установлены роутер, компьютер, погодные датчики и камера с видом на посадочную зону. Я решил сделать покатую крышу из двух створок, чтобы зимой на ней не скапливался снег и не мешал открыванию. Механизм открывания створок до конца еще не продуман, а также не определена система зарядки (нуждаюсь в подсказках).
В следующей статье я расскажу как настроить и запустить дрон через интернет с помощью GUI или командной строки, про варианты систем зарядки из которых я сейчас выбираю, ПО для управления коптером и анализа снимков и почему мой первый полет через интернет продлился так недолго:
Продолжение следует…
Часть 2 про ПО.
Взлет
Liftoff – еще один новый симулятор дронов на блоке, который является игрой раннего доступа. Тем не менее, игра продается в Steam по £ 14, 99 (около $ 20). Этот симулятор похож на Hotprops, так как он в значительной степени основан на гонках на квадрокоптерах FPV и обладает реалистичной физикой дронов.
Поскольку Liftoff не является готовым пакетом, некоторые фанаты-дроны могут его пропустить, пока издатель не выпустит финальную версию. Тем не менее, у программного обеспечения Раннего доступа были восторженные отзывы о Steam; и финальный симулятор будет еще лучше.
В игре есть девять стандартных уровней, которые включают в себя гонки на квадроциклах от первого лица в различных городских и загородных условиях. Игроки также могут создавать свои собственные курсы с помощью Track Builder. Еще одна замечательная особенность Liftoff заключается в том, что вы можете настроить квадрокоптеры, добавив новые реквизиты, приемники, двигатели, аккумуляторы и т. Д.
Видео через интернет
Для ретрансляции видео установим на сервер VLC плеер:
sudo apt-get install vlc
После установки, запустим его как ретранслятор c UDP порта 5001 в RTSP канал
SERVER_IP:8554/live
cvlc -vvv udp://@:5001 --sout '#rtp{sdp=rtsp://:8554/live}' :demux=h264
На борту запустим видеотрансляцию с камеры на сервер по UDP (вместо
SERVER_IP
адрес сервера):
gst-launch-1.0 rpicamsrc bitrate=1000000 ! video/x-h264,width=640,height=480,framerate=25/1 ! h264parse ! udpsink host=SERVER_IP port=5001
Адрес потока теперь можно использовать как источник видео в настройках GCS или открыть в любом плеере, поддерживающим этот протокол.
Теперь можно спланировать маршрут полета и запустить дрон через интернет, предварительно его включив, например, с помощью помощника по телефону.
Очевидно, что из-за относительно большого времени путешествия видео и телеметрии по сети, такой способ вряд ли подойдет для FPV-полетов в ручном режиме между препятствиями.
Темы для последующих публикаций:
Продолжение следует…
Видеотрансляция
Проверим как работает видеотрансляция в сети WiFi. Такой командой можно запустить видео в TCP-порт на Raspberry с использованием родной утилиты raspivid для камеры Raspicam:
raspivid -t 0 -hf -fps 25 -w 640 -h 480 -o - | gst-launch-1.0 fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=0.0.0.0 port=5001
А вот такой командой делается тоже самое, только с использованием ранее скомпилированной обертки rpi-camsrc для gstreamer:
gst-launch-1.0 rpicamsrc sensor-mode=4 ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=0.0.0.0 port=5001
В обоих случаях, трансляция в формате h264 доступна по IP-адресу Raspberry на порту 5001.
Посмотреть ее можно запустив на своем ПК такую команду (должен быть установлен gstreamer), вместо RPI_ADDRESS указываем адрес Raspberry в сети:
gst-launch-1.0 -v tcpclientsrc host=RPI_ADDRESS port=5001 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
В результате должно открыться окошко с видео.
Практически в любую GCS встроен видеоплеер, который может показывать RTSP-видеопоток. Чтобы сделать из Raspberry RTSP-сервер можно использовать консольный плеер VLC. Установка:
sudo apt-get install vlc
Видеотрансляция запускается так:
raspivid -o - -t 0 -n -w 320 -h 240 -fps 25 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/live}' :demux=h264
Видео доступно по адресу (вместо
RPI_ADDRESS
, адрес Raspberry):
rtsp://RPI_ADDRESS:8554/live
Настройка GCS:
Адрес потока можно использовать для подключения нескольких плееров на разных устройствах, но, так как видеозахват и трансляция для Raspberry весьма трудоемкий процесс, то для нескольких потребителей видео лучше использовать внешний сервер (описание ниже).
Виды симуляторов дрона
Давайте поговорим о факторах, которые нужно принимать во внимание при выборе симулятора полёта на дроне. Задайте себе несколько простых вопросов – ответы на них позволят вам сформулировать ваши требования к программе.
Будете ли вы пользоваться симулятором на PC или Mac?Собираетесь ли вы тренироваться летать в режиме FPV или LoS (Line of Sight – в пределах прямой видимости)?Нужно ли вам оттачивать умение управления камерой?Хотите ли вы также научиться управлять вертолётами и дронами с фиксированным крылом?Ищете ли вы симулятор дрона просто с целью развлечения?
Если у вас есть чётко сформулированная причина покупки симулятора полёта на дроне, это позволит вам без проблем выбрать наиболее подходящую вам программу.
DroneSim Pro – относительно новый симулятор, имеющий версии для ПК и Mac. В нём используется специально разработанный движок, основанный на реальной физике полёта дрона. Это позволяет максимально точно симулировать полёт беспилотника в любых условиях.
В текущей версии можно испробовать свои силы в управлении несколькими дронами, включая DJI Phantom 2 и 3. В будущем разработчики обещают добавить много новых моделей и карт для полётов, а также поддержку пультов управления (в настоящий момент DroneSim Pro работает с USB-контроллерами).
“Пилоты находят всё больше новых и инновационных применений дронам, поэтому сегодня мы наблюдаем постоянно растущий спрос на профессиональное обучение, – говорит Джессика Ворбёртон, основатель DroneSim Pro. – С нашим модульным ПО мы сможем воссоздать любой сценарий согласно требованиям пилота: сцену из фильма, свадьбу, обследование труб, пожар или даже ситуацию с заложниками”.
Этот симулятор управления дроном – наиболее проработанный и мощный из всех предложений на рынке. Однако первое, что вы заметите – необходимость платить достаточно высокую цену за это качество. Цена RealFlight Drone Flight Simulator составляет 109,99 долларов.
Для работы с симулятором не нужна клавиатура – всё управление осуществляется с помощью идущего в комплекте пульта. RealFlight Drone Flight Simulator позволяет вам делать практически всё, что может понадобиться от симулятора квадрокоптера: учиться обращению с камерой, тренировать навыки маневрирования, летать по FPV, управлять дронами DJI Phantom и многими другими моделями, тренироваться в разное время суток и в различных погодных условиях.
Единственный недостаток этого симулятора – несовместимость с Mac. Так что если вы используете компьютер Apple, вам придётся поискать другие варианты. Во всех остальных случаях RealFlight Drone Flight Simulator является лучшим симулятором полётов на дроне, и мы рекомендуем его попробовать (если, конечно, вас не отпугнёт высокая цена).
Добавим, что RealFlight имеет ещё одну уникальную полезную функцию: “отмотать время назад”. Это позволяет вам вернуться на несколько мгновений в прошлое в случае столкновения, падения или пропуска хорошего кадра, что позволяет вам моментально исправлять допущенные ошибки.
Aerofly RC7 является одним из самых реалистичных симуляторов управления дроном. Физика в нём проработана до мельчайших деталей, поэтому все дроны ведут себя совершенно так же, как и в реальной жизни. Тем не менее, за такой высокий уровень качества вновь придётся раскошелиться: стандартная версия программы стоит 49 долларов и доходит до 139 долларов за версию с контроллером. Если у вас есть свой пульт управления, то вы сможете значительно сэкономить.
Основные преимущества Aerofly RC7:
- Полёты на более чем 130 моделях дронов, включая DJI Phantom и прочие мультикоптеры, вертолёты и дроны с фиксированным крылом
- Возможность использовать собственный пульт управления либо идущий в комплекте контроллер
- Версии для PC и Mac
- Множество настроек (уровень расходников, угол наклона FPV камеры, эффект “фишай”)
Liftoff – новый симулятор, разработанный Immersion RC. Это не совсем обычный симулятор полётов на дроне: он заточен исключительно для тренировок в FPV-гонках. Разработчики называют следующие преимущества своей программы:
- Симулятор, разработанный дронрейсерами для дронрейсеров
- Лёгкая интеграция с FPV-очками
- Невысокая цена (стоимость предрелизной версии – $19,99 на Steam)
- Версии для PC и Mac
Этот симулятор не подойдёт для тренировки навыков аэрофотовидеосъёмки. В то же время, если вы хотите научиться управлять гоночным дроном – Liftoff станет идеальным вариантом. Он хорошо работает с FPV-очками и имеет простые настройки, что делает его лучшим на сегодня симулятором гоночного дрона.
FPV Freerider – дешёвая альтернатива представленным выше симуляторам, имеющая менее реалистичную физику и более ограниченные возможности. Для полётов в FPV Freerider вам придётся отдельно приобрести USB-совместимый контроллер.
Тем не менее, у этого симулятора есть свои преимущества:
- Чрезвычайно низкая цена – пять долларов (или десять долларов за расширенную версию)
- Симулятор подходит для обучения начинающих пилотов дронов
- Работает практически с любым USB-контроллером
Висеть, как вкопанный
Чтобы дрон умел висеть на одном месте и не “плавать”, одного только GPS не достаточно. К сожалению, из-за состояния атмосферы координаты с приемников GPS могут плавать в пределах десятков метров и для сантиметровой точности нужно использовать корректирующие системы
. Эта система использует наземную неподвижную станцию, как эталон отклонений координат, и радиосвязь с бортом, чтобы отправить туда значения этих отклонений. Такая штука обязательно нужна для съемки фотопланов с последующей склейкой в большие карты, а для целей висения на месте я пока ограничусь оптическим датчиком
Работает он по такому же принципу, как и оптическая мышь. В отличие от IR-Lock, он не распознает конкретный образ и в Ardupilot они работают в разных полетных режимах. Изображение с камеры анализируется на смещение 400 раз в секунду, а вычисленные значения смещения могут быть прочитаны контроллером по протоколу I2C. Датчик (
) весит 15 грамм и имеет все необходимое у себя на плате: процессор 168 MHz Cortex M4F CPU (128 64 KB RAM), оптический сенсор 752×480 MT9V034 и 3-х осевой гироскоп L3GD20. Для его нормальной работы также рекомендуется использовать лазерный дальномер, вместо ультразвукового. Хотя на самом модуле предусмотрен разъем как раз для УЗ датчика.
Выбор полетного контроллера
Так как мне нужно транслировать видео и телеметрию через интернет, то сразу приходит на ум поставить на дрон микрокомпьютер с 4G модемом и камерой, и сделать из этого комплекта web-трансляцию. Нашлись вот такие решения:
. Это обычные одноплатники с внешним USB 4G модемом и камерой. Для кодирования и трансляции видео используется
. Но эти штуки сами по себе дроном управлять не умеют, их нужно использовать совместно с полетным контроллером.
Полетный контроллер — это мозг дрона. Он следит за состоянием датчиков положения (гироскоп, акселерометр, компас), GPS-координатами, положением ручек на пульте управления и, исходя из этих данных, управляет моторами, чтобы висеть в одной точке или куда-то лететь.
Полетный контроллер нужно будет как-то связать с бортовым компьютером, чтобы можно было загрузить полетное задание или указать произвольную точку куда лететь и когда включать камеру. В продаже можно найти много разных контроллеров сильно отличающихся друг от друга по цене и функционалу.
С Ardupilot я игрался еще на 8-битных атмегах, в которых не было USB-bootloader’а, а прошивались они на программаторе. С тех пор с ним не сталкивался и был приятно удивлен, когда узнал, что сейчас он может работать на 64-битных компьютерах с Linux, у него огромное сообщество пользователей как хобби, так и профи, длинный список поддерживаемых “из коробки” датчиков и расписанные планы на 2023-2023 годы. За это время он успел перерасти в проект DroneCode, а потом и отсоединиться от него.
На первый взгляд в нем как раз реализованы все необходимые функции: автоматический взлет и посадка, загрузка полетных заданий, есть desktop и мобильные приложения под все основные семейства ОС. Программы управления (GCS — Ground Control Station) общаются с бортовым контроллером короткими сообщениями по открытому протоколу MAVLink через комплект радиомодемов (дрон шлет телеметрию, GCS шлет команды управления). Подозреваю, что эти сообщения получится пустить через интернет.
Взглянем на список поддерживаемых контроллеров и что-нибудь подберем. Вариантов там полтора десятка от мала до велика и с разными характеристиками.
Из всего того многообразия контроллеров мне понравилось несколько вариантов:
Самый легкий комплект (84 г) получается из микрокомпьютера
(9 г), контроллера
(15 г), родного внешнего GNSS модуля (46 г) и дополнительного
(14 г).
Рабочий процессор в этом комплекте один — на Raspberry Pi. На нем висит управление ШИМ регуляторов моторов, считывание показаний датчиков, ОС Linux со всеми потрохами и декодирование видео с камеры. Так как в Pi Zero не предусмотрены USB порты, то в этом варианте приходится использовать внешний концентратор. IMU датчики и вход питания без резервирования.
Следующий комплект (97 г) от гонконгской компании с русскими фамилиями в команде разработчиков — контроллер Emlid Edge (59 г) с GNSS модулем (38 г). GNSS модуль работает по протоколу UAVCAN и дополнительно оснащен магнитометром и датчиком воздушного давления. За ШИМ здесь отвечает отдельный процессор ARM Cortex-M3, ОС Linux крутится на основном ARM Cortex-A53 quad-core.
В контроллере имеется HDMI видеовход, что позволяет подключить к нему напрямую любую камеру с таким выходом, например GoPro 4 или 5. Относительно высокая стоимость объясняется дальнобойными wifi-приемопередатчиками в комплекте (до 2 км с трансляцией HD-видео).
Следующий вариант (98 г) состоит из знаменитого микрокомпьютера Raspberry Pi 3 (45 г) с контроллером-шилдом Navio 2 (23 г) от той же Emlid и внешней GNSS-антенны (30 г). На контроллере стоит отдельный процессор Cortex-M3 для управления ШИМ на 14 каналах и расшифровки входящих SBUS и PPM сигналов от приемника. Он, в свою очередь, управляется через драйвер в ядре ОС Linux, которая крутится на Raspberry.
Контроллер оснащен парой раздельных IMU датчиков (акселерометр, гироскоп, магнитометр) MPU9250 и LSM9DS1, одним датчиком воздушного давления и GNSS-модулем U-blox NEO-M8N, который видит GPS, Глонасс и BeiDou с внешней антенной через разъем MCX.
Зачем мне нужен симулятор полета?
Основная причина – не повредить настоящий квадрокоптер во время обучения полету в полевых условиях. В симуляторе, как в обычной игре, в случае “ПОТРАЧЕНО” пользователь просто продолжит с того места, на котором остановился, или начнет заново. Но это не единственное преимущество использования симулятора полета. Вот еще несколько:
- Не нужно ждать хорошей погоды. Тренировки на симуляторе можно проводить не вылезая с кровати. Особенно, когда за окном ветер, дождь, мороз или снег.
- Нет необходимости в дополнительном снаряжении. Все более и более углубляясь в данную тематику пилот коптера захочет приобрести дополнительные аксессуары, которые помогут облегчить и улучшить полет. А это весьма затратное мероприятие.
- Хороший обучающий инструмент. Для профессионалов авиасимуляторы – отличный способ освоить новые навыки съемки фото и видео, а также отточить скилл в управлении стиками пульта. Для стрирейсеров на FPV это возможность провести время с пользой за тренировками не выходя из дома.
- Никаких ограничений на полет. Современный БПЛА способен летать максимум 30 минут. Даже при наличии запасных аккумуляторный батарей, время полета будет строго ограничено. На симуляторе с этой проблемой точно не столкнутся.
- Можно хорошо провести время. Само по себе управление дроном – веселая штука, а в виртуальной программе она перерастает в подобии любимой компьютерной игры в детстве. Конечно, у него есть свои отличия в плане ощущений от элементов управления и визуального восприятия, но это по-прежнему хороший способ провести время, улучшая навыки, которые пригодятся в реальной жизни.
Имеет ли смысл покупать симулятор дрона?
Хороший симулятор дрона может помочь вам натренировать свои навыки в аэрофотографии, FPV-гонках, съёмках видео – и всё это на различных моделях квадрокоптеров. При правильном использовании такие симуляторы являются отличным способом развить мышечную память и координацию “глаза-руки”.
Они будут особенно полезны для начинающих операторов дронов, однако помогут и более опытным гонщикам. Симуляторы управления дроном позволят вам тренироваться в любое время и любую погоду и при этом не подвергать излишнему риску ваш дрон и окружающих людей.
Конечно, существует альтернативный вариант: купить недорогой квадрокоптер и учиться летать на нём. А что думаете вы? Пользуетесь ли вы симуляторами полётов на дроне или предпочитаете летать на реальных аппаратах?
Калибровка датчиков и настройка параметров автопилота
Калибровку автопилота можно сделать почти в любой GCS. В документации Ardupilot она
во всех подробностях. Прежде всего устанавливаем тип рамы. У меня стандартная 4-х моторная компоновка, поэтому это
Quad X
Первый полет лучше все же сделать в ручном режиме. Подключаем и калибруем радиоуправление (приемник и передатчик).
Осталось откалибровать акселерометр и компас.
Для того, чтобы Ardupilot видел и учитывал данные с внешних датчиков, установим необходимые параметры:
Для PX4Flow (калибровка самого датчика и обновление прошивки)
FLOW_ENABLE = 1 (Enabled)FLOW_ADDR = 0 (0 = вариант для стандартного адреса 0х42)
Для лазерного высотомера VL53L0X (инструкция)
RNGFND_TYPE = 16 (VL53L0X)RNGFND_ORIENT = 25 (ориентация дальномера вниз)RNGFND_ADDR = 41 (I2C-адрес в десятичном виде). Адрес датчика по-умолчанию 0x29, что в десятичном виде = 41.RNGFND_SCALING = 1RNGFND_MIN_CM = 5RNGFND_MAX_CM = 120RNGFND_GNDCLEAR = 15 (расстояние от датчика до поверхности, когда дрон стоит на земле)
Для IRLock (подробная инструкция, wiki IR-Lock)
PLND_ENABLED = 1PLND_TYPE = 2PLND_BUS = 1
Для сонара переднего обзора (инструкция)
Ключевые функции
- Программное обеспечение для обучения пилотов дронов для обычных и промышленных целей.
- Уникальная технология управления полетом DJI помогает максимально реалистично смоделировать полет.
- Хорошая графика и реалистичная окружающая среда с практическими настоящими эффектами ветра и ландшафта во время полета.
- Три смоделированных режима полета и несколько POV-точек для всестороннего обучения.
- Три учебных модуля, включая тренировку навыков, свободного полета и задач продовольственного значения.
- Симулятор располагает виртуальными версиями большинства моделей DJI: серии Mavic, Phantom, Inspire и даже Matrice 200 (дроны серии Enterprise не включены в бесплатную пробную версию).
Компоновка
Пока я выбирал подходящую раму и думал как все это на ней размещать и чем крепить, пришел к выводу, что проще будет нарисовать несколько деталей и заказать 3D-печать из пластика и фрезеровку из карбона. Пару готовых железок и крепеж можно заказать на Алиэкспрессе.
Немного поэкспериментировав с компоновкой и центром тяжести, получилась вот такая рама:
Она состоит из карбоновых трубок и пластин, деталей из алюминия и крепежа из титана. Расчетный вес рамы получился 350 г при диагонали 700 мм. 3D-модель рамы и список деталей.
Полностью собранная модель (без проводов):
Общий вес коптера с электроникой, аккумулятором Li-Ion 6S2P и проводами должен получится 1931 г.
Да, мне тоже показалось, что дрон получился слишком голым для автономного варианта и мелкий дождик легко намочит бортовую электронику. Поэтому добавил немного пластика:
3D-модель рамы. Список деталей рамы.3D-модель в сборе. Список компонентов.
Вес пустой рамы с корпусом 384 г, общий вес 2020 г, расчетное время висения на одной зарядке (разряд аккумулятора до 20%): 44 минуты.
Лучшие симуляторы полета на квадрокоптере
Симулятор | Лучше подойдет для … | Цена | Поддерживаемые платформы |
Liftoff от Immersion RC | Съемки FPV | $19.99 | Windows, macOS |
Velocidrone | ≈ $23 | ||
FPV Freerider | $5.00 | ||
DRL Sim 3.0 Drone Racing Simulator | $9.99 | ||
FPV Air 2 | $4.99 | ||
Uncrashed : FPV Drone Simulator | Съемки FPV | Windows | |
DJI Virtual Flight | Бесплатно | iOS | |
DJI Flight Simulator | Профессионалы, любители | $1,350 | |
Zephyr Drone Simulator | $75 (пакет профессиональных технических полетов. Стоимость пакетов варьируется) | ||
droneSimPro Drone Flight Simulator | $29.99 | ||
RealFlight RF9.5 Drone Simulator | $179.99 (с пультом ДУ Spektrum radio) или $99.99 (только ПО) |
Минимальный комплект электроники
Вот, что собралось:
Общий вес получается 199 г. Все компоненты работают от 5 Вольт и потребляют в режиме трансляции видео почти 2 Ампера (10 Ватт).
В наборе присутствует ультразвуковой датчик расстояния, который будет смотреть вперед на предмет препятствий. Стереозрение и круговые лидары я оставил на потом, если в них возникнет реальная необходимость.
Моторы и пропеллеры
На многих профессиональных дронах я видел моторы и пропеллеры компании
. Видимо, не спроста. В документации Ardupilot они также
как силовая установка для профессиональных дронов. Поэтому, поищем подходящие моторы у них.
Чтобы дрон летал долго, нужны моторы с максимальным КПД. Эффективность связки мотора и пропеллера измеряется количеством тяги в граммах на 1 Ватт затраченной электроэнергии. Чтобы узнать какой мотор самый подходящий, нужно знать общий вес полностью собранного дрона с учетом рамы, аккумулятора и самих моторов с винтами.
Слишком много неизвестных, поэтому воспользуюсь онлайн калькулятором для квадрокоптеров E-calc.
Поигравшись в калькулятор, я выбрал моторы Antigravity 4004 KV300 (53 г) с винтами 15х5 (27 г). В оптимальном режиме при напряжении питания 24 Вольта такой комплект тянет 474 грамма при токе 1,4 А. Эффективность получается 14.
11 г/Ватт, отношение тяги к собственному весу = 5.9:1. На полном ходу тяга составляет 1311 грамм при токе 7,5 А. Коптер будет с четырьмя моторами, то есть квадро. Оптимальный взлетный вес = (474 г * 4 мотора) = 1896 г, максимальный (с учетом тяговооруженности 2:1) = (1311 г * 4 мотора) / 2 = 2622 г.
Моторы управляются регуляторами оборотов. Напряжение питания моторов = 24 Вольта, максимальный рабочий ток = 7,5 А, поэтому нужен регулятор под такое напряжение и с рабочим током, с учетом запаса, минимум 10А. У T-Motor самый легкий регулятор (7 г без проводов) под такое напряжение — это FPV 35A-32bit 3-6S.
Подитог:
ВМГ (винто-моторная группа), состоящая из моторов, пропеллеров и регуляторов (по 4 шт каждого) весит 346 г.
Вместе с электроникой и полезной нагрузкой (346 505) получается 851 г. С учетом крепежа, проводов и разъемов (прикинем 100 г) = 951 г.
При оптимальном весе, на раму и аккумулятор остается (1896 — 951) = 945 г. При максимальном (2622 — 951) = 1671 г.
Настройка и запуск ardupilot
Релизы новых версий Ardupilot немного запаздывают в сборке от Emlid. Если необходимый функционал доступен в самой последней версии, то установить ее из исходников можно
Разработчики Navio добавили в свою сборку простую и удобную утилиту Emlid tool для проверки датчиков и настройки Ardupilot. Сначала проверим, видит ли Raspberry контроллер Navio:
emlidtool info
Если в ответ на эту команду выдает что-то вроде:
Vendor: Emlid Limited
Product: Navio 2
Issue: Emlid 2023-06-05 831f3b08594f2da17dccae980a2e3659115ef71f
Kernel: 4.14.34-emlid-v7
RCIO firmware: 0xcaec2284
значит видит. Проверим состояние датчиков (покажет список и состояние):
emlidtool test
и драйвера ШИМ-контроллера в ядре Linux:
cat /sys/kernel/rcio/status/alive
0 = не работает, 1 = работает.
Прошивка ШИМ-контроллера обновляется так:
sudo emlidtool rcio update
Теперь настроим Ardupilot:
sudo emlidtool ardupilot
В терминале откроется текстовый GUI с пошаговыми менюшками. Выбираем copter последней версии, тип
arducopter
, автозапуск при включении (
On boot: enable
), старт после настройки (
Ardupilot: start
Выходим через пункт меню Quit.
Проверим запустился ли Ardupilot:
sudo systemctl status arducopter
Обратите внимание, файл запуска в systemd называется
arducopter
, так как настроен был вариант
copter
Теперь нужно настроить Ardupilot так, чтобы он отправлял нам телеметрию. Для этого отредактируем файл конфигурации:
sudo nano /etc/default/arducopter
В нем должны быть такие строки:
TELEM1="-A udp:127.0.0.1:14550"
ARDUPILOT_OPTS="$TELEM1"
Сохраняем файл (
Ctrl X
, затем
Y
) и перезапускаем Ardupilot:
sudo systemctl daemon-reload
sudo systemctl restart arducopter
Проверить состояние процесса Ardupilot можно такой командой:
sudo systemctl status arducopter
С такими настройками Ardupilot будет транслировать телеметрию (пакеты
) в локальный UDP-порт 14550. Далее, скрипт
(описание ниже) будет забирать оттуда телеметрию и передавать в GCS или скрипт, а также отправлять в обратном направлении пакеты с командами.
Вместо локального адреса и порта можно записать IP-адрес ПК или планшета в локальной сети и пакеты будут транслироваться сразу туда.
Однако, такой подход оправдан, если данные телеметрии больше нигде не используются и у устройства с GCS статический IP адрес. Иначе каждый раз в настройках Ardupilot придется прописывать новый. Чтобы общаться с автопилотом по TCP могли одновременно несколько GCS с динамическими адресами и еще какие-нибудь скрипты на самом бортовом компьютере, удобнее использовать MAVProxy.
Этот скрипт (написан на Python) может получать пакеты MAVLink на локальный UDP-адрес и ретранслировать их на несколько локальных или удаленных IP-адресов как по UDP, так и по TCP. Пакеты передаются в обоих направлениях Ardupilot ⇔ GCS. Кроме того, MAVProxy представляет из себя полноценную GCS, но с текстовым интерфейсом.
Обновление дистрибутива и установка необходимых пакетов
Открываем SSH-клиент и соединяемся с Raspberry (локальный IP-адрес navio вместо
RASPBERRY_IP_ADDRESS
ssh pi@RASPBERRY_IP_ADDRESS
Стандартный пароль:
raspberry
. В первую очередь необходимо расширить файловую систему ОС на весь объем SD-карты:
sudo raspi-config --expand-rootfs
и перегрузиться:
sudo reboot
После перезагрузки, соединяемся еще раз и обновляем дистрибутив:
sudo apt-get update && sudo apt-get dist-upgrade -y
Устанавливаем дополнительные пакеты:
sudo apt-get install autoconf automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libraspberrypi-dev gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad
и компилируем обертку
для
и родной камеры Raspicam:
Питание
Для питания всей электроники необходимы источники на 5 Вольт (минимум 2,2 Ампера) и 12 Вольт (минимум 1 Ампер). С учетом резервного питания полетного контроллера, нужно два независимых источника на 5 Вольт. Сделать систему питания можно из отдельных модулей подходящего номинала или найти готовый “3 в 1”, например
(24 г, макс входное напряжение до 28 Вольт, выходы по 3А). К нему будет подключен
(22 г), чтобы была возможность измерять расход мАч на аккумуляторе.
Комплект электроники камера подвес система питания весят 505 г.
По для управления дроном на пк и планшетах
Для управления БПЛА используются специальные программы GCS (Ground Control Station). Далее по тексту я буду использовать эту аббревиатуру. Мне по душе пришлась
, мультиплатформенная (Windows, Linux, MacOS, iOS, Android) GCS с открытым исходным кодом, которая стала частью проекта
. Но есть и альтернативы, бесплатные и коммерческие:
(DroidPlanner) для Android,
(iOS),
(iOS). А также консольная
Полезная нагрузка
Так как родная камера от Raspberry делает средние по качеству фото, а также не умеет захватывать фото одновременно с видео, то она будет использоваться только для web-трансляции, а в качестве основной камеры нужна подходящая для выявления дефектов на ЛЭП. Для большей части позиций из списка выявляемых дефектов подойдут
, мультиспектральная
, двойная
и инфракрасная
. Каждая из них весит около 100 г.
Для стабилизации камеры с целью улучшения качества снимков в нагрузку с ней полетит 2х или 3х осевой подвес.
Простые 3-х осевые подвесы весят около 160 г и питаются от 12 Вольт, имеют рабочий ток при таком напряжении около 50 мА и максимальный ток 700 мА при заклинивании моторов.
Посадка “в точку”
Для точной посадки можно использовать стандартную камеру бортового компьютера, визуальные маркеры и OpenCV для их распознавания. Вот
решения, который можно нагуглить.
свежий появился, когда я писал эту статью. Но распознавание образов достаточно трудоемкий процесс для Raspberry, и без особой необходимости загружать его не хочется. Также качество распознавания будет сильно зависеть от материала из чего сделан маркер и условий освещенности.
Преимущества
Симулятор дронов Zephyr создан специально для использования в качестве обучающего инструмента и отличается от других симуляторов в этом списке тем, что включает в себя управление и обратную связь со стороны инструктора. Полетная статистика студентов, зачисленных на учебный курс, будет отправлена инструктору для просмотра и обратной связи. Однако это не ограничивается использованием в классе, и профессионалы могут использовать программу обучения индивидуально.
Акцент на обучении распространяется даже на сферу обучения технике безопасности: в программу встроены инструкции FAA по безопасности, которые помогают пилотам научиться действовать в соответствии с параметрами правил FAA.
Физика и настраиваемость делают программу точным и реалистичным инструментом обучения с легким переносом в реальные полеты. Огромный выбор обучающих модулей и ситуаций делает Zephyr применимым практически к любому коммерческому или даже любителю дронов.
Zephyr также имеет довольно разумную цену, что касается профессиональных тренажеров для обучения дронам, с базовым пакетом, начинающимся с 75 долларов. Конечно, вы также можете протестировать бесплатную пробную версию, прежде чем решить, подходит ли вам этот симулятор.
Совместимая аппаратура
- очки DJI FPV Goggles V2
- пульт управления DJI FPV Remote Controller V2
- пульт управления DJI FPV Motion Controller
Совместимая аппаратура (джойстики)
- Порт USB 2.0
- Совместимый FM-передатчик
Телеметрия через интернет
Чтобы GCS могла подключиться через интернет к дрону с динамическим IP-адресом, необходим промежуточный сервер со статическим IP, на котором будет запущен скрипт MAVProxy. Для этих целей я воспользовался арендой облачного сервера у одного из известных провайдеров.
Для MAVProxy подойдет самая минимальная конфигурация, но так как у меня этот же сервер будет заниматься ретрансляцией видео, то я выбрал вариант с чуть большей памятью (одно ядро и 1Гб памяти, Ubuntu 18.04). Для минимальной задержки в прохождении данных между бортом и GCS, сервер должен располагаться в максимальной географической близости к дрону и GCS.
Устанавливаем MAVProxy на сервер. Сначала зависимости:
sudo apt-get install python-dev python-opencv python-wxgtk3.0 python-pip python-matplotlib python-pygame python-lxml python-yaml
а потом и сам скрипт через PIP:
sudo pip install MAVProxy
пропишем путь:
Требования к бпла
А также два противоречащих друг другу требования:
Степень автономности в идеале хочется фантастическую: дрон сам летает по заранее спланированному маршруту, загружает фото на сервер, ПО на сервере выявляет дефекты по фото и формирует заявку ремонтной бригаде с координатами мест проведения работ. Сам дрон не должен требовать к себе внимания человека до окончания рабочего ресурса какой-нибудь детали, например, аккумулятора или подшипников.
Понятно, что эта задача не на один год, но я начну, а кто-нибудь, может быть, подхватит и продолжит.
Для примера, готовые промышленные варианты автономных комплексов: раз, два, три, четыре, пять, шесть, семь, восемь, девять, десять, одиннадцать, двенадцать, тринадцать, четырнадцать.
Установка образа ос на sd-карту
Для нормальной работы автопилота крайне рекомендуется использовать “быстрые” SD-карты (класс 10). Медленные карты памяти не успевают сохранять логи автопилота даже на небольшой частоте, в результате чего они получаются кривыми или вообще не пишутся. Свидетельством этого может быть ошибка “
No IO heartbeat
Установка связи с дроном в локальной сети
Остановим скрипт (
Ctrl C
) и снова запустим его в таком виде:
mavproxy.py --master=udp:127.0.0.1:14550 --out=tcpin:0.0.0.0:5762
С дополнительным параметром
–out=tcpin:0.0.0.0:5762
MAVProxy будет слушать порт 5762 на входящие TCP соединения от GCS. Как только GCS соединиться, пакеты с данными начнут перемещаться между дроном и GCS. Попробуем подключиться с ПК:
Если подключение удалось, то GCS покажет кучу сообщений с требованием откалибровать датчики и загрузит бортовые параметры с их текущими значениями: