Первые шаги в сторону собственной программы управления квадрокоптером

квадрокоптер на веревке

Благодаря неистовому давлению друзей, превозмогая себя, продолжаю вести заметки.

Случилось мне в феврале две недели быть на больничном. Чтобы не сидеть сложа руки, решил попробовать силы в написании собственной программы управления квадрокоптеом. За две недели упорных стараний была рождена прошивка для Ардуино, способная:

  • Читать сигналы управления радиоприемника (вперед-назад, влево-вправо, вверх-вниз, разворот влево-вправо)
  • Выполнять калибровку аппаратуры
  • «Понимать» свое положение в пространстве с помощью MPU-6050
  • Управлять четырьмя моторами так, чтобы выполнять команды управления с пульта и при этом не переворачиваться, а «держать горизонт».

Кроме того, понадобилось создать консольную программу для компьютера, которая связывается с Ардуино по COM порту для получения отладочной информации и тонкой настройки различных параметров стабилизации, коих насчитывается несколько десятков.Скриншот 2014-02-22 17.43.35

Здесь мне очень помогал советами по структуре программы мастер рефакторинга и code-rewiew, повелитель сабскрайберов и нотифаеров, гроза всех коммитов в trunk, друг и коллега Валера. Привет! :-)

После, в выходные был собран и спаян тестовый квадрокоптер с Arduino UNO на борту:

[su_slider source=»media: 144,143,142,141″ limit=»5″ link=»image» title=»no» mousewheel=»no»]

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

После продолжительных настроек, отладки, установки новой платы Arduino Mega удается добиться приемлемых результатов: (в конце — один из внезапных глюков, которые пришлось бороть)

Потом проводятся тесты полета в коридоре. После тесты переносятся на улицу (а там уже ночь и сильный ветер). Первый 60-секундный полет на высоту метров 20 прошел успешно.

Далее совершается, наверное, самое глупое, что можно было придумать: попытка взлететь повыше и совершить маневр. Все мы иногда учимся на своих ошибках. После потери ориентации квадрокоптера в воздухе, нет возможности эффективно бороться с ветром и возвращать аппарат обратно. Принято решение — плюхнуть в поле его там, где придется. Но место «посадки» найти так и не удалось, так что он числится пропавшим без вести до сих пор. Возможно кто-то подобрал а возможно он улетел гораздо дальше, чем проходили потом неоднократные поисково-спасательные операции (о которых, наверное, стоит написать отдельно, т.к. там применялся основной квадрокоптер в связке с системой компьютерного зрения, написанной на Qt + OpenCV)

Но мы не унываем (хоть и помним про ошибки): потери составили около 6 т.р. Новый комплект уже заказан у друзей-китайцев и на этот раз с GPS-трекером. Так что продолжение следует!