Рассуждения о компасах…

Здравствуйте, уважаемые читатели! Сегодня я хочу рассказать Вам свою историю долгой борьбы с модулями компаса и GPS при настройке квадрокоптера на контроллере AMP. Пишу статью по большей части чтобы упорядочить полученный мною опыт, который может быть кому-то пригодится, а может быть более опытные читатели подскажут мне правильное решение проблемы!

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

Но как и всё самое дешёвое, этот комплект преподнёс мне некоторые сюрпризы в виде дополнительных проблем при настройке. В частности, у меня возникли проблемы на стадии настройки совместной работы модуля Компаса+GPS 6M, и Полётного контроллера APM 2.6 (оба компонента из вышеуказанного набора).

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

  • Полётный контроллер APM 2.8 (отличается от APM 2.6 наличием встроенного компаса прямо в корпусе контроллера);
  • Модуль компас+GPS UBLOX NEO 7M (более новая модель, кроме GPS поддерживает ГЛОНАСС).

Теперь же попытаюсь подробно описать поведение датчиков компаса и GPS каждого из вышеперечисленных устройств:

Показания компаса

Компас, встроенный в полётный контроллер APM 2.8

Этот внутренний компас оказался самым простым в подключении и настройке!  Для его работы необходимо наличие 3-ей перемычки на контроллере (возле гнезда с надписью GPS), и чтобы провод компаса, идущий от внешнего компаса к контроллеру, был отключен!

Настройка и калибровка этого компаса (при помощи программы Mission Planner) также не вызвала никаких проблем, все шаги в точности соответствовали многочисленным видеоинструкциям на ютубе: Выбрал тип компаса — встроенный (при этом исчезла настройка поворота компаса относительно полётного контроллера), выполнил Live calibration. Калибровка происходила правильно, а именно: при вращении контроллера (квадрокоптера) вокруг вертикальной оси, на экране цветные метки отрисовывались также вокруг вертикальной оси!

И как завершающая проверка — квадрокоптер, поставленый на подоконник со временем поймавший все спутники, показывал стороны горизонта правильно! То есть, если на подоконнике поставить летательный аппарат носом на север, то и на карте в ПО Mission Planner он тоже показывает на север! Жаль что программное обеспечение по Андроид (а именно Tower) не отображает показания компаса, а показывает только местоположение летательного аппарата.

Главный недостаток использования такого компаса — это влияние магнитных полей бортовой электроники на показания компаса! В первую очередь это силовые провода, идущие от аккумулятора к регуляторам оборотов, и далее — к двигателям. Среди создателей квадрокоптеров общепринятым считается использовать внешний компас (встроенный в модуль GPS) и устанавливать его на отдельной стойке, длиной 13-15 сантиметров, как раз с целью избежать таких вот магнитных помех. Ну или как шутят эти же создатели квадрокоптеров — «Чтобы приёмник GPS был поближе к спутникам».

Итак, для решения этой проблемы я соорудил жуткую конструкцию из г0вна и палок из детских кубиков и кабельных стяжек, которая позволила мне поднять Полётный контроллер APM 2.8 (а следовательно и встроенный в него компас) выше основной поверхности квадрокоптера на высоту около 10 сантиметров. Проблема влияния магнитных полей была решена: Процедура Compassmot показала влияние магнитных полей бортовой электроники менее 5% из допустимых 25%.

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

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

Поднятие полётного контроллера выше штатного места (выше рамы квадрокоптера) даёт помехи на показания гироскопов и акселерометров контроллера. Чтобы избавиться от этих помех, нужно вернуть контроллер на плоскость рамы, а для сохранения навигации нужно подключить и настроить внешний компас, находящийся в корпусе GPS-приёмника!

Компас, встроенный в GPS 6M

Уж и не помню точно, почему я отказался от использования этого компаса, возможно из-за медленного старта приёмника GPS. Но вероятнее всего — из-за невозможности скалибровать компас. Подробнее эти симптомы я опишу в следующем разделе, где речь пойдёт от Neo 7M.

