Уголок радиолюбителя. Как прокачать дрона | GeekBrains – образовательный портал

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал Роботы
Содержание
  1. Начало настройки
  2. Что такое дроны и какие они бывают
  3. Что нужно знать, чтобы программировать дроны
  4. Как образовательный коптер помогает научиться программировать на python, и что не так с lua
  5. ✔️ 5 лучших курсов по программированию дронов [2022]
  6. 2 место. курс «управление дронами (бпла)» — открытое образование
  7. 3 место.курс «управление и программирование» — maidroneschool
  8. Автономный маршрут доступа
  9. Архитектура
  10. Бизнес
  11. Ведущий (lead)
  12. Военные и государственные организации
  13. Востребованность профессии
  14. Выбор готового дрона
  15. Где работают программисты дронов
  16. Где работают программисты дронов?
  17. Где учиться на программиста дронов
  18. Геодезия и картография
  19. Джун (junior)
  20. Доставка товаров и грузов
  21. Запуск технологии распознавания лиц
  22. Как стать программистом дронов: карьерный путь
  23. Курс «dronny» — dronny.school
  24. Программирование дрона
  25. Производство и продажа беспилотников
  26. Профессиональное развитие программиста дронов
  27. Сколько зарабатывают программисты дронов
  28. Средний (middle)
  29. Стажёр (intern, trainee)
  30. Старший (senior)
  31. Съемка потокового видео с дрона
  32. Типы дронов
  33. Требования к программисту дронов
  34. Управление полетом с веб-страницы
  35. Управление полетом командной строкой
  36. Установка системы распознавания речевых команд
  37. Чем отличается инженер-разработчик бла от программиста дронов
  38. Выводы

Начало настройки

По умолчанию Parrot AR 2.0 раздает собственную клиентскую беспроводную сеть.  Это невероятно усложняет взлом устройства. Каждый раз, когда вы что-то предпринимаете, вам необходимо отсоединиться от своей сети и подключиться к сети дрона. К счастью, существует очень полезный проект ardrone-wpa2, который поможет настроить дрон на подключение к вашей Wi-Fi сети.

Очень весело использовать протокол Telnet и экспериментировать, Parrot начинает напоминать урезанную версию Linux. Когда вы в последний раз подключались к чему то через Telnet? Вот пример, как можно открыть терминал и войти непосредственно в систему дрона.

% script/connect “The Optics Lab” -p “particleorwave” -a 192.168.0.1 -d 192.168.7.43

% telnet 192.168.7.43

Что такое дроны и какие они бывают

Дрон — разговорное название для беспилотных летательных аппаратов (БПЛА). Такое прозвище сложилось из-за шума, издаваемого беспилотниками при взлёте (англ. drone — «шмель, трутень»).

Популярность пришла к дронам в начале 2022-х. Но идея создания беспилотного аппарата возникла ещё в 19 веке у Николы Теслы. Учёный разработал и запатентовал концепцию радиоуправляемых дронов и предлагал использовать своё изобретение для перевозки грузов.

Первыми потенциал БПЛА разглядели военные, и уже во время Первой мировой войны они создали экспериментальный аппарат. Торпеду так никогда и не использовали по назначению, но испытания прошли успешно, и «жук» Кеттеринга стал прообразом для других самолётов-снарядов.

Что нужно знать, чтобы программировать дроны

Программирование дронов — это более узкая квалификация для разработчиков программного обеспечения. Тем не менее, совсем не обязательно быть профи в программировании, чтобы сменить направление в сторону ПО для БПЛА.

Многие инструменты для разработки ПО для дронов позаимствованы из робототехники. Так что опыт работы с приложениями для домашних роботов вам очень поможет в программировании беспилотников. Кроме этого, для более успешной учёбы вам понадобятся основы программирования и знания по математике на уровне 1–2 курса университета.

