Принцип работы датчика
Лазерный сканер Hokuyo URG-04-LX определяет расстояние до предмета за счет определения сдвига фаз между излучаемой и отражаемой от предмета световой волны. Сканер излучает лазерный луч, световую волну определенной частоты, которая в Hokuyo URG-04-LX составляет 785 нм. Она находится на границе между видимым и ИК-излучением и является не опасной для человека.
Эта световая волна движется по прямой и, отражаясь от предмета, возвращается к лазерному дальномеру. Сравнивая посланную и принятую волны, лазерный сканер определяет фазовый сдвиг между ними. Который, в свою очередь, пропорционален времени, необходимому на преодоление расстояния от датчика до препятствия и обратно, а значит и расстоянию, пройденному волной.
Использование лазерного излучения очень эффективно, поскольку оно отражается от любого твердого предмета, в независимости от его свойств.
Расчет сдвига фазы
Если излучаемая волна имеет частоту Fи=Asin(wt) (A — амплитуда, w — частота), а отраженная волна — Fо=Bsin(w(t-dt)) (волна была выпущена в момент времени (t –dt) и ее амплитуда стала меньше, поскольку при отражении она частично поглотилась). Перемножив сигналы Fи и Fо, используя формулу произведения синусов, получим:
AB(cos(wdt)–cos(2wt–wdt))/2
Этот сигнал — разница между постоянным сигналом (cos(wdt)) и высокочастотным сигналом (cos(2wt–wdt)). При помощи фильтра низких частот можно выделить постоянную часть, из которой определить время движения волны dt и, таким образом, определить расстояние.
Определение расположения на плане
Принцип, описанный выше, применяется только для определения расстояния до предмета в одном направлении. Для того чтобы определить расстояния до предметов в плоскости, в лазерном сканере используется поворачивающееся зеркало, которое после каждого измерения доворачивается на 0,36°. При этом дальномер Hokuyo URG-04-LX обладает достаточным быстродействием и точностью: чтобы отсканировать 240° ему требуется всего 100 мс.
3D лазерный сканер, в котором используется тот же принцип, но зеркало поворачивается в 2-х осях.
Навигация в пространстве
За каждое сканирование через USB интерфейс лазерный сканер Hokuyo URG-04-LX передает 683 измерения. Эти измерения можно извлечь из файла CSV или напрямую при помощи программного кода на C или C++ с использованием API (Application Programming Interface - Интерфейс Программирования Приложений), определенного Hokuyo.
Ниже приведен пример данных, полученных лазерным сканером:
(изображение взято с сайта ars.els-cdn.com)
Довольно просто преобразовать эти данные в координаты X и Y. Если принять изменение угла в пределах от -120° до 120°, а ось с углом 0° принять за ось Y, получим:
x = distance*sin(angle)
y = distance*cos(angle)
Затем эти данные необходимо обработать, чтобы получить положение в пространстве.
Если есть карта окружающей среды, то необходимо попытаться найти ориентиры, например дверь, щель в стене и так далее. Робот может определять свой путь в окружающей среде или сохраняя в поле зрения ориентир или, например, используя энкодеры и фильтр Калмана.
Если карты окружающего пространства нет, то роботу необходимо самому её построить и отслеживать по ней свое положение. Эта задача называется SLAM (Simultaneous Localisation And Mapping - одновременное построение карты и определение положения). Существует ряд методик позволяющих решить эту задачу, в том числе есть методики с использованием фильтра Калмана.
Из-за зашумлённости изображения могут «потеряться» некоторые точки, чтобы их восстановить и снизить количество обрабатываемых данных можно предварительно их обработать и извлечь из этих данных какие-то определенные формы, особенно линии. Наиболее часто используемый для этого метод — это преобразование Хафа. В простейшем виде оно состоит из расчета уравнения прямой, которая проходит через каждую пару точек. Коэффициенты уравнения прямой линии добавляются в счетчик, в который записывается количество одинаковых уравнений. Коэффициенты, получаемые наиболее часто приравниваются ко многим парам точек на прямой в исходных данных.
Из исходных данных получены элементы при помощи преобразования Хафа
Обработанные данные со сканера
Таким образом, для ориентации в пространстве и движения в нужном направлении мобильному роботу необходимо иметь карту или создавать самому карту окружающей среды и определять свое положение на этой карте. Лазерный сканер Hokuyo URG-04-LX может стать относительно недорогим инструментом, при помощи которого, с использованием различных методик, можно выполнить эти задачи. 3D сканеры больше подходят для построения объемных карт, однако, они более дорогостоящие по сравнению с 2D сканерами. Сравнение характеристик 2D лазерных сканеров SICK LMS 200 и Hokuyo URG-04(-UG01) можно найти здесь.