Для локации и навигации движущихся внутри помещения мобильных объектов используются различные технологии Wi-Fi [1], Bluetooth, ZigBee [2], nanoLOC [3] и другие. В случае, когда известна карта помещения и начальные координаты объекта для позиционирования объекта и его маршрутизации можно использовать датчики смещения.
Было проведено моделирование маршрутизации тележки, на которой установлены два датчика смещения. Один датчик был размещен по центру переднего борта тележки, второй – по центру заднего борта (рис. 1).
Рисунок 1 – Схема тележки с установленными впереди и сзади датчиками смещения
Датчик смещения позволяет определить, на какое расстояние по двум осям произошло смещение за единичный промежуток времени. Для установленных на тележку датчиков смещения известны их координаты в системе координат, связанной с тележкой. Начало координат в этой системе совпадает с центром тележки (рис. 1). Зная начальные координаты тележки в неподвижной системе координат, датчик смещения позволяет построить траекторию движения объекта в неподвижной системе координат и тем самым определить текущие координаты объекта в неподвижной системе координат. Это возможно только при отсутствии вращения связанной системы координат относительно неподвижной, т. е. в случае, если тележка не делает ни каких поворотов, что в общем случае не так. Для учета поворотов связанной системы координат относительно неподвижной на тележке установлены два датчика смещения. Смещение датчиков относительно друг друга позволяет определить, на какой угол повернулась связанная система координат относительно неподвижной.
Для моделирования движения и управления тележкой была использована игра Garry’s mod, движок которой позволяет моделировать неподвижные и двигающиеся объекты c учетом физики реального мира (рис. 2).
Рисунок 2 – Снимок модели тележки в Garry’s mod
Для моделирования внешней среды была использована карта территории GM_BigCity с заданной системой координат. В этой системе координат был сформирован маршрут, по которому должна пройти тележка. Маршрут представлял собой ломаную линию, вершины которой (повороты) были заданы объектами WayPoint из библиотеки WireMod, размещенными на карте, т.е. имели известные координаты.
Также в среде моделирования была построена модель тележки с двумя датчиками смещения. В качестве датчиков смещения были использованы объекты GPS и Chip-Expression2 (программируемый чип), работа которых была реализована с помощью программного кода на языке Expression2. Для движения тележки были использованы 6 объектов, называемых Thruster. Два объекта использовались для движения тележки вперед, четыре – для поворота тележки. Для управления двигателями в соответствии с результатами измерений датчиков смещения на тележке был размещен еще один объект Chip-Expression2, в котором был реализован алгоритм следования тележки по маршруту.
Для моделирования работы реального процессора был написан генератор прерываний, с периодом, равным 0,15 секунды.
Идея алгоритма маршрутизации заключается в следующем. На основе координат цели движения – очередной вершины ломаной маршрута и координат центра тележки строится вектор прямолинейного движения к цели. Если вектор направления тележки достаточно сильно отклоняется от вектора направления движения, то тележка выполняет поворот в соответствующем направлении. Если отклонение вектора небольшое, то тележка продолжает прямолинейное движение. Поворот тележки осуществляется по показаниям датчиков смещения. Блок-схема алгоритма перемещения тележки по маршруту представлена на рис. 4. На рис. 3 представлены обозначения, используемые в алгоритме. Одна итерация цикла алгоритма соответствует одному периоду генератора прерываний.
Рисунок 3 – Движение тележки к вершине 2: вектор А – вектор направления тележки, вектор В – вектор направления движения
Код был реализован на специальном языке программирования Expression2 для Garry’s mod. В алгоритме для проверки первого условия было использовано значение α=5,7°, а для второго условия – значение w=10.
При выборе значения α следует руководствоваться следующими рассуждениями. Значение α должно быть небольшим, но больше чем угол поворота тележки за один период генератора прерываний. Это необходимо, чтобы избежать колебаний платформы на одном месте. Значение α должно быть таким, что хорда дуги, образованной двумя единичными векторами, угол между которыми равен α, меньше w. Это позволит избежать движения платформы вокруг вершины маршрута.
Значение w не должно быть меньше шага h.
Рисунок 4 – Алгоритм следования по маршруту
В результате моделирования были визуализированы траектории движения датчиков смещения (рис. 5).
Рисунок 5 – Снимок траектории перемещения датчиков тележки в Garry’s mod (синяя линия – задний датчик, красная линия – передний датчик)
Результаты моделирования показали возможность использования игровых движков для моделирования поведения датчиков и процессов управления физическими устройствами, что позволяет разнообразить процесс обучения, включая в него элементы развлекательного характера.
В дальнейшем планируется реализация физического устройства с датчиками смещения для апробации разработанных алгоритмов в реальном мире.
Библиографический список
- Wi-Fi Location-Based Services 4.1 Design Guide. – San Jose, USA: Cisco Systems, Inc. – 2008. Online: http://www.cisco.com/en/US/docs/solutions/Enterprise/Mobility/wifich2.html.
- Тигина М.С., Павлинцева Е.Д. Применение технологии Beacon для осуществления информационной навигации в пределах помещения [Текст] // Вестник МГУП имени Ивана Федорова. 2015. № 1. – С. 160–164.
- Мощевикин А.П., Галлов А.С., Волков А.С. Локация в беспроводных сетях датчиков стандарта nanoLOC (IEEE 802. 15. 4а) // Информационные технологии. 2011. № 8. – С. 43–47.