Некоторые производители дронов, например, китайский DJI, предлагают свои среды разработки. Но для начала вам достаточно будет базовых знаний языков программирования Python, Java и С .

Как образовательный коптер помогает научиться программировать на python, и что не так с lua

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал

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

Ключевые элементы обучения на сегодняшний день – это развитие навыков программирования для решения задач автономного полета коптера, понимание основ алгоритмов управления и работа с различными функциональными модулями. Для юных пользователей порог входа был снижен за счёт возможности использования визуального блочного программирования в плагине для TRIK-Studio, а вот создание более сложных программ требовало знакомства с языком Lua.

В 2020 году линейка Пионеров дополнилась новыми моделями – появились младший  и старший «братья»  Мини и Макс. И если по размеру и массе братья стоят по ранжиру  – Мини самый маленький и легкий, а Макс самый большой и тяжелый, то по функционалу младший уже готов дать фору своему предшественнику (назовём его Классическим Пионером).

Во-первых, уже в базовой комплектации Пионер Мини имеет видеокамеру с возможностью передачи видео по Wi-Fi. Во-вторых, он оснащен датчиками, которые могут обеспечивать автономный полёт в помещениях с использованием сразу нескольких систем навигации – УЗ и ИК (подробнее про них расскажу в отдельном материале). Если вкратце – это внешние системы позиционирования в помещении, которые позволяют коптеру ориентироваться в локальной, зафиксированной системе координат, связанной с точкой взлета. В случае отсутствия системы навигации коптер не потеряется, т.к. имеет датчик оптического потока и TOF дальномер.

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал
Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал
Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал

Все эти функции доступны и Классическому Пионеру, но требуют использования отдельных модулей расширения. Концепция с дополнительными модулями позволяла адаптировать базовый набор под различные учебные или соревновательные кейсы. Например, модуль захвата груза в паре с модулем GPS позволяет реализовать простейший кейс поисковой операции. Однако для тех, кто только начинает свое знакомство с коптерами такое разнообразие может оказаться лишним и даже пугающим, поэтому для таких пользователей и был создан Мини: недорогой, ударопрочный коптер, который “из коробки” оснащён самым необходимым для автономных полетов в помещении. Ну и в-третьих, благодаря наличию Wi-Fi удалось добавить для Мини  возможность программировать на Python.

Какая связь? Сейчас поясню.

Пионер Мини рассчитан на полёт в помещении, и применение на нём Wi-fi в качестве канала связи было не только оправдано, но и открыло новые возможности по сравнению с Классическим Пионером, где обеспечивалась только узкополосная, но дальнобойная связь в канале 868МГц. Простота подключения (без использования доп. модулей), высокая скорость передачи данных и поддержка протокола MAVLink в совокупности позволяют осуществлять программирование квадрокоптера удаленно, используя, к примеру, ноутбук, на котором запущена программа. В данном случае коптер как бы визуализирует код, написанный пользователем на компьютере. При этом все, что происходит с коптером можно отслеживать на экране ноутбука в реальном времени, в том числе по изображению с видеокамеры.

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

Почему Lua не лучший вариант для обучения программированию:

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

Постараюсь объяснить это на примере.

Есть типичная для школьных олимпиад по робототехнике задача – получить картинку с камеры и на основании какой-то информации с нее полететь в нужную сторону. Если вы работаете с техническим зрением, то в голове сразу выстраивается картина: берем OpenCV, обрабатываем видеопоток, выдаем команду. Но с Пионером не все так просто…

