Инфракрасная
Устройство, настройка и подготовка к работе
Компоненты системы
Для высокоточного автономного полета в помещении система использует базовую станцию и ИК-модуль навигации. Модуль вместе с базовой станцией образуют систему навигации, которая позволяет точно позиционировать квадрокоптер внутри помещения, когда использование других систем навигации невозможно или затруднено. (Например GPS/ГЛОНАСС/Оптический поток).
Базовая станция
В качестве базовой станции используется SteamVR Base Station 2.0 Базовая станция - является важным элементом работы систем виртуальной реальности, используется для обеспечения отслеживания шлемов, контроллеров и трекеров. Специалисты компании «Геоскан» адаптировали данную станцию для отслеживания квадрокоптера внутри помещения.
Примечание
Базовые станции продаются отдельно. Для заказа пишите на почту sales@geoscan.aero или на официальном сайте разработчика Vive. Комплект поставки включает одну базовую станцию и один адаптер питания с кабелем длинной 2.5 метра.
Устройство
Ознакомьтесь с устройством базовой станции:

- Индикатор состояния
- Лицевая панель
- Порт подключения питания
- Резьбовое монтажное отверстие
Установка базовой станции

- Базовая станция должна быть установлена выше уровня головы (выше двух метров) и направлена к полу под углом 25-35 градусов.
- Пространство, в которое «смотрит» базовая станция должно быть свободно от мебели, посторонних предметов.

- Базовая станция должна быть установлена на штативе, кронштейне или другом устойчивом основании.
- Убедитесь, что станция надежно зафиксирована так, что ее невозможно случайно уронить, чтобы избежать повреждений или некорректной работы.
Внимание!
Каждая базовая станция имеет горизонтальное поле обзора 150 градусов и вертикальное поле обзора 110 градусов. Убедитесь, что в данном поле нет посторонних объектов а также не закрывайте фронтальную панель каким-либо материалом!
Когда базовая станция включена, она может влиять на некоторые соседние инфракрасные датчики, например, на телевизионном пульте ДУ. Подробнее про базовую станцию можно почитать на сайте разработчика HTC.
Индикация
В процесе работы базовая станция сигнализирует о текущем статусе с помощью светодиодов:
- Белый или зеленый (в зависимости от варианта оборудования) - базовая станция полностью готова к работе.
- Светит или мигает синим - базовая станция в ожидании стабилизации. Если она долго остается в этом состоянии, проверьте надежность крепления, не испытывает ли поверхность, на которой установлена базовая станция, вибрации.
- Мигает красным - произошла ошибка.
Бортовой модуль
В комплекте с модулем предусмотрена плата-адаптер необходимая для выноса модуля из плоскости вращения воздушных винтов. Модуль монтируется на базовую плату через адаптер расширения с помощью четырех винтов М3, при этом обеспечивается надежное соединение разъемов.
Индикация
В процесе работы бортовой модуль сигнализирует о текущем статусе с помощью светодиодов:
- Красный - ошибка, полет запрещен;
- Красный моргает быстро - станция рядом, но процесс инициализации не запущен;
- Красный моргает медленно - станция обнаружена, идет калибровка;
- Зеленый - связь установлена, полет разрешен.
Обновление прошивки
Для обновления прошивки модуля ИК навигации на вашем компьютере должна быть установлена программа Pioneer Station
- Нажмите и удерживайте кнопку «Старт» на базовой плате квадрокоптера и подключите аккумулятор. Квадрокоптер должен перейти в режим прошивки.
- Подключите квадрокоптер кабелем microUSB к компьютеру.
- Запустите Pioneer Station и выберите подключение по USB.
- В окне программы выберите пункт меню «Обновление прошивки» и следуйте указаниям помощника.
- При переходе к пункту «Выбор устройства» в списке будет отображаться не только базовая плата квадрокоптера, но и модуль ИК-навигации (IRNav). Поставьте галочку напротив модуля и нажмите «Далее».
- При выборе источника прошивки рекомендуется выьрать «встроенный» — это актуальная версия прошивки модуля, входящая в сборку Pioneer Station.
Подсказка
Если версия модуля не определяется автоматически, прочтите маркировку на обратной стороне платы и выберите соответствующую прошивку из доступных в папке Pioneer Station. Скачать прошивку модуля можно в разделе Загрузки.
- Дождитесь окончания прошивки. После этого квадрокоптер перезагрузится в обычный режим.
Настройка полётного задания
Работа с данной системой имеет некоторые особенности. Пожалуйста, ознакомьтесь с информацией ниже. Положение квадрокоптера в пространстве определяется по трем координатам (x, y, z). Точка начала координат - базовая станция.