Однако, удивляет тот факт что пару дней назад я достал из шкафа свой старый GPS 6M, подключил его к лежащему там же APM 2.6 и он позволил без проблем провести правильную калибровку! Оси вращались правильно, данные поступали быстро и равномерно! Либо я совсем без головы подключал те же компоненты первый раз, либо от долгого лежания в шкафу компас избавился от излишней намагниченности!

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

Компас, встроенный в UBLOX NEO 7M

Этот компас подключается, определяется, но при попытке калибровки рисует линии совсем не у тех осей вокруг которых происходит вращение! Попытки подобрать значение углов поворота модуля тоже ни к чему не привели (были опробованы ВСЕ доступные варианты ориентации, кратные 90 градусам по всем трём осям вращения). Нормальное положение любого внешнего компаса это ROLL180 — перевёрнутый вверх ногами, т.к. чип компаса находится на обратной стороне (внизу) от чипа GPS.

В результате мой коптер долгое время летал именно на этом модуле GPS но с отключенным проводом компаса. Я пробовал даже перешить этот модуль (залить в него новый конфигурационный файл), но потом я подумал, что этот вариант и не мог помочь, так как Компас и GPS хоть и живут в одном корпусе и питание получают совместно, но это всё-таки разные устройства. Кстати, перешивать его нужно либо при помощи специального адаптера, преобразующего USB порт в COM, либо используя полётный контроллер в качестве программатора. Во втором случае прошивка контроллера слетает и нужно потом опять её восстановить при помощи Mission Planner.

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

Показания GPS

GPS-модуль 6M

Спутники ловятся очень медленно, зачастую от 5 минут и дольше, однако если поймал, то показывает местоположение достаточно точно. От подключения телеметрии показания спутников не зависят. Даже не помню, удалось ли мне летать в Loiter на этом модуле, но теперь обязательно попробую!

GPS-модуль UBLOX NEO 7M

При подаче питания этот модуль вообще не ловил спутники, а ждал я долго, минут 20. НО! Стоило мне только подключить контроллер квадрокоптера (используя телеметрию) к компьютеру или смартфону (обязательно подключенному к интернету), как спутники появлялись буквально моментально! Сразу же появлялся 2D-Fix и 3D-Fix! Если коптер стоял не под открытым небом а на подоконнике, на это уходило несколько секунд. Показатель же HDOP реально зависел от погоды. При чистом небе он позволял летать почти сразу (иногда достигал 1.2), при пасмурной — приходил в норму в пределах пары минут.

Напомню, стандартные предполётные проверки запрещают запуск двигателя в режиме Loiter (по GPS-сигналам) если показатель HDOP превышает 2.0.

Таким образом, в последнее время каждый мой выход в поле для полётов выглядел примерно так:

  1. Подаю питание на квадрокоптер (в том числе на полётный контроллер)
  2. Достаю смартфон, подключаю радиотелеметрию, запускаю Tower, любуюсь показаниями спутников.
  3. Отключаю смартфон (чтобы не мешал) и взлетаю в Loiter, либо программирую и загружаю миссию в том же приложении Tower на смартфоне.

Выводы:

 6M 7M  APM 2.8 
 Компас работает не калибруется  работает,
но требует поднятия
модуля над рамой
 GPS  Медленно ловит спутники  Ловит быстро,
но только
при подключении
к интернету
через телеметрию
 Встроеный модуль отсутствует

Планы на будущее:

  • Опустить полётный контроллер на уровень рамы квадрокоптера
  • Размагнитить модуль GPS+Компас UBLOX Neo-7M
  • Заказать модуль GPS+Компас UBLOX NEO N8M

Подключайтесь к обсуждению, друзья! Буду рад любым советам!

2 комментария к “Рассуждения о компасах…”

Оставьте комментарий