Контроллер автопилота решает только задачи управления и связи, при этом пользовательские скрипты на Lua запускаются внутри интерпретатора, который сам является частью прошивки. Поэтому вычислительные мощности автопилота как и набор доступных интерфейсов оказывается ограниченным и логичным решение является использование внешнего вычислителя. Например, мы можем подключить к автопилоту модуль с камерой OpenMV H7, которая имеет достаточно мощный контроллер для обработки изображений и способна выдавать результаты обработки в виде команд в декартовых координатах. Дальше нас ждут сюрпризы. Среда программирования Pioneer Station, поддерживает только работу с автопилотом, позволяя написать код на Lua  и загружать его в коптер. Для работы с камерой нужно отдельно установить среду OpenMV IDE, и оказывается, что камера программируется уже на MicroPython… К слову, IDE для камеры довольно хорошая и поддерживает отладку, правда отследить работу программы можно только по светодиодам – отладчик для работы Lua скриптов внутри автопилота не предусмотрен. Камера с автопилотом может быть соединена по интерфейсу UART, а для её подключения к автопилоту, для крепления на раме коптера используется плата адаптер.

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

Смотрите про коптеры:  Создаем робота в домашних условиях / Хабр

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

Python в последние годы де-факто стал образовательным стандартом, когда речь заходит об обучении программированию. Во многом благодаря низкому порогу вхождения и таким свойствам языка, как динамическая типизация, упрощенное ООП и удобство использования библиотек. В интернете сейчас есть много образовательных курсов, направленных именно на первое знакомство с программированием через Python. В контексте применимости к робототехническим кейсам язык себя хорошо зарекомендовал, в первую очередь из-за своих скриптовых корней, однако если в лоб начать сравнивать его с Lua, то станет понятно, что у Python есть свои ограничения в быстродействии. Но опять же, когда мы говорим об образовании, на первые роли выходит удобство и понятность, а быстродействие обычно описывается фразой „лишь бы работало…“

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал

Lua является очень быстрым и легким скриптовым языком во многом потому, что из коробки в нем практически ничего нет. И тут Python с пакетным менеджером просто не оставляет ему шансов. Вернусь к вышеописанной задаче по обработке изображения. Вполне логичной кажется ситуация, когда скрипт должен работать в асинхронном режиме. Я имею ввиду, что обработка изображения не должна „вешать” часть кода, связанную с отправкой команд управления дрону. На Python уже „из коробки” стоят пакеты threading и multiprocessing, к которым в придачу идет отличная документация и примеры, когда как на Lua скорее всего я найду чей-нибудь проект на github-е, и если в нем окажется хороший readme, это уже будет огромной удачей. Также важным фактором является и то что, Python используется как нативный язык для ROS, что позволяет сильно облегчить процесс понимания разработки своих роботов.

Другим преимуществом Python в образовательной робототехнике является организация „экосистемы“ обучения. Касательно квадрокоптеров многие задачи строятся вокруг создания алгоритмов полета на основе обработки информации с сенсоров, поэтому очень удобно проводить расчеты и визуализировать процессы в одной среде.

Так, библиотека numpy может стать полноценной альтернативой вычислениям в более мощных пакетах, таких как Matlab, а полученные результаты можно очень легко встроить в программы полета. Опять же, говоря о техническом зрении, многие процессы получения геометрических характеристик сводятся к последовательным переходам от одной системы координат к другой, и тут возможности матричных вычислений numpy очень сильно помогают. Библиотека matplotlib со своей стороны может отлично помочь в визуализации данных, получаемых с дрона в реальном времени. Но в ситуации, когда для реализации Lua скриптов их заливают в микроконтроллер, возможности подключить к нему пользовательскую библиотеку нет вообще.

Чем сейчас удобна работа с библиотекой:

Библиотека для программирования Пионер Мини на Python выложена как open-source проект на github, а так же может быть установлена используя pip с хранилища PyPi. Это, по сравнению с применением Lua скриптов, позволило реализовать полноценную версионность и дало нам уверенность в том, что пользователь сам может узнать об актуальной версии библиотеки.