Внимание!
- Нельзя задавать в полетном задании координату (0, 0, 0) — это приведет к столкновению квадрокоптера и станции и последующей поломке оборудования!
- Координата по оси Y не должна быть меньше чем 0,5! В противном случае, квадрокоптер попадет в слепую зону базовой станции и потеряет ориентацию в пространстве. Это может привести к поломкам оборудования, травмам.
- Координата по оси Z (высота) - всегда задается в отрицательных значениях! Учитывайте высоту, на которой у вас установлена базовая станция!
- Координаты в локальной системе не должны превышать 4 метра (радиус действия базовой станции)! При координатах, превышающих это значение велик риск потери связи.
Перед полётом
- В конфигураторе Pioneer Station в настройках автопилота необходимо выставить позиционирование по локальной системе координат (кнопка LPS).
- Установите базовую станцию и включите ее. (Примечание, станцию нужно только включить, никаких дополнительных действий не нужно.)
- Внесите настроенный квадрокоптер с установленным модулем в полётную зону.
- Дождитесь установки связи между ИК-модулем и базовой станцией. Связь настраивается автоматически, необходимо дождаться пока на модуле не загорится зеленый светодиод.
- Опытным путем определите полетную зону квадрокоптера (радиус действия базовой станции). Для этого с включенным квадрокоптером в руках медленно отходите в разные стороны от станции. При потере сигнала светодиоды на модуле начнут мерцать красным. При необходимости скорректируйте полетное задание!
- Убедитесь, что в зоне полетов нет посторонних.
Внимание!
В случае вылете квадрокоптера за пределы полетной зоны - необходимо в ручном режиме вернуть его обратно. Для этого тумблер SwC должен быть всегда в среднем положении, а тумблер SwB должен быть переведен в момент вылета из среднего в верхнее положение. Подробнее - в разделе Меры предосторожности.
Пример Lua-скрипта
Скрипт реализует автономный полёт по квадрату в заданных координатах, с учётом особенностей системы ИК-навигации. Прочитайте внимательно комментарии внутри скрипта, а также инструкцию ниже по предварительной настройке.
- Скопируйте код и вставьте его в окно редактирования кода Pioneer Station.
- Проверьте, что в параметрах автопилота выставлено позиционирование по локальной системе координат (LPS)
- Отключите квадрокоптер от компьютера. Поставьте его в зону действия базовой станции, дождитесь соединения ИК-модуля и базовой станции.
- Настройте 8-й канал на пульте РУ на тумблер SwA.
- Если вы не проводили проверку рабочей зоны квадрокоптера, то произведите ее по алгоритму, описанному выше в разделе «Перед полетом»
- Запустите скрипт, нажав кнопку «Старт» на базовой плате. Переведите тумблер SwA в нижнее положение. Дождитесь начала выполнения полетного задания.
- При возникновении внештатной ситуации - переведите квадрокоптер в ручной режим управления и совершите посадку. (Подробнее в разделе Меры предосторожности)
-- Упрощение вызова функции распаковки таблиц из модуля table
local unpack = table.unpack
-- Создание порта управления светодиодами
local rc = Sensors.rc -- считывание положения тумблеров
-- Таблица точек полетного задания в формате {x,y,z}
-- Обратите внимание на координату Z, она должна быть отрицательной и не равна 0.
local points = {
{0, 2, -1},
{0, 1, -1},
{0, 2, -1},
{0, 1, -1}
}
-- Счетчик точек
local curr_point = 1
-- Функция, изменяющая цвет светодиодов и выполняющая полет к следующей точке
local function nextPoint()
-- Текущий цвет. % - остаток от деления, # - размер таблицы. Такая конструкция использована,
-- чтобы цвета продолжали меняться, даже если точек больше, чем цветов в таблице
-- Изменение цвета светодиодов
-- Полет к текущей точке, если её номер не больше количества заданных точек
if(curr_point <= #points) then
Timer.callLater(1, function()
-- Команда полета к точке в системе позиционирования
ap.goToLocalPoint(unpack(points[curr_point]))
-- Инкрементация переменной текущей точки
curr_point = curr_point + 1
end)
-- Посадка, если номер текущей точки больше количества заданных точек
else
Timer.callLater(1, function()
-- Команда на посадку
ap.push(Ev.MCE_LANDING)
end)
end
end
-- Функция обработки событий, автоматически вызывается автопилотом
function callback(event)
-- Когда коптер поднялся на высоту взлета Flight_com_takeoffAlt, переходим к полету по точкам
if(event == Ev.TAKEOFF_COMPLETE) then
Timer.callLater(5, nextPoint)
end
-- Когда коптер достиг текущей точки, переходим к следующей
if(event == Ev.POINT_REACHED) then
Timer.callLater(5, nextPoint)
end
end
-- Предстартовая подготовка
startTimer = Timer.new(1, function()
rc_chans = table.pack(rc())
if rc_chans[8] > 0 then -- проверка положения тумблера SwA
curr_point = 1
ap.push(Ev.MCE_PREFLIGHT)
Timer.callLater(6, function() ap.push(Ev.MCE_TAKEOFF) end)
end
end)
-- Таймер, через 2 секунды вызывающий функцию взлета
startTimer:start()Меры предосторожности
- Не пытайтесь вскрыть базовые станции, это может привести к травмам или повреждениям конструкции
- Если лицевая панель имеет трещины или повреждения, прекратите использование базовых станций и обратитесь с службу поддержки производителя.
- Обязательно снимите защитную пленку с лицевой панели после монтажа базовых станций.
- Используйте только блоки питания и кабели из комплекта поставки базовых станций!
- После включения не перемещайте и не регулируйте углы расположения базовых станций, поскольку это может препятствовать процессу отслеживания. В противном случае может потребоваться повторная настройка.