Реализация библиотеки представляет собой класс квадрокоптера, в котором присутствуют методы по получению изображения с камеры квадрокоптера, полета, управлению светодиодами и получению “сырых” данных с датчиков. Освоив работу с ними с помощью преподавателя, ничего не мешает ученику внедрить свои идеи в скрипт квадрокоптера: будь то распознавание объектов или ARUCO маркеров, использование нейросетей, построение различных регуляторов и т.д. В дополнение к этому был реализован метод запуска предварительно залитого на коптер Lua скрипта по воздуху (в дальнейшем хочется также реализовать загрузку скрипта, чтобы уже написанные образовательные методики могли использоваться удобнее).

Также, опираясь на опыт разработки полетных заданий на Lua, часто случались ситуации когда ученик совершал „фатальную“  ошибку в коде, которая могла привести к полному крашу коптера. Используя Python, удобно применять механизм прерываний по нажатию клавиш на клавиатуре, который позволяет спасти квадрокоптер в таких ситуациях либо же корректно завершить скрипт. Что не менее важно, так это на примере объяснять ученикам важность механизмов защиты и предусматривать их с самого начала работы.

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

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал

Как самый свежий пример расскажу вкратце об опыте работы с Python на Пионере Мини в ФМЛ № 239 г. Санкт-Петербурга. Школьники Центра робототехники в январе этого года работали с установкой всего необходимого ПО (PyCharm Community и Pioneer Station 1.11.0.), перепрошивали ESP-32 до версии 0.2.7., учились подключать компьютер к дрону. В итоге за одно занятие они смогли разобраться и запустить скрипт калибровки камеры на Python.

Сейчас у них есть возможность опробовать другие примеры скриптов и создать свои уникальные кейсы, например, реализовывать полёт Пионер Мини по линии (с помощью библиотек OpenCV и pioneer_sdk).

Все ученики говорят, что для них плюсы в работе с Пионером Мини – это широта возможностей коптера, способность полноценной реализации функций компьютерного зрения с помощью библиотеки OpenCV и компактность дрона. У всех есть большой интерес и к появлению дополнительных модулей (для изучения Python и видеозрения).

Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал
Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал
Уголок радиолюбителя. Как прокачать дрона | GeekBrains - образовательный портал

✔️ 5 лучших курсов по программированию дронов [2022]

2 место. курс «управление дронами (бпла)» — открытое образование

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

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

Стоимость: нет информации

Программа курса:

  • Модуль 1. Введение в БПЛА.
  • Модуль 2. Устройство коптера (основные компоненты).
  • Модуль 3. Устройство коптера (дополнительные компоненты).
  • Модуль 4. Системы управления и навигации (мат. часть).
  • Модуль 5. Датчики.
  • Модуль 6. Пилотирование (основы).
  • Модуль 7. Пилотирование (продвинутый уровень).
  • Модуль 8. Программирование (системы навигации).
  • Модуль 9. Программирование (программирование в симултое).
  • Модуль 10. Соревнования. Заключение.

3 место.курс «управление и программирование» — maidroneschool

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

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

Стоимость: 15 000 Р

Что входит в курс

Активация и настройка:

  • активировать и создать аккаунт DJI, и настроить квадрокоптер;
  • обновить программное обеспечение;
  • настроить и откалибровать оборудование;
  • выполнить тестовый полет квадракоптера.

Теоретические знания:

  • Расскажем об актуальных нормах законодательстве и правилах полета;
  • Введем в теорию полетов и научим управлять квадрокоптером;
  • Познакомим с приложением DJI GO;
  • Познакомим с настройками и режимами полета квадрокоптера;

Автономный маршрут доступа

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

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

var autonomy = require(‘ardrone-autonomy’);

var mission = autonomy.createMission({ip: ‘10.0.1.3’, frameRate: 1, imageSize: ‘640:320’});

console.log(“Here we go!”)

mission.takeoff()

         .zero()         // Sets the current state as the reference

         .altitude(1)

         .taskSync(console.log(“Checkpoint 1”))

         .go({x: 0, y: 0, z: 1, yaw: 90})

         .taskSync(console.log(“Checkpoint 2”))

         .hover(1000)

         .go({x: 0, y: 0, z: 1, yaw: 180})

         .taskSync(console.log(“Checkpoint 3”))

         .hover(1000)

         .go({x: 0, y: 0, z: 1, yaw: 270})

         .taskSync(console.log(“Checkpoint 4”));

         .hover(1000)

         .go({x: 0, y: 0, z: 1, yaw: 0

         .land()

Архитектура

Я решил запустить логический алгоритм на ноутбуке, а систему машинного обучения – в облаке. Такая схема позволила снизить время ожидания по сравнению с запуском нейросети непосредственно на компьютере Raspberry PI , и я считаю, что она является целесообразной для любительских дрон-проектов.

Смотрите про коптеры:  Пульт от радиоуправляемой машины

Microsoft, Google, IBM, и Amazon предлагают недорогие облачные интерфейсы машинного обучения. Я выбрал Microsoft’s Cognitive Service для этого проекта, так как это единственный интерфейс, поддерживающий настраиваемое распознавание лиц.

Бизнес

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

Ведущий (lead)

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

Заработная плата тимлида: от 250 тысяч и выше.

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

Военные и государственные организации

Для военных целей создают дроны разного вида и мощности. Микро-беспилотники используют, например, для разведки. Другие аппараты способны переносить различные грузы и доставлять припасы. Во время активных военных операций БПЛА спасают человеческие жизни, помогают корректировать направление активного огня и избежать жертв среди населения.

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

Востребованность профессии

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

Выбор готового дрона

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

Большинство производителей дронов обещают предоставлять программный интерфейс (API), но среди них нет лидера, который мог бы предоставить экосистему для любителей. Большинство дронов с удобным интерфейсом стоят более $1000, что является серьезной преградой.

После некоторых поисков, мне удалось найти Parrot AR Drone 2.0, который, по моему мнению, является удачным выбором, если вам нужен недорогой и легко программируемый дрон для развлечений. Вы можете купить новый за $200, но, учитывая количество людей, которые их покупают и никогда не используют, лучше купить подержанный на eBay менее чем за $130.

Parrot AR не так стабильно летает, как гораздо более дорогой (около $550) новый Parrot Bebop 2, но для Parrot AR существует клиентская библиотека на node.js под название node-ar-drone. Она идеально подходит в качестве основы для программирования дрона.

Еще одно преимущество Parrot AR – его очень трудно сломать. При тестировании кода автономного режима мой дрон не раз врезался в стены, мебель, цветочные горшки и гостей, и все еще прекрасно летает.

Одной из проблем дронов по сравнению с наземными роботами является небольшое время работы их аккумулятора. Подзарядка может занимать несколько часов, а хватит её всего где-то на 10 минут полета. Я рекомендую купить 2 дополнительные батареи и менять их в процессе тестирования.

Где работают программисты дронов

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

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

Например, программист дронов может работать в следующих отраслях.

Где работают программисты дронов?

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

Вакансии инженера-разработчика ПО для БЛА предлагают:

  • IT-компании;
  • поставщики и производители квадрокоптеров и дронов;
  • госкорпорации (Росатом, Норникель);
  • научно-исследовательские институты робототехники;
  • правоохранительные органы (ФСБ, ГАИ, ФСО);
  • органы военного управления;
  • промышленные предприятия (строительство, добыча полезных ископаемых и др.);
  • транспортные компании и службы доставки;
  • фермерские хозяйства и агрокомпании.

Где учиться на программиста дронов

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

Например, курс «Программирование дронов» от Skillbox готовит универсальных разработчиков ПО для дронов. Вы изучите устройство беспилотников, научитесь программировать их для решения различных задач, в том числе моделировать полёты в сложных условиях.

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

  1. Вы изучите историю развития БПЛА, познакомитесь с типами навигационных систем и специального программного обеспечения.
  2. Затем разберёте устройство дрона, изучите основные навигационные системы и имитационное моделирование.
  3. Третий блок познакомит вас теорией автоматического управления БПЛА и их системами управления.
  4. После этого вы научитесь создавать траектории полётов и алгоритмы симуляторов дронов.
  5. Пятый модуль познакомит вас с фреймворком ROS и автопилотом PX4. Вы начнёте моделировать датчики и программировать полёты.
  6. Вы узнаете, что такое реперные маркеры и оптический поток, разберётесь в системах технического зрения.
  7. Вы научите дрон узнавать препятствия и строить карты местности.
  8. На основе реального кейса вы научитесь программировать системы облёта препятствий.
  9. Вы разберете сложную тему групповых полётов и научитесь создавать системы управления группами дронов до 10 штук.
  10. На последнем модуле вы получите консультацию по карьерным возможностям и узнаете, с чего начать поиски работы.

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

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

Геодезия и картография

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

Кроме этого, на полёт дрона над городом проще получить разрешение, чем на пилотируемые самолёты или вертолёты, и использовать его для картографирования и аэросъемок. Беспилотник можно отправить на съёмку над труднопроходимыми местами или водными массивами.

Джун (junior)

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

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

Работа подойдет тем, кто уже имеет общие представления о системах управления БЛА и имеет небольшой опыт в написании подпрограмм.

Заработная плата джуна: 80–120 тысяч рублей.

Доставка товаров и грузов

Бесконтактная доставка на дом стала особенно актуальной во время пандемии COVID-19. Сервис Amazon уже успешно использует дроны в этих целях.

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

Запуск технологии распознавания лиц

Программный интерфейс Azure Face API очень мощный и простой в использовании. Вы можете загрузить фото своих друзей, и он сможет распознать их. Он также определит возраст и пол, что, по моему опыту, у него получается удивительно хорошо. Время ожидания – около 200 миллисекунд, стоит $1,5 за 1000 определений, что кажется весьма оправданным. Ниже – мой вариант кода для отправки изображения и запуска алгоритма распознавания лиц.

var oxford = require(‘project-oxford’),

oxc = new oxford.Client(CLIENT_KEY);

loadFaces = function() {

Как стать программистом дронов: карьерный путь

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

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

Смотрите про коптеры:  Как сделать робота своими руками

Студенты технических вузов могут уже на первых курсах параллельно с основной программой начать изучать Python и С , а затем выбрать онлайн-курс по специализации «Программист дронов».

Онлайн-курсы помогут также действующим IT-специалистам и программистам смежных областей вникнуть в специфику разработки ПО для беспилотников и сменить направление своей деятельности.

Таким образом, стать программистом дронов никогда не поздно и никогда не рано. Рынок производства БПЛА только начал развиваться и многие сферы предпринимательства только планируют начать внедрять дроны в свои бизнес-процессы. Освоив профессию разработчика ПО для беспилотников, вы сможете участвовать в развитии этой относительно новой отрасли IT-девелопмента.

Курс «dronny» — dronny.school

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

Стоимость: нет информации

Обучающая программа: наша школа программирования «DRONNY» обучает школьников 4 инновационным предметам:

  • Программирование
    изучаются 4 основных языка программирования (Scratch, Python, Swift, Javascript) в игровой форме: с помощью Minecraft, создания игр и создания собственной музыки и миксов песен.
  • Управление дронами
    с помощью изученных языков программирования школьники будут учиться управлению дронами, хореографии дронов (программированию поведения роя дронов) , а также смогут участвовать в дрон-рэйсинге (гонках дронов, Формуле-1 будущего)
  • 3D-моделирование и 3D-печать
    создать 3D-модель компонентов дрона, напечатать их на 3D-принтере, и создать своими руками свой летающий дрон.
  • Занимательная математика
    по передовой образовательной методике STEAM.

Программирование дрона

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

Последний раз, когда я основательно программировал робота, я использовать язык С, но многотопоточность и обработка исключений в нем настолько утомляет, что хочется его избегать. Надеюсь, кто-то построит обёрточный функционал Javascript для других платформ, потому что этот язык значительно упрощает программирование в недетерминированных условиях.

Производство и продажа беспилотников

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

Профессиональное развитие программиста дронов

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

Сколько зарабатывают программисты дронов

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

Минимальные заработные платы начинаются от 80 000 ₽.

Средний (middle)

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

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

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

Заработная плата мидлов: 150–180 тысяч рублей.

Стажёр (intern, trainee)

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

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

Работа подойдет студентам IT-специальностей последних курсов вузов.

Заработная плата стажеров: 30–50 тысяч рублей.

Старший (senior)

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

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

Заработная плата сеньоров: 200–250 тысяч рублей.

Съемка потокового видео с дрона

Я нашел, пожалуй, лучший способ смотреть видео с камеры дрона. Он заключается в открытии соединения и непрерывной отправке изображений PNG с моего веб-сервера на мой веб-сайт. Веб-сервер постоянно получает PNG с помощью библиотеки AR с дрона.

var pngStream = client.getPngStream();

pngStream

 .on(‘error’, console.log)

 .on(‘data’, function(pngBuffer) {

       sendPng(pngBuffer);

function sendPng(buffer) {

 res.write(‘–daboundarynContent-Type: image/pngnContent-length: ‘ buff

er.length ‘nn’);

 res.write(buffer);

});

Типы дронов

Чёткой классификации типов дронов ещё нет, но беспилотники можно разделить на типы по нескольким параметрам.

По техническим характеристикам БПЛА бывают самолётного и вертолётного типа.

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

Требования к программисту дронов

  • Знания языков программирования C или Python на продвинутом уровне.
  • Опыт работы с ROS или OpenCV.
  • Отличные знания технического английского языка.
  • Опыт разработки алгоритмов для дронов или любого встроенного программного обеспечения.

Управление полетом с веб-страницы

Создать веб-интерфейс для управления полетом – приятно и легко. Платформа express.js сильно упрощает создание небольшого веб-сервера:

var express = require(‘express’);

app.get(‘/’, function (req, res) {

 res.sendFile(path.join(__dirname ‘/index.html’));

});

app.get(‘/land’, function(req, res) {

 client.land();

});

app.get(‘/takeoff’, function(req, res) {

 client.takeoff();

});

app.listen(3000, function () {

});

Я устанавливаю функцию для создания запросов методом AJAX с помощью кнопок:

function call(name) {

Управление полетом командной строкой

После установки библиотеки node можно сделать цикл типа прочитать-вычислить-записать (REPL) и тем самым начать управлять дроном.

var arDrone = require(‘ar-drone’);

var client = arDrone.createClient({ip: ‘192.168.7.43’});

client.createRepl();

drone> takeoff()

true

drone> client.animate(‘yawDance, 1.0)

Если вы следуете моим инструкциям, к этому моменту вы уже точно несколько раз уронили ваш дрон. Я тысячу раз переклеивал защитный каркас прежде чем он развалился, и мне пришлось покупать новый. Я сомневаюсь, стоит ли это говорить, но Parrot летает гораздо лучше без каркаса. Но летая без него лопасти могут зацепиться и сломать что-то, испортить мебель.

Установка системы распознавания речевых команд

Самой сложной частью установки системы распознавания речи является не само по себе распознавание речи, а трансляция звуковой дорожки с веб-страницы на мой локальный сервер в формате, которого требует Microsoft’s Speech API, а это, в свою очередь, выливается в слишком длинный код.

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

app.post(‘/audio’, function(req, res) {

 var form = new formidable.IncomingForm();

Чем отличается инженер-разработчик бла от программиста дронов

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

Выводы

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

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

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

Оцените статью
Радиокоптер.ру
Добавить комментарий

Adblock
detector